Populous: The Beginning Script 3  1.0.0
Documentation for Populous Script 3 engine
Module_DataTypes.h
Go to the documentation of this file.
1 /*
2  Populous: The Beginning - Script Language Header
3  Brandan Tyler Lasley 2019
4  INTERNAL USE ONLY --- DO NOT DISTRIBUTE
5 */
6 
8 
9 void import(enum modules); // (0x19AE1C)
10 void exit(); // (0x19B06B)
11 bool include(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >); // (0x19B07C)
12 struct Thing * doesMapCellContainWood(struct MapElement *, signed char); // (0x0)
13 bool doesMapCellGroupContainWood(unsigned short, signed char); // (0x0)
14 long getCheapPathCost(union MapPosXZ, union MapPosXZ); // (0xF82DC0)
15 
16 
18 
20 {
22  signed char TweenCount;
23 };
24 
25 struct Beacon
26 {
27  struct eastl::array<struct BeaconDisplayInfo,3> BDInfo;
28  short Count;
29  signed char CurrCellRadius;
30  signed char CurrMaxCellRadius;
33  signed char TimeBeforeSearchStart;
34 };
35 
37 {
38  short Alt;
39  unsigned char Flags;
40  short Radius;
41 };
42 
43 struct Blast
44 {
45  unsigned char AffectAll;
46  short AltIncrement;
47  unsigned char BurningBlast;
49  unsigned char DoneFirstAffect;
50  long Duration;
51  unsigned char Flags;
56 };
57 
59 {
61 };
62 
63 struct Building
64 {
66  struct Coord2D BasePos;
69  signed char Count;
70  unsigned short Damaged;
71  signed char DrawOwner;
72  struct eastl::array<class ObjectProxy,6> Dwellers;
73  unsigned short Flags;
75  signed char LastDamagedBy;
76  unsigned long LastPersonLeftAt;
77  unsigned long LastPersonTrainedAt;
79  signed char NumDwellers;
80  signed char NumExpected;
81  signed char NumExpectedCountDown;
82  unsigned short PersonToBeTrainedIdx;
83  signed char PrevOwner;
84  signed char PrevStage;
85  unsigned char QueueInteractCount;
87  unsigned char QueueReorderPos;
90  signed char TIDIdx;
92  unsigned short TrainingManaCost;
93  short UpgradeCount;
96 };
97 
99 {
100  unsigned short ObjectIdx;
105  unsigned short DiscoveryObjectIdx;
106  unsigned short DrawTableIdx;
107  short GUIButtonId;
108  unsigned short CursorSpriteNum;
109  unsigned short MinBuilders;
110  unsigned short MaxBuilders;
111  unsigned short DfltBuilders;
112  unsigned short ReqdShapeWood;
113  unsigned short ReqdBldgWood;
114  unsigned short AtlantisWoodDecr;
115  unsigned char MaxNumWoodCollectors;
116  unsigned char MaxNumFlatteners;
117  unsigned char MaxNumDwellers;
118  unsigned char MaxNumAttackers;
119  unsigned short WaiterWanderRadius;
120  unsigned short WorkWanderRadius;
122  unsigned short UnitHarmonyIncr;
123  unsigned short TrainingLength;
124  unsigned short ConversionCount;
125  unsigned short DamageThreshold;
126  unsigned char BldgValue;
127  unsigned char ModelProduced;
128  signed char GuiStateGroup;
129  signed char UpgradeLevel;
130  signed char UpgradeModel;
131  signed char ShadowDepth;
132  short UpgradeTime;
136  short AddOnInfo;
137  signed char ArmageddonValue;
138  signed char ArmageddonModel;
139  short FlattenAmt;
141  short MaxAltDiff;
142  unsigned long Flags;
143 };
144 
146 {
147  signed char XO;
148  signed char ZO;
149 };
150 
152 {
153  unsigned char CellsX;
154  unsigned char CellsZ;
155  unsigned short MapIdx;
156 };
157 
158 struct CmdTMIdxs
159 {
160  unsigned short MapIdx;
162 };
163 
165 {
166  unsigned char BldgModel;
167  unsigned char Owner;
172 };
173 
174 struct Commands
175 {
176  unsigned char CommandType;
178  unsigned char Flags;
180  struct CmdTargetInfo u;
181 };
182 
184 {
185  struct eastl::array<unsigned char,48> Value;
186 };
187 
188 struct Coord2D
189 {
190  short Xpos;
191  short Zpos;
192 };
193 
194 struct Coord3D
195 {
196  short Xpos;
197  short Zpos;
198  short Ypos;
199 };
200 
202 {
203  unsigned char Xpos0;
204  unsigned char Xpos1;
205  unsigned char Ypos0;
206  unsigned char Ypos1;
207  unsigned char Zpos0;
208  unsigned char Zpos1;
209 };
210 
211 struct Creature
212 {
213  short AheadAlt;
214  unsigned char AheadAltCount;
215  short Count;
216  short EagleRoll;
217  unsigned long Flags;
218  short Hunger;
220  unsigned char Leadership;
221  short Life;
222  unsigned char MaxMembersInGroup;
223  unsigned char MembersInGroup;
225  short PrefAlt;
226  unsigned char RaiseAlt;
228  short Thirst;
229 };
230 
232 {
233  unsigned char CurrentLevel;
234 };
235 
236 struct DTBeacon
237 {
238  signed char CurrBldgCellRange;
239  signed char CurrDwellerCellRange;
240  signed char CurrMaxCellRange;
242  unsigned char RecalcBldgRange;
243  unsigned char RecalcDwellerRange;
244 };
245 
246 struct Discovery
247 {
248  unsigned char AvailabilityType;
249  unsigned char CountToEffect;
251  unsigned char DiscoveringPlayer;
253  unsigned char DiscoveryType;
255  long ManaAmt;
256  unsigned char TriggerType;
257 };
258 
260 {
261  signed char Model;
262  signed char ObjectiveIndex;
263  signed char Type;
264 };
265 
267 {
269  unsigned char CountToEffect;
271 };
272 
274 {
275  long Count;
276  short Model;
277  short Type;
278 };
279 
280 struct DrawInfo
281 {
282  signed char Alpha;
283  short DrawNum;
284  unsigned char DrawTableIdx;
285  unsigned short Flags;
286  unsigned short FrameCount;
287  unsigned char FrameNum;
288  signed char SeqNum;
289 };
290 
292 {
297 };
298 
300 {
301  struct eastl::array<unsigned char,3> Alpha;
302  struct eastl::array<unsigned char,2> Prob;
303 };
304 
306 {
308  signed char EndArmageddon;
310  signed char LastShamanCastingIdx;
311  struct eastl::array<unsigned char,10> NumPeopleMovePerTurn;
312  struct eastl::array<unsigned char,10> PlayerArenaOrder;
313  unsigned char ProcessBldgDestroy;
314  unsigned char ProcessCameraAngle;
315  unsigned char ProcessCreateArena;
316  unsigned char ProcessLineUpPeople;
317  unsigned char ProcessReincSites;
321 };
322 
324 {
325  signed char CreateOwner;
326 };
327 
329 {
331 };
332 
334 {
335  unsigned short MePos;
336  unsigned char Side;
337 };
338 
340 {
341  signed char Count2;
342  short HorizRadius;
343  unsigned char NumElems;
344  short VertRadius;
345 };
346 
348 {
351  short StageCount;
353 };
354 
356 {
358 };
359 
361 {
362  short FireRadius;
363  short LandRadius;
364  long PrefAlt;
365  long Radius;
366 };
367 
369 {
370  unsigned char Colour;
371  struct eastl::array<struct Coord2D,5> FlyFriends;
372  short PrefOffsetY;
373 };
374 
376 {
377  short Count;
378  short Duration;
380  struct eastl::array<class ObjectProxy,10> AttackedThingsIdxs;
401 };
402 
404 {
405  unsigned char NumElems;
406  unsigned char SS2;
408 };
409 
411 {
412  unsigned short Height;
413  unsigned short MePos;
414  unsigned char Radius;
415  signed char Sense;
416 };
417 
419 {
420  struct Coord2D EndC2D;
424  long Type;
425  unsigned char Water;
426  long XStep;
427  long YStep;
428  long ZStep;
429 };
430 
432 {
433  short CurrRadius;
434  short MaxRadius;
435  long Volume;
436 };
437 
439 {
440  struct eastl::array<struct Coord3D,9> Points;
441  long RandSeed;
442  unsigned char Remainder;
443  unsigned char Stages;
444 };
445 
447 {
448  unsigned char Radius;
449  unsigned short YSpeed;
450 };
451 
453 {
454  unsigned short AngleStep;
455  signed char Direction;
456  unsigned char Lissajoux;
457  unsigned short Phi;
458  unsigned short Radius;
459  unsigned short Theta;
460 };
461 
463 {
464  short FireRadius;
465  unsigned long Flags;
466  short LandRadius;
467 };
468 
470 {
472  short StageCount;
473 };
474 
476 {
477  signed char ReedsPositionCode;
478 };
479 
481 {
483 };
484 
486 {
487  unsigned char ConeHeight;
488  short Count;
489  short Duration;
490  unsigned char NumCircuits;
491  unsigned char NumElements;
492  unsigned char OverWaterCount;
493  unsigned short Rotation;
494  unsigned char TopRadius;
495 };
496 
497 struct Fight
498 {
499  struct eastl::array<class ObjectProxy,6> FighterIdxs;
501  signed char Owner1;
502  signed char Owner2;
503  signed char TotalFighters;
505  signed char WinningOwner;
506 };
507 
508 struct FontNums
509 {
510  unsigned char Debug;
511  unsigned char FlashMsg;
512  unsigned char GameOverMsg;
513  unsigned char GenButtons;
514  unsigned char Input;
515  unsigned char LevelStats;
516  unsigned char Panel;
517  unsigned char PeoplePanel;
518  unsigned char ThingDebug;
519  unsigned char UserMsg;
520  unsigned char VersionInfo;
521  unsigned char VersionInfoSmall;
522 };
523 
524 struct Formation
525 {
526  unsigned char FirstFreePos;
527  unsigned char NumMembers;
528  struct eastl::array<struct BytePosOffsets,12> PosOffsets;
529  struct eastl::array<class ObjectProxy,12> ThingIdxs;
530 };
531 
533 {
537  unsigned long Flags;
538  unsigned long Flags2;
540  short NumParams;
541 };
542 
543 struct General
544 {
545  struct Coord2D BasePos;
546  unsigned char Orient;
547 };
548 
549 struct General3D
550 {
551  short X;
552  short Y;
553  short Z;
554 };
555 
557 {
558  class WoodSearch WoodSearchEngine2;
559 };
560 
562 {
563  signed char PlayerNum;
564  short PhysScreenW;
565  short PhysScreenH;
566  short ScreenW;
567  short ScreenH;
568  short ScreenD;
570  unsigned long Flags;
577 };
578 
580 {
581  struct Level Level;
583  struct eastl::array<struct Player,10> Players;
584  unsigned char CurrNumPlayers;
585  unsigned char CurrMaxNumPlayers;
586  unsigned char CurrObjectBank;
587  unsigned char CurrLevelFlags;
588  signed char GameSpeed;
590  unsigned long SpellsPresentOnLevel;
591  unsigned long BuildingsPresentOnLevel;
596 };
597 
599 {
600  signed char CellsX;
601  signed char CellsZ;
602  signed char Count1;
603  signed char Count2;
604  short CurrDist;
606  unsigned char EnemyPresence;
607  unsigned long GameTurnProcessed;
608  unsigned short MapIdx;
611 };
612 
613 struct Level
614 {
615  struct eastl::array<struct MapElement,16384> MapElements;
616  struct eastl::array<unsigned char,64> WildBuckets;
617 };
618 
620 {
621  unsigned char LevelType;
622  unsigned char ObjectsBankNum;
623  unsigned char LevelFlags;
624  unsigned char NumPlayers;
625 };
626 
627 struct LevelInfo
628 {
629  struct eastl::array<struct Coord2D,10> PlayerStartPositions;
630 };
631 
633 {
634  short Alt;
635  unsigned char Cliff;
637  unsigned long Flags;
638  unsigned short Flags2;
641  unsigned char ObjectShadowAndLavaNum;
642  short OwnerInfo;
643  struct eastl::array<class ObjectList,10> PlayerMapWho;
644  unsigned char Shade1;
645  signed char ShadeIncr;
647 };
648 
649 struct MapPosXZ
650 {
651  unsigned short Pos;
652  struct PosAsXZ XZ;
653 };
654 
656 {
658  short Count;
661 };
662 
663 struct Movement
664 {
665  signed char BldgDieCount;
666  short BldgDrawNum;
667  short CurrAngleXZ;
670  unsigned short LastNavigation;
673  signed char ObjectBlastedCount;
674  unsigned short ObjectBlastedMapIdx;
678  unsigned short WanderFactor;
679 };
680 
682 {
683  short XZ;
684  short ZY;
685 };
686 
688 {
689  struct Coord2D D2;
690  struct Coord3D D3;
691 };
692 
694 {
696  short AngleXZ;
697  struct Coord2D Coord;
699  unsigned long Coords;
700 };
701 
703 {
704  unsigned long GameTurn;
705  unsigned long ProcessThings;
706 };
707 
709 {
710  struct eastl::array<short,3> AngleIncrs;
711  signed char DrawFrame;
712  short FaceIdx;
713  signed char NumPoints;
714  struct eastl::array<struct Points3DWord,4> Points;
715  signed char PolyDrawMode;
717  short YIncr;
718 };
719 
721 {
722  signed char ConstructionStage;
724  short KeyStart;
725  short KeyStop;
726  unsigned char NumFrames;
727  unsigned short Roll;
728  long Scale;
729  unsigned char StopFrame;
730  unsigned short Tilt;
731 };
732 
734 {
735  signed char sortOutNeutralPlayerNum(signed char);
736 };
737 
739 {
769  struct eastl::array<long,20> SproggRatePer256Bands;
797  struct eastl::array<long,8> AltBandSpellRadiusAffectPer256;
798  struct eastl::array<long,8> AltBandSuperRadiusAffectPer256;
799  struct eastl::array<long,6> SpecialConvManaCostPer256Bands;
823 };
824 
826 {
827  unsigned short AttackPower;
828  unsigned char AutoGuardFreq;
829  unsigned char BaseFightEnergy;
830  unsigned char BaseHunger;
831  unsigned char BaseThirst;
834  short ConvValue;
835  unsigned char CPDefenceValue;
836  unsigned long DefaultLife;
837  short DrownAlt;
838  short DrownRate;
839  unsigned char FightPriority;
840  unsigned short Flags;
841  signed char GhostingValue;
842  unsigned char GotoPointDistCheck;
843  unsigned char GuardDiamCmd;
844  unsigned char GuardDiamIdle;
846  unsigned char KilledValue;
847  unsigned char LifeIncrease;
848  short ManaValue;
849  unsigned char MoveInfoIdx;
850  unsigned char Radius;
851  unsigned char SightCells;
855  unsigned char TopState;
856  unsigned char UnemployedState;
857  unsigned char WoodCutTime;
858 };
859 
860 struct Person
861 {
862  short Life;
863  short MaxLife;
864  unsigned char Hunger;
865  unsigned char Thirst;
869 };
870 
872 {
873  unsigned char BloodlustCount;
874  signed char Count2;
875  unsigned char FightGroup;
876  unsigned char GuardPosSlot;
877  unsigned char HypnoTime;
879  unsigned char InvisibleCount;
880  signed char LastDamagedBy;
881  unsigned char OnFireCount;
882  signed char OriginalHypnoOwner;
883  unsigned char ShieldCount;
884  unsigned char SubState2a;
885  unsigned char SubState3;
886  unsigned char SubState4;
887  unsigned short TimeDoingNothing;
888  union PersonOwned::ut u;
889  unsigned char AngelHasKilled;
890  unsigned char MissileFireCount;
891  unsigned char PreacherFlags;
892  unsigned char ShamanFlags;
893  unsigned short SpyDisguiseOwner;
894 };
895 
897 {
899  struct PersonWild Wild;
900 };
901 
903 {
904  unsigned char NextOwner;
905  unsigned char ProcessSummon;
906  struct eastl::array<struct WildSummonInfo,10> SummonInfo;
907  unsigned short TimeBeforeSummonable;
908  unsigned char UnderInfluence;
909 };
910 
911 struct Player
912 {
913  signed char PlayerNum;
915  long Mana;
916  long NumPeople;
919  struct eastl::array<short,20> NumBuildingsOfType;
920  struct eastl::array<short,20> NumBuiltOrPartBuiltBuildingsOfType;
923  struct eastl::array<short,9> NumLocalPeopleInBalloons;
924  struct eastl::array<short,9> NumLocalPeopleInBoats;
925  struct eastl::array<struct eastl::array<short,6>,9> NumLocalPeopleInGuiState;
926  struct eastl::array<short,9> NumLocalPeopleOfType;
927  struct eastl::array<short,5> NumVehiclesOfType;
929  unsigned char ShamanLives;
931  struct eastl::array<long,32> SpellsMana;
932  struct eastl::array<unsigned short,10> PeopleKilled;
933  struct eastl::array<unsigned char,22> SpellsCast;
941  unsigned short NumPeopleConverted;
942  unsigned char SpellDelayCount;
943  signed char PlayerType;
944  unsigned char PlayerActive;
945  signed char MigratedPlayer;
946  long DeadCount;
947 };
948 
950 {
951  struct Thing * Shaman;
952  struct eastl::array<class ObjectList,15> PlayerLists;
953 };
954 
956 {
957  unsigned long BuildingsAvailable;
958  unsigned long BuildingsAvailableLevel;
959  unsigned long BuildingsAvailableOnce;
960  unsigned char Flags;
961  unsigned long SpellsAvailable;
962  unsigned long SpellsAvailableLevel;
963  struct eastl::array<unsigned char,32> SpellsAvailableOnce;
964  unsigned long SpellsNotCharging;
965  unsigned char TrainingManaOff;
966  unsigned short VehiclesAvailable;
967 };
968 
970 {
971  short WX;
972  short WY;
973  short WZ;
974 };
975 
976 struct PosAsXZ
977 {
978  unsigned char X;
979  unsigned char Z;
980 };
981 
982 struct PreFight
983 {
984  struct eastl::array<class ObjectProxy,2> FighterIdxs;
985  class ObjectProxy LinkBldgIdx;
986  signed char Owner1;
987  signed char Owner2;
988 };
989 
990 struct Scenery
991 {
992  short AltOffset;
993  class ObjectProxy BridgeIdx;
994  unsigned char BridgeNum;
995  struct eastl::array<unsigned int,8> Cost;
996  short Duration;
997  unsigned char Flags;
998  short GrowthRate;
999  unsigned char HeadType;
1000  unsigned char IslandNum;
1001  unsigned char LevelDrawNum;
1002  class ObjectProxy LinkTriggerIdx;
1003  long MaxScale;
1004  unsigned char PlayerEnroute;
1005  unsigned char PortalLevel;
1006  unsigned char PortalStatus;
1007  unsigned char PortalType;
1009  short ScaleIncr;
1010  short Type;
1011  unsigned short UnitsEnroute;
1012  unsigned char UserId;
1013  class ObjectProxy WWThingIdx;
1014 };
1015 
1017 {
1018  unsigned short DrawTableIdx;
1023  short DrawNum;
1024  short DrownRate;
1025  short DrownAlt;
1026  unsigned char Colour;
1027  unsigned char TopState;
1028  signed char MoveInfoIdx;
1029  signed char ShadowDepth;
1030  unsigned long Flags;
1031 };
1032 
1033 struct Shape
1034 {
1036  unsigned short AttackDamageDelay;
1037  unsigned char BldgModel;
1038  class ObjectProxy BldgThingIdx;
1039  unsigned char Flags;
1040  signed char LastDamagedBy;
1041  unsigned char NumWorkers;
1042  unsigned char Orient;
1043  unsigned short OriginMapIdx;
1045  unsigned char ShapeIdx;
1046  unsigned char TimeOut;
1047  struct eastl::array<class ObjectProxy,20> WorkerIdxs;
1048 };
1049 
1051 {
1052  short Count;
1053  short Count2;
1054  unsigned char EffectModel;
1055  unsigned char EffectNumParams;
1056  struct eastl::array<short,4> EffectParams;
1057  unsigned char EffectType;
1058  unsigned short Flags;
1059  unsigned char ItemDuration;
1061  struct eastl::array<class ObjectProxy,6> ItemThingIdxs;
1062  unsigned short ShotThingParent;
1063  struct eastl::array<class ObjectProxy,2> SpecialThingIdxs;
1065  struct Coord3D StartCoord;
1066  struct Coord3D TargetCoord;
1067  class ObjectProxy TargetThingIdx;
1068 };
1069 
1071 {
1072  unsigned char BeamClr;
1073  short Count;
1074  unsigned char CurrModel;
1075  unsigned char FallenToGround;
1076  short NumReturns;
1077  class ObjectProxy ReturnBldgIdx;
1078  unsigned char ReturnModel;
1080  class ObjectProxy SoulManIdx;
1081  unsigned char WoodUnitsToDrop;
1082 };
1083 
1085 {
1086  unsigned char ChargePlayer;
1087  struct Coord3D Shot2StartCoord;
1088  class ObjectProxy ShotThingIdx;
1089  struct Coord3D TargetCoord;
1090  class ObjectProxy TargetThingIdx;
1091 };
1092 
1094 {
1095  short Active;
1097  long Cost;
1098  unsigned short Model;
1101  unsigned short DiscoveryDrawIdx;
1107  unsigned long Flags;
1110  unsigned char OneOffMaximum;
1111  unsigned char LSMEOneOffMaximum;
1112  unsigned char ShieldReboundable;
1115  unsigned char PanelSampleType;
1116  unsigned char CreateCastMsg;
1118  short EncyclPage;
1120  unsigned char DrawOffsetX;
1121  unsigned char DrawOffsetY;
1122  struct eastl::array<unsigned char,2> ShotModels;
1123  struct eastl::array<unsigned char,5> EffectModels;
1124 };
1125 
1127 {
1128  unsigned char Colour;
1129  short Duration;
1130  short RadiusCurr;
1131  short RadiusEnd;
1132  short RadiusIncr;
1134 };
1135 
1136 struct TIDThing
1137 {
1139  class ObjectProxy GuardingPersonIdx;
1140  class ObjectProxy PersonFightingBldgIdx;
1141  unsigned short TIDIdx;
1142  unsigned char TIDTypeCode;
1143  unsigned char TIDTypeFlags;
1144 };
1145 
1146 struct TbSprite
1147 {
1148  signed char * Data;
1149  unsigned short Height;
1150  unsigned short Width;
1151 };
1152 
1153 struct Thing
1154 {
1155  bool operator==(const Thing&);
1156  bool operator!=(const Thing&);
1157  unsigned char Type;
1158  unsigned char Model;
1159  signed char Owner;
1160  unsigned char TimeSlice;
1161  unsigned short ThingNum;
1162  short AngleXZ;
1163  unsigned long Flags;
1164  unsigned long Flags2;
1165  unsigned long Flags3;
1166  unsigned char LastAttackCountDown;
1167  unsigned char CurrNumAttackers;
1168  unsigned char State;
1169  unsigned char SubState;
1170  unsigned char MoveInfoIdx;
1172  struct Movement Move;
1173  union ThingPos Pos;
1174  union ThingPos InterpolatePosInc;
1176  struct ThingTypeData u;
1177 };
1178 
1179 struct ThingPos
1180 {
1181  struct Coord2D D2;
1182  struct Coord3D D3;
1183  struct Coord3DDebug D3Debug;
1184 };
1185 
1187 {
1188  class std::shared_ptr<struct AODDrawThing> AODDrawThing;
1189  class std::shared_ptr<struct Beacon> Beacon;
1190  class std::shared_ptr<struct Blast> Blast;
1191  class std::shared_ptr<struct Building> Bldg;
1192  class std::shared_ptr<struct BridgeControl> BridgeControl;
1193  class std::shared_ptr<struct Creature> Creature;
1194  class std::shared_ptr<struct Discovery> Discovery;
1195  class std::shared_ptr<struct DiscoveryMarker> DiscoveryMarker;
1196  class std::shared_ptr<struct DormantTree> DormantTree;
1197  class std::shared_ptr<struct DrawnAtInfo> DrawnAtInfo;
1198  class std::shared_ptr<struct DTBeacon> DTBeacon;
1199  class std::shared_ptr<struct EffectGeneral> Effect;
1200  class std::shared_ptr<struct Fight> Fight;
1201  class std::shared_ptr<struct Formation> Formation;
1202  class std::shared_ptr<struct General> General;
1203  class std::shared_ptr<struct GuardAreaControl> GuardControl;
1204  class std::shared_ptr<struct MedManAttract> MedManAttract;
1205  class std::shared_ptr<struct ObjectThingInfo> ObjectInfo;
1206  class std::shared_ptr<struct ObjectFaceThing> ObjFace;
1207  class std::shared_ptr<struct Person> Pers;
1208  class std::shared_ptr<struct Platform> Platform;
1209  class std::shared_ptr<struct PreFight> PreFight;
1210  class std::shared_ptr<struct Scenery> Scenery;
1211  class std::shared_ptr<struct Shape> Shape;
1212  class std::shared_ptr<struct ShotGeneral> Shot;
1213  class std::shared_ptr<struct SoulConvert> SoulConvert;
1214  class std::shared_ptr<struct SoulMan> SoulMan;
1215  class std::shared_ptr<struct SpellGeneral> Spell;
1216  class std::shared_ptr<struct SpriteCircles> SprCircles;
1217  class std::shared_ptr<struct TIDThing> TIDThing;
1218  class std::shared_ptr<struct Trigger> Trigger;
1219  class std::shared_ptr<struct Vehicle> Vehicle;
1220  class std::shared_ptr<struct WoodDistribControl> WDC;
1221  class std::shared_ptr<struct EffectWhirlwind> Whirlwind;
1222 };
1223 
1225 {
1226  unsigned char Flags;
1227  unsigned char ListFlags;
1228  unsigned char NumModels;
1229 };
1230 
1232 {
1233  struct eastl::array<struct DiscoveryDescription,3> Discoveries;
1234  struct eastl::array<struct PlayerThings,10> PlayerThings;
1235  struct eastl::array<struct ComputerAttributes,10> Attribs;
1236  struct eastl::array<unsigned char,10> Allies;
1237  struct eastl::array<struct ScriptInfo,10> ScriptInfo;
1238  struct ObjectiveDataV2 ObjectiveData;
1239 };
1240 
1241 struct Trigger
1242 {
1243  unsigned char CellRadius;
1244  struct eastl::array<short,10> Counts;
1246  unsigned char CreatePlayerOwned;
1247  unsigned char CurrRadius;
1248  struct eastl::array<unsigned short,10> EditorThingIdxs;
1249  unsigned char Flags;
1250  class ObjectProxy HeadThingIdx;
1252  signed char NumOccurences;
1253  unsigned char NumPlayersCurrPraying;
1256  long PrayTime;
1257  unsigned char RandomValue;
1258  unsigned char ResetCount;
1259  unsigned char StartInactive;
1263  signed char TriggeringPlayer;
1264  unsigned char TriggerType;
1265 };
1266 
1267 struct Vehicle
1268 {
1269  unsigned char CollideWait;
1270  unsigned char DelayBeforeSendingHome;
1271  unsigned char FightGroup;
1272  long Flags;
1273  unsigned char LastUserOwner;
1274  short Life;
1276  signed char NumOccupants;
1277  unsigned char OccupantChangeCount;
1278  struct eastl::array<struct VehicleOccupantInfo,12> Occupants;
1280  unsigned char StuckCount;
1282  short WaitCount;
1283 };
1284 
1286 {
1288  unsigned short ObjectIdx;
1289  unsigned short ToolTipStrId;
1290  signed char MaxNumOccupants;
1291  signed char PositionTableIdx;
1292  unsigned char StandState;
1293  unsigned char TravelState;
1297  short WoodValue;
1298  unsigned short Flags;
1299 };
1300 
1302 {
1303  struct eastl::array<struct WDCItem,16> WoodDistribControl;
1304 };
1305 
1306 struct lists
1307 {
1309  struct eastl::array<struct eastl::array<class ObjectList,96>,12> TypeList;
1311 };
1312 
1313 
1314 
1316 
1317 extern TbInputKey Inkey;
1318 extern TbPalette* palette;
1319 
1320 
1322 
unsigned char CommandType
signed char LastDamagedBy
unsigned short ShotThingParent
unsigned char GuardDiamCmd
struct Coord2D StartC2D
unsigned char ChargePlayer
struct eastl::array< struct BeaconDisplayInfo, 3 > BDInfo
struct eastl::array< unsigned char, 3 > Alpha
unsigned long BuildingsAvailable
class ObjectProxy FireIdx
unsigned char AheadAltCount
long NumWildToRepopulate
unsigned char DelayBeforeSendingHome
long IdleSpecialistsMana
unsigned char QueueReorderPos
unsigned char DiscoveryType
long ShieldNumPeopleAffected
class ObjectProxy ThingIdx
unsigned char LifeIncrease
class ObjectProxy BridgeThingIdx
unsigned short AngleStep
signed char LastDamagedBy
long getCheapPathCost(union MapPosXZ, union MapPosXZ)
unsigned char SubState3
unsigned short TimeDoingNothing
long MaxBuildableAltDiff
struct EffectLightning Lightning
signed char ArmageddonValue
signed char EndArmageddon
short StuckAngleIncr
unsigned short WanderFactor
unsigned char Lissajoux
unsigned short MapIdx
unsigned long Flags3
unsigned char DrawTableIdx
unsigned char ProcessCreateArena
unsigned char DiscoveringPlayer
signed char ShadowDepth
unsigned char CollideTableIdxAndWDTFlags
long LastManaIncr
unsigned char MaxNumDwellers
signed char NumOccupants
unsigned char CollideWait
unsigned char Zpos1
unsigned char MoveInfoIdx
unsigned char VersionInfo
short TriggeredPendingCount
unsigned short TimeBeforeSummonable
unsigned char StartInactive
unsigned char CurrNumAttackers
unsigned long Coords
signed char CurrMaxCellRange
unsigned char BaseHunger
unsigned short Flags
unsigned char NumPlayers
unsigned char EffectModel
unsigned char Flags
unsigned long Flags
short AltOffset
struct eastl::array< struct WildSummonInfo, 10 > SummonInfo
unsigned char DrawOffsetX
unsigned short ObjectBlastedMapIdx
unsigned char Cliff
unsigned short LastNavigation
unsigned char Panel
signed char PrevOwner
unsigned char TopRadius
long MultipleSelectNumber
unsigned char BurningBlast
struct EffectRSPrepare RSPrepare
long SuperWarriorDtRadius
struct eastl::array< class ObjectProxy, 12 > ThingIdxs
unsigned char ObjectShadowAndLavaNum
unsigned long BuildingsPresentOnLevel
unsigned char WoodUnitsToDrop
unsigned char BaseFightEnergy
unsigned char OverWaterCount
long NumDeadSoulConverts
unsigned short CursorSpriteNum
unsigned char FightGroup
union MovementDestInfo CurrDest
unsigned char MaxNumAttackers
unsigned char PlayerActive
unsigned char ShieldCount
signed char NumExpected
unsigned long Flags2
long NumBuildingMarkers
unsigned char BeamClr
struct eastl::array< unsigned char, 64 > WildBuckets
signed char Owner2
unsigned char Zpos0
long LandBridgeMaxAltChange
signed char CurrBldgCellRange
long ShamenDeadManaPer256Gained
long ManaUnspent
struct eastl::array< class ObjectProxy, 6 > FighterIdxs
unsigned short WorkWanderRadius
unsigned long Flags
class ObjectProxy VehicleConstrThingIdx
unsigned short Model
unsigned long Flags2
short ManaTransferCount
unsigned long GameTurn
short MoveMomentumAmt
long MaxWalkableAltDiffShallow
class ObjectProxy TargetIdx
unsigned short MinBuilders
long LightningNumPeopleAffected
short MaxEffectSpeed
signed char PolyDrawMode
unsigned char TriggerType
signed char TriggeringLastTouchedPlayer
unsigned short MapIdx
long ComputerManaAdjustFactor
unsigned char Radius
unsigned short UnitsEnroute
unsigned char SubState4
unsigned char Type
unsigned char NumPlayersCurrPraying
unsigned short DiscoveryDrawIdx
long NumPeople
signed char Direction
long MaxEffectWorldRadius
unsigned char MoveInfoIdx
unsigned short DrawTableIdx
signed char NumPoints
void exit()
signed char PlayerNum
unsigned char Radius
struct Coord2D BasePos
unsigned char FlashMsg
unsigned short ObjectIdx
struct eastl::array< struct Player, 10 > Players
short InactiveTime
unsigned char TopState
unsigned char TIDTypeCode
class FogOfWar FogOfWar
unsigned char BldgValue
short SproggingCount
unsigned char RecalcDwellerRange
long InvisNumPeopleAffected
signed char MoveInfoIdx
unsigned char Flags
long MaxBuildingDestroyAltDiff
signed char DrawFrame
unsigned char AutoGuardFreq
unsigned char SightCells
struct MovementDestAngleInfo Angles
unsigned char BldgModel
unsigned char GenButtons
struct Coord2D BasePos
struct eastl::array< unsigned char, 2 > Prob
unsigned char GuardDiamIdle
unsigned char NumMembers
struct CmdTMIdxs TMIdxs
class ObjectProxy LeaderIdx
short WoodCarrying
long LSMENumWildsPerShot
unsigned char Flags
unsigned short MaxBuilders
unsigned char HypnoTime
unsigned char NumWorkers
struct eastl::array< struct Points3DWord, 4 > Points
long LSMETimeLimitSeconds
unsigned long SpellsAvailable
struct Coord2D StageCoord
struct eastl::array< short, 9 > NumLocalPeopleInBoats
unsigned char CurrMaxNumPlayers
signed char LastDamagedBy
bool operator!=(const ThingNum &lhs, const ObjectProxy &rhs)
struct EffectFireCloud FireCloud
unsigned char NextOwner
signed char Owner2
unsigned short Flags
struct Coord2D Coord
unsigned char CurrRadius
unsigned char PanelSampleType
class ObjectProxy BeaconIdx
unsigned char FightPriority
unsigned char LevelFlags
struct EffectFlatten Flatten
struct eastl::array< long, 8 > AltBandSuperRadiusAffectPer256
struct eastl::array< struct MapElement, 16384 > MapElements
signed char PlayerType
class ObjectProxy QueueLinkIdx
bool doesMapCellGroupContainWood(unsigned short, signed char)
unsigned char OneOffMaximum
unsigned long SpellsNotCharging
unsigned char FightGroup
unsigned short Phi
struct eastl::array< struct BytePosOffsets, 12 > PosOffsets
unsigned short ThingNum
signed char ArmageddonModel
unsigned char MaxNumFlatteners
unsigned short Damaged
signed char TweenCount
long OptimalManaIncome
struct EffectStatueToAOD AODStatue
unsigned char State
unsigned char StandState
unsigned short OriginMapIdx
signed char LastWoodSearchEngineIdx
class ObjectProxy BeaconIdx
struct EffectArmageddon Armageddon
unsigned char PortalType
short SelfPowerSpeed
unsigned char EffectNumParams
unsigned long Flags
unsigned char NumElems
class ObjectProxy UnderDogIdx
unsigned char Radius
signed char GhostingValue
unsigned char ProcessLineUpPeople
unsigned char CreatePlayerOwned
bool operator==(const ThingNum &lhs, const ObjectProxy &rhs)
unsigned long GameTurnProcessed
union MapPosXZ EndMapPos
signed char CurrCellRadius
struct EffectInsectPlague InsectPlague
struct Coord2D StartPos
long NumBuildings
struct eastl::array< class ObjectList, 10 > PlayerMapWho
struct eastl::array< unsigned char, 10 > PlayerArenaOrder
unsigned char BloodlustCount
struct EffectLandAlter LandAlter
struct General3D Velocity
unsigned char FallenToGround
struct EffectFireStorm FireStorm
struct eastl::array< short, 9 > NumLocalPeopleOfType
signed char NumExpectedCountDown
class ObjectProxy WWThingIdx
unsigned short Pos
long BloodlustHealthMultiplier
unsigned short TrainingManaCost
short Duration
unsigned char NumFrames
struct CmdIdxSize TIdxSize
long PreacheeCheckConvFreq
short AngleXZ
long ShamenDeadManaPer256Lost
unsigned char Flags
long HumanManaAdjustFactor
unsigned char Water
short CurrParamValueNum
unsigned char ProcessCameraAngle
short CurrAngleXZ
long AltChangeNoAffectDist
struct eastl::array< class ObjectProxy, 6 > Dwellers
unsigned long LastPersonLeftAt
unsigned char InvisibleCount
short NextNavRegenCount
unsigned short Radius
class ObjectProxy ShapeOrBldgIdx
short ResourceRemaining
class ObjectProxy TargetIdx
signed char DwellCapacityValidity
long LSMEWorldCoordRangeRaiseLower
unsigned char PreacherFlags
unsigned short DrawTableIdx
struct eastl::array< unsigned short, 10 > PeopleKilled
unsigned char Xpos0
struct PosAsXZ XZ
short MaxCellRadius
struct eastl::array< unsigned char, 22 > SpellsCast
signed char SeqNum
long SuperWarriorBlastDamageTower
long LSMENumTreesPerShot
struct EffectEarthquake Earthquake
struct Coord2D EndC2D
unsigned char LSMEOneOffMaximum
unsigned char ModelProduced
unsigned short Height
unsigned long Flags
signed char Alpha
short AltIncrement
signed char PrevStage
unsigned char Flags
long FriendliesAffectedByBlast
unsigned char ThingDebug
struct EffectLandBridge LandBridge
unsigned char Owner
unsigned short Flags2
unsigned short UnitHarmonyIncr
signed char LastShamanCastingIdx
struct NetworkCounts Counts
unsigned long Flags
class ObjectProxy MedManIdx
unsigned char CPDefenceValue
class ObjectList MapWhoLocalList
long BusySpecialistsMana
class ObjectProxy WWThingIdx
unsigned long SpellsAvailableLevel
class WoodSearch WoodSearchEngine2
unsigned char PeoplePanel
unsigned char ItemDuration
signed char DrawOwner
unsigned char MaxMembersInGroup
short VerticalSpeed
unsigned long ProcessThings
short NumCommandees
unsigned char CellRadius
unsigned char NumElements
unsigned char ConeHeight
long NumGhostPeople
unsigned char Orient
unsigned short TIDIdx
signed char CurrDwellerCellRange
struct EffectAlphaInfo AlphaInfo
unsigned short ReqdBldgWood
unsigned short Roll
signed char GameSpeed
signed char Count2
unsigned long Flags
struct Coord2D FinalCoord
signed char NumDwellers
unsigned char Flags
long TotalSpellsMana
unsigned char NumCircuits
struct Coord3D ReincarnSiteCoord
short UpgradeCount
unsigned char ShieldReboundable
signed char TriggeringPlayer
unsigned char AvailabilityType
short ManaTransferRate
unsigned short AttackDamageDelay
unsigned char StopFrame
unsigned char ProcessReincSites
unsigned char DrawOffsetY
class ObjectProxy TargetIdx
unsigned char SubState
long HumanReincStartDelay
long StartNumPeople
unsigned char RandomValue
unsigned char ShamanFlags
unsigned char UnderInfluence
enum Pop3InputKey TbInputKey
unsigned char Flags
signed char * Data
short CountToReactivate
signed char UpgradeModel
long LSMEPointAltAlterAmount
class ObjectProxy DrawLinkThing
unsigned short Width
signed char WinningOwner
unsigned char ProcessSummon
unsigned char CountToEffect
unsigned char StuckCount
short MaxLife
struct EffectOrbiter Orbiter
long TriggerReactivateCount
struct eastl::array< short, 20 > NumBuildingsOfType
unsigned char BaseThirst
struct PersonOwned Owned
union MapPosXZ StartMapPos
class ObjectProxy LinkedThingIdx
unsigned char NumModels
unsigned short VehiclesAvailable
unsigned char QueueInteractCount
unsigned char MaxNumWoodCollectors
unsigned char ResetCount
long SwampNumPeopleAffected
signed char MaxNumOccupants
union PersonThingData u
unsigned long Flags
struct Thing * Shaman
unsigned char GotoPointDistCheck
unsigned long SpellsPresentOnLevel
unsigned char OnFireCount
unsigned char Remainder
unsigned short PersonToBeTrainedIdx
class ObjectProxy AddOnIdx
long DMETimeBeforeRestore
unsigned char IslandNum
struct eastl::array< class ObjectProxy, 10 > AttackedThingsIdxs
unsigned char CellsX
signed char PositionTableIdx
unsigned short AtlantisWoodDecr
unsigned char Colour
unsigned short ConversionCount
unsigned char MissileFireCount
signed char HasBuildingExistedBefore
union PersonOwned::ut u
unsigned long BuildingsAvailableOnce
unsigned char WoodCutTime
unsigned short TrainingLength
unsigned char DoneFirstAffect
struct eastl::array< unsigned char, 48 > Value
long PreacheeConvertChance
signed char TIDIdx
unsigned char SpellDelayCount
unsigned short DiscoveryObjectIdx
unsigned short Tilt
unsigned char AngelHasKilled
signed char MigratedPlayer
class ObjectProxy LinkBldgIdx
struct LevelHeaderv3 ThisLevelHeader
unsigned short Rotation
unsigned long Flags
struct eastl::array< struct Coord3D, 9 > Points
unsigned short SpyDisguiseOwner
unsigned short DamageThreshold
struct eastl::array< short, 3 > AngleIncrs
unsigned short NumPeopleConverted
unsigned short MapIdx
short TriggerCount
short RadiusIncrement
unsigned char PlayerEnroute
signed char ObjectBlastedCount
short CurrCellRadius
short InfluenceFactor
unsigned char MembersInGroup
class ObjectProxy ShapeThingIdx
unsigned char CurrLevelFlags
signed char Owner1
signed char ConstructionStage
unsigned char BldgModel
struct eastl::array< short, 9 > NumLocalPeopleInBalloons
unsigned char HeadType
unsigned char TimeSlice
long SuperWarriorFireRate
unsigned char PortalStatus
unsigned char Shade1
unsigned char Orient
long SuperWarriorBlastDamageShamanInVehiclePer256
signed char ReedsPositionCode
long BloodlustNumPeopleAffected
unsigned char UnemployedState
short CellResourceValue
short OriginalInactiveTime
signed char Owner
unsigned short MePos
unsigned char ShamanLives
unsigned char Z
short AcquiredWood
unsigned char Hunger
long TrainingManaBucketSize
short InterpolateAngleXZInc
long ManaTransferAmt
long DeadCount
unsigned char ReturnModel
unsigned char RaiseAlt
unsigned char Debug
unsigned char TriggerType
unsigned char Stages
struct CmdTargetInfo u
unsigned char LevelDrawNum
unsigned char Model
unsigned char ObjectsBankNum
class ObjectProxy LinkedThingIdx
long MedicineManDtRadius
long AOD2StatueSecsBeforeSeekShaman
unsigned short Flags
long FallOutOfWhirlwindDamage
unsigned char ShapeIdx
unsigned char TrainingManaOff
unsigned short MePos
struct eastl::array< struct eastl::array< short, 6 >, 9 > NumLocalPeopleInGuiState
signed char ShadeIncr
unsigned char TopState
struct EffectLavaFlow LavaFlow
unsigned char AffectAll
struct EffectFlyThing FlyThing
unsigned char LevelType
unsigned short Height
unsigned char KilledValue
class ObjectProxy TmpProcessChild
signed char UpgradeLevel
struct PersonWild Wild
unsigned char UserId
unsigned long LastPersonTrainedAt
unsigned char TIDTypeFlags
unsigned char Input
long BloodlustDamageMultiplier
long SuperWarriorBlastDamage
unsigned char PortalLevel
unsigned char Side
unsigned char CurrObjectBank
short BldgDrawNum
unsigned char UserMsg
signed char sortOutNeutralPlayerNum(signed char)
short GrowthRate
struct EffectAtlantis Atlantis
unsigned char VersionInfoSmall
unsigned char Thirst
unsigned char CurrModel
unsigned char ProcessBldgDestroy
struct Thing * doesMapCellContainWood(struct MapElement *, signed char)
unsigned char Ypos0
unsigned char Colour
short Count
unsigned long DefaultLife
struct eastl::array< struct Coord2D, 5 > FlyFriends
unsigned short FrameCount
unsigned short DfltBuilders
unsigned char Flags
long BloodlustSWarriorBlastRate
unsigned short YSpeed
unsigned char NumElems
unsigned long PermBuildingsPresentOnLevel
unsigned char ListFlags
unsigned short WaiterWanderRadius
unsigned char TimeOut
class ObjectProxy TargetIdx
struct eastl::array< long, 6 > SpecialConvManaCostPer256Bands
signed char TimeBeforeSearchStart
signed char Owner1
class ObjectProxy ChimneySmokeIdx
unsigned char LastUserOwner
struct Coord2D TargetCoord
signed char Count
TbInputKey Inkey
unsigned short ToolTipStrId
unsigned char BridgeNum
class ObjectProxy LinkTriggerIdx
unsigned char CountToEffect
unsigned char Xpos1
unsigned char RecalcBldgRange
signed char CurrMaxCellRadius
struct EffectSwamp Swamp
unsigned char CreateCastMsg
TbPalette * palette
struct eastl::array< long, 8 > AltBandSpellRadiusAffectPer256
signed char NumOccurences
union MovementDestCoordInfo Coords
unsigned char EffectType
unsigned short Flags
unsigned char FirstFreePos
unsigned char EnemyPresence
class ObjectProxy ControlThingIdx
unsigned char X
struct eastl::array< unsigned char, 10 > NumPeopleMovePerTurn
struct eastl::array< short, 5 > NumVehiclesOfType
unsigned char LastAttackCountDown
long Duration
bool include(class std::basic_string< char, struct std::char_traits< char >, class std::allocator< char > >)
unsigned char TravelState
struct eastl::array< long, 20 > SproggRatePer256Bands
signed char Count2
signed char TotalFighters
unsigned short Theta
unsigned char Leadership
long SuperWarriorFireRateTower
long ConvertPersonManaCost
short OtherWallAlt
unsigned char LevelStats
unsigned short ObjectIdx
unsigned short AttackPower
unsigned long BuildingsAvailableLevel
unsigned char Ypos1
struct eastl::array< short, 20 > NumBuiltOrPartBuiltBuildingsOfType
struct eastl::array< long, 32 > SpellsMana
unsigned char Colour
struct eastl::array< struct Coord2D, 10 > PlayerStartPositions
short VehicleAcquiredWood
signed char CreateOwner
unsigned char GameOverMsg
unsigned char SubState2a
unsigned short Flags
class ObjectProxy EffectLinkThing
signed char GuiStateGroup
unsigned char FrameNum
signed char ShadowDepth
unsigned char OccupantChangeCount
signed char OriginalHypnoOwner
short CountToPlayerUpdate
signed char BldgDieCount
unsigned char CellsZ
class ObjectList MapWhoList
long HypnoNumPeopleAffected
unsigned char GuardPosSlot
short NavigationCount
unsigned char CurrNumPlayers
struct EffectMeteor Meteor
struct Coord2D StartPos
unsigned short ReqdShapeWood