-
Notifications
You must be signed in to change notification settings - Fork 3
/
DUMPED.h
4635 lines (4635 loc) · 105 KB
/
DUMPED.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
struct TCB {
long status;
long mode;
unsigned long reg[40];
long system[6];
};
struct EXEC {
unsigned long pc0;
unsigned long gp0;
unsigned long t_addr;
unsigned long t_size;
unsigned long d_addr;
unsigned long d_size;
unsigned long b_addr;
unsigned long b_size;
unsigned long s_addr;
unsigned long s_size;
unsigned long sp;
unsigned long fp;
unsigned long gp;
unsigned long ret;
unsigned long base;
};
struct DIRENTRY {
char name[20];
long attr;
long size;
struct DIRENTRY* next;
long head;
char system[4];
};
struct MATRIX {
short m[3][3];
long t[3];
};
struct VECTOR {
long vx;
long vy;
long vz;
long pad;
};
struct SVECTOR {
signed short vx;
signed short vy;
signed short vz;
signed short pad;
};
struct CVECTOR {
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char cd;
};
struct DVECTOR {
signed short vx;
signed short vy;
};
struct RVECTOR {
struct SVECTOR v;
void* uv[2];
unsigned short pad;
struct CVECTOR c;
struct DVECTOR sxy;
unsigned long sz;
};
struct CRVECTOR3 {
struct RVECTOR r01;
struct RVECTOR r12;
struct RVECTOR r20;
struct RVECTOR* r0;
struct RVECTOR* r1;
struct RVECTOR* r2;
unsigned long* rtn;
};
struct CRVECTOR4 {
struct RVECTOR r01;
struct RVECTOR r02;
struct RVECTOR r31;
struct RVECTOR r32;
struct RVECTOR rc;
struct RVECTOR* r0;
struct RVECTOR* r1;
struct RVECTOR* r2;
struct RVECTOR* r3;
unsigned long* rtn;
};
struct RECT {
signed short x;
signed short y;
signed short w;
signed short h;
};
struct DR_ENV {
unsigned long tag;
unsigned long code[15];
};
struct P_TAG {
signed char addr;
signed char len;
unsigned char r0;
unsigned char g0;
unsigned char b0;
unsigned char code;
};
struct CdlLOC {
unsigned char minute;
unsigned char second;
unsigned char sector;
unsigned char track;
};
struct LightInstance {
struct _Instance* lightInstance;
long r;
long g;
long b;
signed short radius;
unsigned char segment;
unsigned char flags;
};
struct _Instance {
struct NodeType node;
struct _Instance* next;
struct _Instance* prev;
long instanceID;
long flags;
long flags2;
struct Object* object;
struct Intro* intro;
va_list data;
va_list introData;
struct _Instance* parent;
long introNum;
long birthStreamUnitID;
long currentStreamUnitID;
long introUniqueID;
struct MATRIX* matrix;
struct MATRIX* oldMatrix;
struct SoundInstance soundInstanceTbl[4];
unsigned long maxCheckDistance;
unsigned long checkMask;
struct _Position position;
unsigned char lightGroup;
struct _Position oldPos;
unsigned char spectralLightGroup;
signed short currentTextureAnimFrame;
struct _Position initialPos;
struct _Rotation rotation;
struct _Rotation oldRotation;
struct _SVector scale;
long attachedID;
long attachedSegment;
struct MATRIX relativeMatrix;
struct _TFace* tface;
struct _TFace* oldTFace;
va_list tfaceLevel;
va_list collideInfo;
long bspTree;
signed short cachedTFace;
signed short cachedBSPTree;
struct _Normal oldWNormal;
struct _Normal wNormal;
struct _SVector offset;
va_list dsignal;
va_list shadow0;
va_list shadow1;
va_list extraLight;
struct _Position extraLightDir;
signed short extraLightScale;
struct _HModel* hModelList;
signed short fadeValue;
signed short lightMatrix;
voidFnPtr processFunc;
voidFnPtr collideFunc;
voidFnPtr additionalCollideFunc;
va_list additionalDrawFunc;
tp159 queryFunc;
voidFnPtr messageFunc;
struct _Position shadowPosition;
signed short currentModel;
struct _TFace* waterFace;
struct _TFace* oldWaterFace;
struct _Terrain* waterFaceTerrain;
struct _PlaneConstants halvePlane;
struct _SVector splitPoint;
struct _Instance* LinkParent;
struct _Instance* LinkChild;
struct _Instance* LinkSibling;
long ParentLinkNode;
va_list InstanceState;
char introName[16];
va_list extraData;
signed short constrictAngle;
signed short petrifyValue;
long xVel;
long yVel;
long zVel;
long xAccl;
long yAccl;
long zAccl;
long maxXVel;
long maxYVel;
long maxZVel;
long currentMainState;
long currentSubState;
long work0;
long work1;
long work2;
long work3;
long work4;
long work5;
long work6;
long work7;
long work8;
long work9;
struct _G2Anim_Type anim;
tp154 rebuildCallback;
signed short splineFlags;
signed short targetFrame;
signed short clipBeg;
signed short clipEnd;
struct EventAliasCommandStruct aliasCommand;
long light_color;
struct CVECTOR* perVertexColor;
};
struct _GameTrackerASMData_Type {
long drawBackFaces;
long dispPage;
signed short MorphTime;
signed short MorphType;
struct LightInstance lightInstances[1];
};
struct _GameData_Type {
struct _GameTrackerASMData_Type asmData;
};
struct NodeType {
struct NodeType* prev;
struct NodeType* next;
};
struct TextureFT3 {
unsigned char u0;
unsigned char v0;
unsigned short clut;
unsigned char u1;
unsigned char v1;
unsigned short tpage;
unsigned char u2;
unsigned char v2;
unsigned short attr;
};
struct TextureMT3 {
unsigned char u0;
unsigned char v0;
unsigned short clut;
unsigned char u1;
unsigned char v1;
unsigned short tpage;
unsigned char u2;
unsigned char v2;
signed char pad1;
signed char sortPush;
long color;
};
struct AniTexInfo {
struct TextureMT3* texture;
long numFrames;
long speed;
};
struct AniTex {
long numAniTextues;
struct AniTexInfo aniTexInfo;
};
struct DrMoveAniTexSrcInfo {
signed short pixSrcX;
signed short pixSrcY;
signed short clutSrcX;
signed short clutSrcY;
};
struct DrMoveAniTexDestInfo {
signed short pixDstX;
signed short pixDstY;
signed short pixW;
signed short pixH;
signed short clutDstX;
signed short clutDstY;
signed short clutW;
signed short clutH;
signed short pixCurrentX;
signed short pixCurrentY;
signed short clutCurrentX;
signed short clutCurrentY;
long numFrames;
long speed;
struct DrMoveAniTexSrcInfo frame;
};
struct DrMoveAniTex {
long numAniTextues;
struct DrMoveAniTexDestInfo* aniTexInfo;
};
struct MemHeader {
unsigned short magicNumber;
unsigned char memStatus;
unsigned char memType;
unsigned long memSize;
};
struct _G2SVector3_Type {
signed short x;
signed short y;
signed short z;
};
struct _G2LVector3_Type {
long x;
long y;
long z;
};
struct _G2Matrix_Type {
short rotScale[3][3];
signed short scaleFlag;
struct _G2LVector3_Type trans;
};
struct _G2Quat_Type {
signed short x;
signed short y;
signed short z;
signed short w;
};
struct _G2AnimQuatInfo_Type {
struct _G2Quat_Type srcQuat;
struct _G2Quat_Type destQuat;
struct _G2SVector3_Type srcScale;
struct _G2SVector3_Type destScale;
struct _G2SVector3_Type srcTrans;
struct _G2SVector3_Type destTrans;
};
struct _G2AnimAlphaTable_Type {
unsigned short size;
long data[0];
};
struct _G2AnimInterpStateBlock_Type {
struct _G2AnimInterpStateBlock_Type* next;
struct _G2AnimQuatInfo_Type quatInfo[4];
};
struct _G2AnimInterpInfo_Type {
signed short duration;
signed short targetTime;
struct _G2AnimAlphaTable_Type* alphaTable;
struct _G2AnimInterpStateBlock_Type* stateBlockList;
};
struct _G2AnimChanStatus_Type {
signed short keyData;
signed short index;
};
struct _G2AnimChanStatusBlock_Type {
struct _G2AnimChanStatusBlock_Type* next;
struct _G2AnimChanStatus_Type chunks[8];
};
struct _G2AnimFxHeader_Type {
unsigned char sizeAndSection;
signed char type;
unsigned short keyframeID;
};
struct _G2AnimKeylist_Type {
unsigned char sectionCount;
unsigned char s0TailTime;
unsigned char s1TailTime;
unsigned char s2TailTime;
unsigned short keyCount;
signed short timePerKey;
unsigned short pad00;
signed short pad01;
unsigned short pad10;
signed short pad11;
struct _G2AnimFxHeader_Type* fxList;
tp125 sectionData[0];
};
struct _G2AnimSection_Type {
unsigned char flags;
unsigned char sectionID;
unsigned char firstSeg;
unsigned char segCount;
signed short elapsedTime;
signed short storedTime;
signed short loopStartTime;
signed short loopEndTime;
tp19 swAlarmTable;
long speedAdjustment;
unsigned short keylistID;
unsigned long alarmFlags;
tp149 callback;
va_list callbackData;
struct _G2AnimKeylist_Type* keylist;
struct _G2AnimChanStatusBlock_Type* chanStatusBlockList;
struct _G2AnimInterpInfo_Type* interpInfo;
};
struct _G2Anim_Type {
unsigned char sectionCount;
unsigned char masterSection;
unsigned short controllerList;
unsigned short disabledControllerList;
unsigned short pad;
struct _G2SVector3_Type rootTrans;
unsigned short flags;
struct _Model* modelData;
struct _G2Matrix_Type* segMatrices;
unsigned long disabledBits[3];
struct _G2AnimSection_Type section[3];
};
struct _Model {
long numVertices;
struct _MVertex* vertexList;
long numNormals;
struct _SVectorNoPad* normalList;
long numFaces;
struct _MFace* faceList;
long numSegments;
struct _Segment* segmentList;
struct AniTex* aniTextures;
signed short maxRad;
signed short pad;
long maxRadSq;
struct MultiSpline* multiSpline;
struct TextureMT3* startTextures;
struct TextureMT3* endTextures;
};
struct _SVector {
signed short x;
signed short y;
signed short z;
signed short pad;
};
struct _SVectorNoPad {
signed short x;
signed short y;
signed short z;
};
struct _Position {
signed short x;
signed short y;
signed short z;
};
struct _Rotation {
signed short x;
signed short y;
signed short z;
signed short pad;
};
struct _Normal {
signed short x;
signed short y;
signed short z;
signed short pad;
};
struct _PlaneConstants {
signed short a;
signed short b;
signed short c;
signed short flags;
long d;
};
struct _Vertex {
signed short x;
signed short y;
signed short z;
};
struct _Face {
unsigned short v0;
unsigned short v1;
unsigned short v2;
};
struct _MVertex {
struct _Vertex vertex;
unsigned short normal;
};
struct _MFace {
struct _Face face;
unsigned char normal;
unsigned char flags;
long color;
};
struct _RGBAColor {
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char a;
};
struct _PVertex {
signed short x;
signed short y;
long otz;
};
struct _VertexPool {
struct _PVertex vertex[528];
struct CVECTOR color[528];
};
struct _PrimPool {
long numPrims;
unsigned long* nextPrim;
unsigned long* lastPrim;
unsigned long prim[24000];
};
struct _Sphere {
struct _Position position;
unsigned short radius;
unsigned long radiusSquared;
};
struct _Sphere_noSq {
struct _Position position;
unsigned short radius;
};
struct _CameraKey {
signed short x;
signed short y;
signed short z;
signed short id;
signed short rx;
signed short ry;
signed short rz;
signed short flags;
signed short tx;
signed short ty;
signed short tz;
signed short pad;
};
struct Object {
long oflags;
signed short id;
signed short sfxFileHandle;
signed short numModels;
signed short numAnims;
tp88 modelList;
tp88 animList;
signed short introDist;
signed short vvIntroDist;
signed short removeDist;
signed short vvRemoveDist;
va_list data;
versionID script;
versionID name;
tp28 soundData;
long oflags2;
signed short sectionA;
signed short sectionB;
signed short sectionC;
signed short numberOfEffects;
struct ObjectEffect* effectList;
unsigned long* relocList;
va_list relocModule;
struct VramSize vramSize;
};
struct _BVertex {
signed short x;
signed short y;
signed short z;
signed short pad;
};
struct _BFace {
signed short v0;
signed short v1;
signed short v2;
signed short pad;
struct TextureFT3* texture;
};
struct _BGObject {
signed short flags;
signed short numFaces;
struct _BVertex* vertexList;
struct _BFace* faceList;
signed short x;
signed short y;
signed short z;
signed short radius;
long numVertices;
};
struct Signal {
long id;
};
struct _MultiSignal {
long numSignals;
signed short signalNum;
signed short flags;
struct Signal signalList[32];
};
struct _HFace {
signed short v0;
signed short v1;
signed short v2;
unsigned char attr;
signed char pad;
unsigned short normal;
unsigned short n0;
};
struct _HSphere {
long attr;
unsigned char id;
unsigned char rank;
signed short pad;
struct _Position position;
unsigned short radius;
unsigned long radiusSquared;
};
struct _HBox {
signed short flags;
unsigned char id;
unsigned char rank;
signed short minX;
signed short minY;
signed short minZ;
signed short maxX;
signed short maxY;
signed short maxZ;
signed short refMinX;
signed short refMinY;
signed short refMinZ;
signed short refMaxX;
signed short refMaxY;
signed short refMaxZ;
};
struct _HPrim {
unsigned char hpFlags;
unsigned char withFlags;
unsigned char type;
unsigned char segment;
};
struct _HModel {
struct _HPrim* hPrimList;
long numHPrims;
};
struct _HInfo {
long numHFaces;
struct _HFace* hfaceList;
long numHSpheres;
struct _HSphere* hsphereList;
long numHBoxes;
struct _HBox* hboxList;
};
struct _Segment {
long flags;
signed short firstTri;
signed short lastTri;
signed short firstVertex;
signed short lastVertex;
signed short px;
signed short py;
signed short pz;
signed short parent;
struct _HInfo* hInfo;
};
struct MultiSpline {
struct Spline* positional;
struct RSpline* rotational;
struct Spline* scaling;
struct Spline* color;
struct SplineDef curPositional;
struct SplineDef curRotational;
struct SplineDef curScaling;
struct SplineDef curColor;
struct MATRIX curRotMatrix;
};
struct SoundInstance {
unsigned char channel;
unsigned char state;
unsigned char delay;
};
struct ObjectEffect {
unsigned char effectNumber;
void* modifierList[3];
};
struct VramSize {
signed short x;
signed short y;
signed short w;
signed short h;
};
struct _TFace {
struct _Face face;
unsigned char attr;
signed char sortPush;
unsigned short normal;
unsigned short textoff;
};
struct _TVertex {
struct _Vertex vertex;
unsigned short rgb15;
unsigned char r0;
unsigned char g0;
unsigned char b0;
unsigned char code;
};
struct EventAliasCommandStruct {
struct _Instance* hostInstance;
signed short newanim;
signed short newframe;
signed short interpframes;
signed short speed;
};
struct Intro {
char name[16];
long intronum;
long UniqueID;
struct _Rotation rotation;
struct _Position position;
signed short maxRad;
long maxRadSq;
long flags;
va_list data;
struct _Instance* instance;
struct MultiSpline* multiSpline;
va_list dsignal;
signed short specturalLightGroup;
signed short meshColor;
struct _Position spectralPosition;
signed short spad;
};
struct _Terrain {
signed short UnitChangeFlags;
signed short spad;
long lpad2;
long numIntros;
struct Intro* introList;
long numVertices;
long numFaces;
long numNormals;
struct _TVertex* vertexList;
struct _TFace* faceList;
struct _Normal* normalList;
struct DrMoveAniTex* aniList;
struct _BSPNode* sbspRoot;
va_list StreamUnits;
struct TextureFT3* StartTextureList;
struct TextureFT3* EndTextureList;
struct _SBSPLeaf* sbspStartLeaves;
struct _SBSPLeaf* sbspEndLeaves;
struct _MorphVertex* MorphDiffList;
struct _MorphColor* MorphColorList;
long numBSPTrees;
struct BSPTree* BSPTreeArray;
tp19 morphNormalIdx;
struct _MultiSignal* signals;
};
struct _InstancePool {
long nextInstanceID;
long numFreeInstances;
struct _Instance instance[60];
struct _Instance* first_free;
};
struct _InstanceList {
long numInstances;
struct _Instance* first;
struct _InstancePool* pool;
struct NodeType group[32];
};
struct _ObjectTracker {
char name[16];
struct Object* object;
signed short objectStatus;
signed short numInUse;
va_list vramBlock;
signed char numObjectsUsing;
char objectsUsing[7];
};
struct _BoundingBox {
signed short minX;
signed short minY;
signed short minZ;
signed short maxX;
signed short maxY;
signed short maxZ;
};
struct CDLight {
struct NodeType node;
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char flags;
struct _Sphere sphere;
};
struct _BSPNode {
struct _Sphere_noSq sphere;
signed short a;
signed short b;
signed short c;
signed short flags;
long d;
va_list front;
va_list back;
struct _Sphere_noSq spectralSphere;
signed short front_spectral_error;
signed short back_spectral_error;
signed short front_material_error;
signed short back_material_error;
};
struct _BSPLeaf {
struct _Sphere_noSq sphere;
struct _TFace* faceList;
signed short numFaces;
signed short flags;
struct _BoundingBox box;
struct _BoundingBox spectralBox;
struct _Sphere_noSq spectralSphere;
};
struct _SBSPLeaf {
struct _Sphere_noSq sphere;
tp88 introList;
signed short numIntros;
signed short flags;
tp88 lightList;
signed short numLights;
signed short pad;
};
struct _MorphVertex {
signed short x;
signed short y;
signed short z;
signed short vindex;
signed short hx;
signed short hy;
signed short hz;
};
struct _MorphColor {
signed short morphColor15;
};
struct Level {
struct _Terrain* terrain;
struct LightList* lightList;
long numVMObjects;
struct _VMObject* vmobjectList;
long numSpotLights;
struct SpotLight* spotLightList;
long numPointLights;
struct PointLight* pointLightList;
long numSpotSpecturalLights;
struct SpotLight* spotSpecturalLightList;
long numPointSpecturalLights;
struct PointLight* pointSpecturalLightList;
long numBGObjects;
struct _BGObject* bgObjectList;
long waterZLevel;
unsigned char backColorR;
unsigned char backColorG;
unsigned char backColorB;
unsigned char cpad1;
unsigned char specturalColorR;
unsigned char specturalColorG;
unsigned char specturalColorB;
unsigned char cpad2;
unsigned short fogFar;
unsigned short fogNear;
unsigned short spectralFogFar;
unsigned short spectralFogNear;
unsigned short waterFogFar;
unsigned short waterFogNear;
long depthQBlendStart;
struct LightList* spectrallightList;
long numCameras;
va_list cameraList;
long bspPlaneError;
long numVGroups;
struct _VGroup* vGroupList;
long deathZ;
long flags;
struct _MultiSignal* startSignal;
long numIntros;
struct Intro* introList;
struct DrMoveAniTex* bgAniList;
long numHotSpots;
struct _HotSpot* hotSpotList;
va_list objectNameList;
long depthQFogStart;
long morphLastStep;
versionID worldName;
struct VramSize vramSize;
unsigned short holdFogFar;
unsigned short holdFogNear;
long numberEnemyUnits;
tp82 enemyUnitsNames;
tp85 timesSignalList;
struct _MultiSignal* spectralSignal;
struct _MultiSignal* materialSignal;
struct _MultiSignal* startUnitLoadedSignal;
struct _MultiSignal* startUnitMainSignal;
struct _MultiSignal* startGoingIntoWaterSignal;
struct _MultiSignal* startGoingOutOfWaterSignal;
long unitFlags;
struct _MultiSignal* SignalListStart;
struct _MultiSignal* SignalListEnd;
long numBSPLeaves;
struct EventPointers* PuzzleInstances;
long NumberOfPlanMarkers;
struct _PlanMkr* PlanMarkerList;
long NumberOfSFXMarkers;
struct _SFXMkr* SFXMarkerList;
unsigned long versionNumber;
versionID dynamicMusicName;
long streamUnitID;
struct TClassAttr tClassAttr[16];
short TODLighting[4][3];
tp252 TODbackColor[4][3];
tp253 TODfogNearFar[4][2];
signed short TODRedScale;
signed short TODGrnScale;
signed short TODBluScale;
signed short TODfogNear;
signed short TODfogFar;
signed short short_pad;
unsigned char TODbackColorR;
unsigned char TODbackColorG;
unsigned char TODbackColorB;
unsigned char cpad3;
struct LightGroup* razielLightGroup;
struct LightGroup* razielSpectralLightGroup;
};
struct _SavedCinematic {
struct _Position position;
struct _Position focusPoint;
struct _Position base;
struct _Position targetPos;
struct _Position targetFocusPoint;
struct _Position targetBase;
struct _Rotation baseRot;
struct _Rotation focusRotation;
struct _Rotation targetFocusRotation;
signed short focusDistance;
signed short targetFocusDistance;
struct _SVector focusPointVel;
struct _SVector focusPointAccl;
struct _SVector baseVel;
struct _SVector baseAccl;
long maxVel;
struct MultiSpline* posSpline;
struct MultiSpline* targetSpline;
struct Level* level;
};
struct BSPTree {
struct _BSPNode* bspRoot;
struct _BSPLeaf* startLeaves;
struct _BSPLeaf* endLeaves;
struct _Position globalOffset;
signed short flags;
struct _Position localOffset;
signed short ID;
long splineID;
struct _Instance* instanceSpline;
};
struct LightGroup {
struct MATRIX lightMatrix;
struct MATRIX colorMatrix;
};
struct LightList {
struct CVECTOR ambient;
long numLightGroups;
struct LightGroup* lightGroupList;
};
struct PointLight {
struct NodeType node;
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char flags;
struct _Position position;
signed short radius;
long radiusSquared;
};
struct SpotLight {
struct NodeType node;
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char flags;
struct _Position centroid;
signed short radius;
long radiusSquared;
struct _Position position;
struct _Position direction;
signed short cosFalloffAngle;
signed short attenuationScale;
};
struct LightInfo {
long numPointLights;
struct PointLight pointLightPool[32];
struct NodeType usedPointLightList;
struct NodeType freePointLightList;
struct NodeType activePointLightList;
long numSpotLights;
struct SpotLight spotLightPool[8];
struct NodeType usedSpotLightList;
struct NodeType freeSpotLightList;
struct NodeType activeSpotLightList;
long numSavedColors;
};
struct _VMOffset {
signed short dx;
signed short dy;
signed short dz;
};
struct _VMColorOffset {
signed char dr;
signed char dg;
signed char db;
};
struct _VMInterpolated {
signed short tvIdx;