source: Daodan/src/Oni_GameState.h@ 705

Last change on this file since 705 was 692, checked in by alloc, 12 years ago

Daodan: Lots of cleanups (mostly unnecessary includes removed, empty files deleted, case of filenames corrected)

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