source: Daodan/MSVC/Oni_GameState.h @ 573

Last change on this file since 573 was 573, checked in by gumby, 11 years ago
File size: 32.3 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{
365        short ID;       
366        short flags;
367
368        short keys;
369        short open_time;
370
371        float activate_radius_squared;
372
373        short state;   
374        short blocked_frames;                                           
375
376        short open_time_left;                                           
377        short some_timer;
378
379        Vector3 center_offset;                                         
380        char name[63];
381        char pad;
382        void *class;
383} DoorOSD;
384
385typedef struct {
386        OSD_Header OSD;
387        DoorOSD Door; //incomplete
388} DoorObject;
389
390
391typedef struct {
392        int32_t Flags;
393        int32_t Frame;
394        int32_t field_8;
395        int32_t field_C;
396        int32_t field_10;
397        int32_t field_14;
398        int32_t field_18;
399        int32_t field_1C;
400        int32_t FILMInstance;
401} PlayingFilm;
402
403typedef enum {
404        chr_isplayer          = 1 << 0,
405        chr_randomskin        = 1 << 1,
406        chr_notprespawned     = 1 << 2,
407        chr_noncombatant      = 1 << 3,
408        chr_multispawnable    = 1 << 4,
409        chr_unkillable        = 1 << 5,
410        chr_superammo         = 1 << 6,
411        chr_omniscient        = 1 << 8,
412        chr_haslsi            = 1 << 9,
413        chr_boss              = 1 << 10,
414        chr_upgradedifficulty = 1 << 11,
415        chr_noautodrop        = 1 << 12,
416        chr_dontaim           = 1 << 13,
417        chr_nocollision       = 1 << 17,
418        chr_noshadow          = 1 << 24,
419        chr_invincible        = 1 << 25,
420        chr_bossshield        = 1 << 30,
421        chr_weaponimmune      = 1 << 31,
422} chr_flags;
423/*
424enum {
425chr_isplayer                    =               0x00000001,     //is player character
426chr_randomskin                  =               0x00000002,     //gets random skin from ONCV
427chr_notprespawned               =               0x00000004,     //isn't spawned at level creation
428chr_noncombatant                =               0x00000008,     //doesn't fight
429chr_multispawnable              =               0x00000010,     //can spawn up to 5 without forcing
430chr_unknown                             =               0x00000020,     //
431chr_unkillable                  =               0x00000040,     //can only be brought to 1 hp
432chr_superammo                   =               0x00000080,     //infinite ammo
433chr_omniscient                  =               0x00000100,     //touchofdeath
434chr_haslsi                              =               0x00000200,     //drops an lsi
435chr_boss                                =               0x00000400,     //is a boss character
436chr_upgradedifficulty   =               0x00000800,     //upgrade the difficulty if you play on med\hard
437chr_noautodrop                  =               0x00001000,     //uses drop fields instead of has fields on death
438}; //
439*/
440
441typedef struct {
442        uint32_t Options;                               //A bitset. Someone had better define these
443        char Class[64];                                 //Name of the ONCC we use. ONCCName in idb
444        char Name[32];                                  //Name of the character. ie: ai2_spawn Muro
445        char Weapon[64];                                //Name of the weapon he holds. ONWCName in idb
446        char ScriptSpawn[32];                   //Script function called when char spawns
447        char ScriptDie[32];                             //Script function called when char dies
448        char ScriptAware[32];                   //Script function called when char detects something
449        char ScriptAlarm[32];                   //Script function called when char is alarmed at something
450        char ScriptHurt[32];                    //Script function called when char is hurt for the first time
451        char ScriptDefeat[32];                  //Script function called when char is at 1 HP
452        char ScriptNoPath[32];                  //Script function called when char loses path. Broken.
453        char ScriptNoAmmo[32];                  //Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
454        int32_t AdditionalHealth;               //Additional Health given to the character
455        int16_t AmmoUsed;                               //Ammo given for the char to use
456        int16_t AmmoDropped;                    //Ammo the char drops
457        int16_t CellsUsed;                              //Cells given for the char to use
458        int16_t CellsDropped;                   //Cells the char drops
459        int16_t HypoUsed;                               //Hypo given for the char to use
460        int16_t HypoDropped;                    //Hypo the char drops
461        int16_t ShieldUsed;                             //Bullet shield given for the char to use
462        int16_t ShieldDropped;                  //Bullet shield the char drops
463        int16_t CloakUsed;                              //Phase Cloak given for the char to use
464        int16_t CloakDropped;                   //Phase Cloak the char drops
465        int16_t NCIUsed;                                //Don't use this...
466        int16_t NCIDropped;                             //Don't use this...
467        int32_t TeamID;                                 //Team ID
468        int32_t AmmoPercent;                    //Percent of weapon ammo full
469        int32_t JobID;                                  //Job ID...
470                                                                        //0 - none
471                                                                        //1 - idle
472                                                                        //2 - guard (never used in Oni)
473                                                                        //3 - patrol
474                                                                        //4 - teambattle (never used in Oni)
475        int16_t PatrolID;                               //patrol path ID (reference to the Patrol_Path.BINA file)
476        int16_t CombatID;                               //combat ID (reference to the Combat.BINA file)
477        int16_t MeleeID;                                //melee ID (reference to the Melee Profile.BINA file)
478        int16_t NeutralID;                              //neutral ID (reference to the Neutral.BINA file)
479        int32_t AlarmGroups;                    //Bitset. http://wiki.oni2.net/CHAR
480        int32_t InitialAlertLevel;              //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
481        int32_t MinimalAlertLevel;              //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
482        int32_t StartJobAlertLevel;             //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
483        int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
484        int32_t PursuitStrongLow;
485        int32_t PursuitWeakLow;
486        int32_t PursuitStrongHigh;
487        int32_t PursuitWeakHigh;
488        int32_t Pursuit5;
489        int32_t field_1FC;
490} CharacterOSD;
491
492typedef struct {
493        OSD_Header Header;
494        CharacterOSD OSD;
495} CharacterObject;
496
497typedef struct {
498        Vector3 Center;
499        float Radius;
500} BoundingSphere;
501
502typedef struct {
503        int32_t ONCP; //probably pointer
504        int32_t field_4;        //who knows?
505        int32_t Instance; //probably link to actual particle
506        int32_t Bone; //duh
507} AttachedParticle;
508
509
510typedef struct 
511{
512  __int16 Index;
513  __int16 Flags;
514  int Class;
515  int Character;
516  Matrix4x3 Matrix;
517  int PhyContext;
518  int Facing;
519  __int16 FadeTimer;
520  __int16 TimeToFade;
521  int CreationTime;
522  __int16 ShotDelay1;
523  __int16 ShotDelay2;
524  __int16 PauseBeforeReload;
525  __int16 PauseAfterReload;
526  __int16 ActiveFireModeLength;
527  __int16 AmmoCount;
528  __int16 field_58;
529  __int16 FiringDelays[16];
530  char gap_7a[2];
531  int ParticleInstances[16];
532  int field_BC[16];
533  int field_FC;
534  int DodgeFiringSpreadPtr;
535  int field_104;
536  int field_108;
537  int field_10C;
538  char gap_110[20];
539  Vector3 Center;
540  int NodeList[16];
541} Weapon;
542
543typedef struct { //Inventory
544        Weapon* Weapons[3];
545        int8_t z_forced_holster;
546        int8_t z_forced_holster_is_magic;
547        int16_t AmmoUsed;                               //Ammo given for the char to use
548        int16_t HypoUsed;                               //Hypo given for the char to use
549        int16_t CellsUsed;                              //Cells given for the char to use
550        int16_t AmmoDropped;                    //Ammo the char drops
551        int16_t HypoDropped;                    //Hypo the char drops
552        int16_t CellsDropped;                   //Cells the char drops
553        int16_t hypoRemaining;  //who knows? InverseHypoRegenRate?
554        int16_t hypoTimer;     
555        int16_t pad;
556        char hasLSI;
557        char field_1B5;
558        int16_t shieldDisplayAmount;
559        int16_t ShieldUsed;                             //Bullet shield given for the char to use
560        int16_t CloakUsed;                              //Phase Cloak given for the char to use
561        int32_t numInvisibleFrames;                     //probably bullet shield dropped
562        int32_t DoorKeys;               //Lol. We can use this later for other sorts of items.
563} Inventory;
564
565typedef struct {
566        uint32_t SphereTree;
567        Vector3 ObBox[8];
568        Vector3 * ObBowPtr;
569        Vector3 Velocity;
570        Quaternion field_74;
571        Vector3 Position;
572        Quaternion Rotation;
573        float Scale;
574        Matrix4x3 Matrix;
575        Matrix4x3 InitMatrix;
576        float field_104;
577        float Gravity;
578        float field_10C;
579        float field_110;
580        float Friction_1;
581        float Friction_2;
582        Vector3 Force;
583        uint32_t Flags;
584        uint32_t Type;
585        char AnimState[0x18];
586        void* Callbacks;
587        void* Owner;
588} PhyContext;
589typedef struct
590{
591  int field_0;
592  int NumContacts;
593  int FirstContact;
594  int NotifyKnowledgeCallback;
595} AI2KnowledgeState;
596
597typedef struct 
598{
599  char Name[128];
600  __int16 ImpactId;
601} ONCCImpact;
602
603typedef struct 
604{
605  int RecoilCompensation;
606  int BestAimingAngle;
607  int ShotGroupError;
608  int ShotGroupDecay;
609  int ShotingInaccuracyMultiplier;
610  __int16 MinDelayBetweenShots;
611  __int16 MaxDelayBetweenShots;
612} ONCCWeaponSkill;
613
614typedef struct 
615{
616  __int16 field_0;
617  __int16 field_2;
618  __int16 field_4;
619  __int16 field_6;
620  __int16 field_8;
621  __int16 field_A;
622  __int16 field_C;
623  __int16 field_E;
624  __int16 field_10;
625  __int16 field_12;
626  __int16 field_14;
627  char Loaded;
628  char field_17;
629  int field_18;
630  char HurtLightSoundName[32];
631  char HurtMediumSoundName[32];
632  char HurtHeavySoundName[32];
633  char DeathSoundName[32];
634  int HurtLightSoundPtr;
635  int HurtMediumSoundPtr;
636  int HurtHeavySoundPtr;
637  int DeathSoundPtr;
638}HurtParams;
639
640
641typedef struct
642{
643  int field_0;
644  int Gravity;
645  float JumpStartVelocity;
646  float MaxFallingVelocity;
647  float JumpAcceleration;
648  __int16 field_14;
649  __int16 JetpackTimer;
650  float MaxFallingHeightWithoutDamage;
651  float MaxFallingHeightWithDamage;
652  int ShadowTexture;
653  float ShadowMaxHeight;
654  float ShadowFadeHeight;
655  float ShadowSize1;
656  float ShadowSize2;
657  float ShadowSize3;
658  __int16 field_38;
659  __int16 field_3A;
660  int field_3C;
661  char field_40;
662  char field_41;
663  __int16 field_42;
664  int field_44;
665  int field_48;
666  int field_4C;
667  int field_50;
668  int field_54;
669  int field_58;
670  __int16 InverseHypoRegenerationRate;
671  __int16 field_5E;
672  int field_60;
673  int field_64;
674  int field_68;
675  int field_6C;
676  int field_70;
677  HurtParams HurtParams;
678  int AIOptions;
679  int AIRotationSpeed;
680  __int16 MinimalDazeTime;
681  __int16 MaximalDazeTime;
682  __int16 MinimalRealiseFiringSpreadTime;
683  __int16 MaximalRealiseFiringSpreadTime;
684  int MinimalFiringSpreadDodge;
685  int MaximalFiringSpreadDodge;
686  int field_138;
687  int field_13C;
688  int field_140;
689  int field_144;
690  int field_148;
691  int field_14C;
692  int field_150;
693  ONCCWeaponSkill WeaponSkills[13];
694  int field_28C;
695  int field_290;
696  int field_294;
697  int TauntChance;
698  int GoForGunChance;
699  int RunPickupChance;
700  __int16 CombatId;
701  __int16 MeleeId;
702  char SoundProbabilities[10];
703  char gap_2b2[2];
704  char TauntSound[32];
705  char AlertSound[32];
706  char StartleSound[32];
707  char CheckBodySound[32];
708  char PursueSound[32];
709  char CoverSound[32];
710  char SuperpunchSound[32];
711  char SuperKickSound[32];
712  char Super3Sound[32];
713  char Super4Sound[32];
714  int CentralVisionRange;
715  int PeripheralVisionRange;
716  int HFov;
717  int CentralVisionCurve;
718  int CentralVFOV;
719  int PeripheralVisionCurve;
720  int PeripheralVFOV;
721  int HostileThreatDefiniteTimer;
722  int HostileThreatStrongTimer;
723  int HostileThreatWeakTimer;
724  int FriendlyThreadDefiniteTimer;
725  int FriendlyThreatStrongTimer;
726  int FriendlyThreatWeakTimer;
727  int EarshotRadius;
728  int ONCV;
729  int ONCP;
730  int ONIA;
731  char ImpactsLoaded;
732  char gap_439[1];
733  __int16 ImpactModifier;
734  char ImpactModifierName[16];
735  ONCCImpact Impacts[15];
736  char gap_bea[2];
737  char DeathParticleName[64];
738  int DeathParticlePtr;
739  int BodySurfaceCache;
740  int TRBS;
741  int TRMA;
742  int CBPM;
743  int CBPI;
744  int PeaceTimer;
745  int IdleTimer1;
746  int IdleTimer2;
747  int BaseHealth;
748  int field_C54;
749  int MinBodySizeFactor;
750  int MaxBodySizeFactor;
751  int field_C60[7];
752  int field_C7C;
753  int TRAC;
754  int TRSC;
755  char gap_c88[2];
756  __int16 DeathDeleteTimer;
757  char WeaponHand;
758  char HasDaodanPowers;
759  char HasSuperShield;
760  char CantTouchThis;
761} ONCC;
762
763
764/*  398 */ typedef struct 
765{
766  char Number;
767  char gap_1[1];
768  __int16 ActiveCharacterIndex;
769  int Flags;
770  int field_8;
771  ONCC* ONCC;
772  __int16 field_10;
773  __int16 Team;
774  char Name[32];
775  int BodySize;
776  int Health;
777  int MaxHealth;
778  __int16 AISA_ID;
779  char gap_42[2];
780  int field_44;
781  char ScriptNew[32];
782  char ScriptDie[32];
783  char ScriptSeen[32];
784  char ScriptAlarm[32];
785  char ScriptHurt[32];
786  char ScriptDefeat[32];
787  char ScriptLowAmmo[32];
788  //char ScriptNoPath[32];
789  char ScriptNoPath[28];
790  int RegenHax;
791  Vector3 Position;
792  Vector3 LastPosition;
793  Vector3 Location;
794  float Facing;
795  float DesiredFacing;
796  float CosmeticFacing;
797  int field_178;
798  int field_17C;
799  int field_180;
800  int BNV;
801  int GraphNode;
802  int PelvisHeight;
803  int field_190;
804  Inventory Inventory;
805  Vector3 Velocity;
806  int field_1D0;
807  int field_1D4;
808  int field_1D8;
809  int field_1DC;
810  int field_1E0;
811  int IdleDelay;
812  int charType;
813  char gap_1ec[4];
814  int CombatFlags;
815  int JobId;
816  int Goal;
817  int field_1FC;
818  __int16 field_200;
819  char gap_202[6];
820  int field_208;
821  char gap_20c[588];
822  char field_458;
823  char gap_459[352];
824  char field_5B9;
825  char gap_5ba[14];
826  char field_5C8;
827  char gap_5c9[359];
828  int field_730;
829  int field_734;
830  int field_738;
831  char gap_73c[380];
832  char CombatState;
833  char gap_8b9[7];
834  PatrolPathOSD PatrolPathOSD_;
835  PatrolPathPoint PatrolPathPoints[64];
836  char gap_de8[392];
837  int Combat_StatePtr;
838  AI2KnowledgeState KnowledgeState_;
839  char gap_f84[4];
840  int AlertDecayTimer;
841  int field_F8C;
842  int field_F90;
843  int AlertLevel;
844  int MinimalAlertLevel;
845  int StartJobAlertLevel;
846  int InvestigatingAlertLevel;
847  int StartleTime;
848  int field_FA8;
849  int field_FAC;
850  int field_FB0;
851  int Pursue1;
852  int Pursue2;
853  int Pursue3;
854  int Pursue4;
855  int Pursue5;
856  char field_FC8;
857  char gap_fc9[3];
858  int field_FCC;
859  char gap_fd0[8];
860  int AlarmGroups;
861  int field_FDC;
862  int field_FE0;
863  int field_FE4;
864  int field_FE8;
865  int field_FEC;
866  int field_FF0;
867  int field_FF4;
868  int field_FF8;
869  int field_FFC;
870  int field_1000;
871  int field_1004;
872  int field_1008;
873  __int16 field_100C;
874  __int16 field_100E;
875  int field_1010;
876  int field_1014;
877  int field_1018;
878  char field_101C;
879  char gap_101d[3];
880  int DazeTimer;
881  __int16 field_1024;
882  __int16 field_1026;
883  __int16 field_1028;
884  __int16 field_102A;
885  int field_102C;
886  int field_1030;
887  int field_1034;
888  char gap_1038[20];
889  int field_104C;
890  int field_1050;
891  int field_1054;
892  int field_1058;
893  int field_105C;
894  int field_1060;
895  int field_1064;
896  int MeleePtr;
897  int field_106C;
898  __int16 field_1070;
899  char gap_1072[126];
900  int Path_DestinationType;
901  int Path_TypeSpecificInfo;
902  char Path_MovementState;
903  char gap_10f9[3];
904  int Path_OrientTo;
905  Vector3 Path_DestinationPoint;
906  int field_110C;
907  int field_1110;
908  Vector3 field_1114;
909  Vector3 field_1120;
910  char Path_State;
911  char field_112D;
912  char field_112E;
913  char gap_112f[1];
914  Vector3 field_1130;
915  int field_113C;
916  int field_1140;
917  int field_1144;
918  char field_1148;
919  char gap_1149[3];
920  int Path_CurrentNodeNumber;
921  int Path_NumNodes;
922  Vector3 Path_From;
923  Vector3 Path_To;
924  int Path_GraphFromNodePtr;
925  int Path_GraphToNodePtr;
926  int field_1174;
927  char gap_1178[12];
928  int field_1184;
929  char gap_1188[776];
930  int Path_LastError;
931  int Path_RepathDelay;
932  int Path_Repaths;
933  int Path_RepathDecayTimer;
934  int field_14A0;
935  int MovementMode;
936  char field_14A8;
937  char gap_14a9[3];
938  int field_14AC;
939  int MovementModifiers;
940  int field_14B4;
941  char gap_14b8[188];
942  int field_1574;
943  int FacingState;
944  int FacingAt_Destination;
945  char field_1580;
946  char field_1581;
947  char gap_1582[2];
948  int Aiming_At_Type;
949  Vector3 Aiming_At;
950  int field_1594;
951  int field_1598;
952  int field_159C;
953  int GlancingState;
954  Vector3 GlancingDirOrPos;
955  char field_15B0;
956  char gap_15b1[3];
957  int field_15B4;
958  int field_15B8;
959  int field_15BC;
960  int field_15C0;
961  int field_15C4;
962  int field_15C8;
963  int field_15CC;
964  int field_15D0;
965  int field_15D4;
966  int field_15D8;
967  int field_15DC;
968  int field_15E0;
969  int field_15E4;
970  int field_15E8;
971  int AIBlockFunction;
972  char field_15F0;
973  char field_15F1;
974  char field_15F2;
975  char gap_15f3[1];
976  int field_15F4;
977  int field_15F8;
978  int field_15FC;
979  int field_1600;
980  char gap_1604[4];
981  int field_1608;
982  int field_160C;
983  char gap_1610[4];
984  int field_1614;
985  char gap_1618[20];
986  int field_162C;
987  int field_1630;
988  int field_1634;
989  int field_1638;
990  int field_163C;
991  int field_1640;
992  __int16 field_1644;
993  char gap_1646[2];
994  BoundingBox BoundingBox_;
995  char gap_1660[4];
996  int BossShieldPower;
997  int field_1668;
998  char gap_166c[4];
999  int Kills;
1000  int Damage;
1001  int field_1678;
1002  int field_167C;
1003  int CurrentConsoleActionMarker;
1004  int field_1684;
1005  __int16 field_1688;
1006  __int16 field_168A;
1007  int field_168C;
1008  int field_1690;
1009  char field_1694;
1010  char field_1695;
1011  __int16 field_1696;
1012  int field_1698;
1013  int field_169C;
1014} Character;
1015
1016typedef struct 
1017{
1018  int Nodes;
1019  int NodeCount;
1020  int field_8;
1021  int TraverseQueueHead;
1022  int field_10;
1023  int CacheLrar;
1024  int CacheMem;
1025  int field_1C;
1026  int field_20;
1027  int field_24;
1028}PHGraph
1029;
1030
1031/*  388 */ typedef struct //activecharacter
1032{
1033  __int16 Number;
1034  __int16 field_2;
1035  PhyContext* PhyContext;
1036  SphereTreeNode SphereTree;
1037  SphereTreeNode SphereTree3[4];
1038  SphereTreeNode SphereTree2[2];
1039  __int16 field_B0;
1040  __int16 field_B2;
1041  __int16 field_B4;
1042  char field_B6;
1043  char gap_b7[1];
1044  Vector3 field_B8;
1045  Vector3 AccelerateWith;
1046  int field_D0;
1047  Vector3 field_D4;
1048  __int16 field_E0;
1049  char gap_e2[2];
1050  int field_E4;
1051  int field_E8;
1052  int field_EC;
1053  int field_F0;
1054  __int16 field_F4;
1055  __int16 IsInAir;
1056  Vector3 FallingVelocity;
1057  Vector3 JumpVelocity;
1058  char field_110;
1059  char field_111;
1060  __int16 field_112;
1061  __int16 field_114;
1062  char gap_116[2];
1063  int field_118;
1064  int field_11C;
1065  int field_120;
1066  int field_124;
1067  int field_128;
1068  int field_12C;
1069  BoundingSphere BoundingSphere;
1070  Vector3 field_140;
1071  Vector3 field_14C;
1072  int field_158;
1073  int field_15C;
1074  Vector3 Location;
1075  char gap_16c[24];
1076  int AkiraNode;
1077  int GraphNode;
1078  int PelvisHeight;
1079  int Movement_StatePtr;
1080  int ActiveWeapon;
1081  int field_198;
1082  int InventoryWeapon;
1083  char gap_1a0[2];
1084  __int16 RedAmmoClipCount;
1085  __int16 HypoCount;
1086  __int16 GreenAmmoClipCount;
1087  __int16 RedAmmoClipDropCount;
1088  __int16 HypoDropCount;
1089  __int16 GreenAmmoClipDropCount;
1090  __int16 field_1AE;
1091  __int16 InverseHypoRegenerationRate;
1092  char DropShield;
1093  char DropPhaseCloack;
1094  char field_1B4;
1095  char gap_1b5[1];
1096  __int16 field_1B6;
1097  __int16 Shield;
1098  __int16 PhaseCloacking;
1099  int field_1BC;
1100  char gap_1c0[4];
1101  __int16 field_1C4;
1102  char gap_1c6[10];
1103  int field_1D0;
1104  int field_1D4;
1105  char gap_1d8[4];
1106  int field_1DC;
1107  int NotIdleStartTime;
1108  int TimeToIdle;
1109  int field_1E8;
1110  char gap_1ec[4];
1111  int field_1F0;
1112  char gap_1f4[2048];
1113  int field_9F4;
1114  char gap_9f8[36];
1115  int field_A1C;
1116  char gap_a20[3020];
1117  int field_15EC;
1118  char gap_15f0[60];
1119  int field_162C;
1120  int field_1630;
1121  int field_1634;
1122  int field_1638;
1123  int field_163C;
1124  char gap_1640[8];
1125  BoundingBox BoundingBox;
1126  int field_1660;
1127  char gap_1664[4];
1128  int ShieldPower;
1129  char gap_166c[4];
1130  int NumberOfKills;
1131  int InflictedDamage;
1132  int field_1678;
1133  int field_167C;
1134  char gap_1680[8];
1135  __int16 field_1688;
1136  __int16 field_168A;
1137  int field_168C;
1138  int field_1690;
1139  char field_1694;
1140  char field_1695;
1141  __int16 field_1696;
1142  int field_1698;
1143  int field_169C;
1144  char gap_16a0[2];
1145  int field_16A2;
1146  char gap_16a6[994];
1147  char field_1A88;
1148  char field_1A89;
1149  char field_1A8A;
1150  char field_1A8B;
1151  Vector3 Executor_AimingDirection;
1152  int field_1A98;
1153  int field_1A9C;
1154  int Executor_ActualMovementMode;
1155  int field_1AA4;
1156  int field_1AA8;
1157  int field_1AAC;
1158  char Executor_HasFacingOverride;
1159  char gap_1ab1[3];
1160  int Executor_AimingSpeed;
1161  char field_1AB8;
1162  char Executor_HasMoveOverride;
1163  char gap_1aba[6];
1164  int field_1AC0;
1165  int field_1AC4;
1166  int Executor_FacingOverride;
1167  char Executor_HasAttackOverride;
1168  char gap_1acd[1];
1169  __int16 field_1ACE;
1170  __int16 field_1AD0;
1171  char gap_1ad2[6];
1172  int field_1AD8;
1173  int field_1ADC;
1174  int field_1AE0;
1175  int field_1AE4;
1176  char Executor_HasThrowOverride;
1177  char gap_1ae9[3];
1178  int field_1AEC;
1179  int field_1AF0;
1180  int field_1AF4;
1181  void* Animation;
1182  __int16 AnimationToState;
1183  __int16 AnimationFromState;
1184  __int16 AnimationType;
1185  __int16 NextAnimationType;
1186  __int16 field_1B04;
1187  __int16 field_1B06;
1188  char Stitch;
1189  char gap_1b09[3];
1190  int StitchHeight;
1191  __int16 InterpolationFromState;
1192  char gap_1b12[2];
1193  Vector3 StitchVelocity;
1194  __int16 InterpolationCurrentFrame;
1195  __int16 InterpolationLength;
1196  Quaternion InterpolationStartRotations[19];
1197  char gap_1c54[4];
1198  int field_1C58;
1199  int field_1C5C;
1200  int field_1C60;
1201  int Overlay;
1202  __int16 field_1C68;
1203  __int16 field_1C6A;
1204  int field_1C6C;
1205  int field_1C70;
1206  __int16 field_1C74;
1207  char gap_1c76[2];
1208  int field_1C78;
1209  char gap_1c7c[12];
1210  __int16 Frame;
1211  __int16 SoftPause;
1212  __int16 HardPause;
1213  __int16 field_1C8E;
1214  int field_1C90;
1215  __int16 field_1C94;
1216  __int16 field_1C96;
1217  __int16 Dizzy;
1218  __int16 field_1C9A;
1219  int field_1C9C;
1220  __int16 AnimationVarient;
1221  __int16 TimeToPeace;
1222  char NumAnimationAttachedParticles;
1223  char gap_1ca5[1];
1224  __int16 field_1CA6;
1225  AttachedParticle AnimationAttachedParticles[16];
1226  int TRAMParticles;
1227  char FixedParticlesAttached;
1228  char FixedParticlesStarted;
1229  __int16 NumFixedParticles;
1230  AttachedParticle FixedParticles[16];
1231  __int16 CurrentAnimationType;
1232  char gap_1eb2[2];
1233  int field_1EB4;
1234  char field_1EB8;
1235  char gap_1eb9[30];
1236  char field_1ED7;
1237  __int16 throwing;
1238  __int16 thrownBy;
1239  Character* ThrowTargetCharacter;
1240  int targetThrow; //animation
1241  int field_1EE4;
1242  int field_1EE8;
1243  int field_1EEC;
1244  Quaternion Rotations[19];
1245  Quaternion OverlayRotations[19];
1246  int field_2150;
1247  char gap_2154[4];
1248  GameInput Input;
1249  int PrevActions1;
1250  int PrevActions2;
1251  int SprintTimer;
1252  char field_2194;
1253  char field_2195;
1254  char gap_2196[2];
1255  Vector3 field_2198;
1256  int field_21A4;
1257  int field_21A8;
1258  int field_21AC;
1259  Vector3 field_21B0;
1260  int HeadFacing;
1261  int HeadPitch;
1262  int field_21C4;
1263  int field_21C8;
1264  int field_21CC;
1265  int field_21D0;
1266  char field_21D4;
1267  char gap_21d5[3];
1268  int field_21D8;
1269  char field_21DC;
1270  char field_21DD;
1271  char field_21DE;
1272  char field_21DF;
1273  char field_21E0;
1274  char HasAlternateTrigger;
1275  char field_21E2;
1276  char ReleaseTrigger;
1277  char ReleaseAlternateTrigger;
1278  char TurningLeft;
1279  char TurningRight;
1280  char gap_21e7[1];
1281  int field_21E8;
1282  int field_21EC;
1283  __int16 field_21F0;
1284  char gap_21f2[2];
1285  PlayingFilm PlayingFilm;
1286  char gap_2218[4];
1287  int field_221C;
1288  char gap_2220[8];
1289  int field_2228;
1290  char gap_222c[76];
1291  Matrix4x3 BoneMatrices[19];
1292  Matrix4x3 WeaponMatrix;
1293  char gap_2638[432];
1294  int field_27E8;
1295  char gap_27ec[4];
1296  __int16 field_27F0;
1297  __int16 field_27F2;
1298  int field_27F4;
1299  int field_27F8;
1300  __int16 ShadowIndex;
1301  char field_27FE;
1302  char gap_27ff[1];
1303  char field_2800;
1304  char field_2801;
1305  char ShieldParts[19];
1306  char field_2815;
1307  char gap_2816[2];
1308  int field_2818;
1309  __int16 field_281C;
1310  char gap_281e[2];
1311  int field_2820;
1312  int field_2824;
1313  int field_2828;
1314  int field_282C;
1315  __int16 field_2830;
1316  __int16 field_2832;
1317  char gap_2834[1];
1318  char field_2835;
1319  char field_2836;
1320  char field_2837;
1321} ActiveCharacter;
1322
1323typedef struct
1324{
1325  int TimerMode;
1326  char TimerName[32];
1327  int TimerDuration;
1328  char field_28;
1329  char gap_29[3];
1330  int field_2C;
1331  Letterbox Letterbox;
1332  char gap_3a[2];
1333  char field_3C;
1334  char gap_3d[3];
1335  int field_40;
1336  int CutsceneSyncMark;
1337  char field_48;
1338  char gap_49[3];
1339  int field_4C;
1340  int field_50;
1341  int field_54;
1342  int field_58;
1343  int field_5C;
1344  int field_60;
1345  int field_64;
1346  int field_68;
1347  int field_6C;
1348  int field_70;
1349  int FadeStartTime;
1350  int FadeEndTime;
1351  char field_7C;
1352  char gap_7d[3];
1353  int Camera;
1354  PHGraph PathFindingGraph;
1355  Character* PlayerCharacter;
1356  int field_B0;
1357  char gap_b4[4];
1358  GameInput Input;
1359  int field_E8;
1360  int field_EC;
1361  char ScreenShotEveryFrame;
1362  char gap_f1[7];
1363  char field_F8;
1364  char field_F9;
1365  char field_FA;
1366  char gap_fb[1];
1367  int field_FC;
1368  int field_100;
1369  char field_104;
1370  char gap_105[3];
1371  int SlowMotion;
1372  char gap_10c[4];
1373  int field_110;
1374  int field_114;
1375  char SplashScreenTextureName[32];
1376  char field_138;
1377  char gap_139[7];
1378  int field_140;
1379  int GameTime;
1380  int field_148;
1381  int field_14C;
1382  int Level;
1383  int field_154;
1384  MotionBlur MotionBlur_[64];
1385  int MotionBlurCount;
1386  __int16 field_125C;
1387  __int16 field_125E;
1388  Character CharacterStorage[128];
1389  __int16 CharacterCount;
1390  char gap_b6262[2];
1391  int field_B6264;
1392  ActiveCharacter ActiveCharacters[64];
1393  __int16 ActiveCharacterCount;
1394  Shadow Shadows[32];
1395  __int16 field_1670EA;
1396  int ShadowCount;
1397  int ActiveCharacterList[128];
1398  int ActiveCharacterListCount;
1399  int ActiveCharacterListLock;
1400  int LivingCharacterList[128];
1401  int LivingCharacterListCount;
1402  int LivingCharacterListLock;
1403  Character* PresentCharacterList[128];
1404  int PresentCharacterListCount;
1405  int PresentCharacterListLock;
1406  int ObjectList;
1407  DoorArray DoorArray_;
1408  Sky Sky_;
1409  int field_1679A4;
1410  int Triggers;
1411  char IsGamePaused;
1412  char IsInputEnabled;
1413  char field_1679AE;
1414  char gap_1679af[1];
1415  int LastInputActions1;
1416  int LastInputActions2;
1417  int field_1679B8;
1418  int WinLose;
1419  int field_1679C0;
1420  int field_1679C4;
1421  int field_1679C8;
1422  int field_1679CC;
1423  int field_1679D0;
1424  int field_1679D4;
1425  __int16 field_1679D8;
1426  char gap_1679da[2];
1427  int field_1679DC;
1428} GameState;
1429#endif
1430
1431typedef struct 
1432{
1433        int                     priority;
1434        int timer;                                              // amount of time to display the text
1435        char                            prefix[10];     // prefix for the line
1436        char                            text[502];              // text on the line
1437        const char                      *identifier;
1438        int                     text_color;
1439        int                     text_shadow;
1440} COtTextEntry;
1441
1442typedef struct 
1443{
1444        void            *font_family;
1445        void *text_context;                             // text context to do the drawing
1446        short                   formatting;
1447        short                   font_size;
1448        char                            scale_font;
1449        char                            bottom_justify;
1450        char                            display_completion;
1451        char                            fade_over_bounds;
1452        char                            use_formatting_commands;
1453
1454        short                           bounds[4];
1455        short                   num_text_entries;
1456        short max_text_entries;
1457        char pad[3];
1458        COtTextEntry            *text_entries;                          // an array (num_text_entries long) of COtTextEntry
1459                int blah;
1460                int blah2;
1461                        int blah3;
1462} COtTextArea;
Note: See TracBrowser for help on using the repository browser.