source: Daodan/MSVC/Oni_GameState.h@ 690

Last change on this file since 690 was 586, checked in by gumby, 14 years ago

stuff

File size: 32.6 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 ONCCnumber;
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 float 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 uint32_t Kills;
999 uint32_t 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 PrevAnimationType;
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 ForcedAnimationFrames;
1214 __int16 HitStun;
1215 __int16 BlockStun;
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 void* 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 AimTarget;
1255 Vector3 AimVector;
1256 Vector3 CamVector;
1257 float HeadFacing;
1258 float HeadPitch;
1259 int field_21C4;
1260 int field_21C8;
1261 int field_21CC;
1262 int field_21D0;
1263 char field_21D4;
1264 char gap_21d5[3];
1265 int field_21D8;
1266 char field_21DC;
1267 char field_21DD;
1268 char field_21DE;
1269 char field_21DF;
1270 char field_21E0;
1271 char HasAlternateTrigger;
1272 char field_21E2;
1273 char ReleaseTrigger;
1274 char ReleaseAlternateTrigger;
1275 char TurningLeft;
1276 char TurningRight;
1277 char gap_21e7[1];
1278 int field_21E8;
1279 int field_21EC;
1280 __int16 field_21F0;
1281 char gap_21f2[2];
1282 PlayingFilm PlayingFilm;
1283 char gap_2218[4];
1284 int field_221C;
1285 char gap_2220[8];
1286 Matrix4x3 * ExtraBody;
1287 char gap_222c[76];
1288 Matrix4x3 BoneMatrices[19];
1289 Matrix4x3 WeaponMatrix;
1290 char gap_2638[432];
1291 int field_27E8;
1292 char gap_27ec[4];
1293 __int16 field_27F0;
1294 __int16 field_27F2;
1295 int field_27F4;
1296 int field_27F8;
1297 __int16 ShadowIndex;
1298 char field_27FE;
1299 char gap_27ff[1];
1300 char field_2800;
1301 char field_2801;
1302 char ShieldParts[19];
1303 char field_2815;
1304 char gap_2816[2];
1305 int field_2818;
1306 __int16 field_281C;
1307 char gap_281e[2];
1308 int field_2820;
1309 int field_2824;
1310 int field_2828;
1311 int field_282C;
1312 __int16 field_2830;
1313 __int16 field_2832;
1314 char gap_2834[1];
1315 char field_2835;
1316 char field_2836;
1317 char field_2837;
1318} ActiveCharacter;
1319
1320typedef struct
1321{
1322 char name[64]; // Must be same as ONcMaxLevelName above (for TE)
1323
1324 void *env;
1325 void *objectsetup;
1326 void *markers;
1327 void *flags;
1328 void *triggers;
1329
1330 void *Sky;
1331 float SkyHeight;
1332
1333
1334} OniLevel;
1335
1336typedef struct
1337{
1338 int TimerMode;
1339 char TimerName[32];
1340 int TimerDuration;
1341 char field_28;
1342 char gap_29[3];
1343 int field_2C;
1344 Letterbox Letterbox;
1345 char gap_3a[2];
1346 char field_3C;
1347 char gap_3d[3];
1348 int field_40;
1349 int CutsceneSyncMark;
1350 char field_48;
1351 char gap_49[3];
1352 int field_4C;
1353 int field_50;
1354 int field_54;
1355 int field_58;
1356 int field_5C;
1357 int field_60;
1358 int field_64;
1359 int field_68;
1360 int field_6C;
1361 int field_70;
1362 int FadeStartTime;
1363 int FadeEndTime;
1364 char field_7C;
1365 char gap_7d[3];
1366 int Camera;
1367 PHGraph PathFindingGraph;
1368 Character* PlayerCharacter;
1369 int field_B0;
1370 char gap_b4[4];
1371 GameInput Input;
1372 int field_E8;
1373 int field_EC;
1374 char ScreenShotEveryFrame;
1375 char gap_f1[7];
1376 char field_F8;
1377 char field_F9;
1378 char field_FA;
1379 char gap_fb[1];
1380 int field_FC;
1381 int field_100;
1382 char field_104;
1383 char gap_105[3];
1384 int SlowMotion;
1385 char gap_10c[4];
1386 int field_110;
1387 int field_114;
1388 char SplashScreenTextureName[32];
1389 char field_138;
1390 char gap_139[7];
1391 int field_140;
1392 int GameTime;
1393 int field_148;
1394 int field_14C;
1395 OniLevel* Level;
1396 int field_154;
1397 MotionBlur MotionBlur_[64];
1398 int MotionBlurCount;
1399 __int16 field_125C;
1400 __int16 field_125E;
1401 Character CharacterStorage[128];
1402 __int16 CharacterCount;
1403 char gap_b6262[2];
1404 int field_B6264;
1405 ActiveCharacter ActiveCharacters[64];
1406 __int16 ActiveCharacterCount;
1407 Shadow Shadows[32];
1408 __int16 field_1670EA;
1409 int ShadowCount;
1410 int ActiveCharacterList[128];
1411 int ActiveCharacterListCount;
1412 int ActiveCharacterListLock;
1413 int LivingCharacterList[128];
1414 int LivingCharacterListCount;
1415 int LivingCharacterListLock;
1416 Character* PresentCharacterList[128];
1417 int PresentCharacterListCount;
1418 int PresentCharacterListLock;
1419 int ObjectList;
1420 DoorArray DoorArray_;
1421 Sky Sky_;
1422 int field_1679A4;
1423 int Triggers;
1424 char IsGamePaused;
1425 char IsInputEnabled;
1426 char field_1679AE;
1427 char gap_1679af[1];
1428 int LastInputActions1;
1429 int LastInputActions2;
1430 int field_1679B8;
1431 int WinLose;
1432 int field_1679C0;
1433 int field_1679C4;
1434 int field_1679C8;
1435 int field_1679CC;
1436 int field_1679D0;
1437 int field_1679D4;
1438 __int16 field_1679D8;
1439 char gap_1679da[2];
1440 int field_1679DC;
1441} GameState;
1442
1443
1444typedef struct
1445{
1446 int priority;
1447 int timer; // amount of time to display the text
1448 char prefix[10]; // prefix for the line
1449 char text[502]; // text on the line
1450 const char *identifier;
1451 int text_color;
1452 int text_shadow;
1453} COtTextEntry;
1454
1455typedef struct
1456{
1457 void *font_family;
1458 void *text_context; // text context to do the drawing
1459 short formatting;
1460 short font_size;
1461 char scale_font;
1462 char bottom_justify;
1463 char display_completion;
1464 char fade_over_bounds;
1465 char use_formatting_commands;
1466
1467 short bounds[4];
1468 short num_text_entries;
1469 short max_text_entries;
1470 char pad[3];
1471 COtTextEntry *text_entries; // an array (num_text_entries long) of COtTextEntry
1472 int blah;
1473 int blah2;
1474 int blah3;
1475} COtTextArea;
1476#endif
Note: See TracBrowser for help on using the repository browser.