source: Daodan/MSVC/Oni_GameState.h@ 573

Last change on this file since 573 was 573, checked in by gumby, 14 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.