source: Daodan/MSVC/Oni_GameState.h @ 574

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