source: Daodan/src/Oni/GameState.h@ 1182

Last change on this file since 1182 was 1163, checked in by rossy, 3 years ago

Daodan: Add new local input system based on Raw Input

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