source: Daodan/MSVC/Oni_GameState.h@ 572

Last change on this file since 572 was 568, checked in by gumby, 14 years ago

Updates

File size: 31.1 KB
Line 
1#ifndef ONI_GAMESTATE_H
2#define ONI_GAMESTATE_H
3#include "Oni_Character.h"
4
5
6typedef struct {
7 float X;
8 float Y;
9 float Z;
10} Vector3; //probably move to utilities...
11
12typedef struct {
13 float X;
14 float Y;
15 float Z;
16 float W;
17} Quaternion;
18
19typedef struct {
20 float RotationScale[9];
21 Vector3 Translation;
22} Matrix4x3;
23
24typedef struct {
25 Vector3 Center;
26 float Radius;
27} Sphere;
28
29typedef struct
30{
31 int StartTime;
32 int field_4;
33 char Active;
34 char field_9;
35} Letterbox;
36
37typedef struct
38{
39 __int16 Count;
40 __int16 field_2;
41 int Memory;
42} DoorArray;
43
44typedef struct
45{
46 int Count;
47 int Head;
48}PHNodeList;
49
50typedef struct
51{
52 PHNodeList OutList;
53 PHNodeList InList;
54 int AKVA;
55 int field_14;
56 int XTiles;
57 int ZTiles;
58 int GridSize;
59 char field_24;
60 char NoGrid;
61 char gap_26[2];
62 int GridData;
63 int field_2D;
64 __int16 field_31;
65 char gap_32[2];
66 int DynamicGrid;
67 int field_39;
68 int field_3D;
69 int field_41;
70 int field_45;
71 int field_49;
72 int field_4D;
73 int field_51;
74 int field_55;
75 int field_59;
76 int field_5D;
77 int field_61;
78 int field_65;
79 int field_69;
80 int field_6D;
81 int field_71;
82 int field_75;
83 __int16 Visited;
84 __int16 field_7A;
85 int TraverseQueueNext;
86 int field_81;
87 int field_85;
88 int field_89;
89 int field_8D;
90 int field_91;
91 int field_95;
92 int field_99;
93} PHGraphNode;
94typedef struct
95{
96 int field_0;
97 int field_4;
98 int field_8;
99 int field_C;
100 int field_10;
101 int field_14;
102 int field_18;
103 int field_1C;
104 int field_20;
105 int field_24;
106 int field_28;
107 int field_2C;
108 int field_30;
109 int field_34;
110 int field_38;
111 int field_3C;
112 int field_40;
113} MotionBlur;
114
115typedef struct
116{
117 char field_0[2052];
118} Shadow;
119
120typedef struct
121{
122 int ONSK;
123 Vector3 PlanetPositions[8];
124 int StarSpriteArray;
125 int Skybox;
126 int field_6C;
127 int field_70;
128 int field_74;
129 int field_78;
130 int field_7C;
131 int field_80;
132 int field_84;
133 int field_88;
134 int field_8C;
135 int field_90;
136 int field_94;
137 int field_98;
138 int field_9C;
139 int field_A0;
140 int field_A4;
141 int field_A8;
142 int field_AC;
143 int field_B0;
144 int field_B4;
145 int field_B8;
146 int field_BC;
147 int field_C0;
148 int field_C4;
149 int field_C8;
150 int field_CC;
151 int field_D0;
152 int field_D4;
153 int field_D8;
154 int field_DC;
155 float field_E0;
156 int field_E4;
157 int field_E8;
158 int field_EC;
159 int field_F0;
160 int field_F4;
161 int field_F8;
162 int field_FC;
163 int field_100;
164 int field_104;
165 int field_108;
166 int field_10C;
167 int field_110;
168 int field_114;
169 int field_118;
170 int field_11C;
171 int field_120;
172 int field_124;
173 int field_128;
174 int field_12C;
175 int field_130;
176 int field_134;
177 int field_138;
178 int field_13C;
179 int field_140;
180 int field_144;
181 int field_148;
182 int field_14C;
183 int field_150;
184 int field_154;
185 int field_158;
186 int field_15C;
187 int field_160;
188 float field_164;
189 int field_168;
190 int field_16C;
191 int field_170;
192 int field_174;
193 int field_178;
194 int field_17C;
195 int field_180;
196 int field_184;
197 int field_188;
198 int field_18C;
199 int field_190;
200 int field_194;
201 int field_198;
202 int field_19C;
203 int field_1A0;
204 int field_1A4;
205 int field_1A8;
206 int field_1AC;
207 int field_1B0;
208 int field_1B4;
209 int field_1B8;
210 int field_1BC;
211 int field_1C0;
212 int field_1C4;
213 int field_1C8;
214 int field_1CC;
215 int field_1D0;
216 int field_1D4;
217 int field_1D8;
218 int field_1DC;
219 int field_1E0;
220 int field_1E4;
221 int field_1E8;
222 int field_1EC;
223 int field_1F0;
224 int field_1F4;
225 int field_1F8;
226 int field_1FC;
227 int field_200;
228 float field_204;
229 int field_208;
230 int field_20C;
231 int field_210;
232 int field_214;
233 int field_218;
234 int field_21C;
235 int field_220;
236 int field_224;
237 int field_228;
238 int field_22C;
239 int field_230;
240 int field_234;
241 int field_238;
242 int field_23C;
243 int field_240;
244 int field_244;
245 int field_248;
246 Vector3 SunFlarePosition;
247 Vector3 field_258;
248 int field_264;
249 int field_268;
250 int field_26C;
251 int field_270;
252 Vector3 field_274;
253 int field_280;
254 int field_284;
255 int field_288;
256 int field_28C;
257} Sky;
258
259
260
261typedef struct {
262 Sphere Sphere_; //fix this name
263 int Child1;
264 int Child2;
265} SphereTreeNode;
266
267typedef struct {
268 Vector3 Min;
269 Vector3 Max;
270} BoundingBox;
271
272
273/* 202 */ typedef struct
274{
275 char Name[32];
276 __int16 Id;
277 __int16 field_22;
278 int Length;
279} PatrolPathOSD;
280
281/* 396 */ typedef struct
282{
283 int Type;
284 int field_4;
285 int field_8;
286 int field_C;
287 int field_10;
288} PatrolPathPoint;
289
290enum { //action flags
291 Action_Escape = 1,
292 Action_Console = 2,
293 Action_PauseScreen = 4,
294 Action_Cutscene_1 = 8,
295 Action_Cutscene_2 = 0x10,
296 Action_F4 = 0x20,
297 Action_F5 = 0x40,
298 Action_F6 = 0x80,
299 Action_F7 = 0x100,
300 Action_F8 = 0x200,
301 Action_StartRecord = 0x400,
302 Action_StopRecord = 0x800,
303 Action_PlayRecord = 0x1000,
304 Action_F12 = 0x2000,
305 Action_Unknown1 = 0x4000,
306 Action_LookMode = 0x8000,
307 Action_Screenshot = 0x10000,
308 Action_Unknown2 = 0x20000,
309 Action_Unknown3 = 0x40000,
310 Action_Unknown4 = 0x80000,
311 Action_Unknown5 = 0x100000,
312 Action_Forward = 0x200000,
313 Action_Backward = 0x400000,
314 Action_TurnLeft = 0x800000,
315 Action_TurnRight = 0x1000000,
316 Action_StepLeft = 0x2000000,
317 Action_StepRight = 0x4000000,
318 Action_Jump = 0x8000000,
319 Action_Crouch = 0x10000000,
320 Action_Punch = 0x20000000,
321 Action_Kick = 0x40000000,
322 Action_Block = 0x80000000,
323 //used in second action field
324 Action2_Walk = 1,
325 Action2_Action = 2,
326 Action2_Hypo = 4,
327 Action2_Reload = 8,
328 Action2_Swap = 0x10,
329 Action2_Drop = 0x20,
330 Action2_Fire1 = 0x40,
331 Action2_Fire2 = 0x80,
332 Action2_Fire3 = 0x100,
333};
334
335
336typedef struct {
337 int32_t Actions1;
338 int32_t Actions2;
339} InputAction;
340
341
342typedef struct {
343 float MouseDeltaX;
344 float MouseDeltaY;
345 float field_8;
346 float field_C;
347 InputAction Current;
348 InputAction Stopped;
349 InputAction Start;
350 InputAction Stop;
351} GameInput;
352
353typedef struct {
354 int Type; //'CHAR' etc.
355 int ObjectId; //not needed
356 int Flags; //The flags of the object...not used for CHAR
357 Vector3 Position; //Position of Object
358 Vector3 Rotation; //Rotation of Object
359 int EditorCallbacks; //Lets try not to mess with it for now. :P
360 int field_28; //unknown
361} OSD_Header;
362
363typedef struct {
364 int32_t Flags;
365 int32_t Frame;
366 int32_t field_8;
367 int32_t field_C;
368 int32_t field_10;
369 int32_t field_14;
370 int32_t field_18;
371 int32_t field_1C;
372 int32_t FILMInstance;
373} PlayingFilm;
374
375typedef enum {
376 chr_isplayer = 1 << 0,
377 chr_randomskin = 1 << 1,
378 chr_notprespawned = 1 << 2,
379 chr_noncombatant = 1 << 3,
380 chr_multispawnable = 1 << 4,
381 chr_unkillable = 1 << 5,
382 chr_superammo = 1 << 6,
383 chr_omniscient = 1 << 8,
384 chr_haslsi = 1 << 9,
385 chr_boss = 1 << 10,
386 chr_upgradedifficulty = 1 << 11,
387 chr_noautodrop = 1 << 12,
388 chr_dontaim = 1 << 13,
389 chr_nocollision = 1 << 17,
390 chr_noshadow = 1 << 24,
391 chr_invincible = 1 << 25,
392 chr_bossshield = 1 << 30,
393 chr_weaponimmune = 1 << 31,
394} chr_flags;
395/*
396enum {
397chr_isplayer = 0x00000001, //is player character
398chr_randomskin = 0x00000002, //gets random skin from ONCV
399chr_notprespawned = 0x00000004, //isn't spawned at level creation
400chr_noncombatant = 0x00000008, //doesn't fight
401chr_multispawnable = 0x00000010, //can spawn up to 5 without forcing
402chr_unknown = 0x00000020, //
403chr_unkillable = 0x00000040, //can only be brought to 1 hp
404chr_superammo = 0x00000080, //infinite ammo
405chr_omniscient = 0x00000100, //touchofdeath
406chr_haslsi = 0x00000200, //drops an lsi
407chr_boss = 0x00000400, //is a boss character
408chr_upgradedifficulty = 0x00000800, //upgrade the difficulty if you play on med\hard
409chr_noautodrop = 0x00001000, //uses drop fields instead of has fields on death
410}; //
411*/
412
413typedef struct {
414 uint32_t Options; //A bitset. Someone had better define these
415 char Class[64]; //Name of the ONCC we use. ONCCName in idb
416 char Name[32]; //Name of the character. ie: ai2_spawn Muro
417 char Weapon[64]; //Name of the weapon he holds. ONWCName in idb
418 char ScriptSpawn[32]; //Script function called when char spawns
419 char ScriptDie[32]; //Script function called when char dies
420 char ScriptAware[32]; //Script function called when char detects something
421 char ScriptAlarm[32]; //Script function called when char is alarmed at something
422 char ScriptHurt[32]; //Script function called when char is hurt for the first time
423 char ScriptDefeat[32]; //Script function called when char is at 1 HP
424 char ScriptNoPath[32]; //Script function called when char loses path. Broken.
425 char ScriptNoAmmo[32]; //Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
426 int32_t AdditionalHealth; //Additional Health given to the character
427 int16_t AmmoUsed; //Ammo given for the char to use
428 int16_t AmmoDropped; //Ammo the char drops
429 int16_t CellsUsed; //Cells given for the char to use
430 int16_t CellsDropped; //Cells the char drops
431 int16_t HypoUsed; //Hypo given for the char to use
432 int16_t HypoDropped; //Hypo the char drops
433 int16_t ShieldUsed; //Bullet shield given for the char to use
434 int16_t ShieldDropped; //Bullet shield the char drops
435 int16_t CloakUsed; //Phase Cloak given for the char to use
436 int16_t CloakDropped; //Phase Cloak the char drops
437 int16_t NCIUsed; //Don't use this...
438 int16_t NCIDropped; //Don't use this...
439 int32_t TeamID; //Team ID
440 int32_t AmmoPercent; //Percent of weapon ammo full
441 int32_t JobID; //Job ID...
442 //0 - none
443 //1 - idle
444 //2 - guard (never used in Oni)
445 //3 - patrol
446 //4 - teambattle (never used in Oni)
447 int16_t PatrolID; //patrol path ID (reference to the Patrol_Path.BINA file)
448 int16_t CombatID; //combat ID (reference to the Combat.BINA file)
449 int16_t MeleeID; //melee ID (reference to the Melee Profile.BINA file)
450 int16_t NeutralID; //neutral ID (reference to the Neutral.BINA file)
451 int32_t AlarmGroups; //Bitset. http://wiki.oni2.net/CHAR
452 int32_t InitialAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
453 int32_t MinimalAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
454 int32_t StartJobAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
455 int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
456 int32_t PursuitStrongLow;
457 int32_t PursuitWeakLow;
458 int32_t PursuitStrongHigh;
459 int32_t PursuitWeakHigh;
460 int32_t Pursuit5;
461 int32_t field_1FC;
462} CharacterOSD;
463
464typedef struct {
465 OSD_Header Header;
466 CharacterOSD OSD;
467} CharacterObject;
468
469typedef struct {
470 Vector3 Center;
471 float Radius;
472} BoundingSphere;
473
474typedef struct {
475 int32_t ONCP; //probably pointer
476 int32_t field_4; //who knows?
477 int32_t Instance; //probably link to actual particle
478 int32_t Bone; //duh
479} AttachedParticle;
480
481
482typedef struct
483{
484 __int16 Index;
485 __int16 Flags;
486 int Class;
487 int Character;
488 Matrix4x3 Matrix;
489 int PhyContext;
490 int Facing;
491 __int16 FadeTimer;
492 __int16 TimeToFade;
493 int CreationTime;
494 __int16 ShotDelay1;
495 __int16 ShotDelay2;
496 __int16 PauseBeforeReload;
497 __int16 PauseAfterReload;
498 __int16 ActiveFireModeLength;
499 __int16 AmmoCount;
500 __int16 field_58;
501 __int16 FiringDelays[16];
502 char gap_7a[2];
503 int ParticleInstances[16];
504 int field_BC[16];
505 int field_FC;
506 int DodgeFiringSpreadPtr;
507 int field_104;
508 int field_108;
509 int field_10C;
510 char gap_110[20];
511 Vector3 Center;
512 int NodeList[16];
513} Weapon;
514
515typedef struct { //Inventory
516 Weapon* Weapons[3];
517 int16_t field_1A0; //10 bucks says this is the current weapon
518 int16_t AmmoUsed; //Ammo given for the char to use
519 int16_t HypoUsed; //Hypo given for the char to use
520 int16_t CellsUsed; //Cells given for the char to use
521 int16_t AmmoDropped; //Ammo the char drops
522 int16_t HypoDropped; //Hypo the char drops
523 int16_t CellsDropped; //Cells the char drops
524 int16_t field_1A; //who knows? InverseHypoRegenRate?
525 int16_t field_1C;
526 int16_t field_1E;
527 char hasLSI;
528 char field_1B5;
529 int16_t field_1B6;
530 int16_t ShieldUsed; //Bullet shield given for the char to use
531 int16_t CloakUsed; //Phase Cloak given for the char to use
532 int32_t field_28; //probably bullet shield dropped
533 int32_t DoorKeys; //Lol. We can use this later for other sorts of items.
534} Inventory;
535
536typedef struct {
537 uint32_t SphereTree;
538 Vector3 ObBox[8];
539 Vector3 * ObBowPtr;
540 Vector3 Velocity;
541 Quaternion field_74;
542 Vector3 Position;
543 Quaternion Rotation;
544 float Scale;
545 Matrix4x3 Matrix;
546 Matrix4x3 InitMatrix;
547 float field_104;
548 float Gravity;
549 float field_10C;
550 float field_110;
551 float Friction_1;
552 float Friction_2;
553 Vector3 Force;
554 uint32_t Flags;
555 uint32_t Type;
556 char AnimState[0x18];
557 void* Callbacks;
558 void* Owner;
559} PhyContext;
560typedef struct
561{
562 int field_0;
563 int NumContacts;
564 int FirstContact;
565 int NotifyKnowledgeCallback;
566} AI2KnowledgeState;
567
568/* 388 */ typedef struct //activecharacter
569{
570 __int16 Number;
571 __int16 field_2;
572 PhyContext* PhyContext;
573 SphereTreeNode SphereTree;
574 SphereTreeNode SphereTree3[4];
575 SphereTreeNode SphereTree2[2];
576 __int16 field_B0;
577 __int16 field_B2;
578 __int16 field_B4;
579 char field_B6;
580 char gap_b7[1];
581 Vector3 field_B8;
582 Vector3 AccelerateWith;
583 int field_D0;
584 Vector3 field_D4;
585 __int16 field_E0;
586 char gap_e2[2];
587 int field_E4;
588 int field_E8;
589 int field_EC;
590 int field_F0;
591 __int16 field_F4;
592 __int16 IsInAir;
593 Vector3 FallingVelocity;
594 Vector3 JumpVelocity;
595 char field_110;
596 char field_111;
597 __int16 field_112;
598 __int16 field_114;
599 char gap_116[2];
600 int field_118;
601 int field_11C;
602 int field_120;
603 int field_124;
604 int field_128;
605 int field_12C;
606 BoundingSphere BoundingSphere;
607 Vector3 field_140;
608 Vector3 field_14C;
609 int field_158;
610 int field_15C;
611 Vector3 Location;
612 char gap_16c[24];
613 int AkiraNode;
614 int GraphNode;
615 int PelvisHeight;
616 int Movement_StatePtr;
617 int ActiveWeapon;
618 int field_198;
619 int InventoryWeapon;
620 char gap_1a0[2];
621 __int16 RedAmmoClipCount;
622 __int16 HypoCount;
623 __int16 GreenAmmoClipCount;
624 __int16 RedAmmoClipDropCount;
625 __int16 HypoDropCount;
626 __int16 GreenAmmoClipDropCount;
627 __int16 field_1AE;
628 __int16 InverseHypoRegenerationRate;
629 char DropShield;
630 char DropPhaseCloack;
631 char field_1B4;
632 char gap_1b5[1];
633 __int16 field_1B6;
634 __int16 Shield;
635 __int16 PhaseCloacking;
636 int field_1BC;
637 char gap_1c0[4];
638 __int16 field_1C4;
639 char gap_1c6[10];
640 int field_1D0;
641 int field_1D4;
642 char gap_1d8[4];
643 int field_1DC;
644 int NotIdleStartTime;
645 int TimeToIdle;
646 int field_1E8;
647 char gap_1ec[4];
648 int field_1F0;
649 char gap_1f4[2048];
650 int field_9F4;
651 char gap_9f8[36];
652 int field_A1C;
653 char gap_a20[3020];
654 int field_15EC;
655 char gap_15f0[60];
656 int field_162C;
657 int field_1630;
658 int field_1634;
659 int field_1638;
660 int field_163C;
661 char gap_1640[8];
662 BoundingBox BoundingBox;
663 int field_1660;
664 char gap_1664[4];
665 int ShieldPower;
666 char gap_166c[4];
667 int NumberOfKills;
668 int InflictedDamage;
669 int field_1678;
670 int field_167C;
671 char gap_1680[8];
672 __int16 field_1688;
673 __int16 field_168A;
674 int field_168C;
675 int field_1690;
676 char field_1694;
677 char field_1695;
678 __int16 field_1696;
679 int field_1698;
680 int field_169C;
681 char gap_16a0[2];
682 int field_16A2;
683 char gap_16a6[994];
684 char field_1A88;
685 char field_1A89;
686 char field_1A8A;
687 char field_1A8B;
688 Vector3 Executor_AimingDirection;
689 int field_1A98;
690 int field_1A9C;
691 int Executor_ActualMovementMode;
692 int field_1AA4;
693 int field_1AA8;
694 int field_1AAC;
695 char Executor_HasFacingOverride;
696 char gap_1ab1[3];
697 int Executor_AimingSpeed;
698 char field_1AB8;
699 char Executor_HasMoveOverride;
700 char gap_1aba[6];
701 int field_1AC0;
702 int field_1AC4;
703 int Executor_FacingOverride;
704 char Executor_HasAttackOverride;
705 char gap_1acd[1];
706 __int16 field_1ACE;
707 __int16 field_1AD0;
708 char gap_1ad2[6];
709 int field_1AD8;
710 int field_1ADC;
711 int field_1AE0;
712 int field_1AE4;
713 char Executor_HasThrowOverride;
714 char gap_1ae9[3];
715 int field_1AEC;
716 int field_1AF0;
717 int field_1AF4;
718 int Animation;
719 __int16 AnimationToState;
720 __int16 AnimationFromState;
721 __int16 AnimationType;
722 __int16 NextAnimationType;
723 __int16 field_1B04;
724 __int16 field_1B06;
725 char Stitch;
726 char gap_1b09[3];
727 int StitchHeight;
728 __int16 InterpolationFromState;
729 char gap_1b12[2];
730 Vector3 StitchVelocity;
731 __int16 InterpolationCurrentFrame;
732 __int16 InterpolationLength;
733 Quaternion InterpolationStartRotations[19];
734 char gap_1c54[4];
735 int field_1C58;
736 int field_1C5C;
737 int field_1C60;
738 int Overlay;
739 __int16 field_1C68;
740 __int16 field_1C6A;
741 int field_1C6C;
742 int field_1C70;
743 __int16 field_1C74;
744 char gap_1c76[2];
745 int field_1C78;
746 char gap_1c7c[12];
747 __int16 Frame;
748 __int16 SoftPause;
749 __int16 HardPause;
750 __int16 field_1C8E;
751 int field_1C90;
752 __int16 field_1C94;
753 __int16 field_1C96;
754 __int16 Dizzy;
755 __int16 field_1C9A;
756 int field_1C9C;
757 __int16 AnimationVarient;
758 __int16 TimeToPeace;
759 char NumAnimationAttachedParticles;
760 char gap_1ca5[1];
761 __int16 field_1CA6;
762 AttachedParticle AnimationAttachedParticles[16];
763 int TRAMParticles;
764 char FixedParticlesAttached;
765 char FixedParticlesStarted;
766 __int16 NumFixedParticles;
767 AttachedParticle FixedParticles[16];
768 __int16 CurrentAnimationType;
769 char gap_1eb2[2];
770 int field_1EB4;
771 char field_1EB8;
772 char gap_1eb9[33];
773 __int16 field_1EDA;
774 int field_1EDC;
775 char gap_1ee0[4];
776 int field_1EE4;
777 int field_1EE8;
778 int field_1EEC;
779 Quaternion Rotations[19];
780 Quaternion OverlayRotations[19];
781 int field_2150;
782 char gap_2154[4];
783 GameInput Input;
784 int PrevActions1;
785 int PrevActions2;
786 int SprintTimer;
787 char field_2194;
788 char field_2195;
789 char gap_2196[2];
790 Vector3 field_2198;
791 int field_21A4;
792 int field_21A8;
793 int field_21AC;
794 Vector3 field_21B0;
795 int HeadFacing;
796 int HeadPitch;
797 int field_21C4;
798 int field_21C8;
799 int field_21CC;
800 int field_21D0;
801 char field_21D4;
802 char gap_21d5[3];
803 int field_21D8;
804 char field_21DC;
805 char field_21DD;
806 char field_21DE;
807 char field_21DF;
808 char field_21E0;
809 char HasAlternateTrigger;
810 char field_21E2;
811 char ReleaseTrigger;
812 char ReleaseAlternateTrigger;
813 char TurningLeft;
814 char TurningRight;
815 char gap_21e7[1];
816 int field_21E8;
817 int field_21EC;
818 __int16 field_21F0;
819 char gap_21f2[2];
820 PlayingFilm PlayingFilm;
821 char gap_2218[4];
822 int field_221C;
823 char gap_2220[8];
824 int field_2228;
825 char gap_222c[76];
826 Matrix4x3 BoneMatrices[19];
827 Matrix4x3 WeaponMatrix;
828 char gap_2638[432];
829 int field_27E8;
830 char gap_27ec[4];
831 __int16 field_27F0;
832 __int16 field_27F2;
833 int field_27F4;
834 int field_27F8;
835 __int16 ShadowIndex;
836 char field_27FE;
837 char gap_27ff[1];
838 char field_2800;
839 char field_2801;
840 char ShieldParts[19];
841 char field_2815;
842 char gap_2816[2];
843 int field_2818;
844 __int16 field_281C;
845 char gap_281e[2];
846 int field_2820;
847 int field_2824;
848 int field_2828;
849 int field_282C;
850 __int16 field_2830;
851 __int16 field_2832;
852 char gap_2834[1];
853 char field_2835;
854 char field_2836;
855 char field_2837;
856} ActiveCharacter;
857
858typedef struct
859{
860 char Name[128];
861 __int16 ImpactId;
862} ONCCImpact;
863
864typedef struct
865{
866 int RecoilCompensation;
867 int BestAimingAngle;
868 int ShotGroupError;
869 int ShotGroupDecay;
870 int ShotingInaccuracyMultiplier;
871 __int16 MinDelayBetweenShots;
872 __int16 MaxDelayBetweenShots;
873} ONCCWeaponSkill;
874
875typedef struct
876{
877 __int16 field_0;
878 __int16 field_2;
879 __int16 field_4;
880 __int16 field_6;
881 __int16 field_8;
882 __int16 field_A;
883 __int16 field_C;
884 __int16 field_E;
885 __int16 field_10;
886 __int16 field_12;
887 __int16 field_14;
888 char Loaded;
889 char field_17;
890 int field_18;
891 char HurtLightSoundName[32];
892 char HurtMediumSoundName[32];
893 char HurtHeavySoundName[32];
894 char DeathSoundName[32];
895 int HurtLightSoundPtr;
896 int HurtMediumSoundPtr;
897 int HurtHeavySoundPtr;
898 int DeathSoundPtr;
899}HurtParams;
900
901
902typedef struct
903{
904 int field_0;
905 int Gravity;
906 float JumpStartVelocity;
907 float MaxFallingVelocity;
908 float JumpAcceleration;
909 __int16 field_14;
910 __int16 JetpackTimer;
911 float MaxFallingHeightWithoutDamage;
912 float MaxFallingHeightWithDamage;
913 int ShadowTexture;
914 float ShadowMaxHeight;
915 float ShadowFadeHeight;
916 float ShadowSize1;
917 float ShadowSize2;
918 float ShadowSize3;
919 __int16 field_38;
920 __int16 field_3A;
921 int field_3C;
922 char field_40;
923 char field_41;
924 __int16 field_42;
925 int field_44;
926 int field_48;
927 int field_4C;
928 int field_50;
929 int field_54;
930 int field_58;
931 __int16 InverseHypoRegenerationRate;
932 __int16 field_5E;
933 int field_60;
934 int field_64;
935 int field_68;
936 int field_6C;
937 int field_70;
938 HurtParams HurtParams;
939 int AIOptions;
940 int AIRotationSpeed;
941 __int16 MinimalDazeTime;
942 __int16 MaximalDazeTime;
943 __int16 MinimalRealiseFiringSpreadTime;
944 __int16 MaximalRealiseFiringSpreadTime;
945 int MinimalFiringSpreadDodge;
946 int MaximalFiringSpreadDodge;
947 int field_138;
948 int field_13C;
949 int field_140;
950 int field_144;
951 int field_148;
952 int field_14C;
953 int field_150;
954 ONCCWeaponSkill WeaponSkills[13];
955 int field_28C;
956 int field_290;
957 int field_294;
958 int TauntChance;
959 int GoForGunChance;
960 int RunPickupChance;
961 __int16 CombatId;
962 __int16 MeleeId;
963 char SoundProbabilities[10];
964 char gap_2b2[2];
965 char TauntSound[32];
966 char AlertSound[32];
967 char StartleSound[32];
968 char CheckBodySound[32];
969 char PursueSound[32];
970 char CoverSound[32];
971 char SuperpunchSound[32];
972 char SuperKickSound[32];
973 char Super3Sound[32];
974 char Super4Sound[32];
975 int CentralVisionRange;
976 int PeripheralVisionRange;
977 int HFov;
978 int CentralVisionCurve;
979 int CentralVFOV;
980 int PeripheralVisionCurve;
981 int PeripheralVFOV;
982 int HostileThreatDefiniteTimer;
983 int HostileThreatStrongTimer;
984 int HostileThreatWeakTimer;
985 int FriendlyThreadDefiniteTimer;
986 int FriendlyThreatStrongTimer;
987 int FriendlyThreatWeakTimer;
988 int EarshotRadius;
989 int ONCV;
990 int ONCP;
991 int ONIA;
992 char ImpactsLoaded;
993 char gap_439[1];
994 __int16 ImpactModifier;
995 char ImpactModifierName[16];
996 ONCCImpact Impacts[15];
997 char gap_bea[2];
998 char DeathParticleName[64];
999 int DeathParticlePtr;
1000 int BodySurfaceCache;
1001 int TRBS;
1002 int TRMA;
1003 int CBPM;
1004 int CBPI;
1005 int PeaceTimer;
1006 int IdleTimer1;
1007 int IdleTimer2;
1008 int BaseHealth;
1009 int field_C54;
1010 int MinBodySizeFactor;
1011 int MaxBodySizeFactor;
1012 int field_C60[7];
1013 int field_C7C;
1014 int TRAC;
1015 int TRSC;
1016 char gap_c88[2];
1017 __int16 DeathDeleteTimer;
1018 char WeaponHand;
1019 char HasDaodanPowers;
1020 char HasSuperShield;
1021 char CantTouchThis;
1022} ONCC;
1023
1024
1025/* 398 */ typedef struct
1026{
1027 char Number;
1028 char gap_1[1];
1029 __int16 ActiveCharacterIndex;
1030 int Flags;
1031 int field_8;
1032 ONCC* ONCC;
1033 __int16 field_10;
1034 __int16 Team;
1035 char Name[32];
1036 int BodySize;
1037 int Health;
1038 int MaxHealth;
1039 __int16 AISA_ID;
1040 char gap_42[2];
1041 int field_44;
1042 char ScriptNew[32];
1043 char ScriptDie[32];
1044 char ScriptSeen[32];
1045 char ScriptAlarm[32];
1046 char ScriptHurt[32];
1047 char ScriptDefeat[32];
1048 char ScriptLowAmmo[32];
1049 //char ScriptNoPath[32];
1050 char ScriptNoPath[28];
1051 int RegenHax;
1052 Vector3 Position;
1053 Vector3 LastPosition;
1054 Vector3 Location;
1055 float Facing;
1056 float DesiredFacing;
1057 float CosmeticFacing;
1058 int field_178;
1059 int field_17C;
1060 int field_180;
1061 int BNV;
1062 int GraphNode;
1063 int PelvisHeight;
1064 int field_190;
1065 Inventory Inventory;
1066 Vector3 Velocity;
1067 int field_1D0;
1068 int field_1D4;
1069 int field_1D8;
1070 int field_1DC;
1071 int field_1E0;
1072 int IdleDelay;
1073 int field_1E8;
1074 char gap_1ec[4];
1075 int CombatFlags;
1076 int JobId;
1077 int Goal;
1078 int field_1FC;
1079 __int16 field_200;
1080 char gap_202[6];
1081 int field_208;
1082 char gap_20c[588];
1083 char field_458;
1084 char gap_459[352];
1085 char field_5B9;
1086 char gap_5ba[14];
1087 char field_5C8;
1088 char gap_5c9[359];
1089 int field_730;
1090 int field_734;
1091 int field_738;
1092 char gap_73c[380];
1093 char CombatState;
1094 char gap_8b9[7];
1095 PatrolPathOSD PatrolPathOSD_;
1096 PatrolPathPoint PatrolPathPoints[64];
1097 char gap_de8[392];
1098 int Combat_StatePtr;
1099 AI2KnowledgeState KnowledgeState_;
1100 char gap_f84[4];
1101 int AlertDecayTimer;
1102 int field_F8C;
1103 int field_F90;
1104 int AlertLevel;
1105 int MinimalAlertLevel;
1106 int StartJobAlertLevel;
1107 int InvestigatingAlertLevel;
1108 int StartleTime;
1109 int field_FA8;
1110 int field_FAC;
1111 int field_FB0;
1112 int Pursue1;
1113 int Pursue2;
1114 int Pursue3;
1115 int Pursue4;
1116 int Pursue5;
1117 char field_FC8;
1118 char gap_fc9[3];
1119 int field_FCC;
1120 char gap_fd0[8];
1121 int AlarmGroups;
1122 int field_FDC;
1123 int field_FE0;
1124 int field_FE4;
1125 int field_FE8;
1126 int field_FEC;
1127 int field_FF0;
1128 int field_FF4;
1129 int field_FF8;
1130 int field_FFC;
1131 int field_1000;
1132 int field_1004;
1133 int field_1008;
1134 __int16 field_100C;
1135 __int16 field_100E;
1136 int field_1010;
1137 int field_1014;
1138 int field_1018;
1139 char field_101C;
1140 char gap_101d[3];
1141 int DazeTimer;
1142 __int16 field_1024;
1143 __int16 field_1026;
1144 __int16 field_1028;
1145 __int16 field_102A;
1146 int field_102C;
1147 int field_1030;
1148 int field_1034;
1149 char gap_1038[20];
1150 int field_104C;
1151 int field_1050;
1152 int field_1054;
1153 int field_1058;
1154 int field_105C;
1155 int field_1060;
1156 int field_1064;
1157 int MeleePtr;
1158 int field_106C;
1159 __int16 field_1070;
1160 char gap_1072[126];
1161 int Path_DestinationType;
1162 int Path_TypeSpecificInfo;
1163 char Path_MovementState;
1164 char gap_10f9[3];
1165 int Path_OrientTo;
1166 Vector3 Path_DestinationPoint;
1167 int field_110C;
1168 int field_1110;
1169 Vector3 field_1114;
1170 Vector3 field_1120;
1171 char Path_State;
1172 char field_112D;
1173 char field_112E;
1174 char gap_112f[1];
1175 Vector3 field_1130;
1176 int field_113C;
1177 int field_1140;
1178 int field_1144;
1179 char field_1148;
1180 char gap_1149[3];
1181 int Path_CurrentNodeNumber;
1182 int Path_NumNodes;
1183 Vector3 Path_From;
1184 Vector3 Path_To;
1185 int Path_GraphFromNodePtr;
1186 int Path_GraphToNodePtr;
1187 int field_1174;
1188 char gap_1178[12];
1189 int field_1184;
1190 char gap_1188[776];
1191 int Path_LastError;
1192 int Path_RepathDelay;
1193 int Path_Repaths;
1194 int Path_RepathDecayTimer;
1195 int field_14A0;
1196 int MovementMode;
1197 char field_14A8;
1198 char gap_14a9[3];
1199 int field_14AC;
1200 int MovementModifiers;
1201 int field_14B4;
1202 char gap_14b8[188];
1203 int field_1574;
1204 int FacingState;
1205 int FacingAt_Destination;
1206 char field_1580;
1207 char field_1581;
1208 char gap_1582[2];
1209 int Aiming_At_Type;
1210 Vector3 Aiming_At;
1211 int field_1594;
1212 int field_1598;
1213 int field_159C;
1214 int GlancingState;
1215 Vector3 GlancingDirOrPos;
1216 char field_15B0;
1217 char gap_15b1[3];
1218 int field_15B4;
1219 int field_15B8;
1220 int field_15BC;
1221 int field_15C0;
1222 int field_15C4;
1223 int field_15C8;
1224 int field_15CC;
1225 int field_15D0;
1226 int field_15D4;
1227 int field_15D8;
1228 int field_15DC;
1229 int field_15E0;
1230 int field_15E4;
1231 int field_15E8;
1232 int AIBlockFunction;
1233 char field_15F0;
1234 char field_15F1;
1235 char field_15F2;
1236 char gap_15f3[1];
1237 int field_15F4;
1238 int field_15F8;
1239 int field_15FC;
1240 int field_1600;
1241 char gap_1604[4];
1242 int field_1608;
1243 int field_160C;
1244 char gap_1610[4];
1245 int field_1614;
1246 char gap_1618[20];
1247 int field_162C;
1248 int field_1630;
1249 int field_1634;
1250 int field_1638;
1251 int field_163C;
1252 int field_1640;
1253 __int16 field_1644;
1254 char gap_1646[2];
1255 BoundingBox BoundingBox_;
1256 char gap_1660[4];
1257 int BossShieldPower;
1258 int field_1668;
1259 char gap_166c[4];
1260 int Kills;
1261 int Damage;
1262 int field_1678;
1263 int field_167C;
1264 int CurrentConsoleActionMarker;
1265 int field_1684;
1266 __int16 field_1688;
1267 __int16 field_168A;
1268 int field_168C;
1269 int field_1690;
1270 char field_1694;
1271 char field_1695;
1272 __int16 field_1696;
1273 int field_1698;
1274 int field_169C;
1275} Character;
1276
1277typedef struct
1278{
1279 int Nodes;
1280 int NodeCount;
1281 int field_8;
1282 int TraverseQueueHead;
1283 int field_10;
1284 int CacheLrar;
1285 int CacheMem;
1286 int field_1C;
1287 int field_20;
1288 int field_24;
1289}PHGraph
1290;
1291
1292typedef struct
1293{
1294 int TimerMode;
1295 char TimerName[32];
1296 int TimerDuration;
1297 char field_28;
1298 char gap_29[3];
1299 int field_2C;
1300 Letterbox Letterbox;
1301 char gap_3a[2];
1302 char field_3C;
1303 char gap_3d[3];
1304 int field_40;
1305 int CutsceneSyncMark;
1306 char field_48;
1307 char gap_49[3];
1308 int field_4C;
1309 int field_50;
1310 int field_54;
1311 int field_58;
1312 int field_5C;
1313 int field_60;
1314 int field_64;
1315 int field_68;
1316 int field_6C;
1317 int field_70;
1318 int FadeStartTime;
1319 int FadeEndTime;
1320 char field_7C;
1321 char gap_7d[3];
1322 int Camera;
1323 PHGraph PathFindingGraph;
1324 Character* PlayerCharacter;
1325 int field_B0;
1326 char gap_b4[4];
1327 GameInput Input;
1328 int field_E8;
1329 int field_EC;
1330 char ScreenShotEveryFrame;
1331 char gap_f1[7];
1332 char field_F8;
1333 char field_F9;
1334 char field_FA;
1335 char gap_fb[1];
1336 int field_FC;
1337 int field_100;
1338 char field_104;
1339 char gap_105[3];
1340 int SlowMotion;
1341 char gap_10c[4];
1342 int field_110;
1343 int field_114;
1344 char SplashScreenTextureName[32];
1345 char field_138;
1346 char gap_139[7];
1347 int field_140;
1348 int GameTime;
1349 int field_148;
1350 int field_14C;
1351 int Level;
1352 int field_154;
1353 MotionBlur MotionBlur_[64];
1354 int MotionBlurCount;
1355 __int16 field_125C;
1356 __int16 field_125E;
1357 Character CharacterStorage[128];
1358 __int16 CharacterCount;
1359 char gap_b6262[2];
1360 int field_B6264;
1361 ActiveCharacter ActiveCharacters[64];
1362 __int16 ActiveCharacterCount;
1363 Shadow Shadows[32];
1364 __int16 field_1670EA;
1365 int ShadowCount;
1366 int ActiveCharacterList[128];
1367 int ActiveCharacterListCount;
1368 int ActiveCharacterListLock;
1369 int LivingCharacterList[128];
1370 int LivingCharacterListCount;
1371 int LivingCharacterListLock;
1372 Character* PresentCharacterList[128];
1373 int PresentCharacterListCount;
1374 int PresentCharacterListLock;
1375 int ObjectList;
1376 DoorArray DoorArray_;
1377 Sky Sky_;
1378 int field_1679A4;
1379 int Triggers;
1380 char IsGamePaused;
1381 char IsInputEnabled;
1382 char field_1679AE;
1383 char gap_1679af[1];
1384 int LastInputActions1;
1385 int LastInputActions2;
1386 int field_1679B8;
1387 int WinLose;
1388 int field_1679C0;
1389 int field_1679C4;
1390 int field_1679C8;
1391 int field_1679CC;
1392 int field_1679D0;
1393 int field_1679D4;
1394 __int16 field_1679D8;
1395 char gap_1679da[2];
1396 int field_1679DC;
1397} GameState;
1398#endif
Note: See TracBrowser for help on using the repository browser.