forked from 1dot13/source
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GameSettings.h
2814 lines (2291 loc) · 96.4 KB
/
GameSettings.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
#ifndef _GAME_SETTINGS__H_
#define _GAME_SETTINGS__H_
#include "Types.h"
#include "Strategic Status.h"
#include "Morale.h"
#include "GameInitOptionsScreen.h"
#include "Campaign Types.h"
#include "environment.h"
#define GAME_INI_FILE "Ja2.ini"
//If you add any options, MAKE sure you add the corresponding string to the Options Screen string array.
// look up : zOptionsScreenHelpText , zOptionsToggleText
//Also, define its initialization and add its load/save to INI lines in : InitGameSettings() , SaveGameSettings() , LoadGameSettings()
//Also, to establish non typical display rules (options screen list) : Establish_Options_Screen_Rules()
enum
{
TOPTION_SPEECH,
TOPTION_MUTE_CONFIRMATIONS,
TOPTION_SUBTITLES,
TOPTION_KEY_ADVANCE_SPEECH,
TOPTION_ANIMATE_SMOKE,
// TOPTION_HIDE_BULLETS,
// TOPTION_CONFIRM_MOVE,
TOPTION_BLOOD_N_GORE,
TOPTION_DONT_MOVE_MOUSE,
TOPTION_OLD_SELECTION_METHOD,
TOPTION_ALWAYS_SHOW_MOVEMENT_PATH,
// TOPTION_TIME_LIMIT_TURNS, //moved to the game init screen
TOPTION_SHOW_MISSES,
TOPTION_RTCONFIRM,
// TOPTION_DISPLAY_ENEMY_INDICATOR, //Displays the number of enemies seen by the merc, ontop of their portrait
TOPTION_SLEEPWAKE_NOTIFICATION,
TOPTION_USE_METRIC_SYSTEM, //If set, uses the metric system
TOPTION_MERC_CASTS_LIGHT,
TOPTION_SMART_CURSOR,
TOPTION_SNAP_CURSOR_TO_DOOR,
TOPTION_GLOW_ITEMS,
TOPTION_TOGGLE_TREE_TOPS,
TOPTION_SMART_TREE_TOPS,
TOPTION_TOGGLE_WIREFRAME,
TOPTION_3D_CURSOR,
TOPTION_CTH_CURSOR,
//Madd:
TOPTION_GL_BURST_CURSOR,
TOPTION_ALLOW_TAUNTS, // changed from drop all - SANDRO
TOPTION_GL_HIGH_ANGLE,
TOPTION_ALLOW_REAL_TIME_SNEAK, // changed from aim levels restriction - SANDRO
//lalien
TOPTION_SPACE_SELECTS_NEXT_SQUAD,
TOPTION_SHOW_ITEM_SHADOW,
TOPTION_SHOW_WEAPON_RANGE_IN_TILES,
TOPTION_TRACERS_FOR_SINGLE_FIRE,
TOPTION_RAIN_SOUND,
TOPTION_ALLOW_CROWS,
TOPTION_ALLOW_SOLDIER_TOOLTIPS,
TOPTION_USE_AUTO_SAVE,
TOPTION_SILENT_SKYRIDER,
//TOPTION_LOW_CPU_USAGE,
TOPTION_ENHANCED_DESC_BOX,
// arynn
TOPTION_TOGGLE_TURN_MODE,
// HEADROCK HAM 4:
TOPTION_ALT_MAP_COLOR,
// WANNE: Moved alternate bullets graphics (tracers) to options
TOPTION_ALTERNATE_BULLET_GRAPHICS,
// BIO LOBOT:
TOPTION_USE_LOGICAL_BODYTYPES,
// CHRISL: HAM 4: Activate/Deactivate NCTH mode
//TOPTION_USE_NCTH,
//Jenilee's Merc Ranks
TOPTION_SHOW_MERC_RANKS,
// WANNE:
TOPTION_SHOW_TACTICAL_FACE_GEAR,
TOPTION_SHOW_TACTICAL_FACE_ICONS,
TOPTION_DISABLE_CURSOR_SWAP, // Disable cursor swapping every second between talk and quick exchange
TOPTION_QUIET_TRAINING, //Madd: mercs don't say gained experience quote while training
TOPTION_QUIET_REPAIRING, //Madd: mercs don't say gained experience quote while repairing items
TOPTION_QUIET_DOCTORING, //Madd: mercs don't say gained experience quote while doctoring
TOPTION_AUTO_FAST_FORWARD_MODE, // automatically fast forward through AI turns
TOPTION_ZOMBIES, // Flugente Zombies: allow zombies
TOPTION_ENABLE_INVENTORY_POPUPS, // the_bob : enable popups for picking items from sector inv
TOPTION_SHOW_LAST_ENEMY, //DBrot: show approximate locations for the last enemies
TOPTION_SHOW_LBE_CONTENT, //DBrot: toggle between the content of an lbe and its attachments
TOPTION_INVERT_WHEEL, //jikuja: invert mouse wheel
// Flugente: mercenary formations
TOPTION_MERCENARY_FORMATIONS,
// sevenfm: new settings
TOPTION_SHOW_ENEMY_LOCATION,
TOPTION_ALT_START_AIM,
TOPTION_ALT_PATHFINDING,
// arynn: Debug/Cheat
TOPTION_CHEAT_MODE_OPTIONS_HEADER,
TOPTION_FORCE_BOBBY_RAY_SHIPMENTS, // force all pending Bobby Ray shipments
TOPTION_CHEAT_MODE_OPTIONS_END,
TOPTION_DEBUG_MODE_OPTIONS_HEADER, // an example options screen options header (pure text)
// HEADROCK HAM 4:
TOPTION_REPORT_MISS_MARGIN,
TOPTION_SHOW_RESET_ALL_OPTIONS, // failsafe show/hide option to reset all options
TOPTION_RESET_ALL_OPTIONS, // a do once and reset self option (button like effect)
TOPTION_RETAIN_DEBUG_OPTIONS_IN_RELEASE, // allow debug options that were set in debug.exe to continue in a rel.exe (debugging release can be beneficial)
TOPTION_DEBUG_MODE_RENDER_OPTIONS_GROUP, // an example option that will show/hide other options
TOPTION_RENDER_MOUSE_REGIONS, // an example of a DEBUG build option
TOPTION_DEBUG_MODE_OPTIONS_END, // an example options screen options divider (pure text)
// this is THE LAST option that exists (intended for debugging the options screen, doesnt do anything, except exist)
TOPTION_LAST_OPTION,
NUM_GAME_OPTIONS, // Toggles prior to this will be able to be toggled by the player
//These options will NOT be toggable by the Player
// JA2Gold
TOPTION_HIDE_BULLETS,
TOPTION_TRACKING_MODE,
NUM_ALL_GAME_OPTIONS,
};
// this enum needs to be kept in sync with z113FeaturesToggleText, z113FeaturesHelpText, and z113FeaturesPanelText
enum
{
FF_FEATURES_SCREEN, // meta!
FF_NCTH,
FF_DROP_ALL,
FF_DROP_ALL_DAMAGED,
FF_SUPPRESSION,
FF_TRIGGER_MASSIVE_ENEMY_COUNTERATTACK_AT_DRASSEN,
FF_AGGRESSIVE_STRATEGIC_AI,
FF_AGGRESSIVE_STRATEGIC_AI_2,
FF_INTEL, // potential issue: enabling this feature mid-campaign may require users to manually re-open the email for the RIS website...
FF_PRISONERS,
FF_MINES_REQUIRE_WORKERS,
FF_ENEMY_AMBUSHES,
FF_ENEMY_ASSASSINS,
FF_ENEMY_ROLES,
FF_ENEMY_ROLE_MEDIC,
FF_ENEMY_ROLE_OFFICER,
FF_ENEMY_ROLE_GENERAL,
FF_KERBERUS,
FF_FOOD,
FF_DISEASE,
FF_DYNAMIC_OPINIONS,
FF_DYNAMIC_DIALOGUE,
FF_ASD,
FF_ASD_HELICOPTERS,
FF_ENEMY_VEHICLES_CAN_MOVE,
FF_ZOMBIES,
FF_BLOODCAT_RAIDS,
FF_BANDIT_RAIDS,
FF_ZOMBIE_RAIDS,
FF_MILITIA_VOLUNTEER_POOL,
FF_ALLOW_TACTICAL_MILITIA_COMMAND,
FF_ALLOW_STRATEGIC_MILITIA_COMMAND,
FF_MILITIA_USE_SECTOR_EQUIPMENT,
FF_MILITIA_REQUIRE_RESOURCES,
FF_ENHANCED_CLOSE_COMBAT_SYSTEM,
FF_IMPROVED_INTERRUPT_SYSTEM,
FF_OVERHEATING,
FF_ALLOW_RAIN,
FF_ALLOW_LIGHTNING,
FF_ALLOW_SANDSTORM,
FF_ALLOW_SNOW,
FF_MINI_EVENTS,
FF_REBEL_COMMAND,
FF_STRATEGIC_TRANSPORT_GROUPS,
NUM_FEATURE_FLAGS,
};
typedef struct
{
INT32 bLastSavedGameSlot; // The last saved game number goes in here
UINT8 ubMusicVolumeSetting; // Volume Setting
UINT8 ubSoundEffectsVolume; // Volume Setting
UINT8 ubSpeechVolume; // Volume Setting
//The following are set from the status of the toggle boxes in the Options Screen
BOOLEAN fOptions[ NUM_ALL_GAME_OPTIONS + 1 ]; // Toggle Options (Speech, Subtitles, Show Tree Tops, etc.. )
//The following are set from the status of the toggle boxes in the Features Screen
BOOLEAN fFeatures[NUM_FEATURE_FLAGS];
UINT32 uiMeanwhileScenesSeenFlags; // Bit Vector describing seen 'mean whiles..' (not sure why this is in Game Settings )
BOOLEAN fHideHelpInAllScreens; // Controls Help "do not show help again" checkbox
#ifdef JA2UB
//JA25UB
BOOLEAN fPlayerFinishedTheGame;
#endif
UINT8 ubSizeOfDisplayCover; // The number of grids the player designates thru "Delete + '=' or '-'"
UINT8 ubSizeOfLOS; // The number of grids the player designates thru "End + '=' or '-'"
// The number of grids the player designates thru "End + '=' or '-'"
#ifdef JA2UB
UINT8 ubFiller[17];
#endif
} GAME_SETTINGS;
// CHRISL: New Enums to track inventory system
enum
{
INVENTORY_OLD = 0,
INVENTORY_NEW = 1,
};
enum
{
ATTACHMENT_OLD = 0,
ATTACHMENT_NEW = 1,
};
//Enums for game styles
enum
{
STYLE_REALISTIC = 0, //the specific indices are there to keep compartibility wiht old saves (back when there were only 2 styles)
STYLE_SCIFI = 1,
STYLE_PLATINUM = 2,
};
enum
{
BR_GOOD = 1,
BR_GREAT = 2,
BR_EXCELLENT = 4,
BR_AWESOME = 10,
};
// Added by SANDRO
enum
{
ITEM_PROGRESS_VERY_SLOW = 0,
ITEM_PROGRESS_SLOW,
ITEM_PROGRESS_NORMAL,
ITEM_PROGRESS_FAST,
ITEM_PROGRESS_VERY_FAST,
};
// Flugente: prisoner interrogation results
enum
{
PRISONER_INTERROGATION_DEFECT = 0,
PRISONER_INTERROGATION_INTEL,
PRISONER_INTERROGATION_RANSOM,
PRISONER_INTERROGATION_MAX
};
// Flugente: ASD resource types
enum
{
ASD_MONEY,
ASD_FUEL,
ASD_HELI,
ASD_JEEP,
ASD_TANK,
ASD_ROBOT,
ASD_RESOURCE_MAX
};
// exact gun types
enum
{
NOT_GUN = 0,
GUN_PISTOL,
GUN_M_PISTOL,
GUN_SMG,
GUN_RIFLE,
GUN_SN_RIFLE,
GUN_AS_RIFLE,
GUN_LMG,
GUN_SHOTGUN,
GUN_TYPES_MAX
};
typedef struct
{
BOOLEAN fGunNut;
BOOLEAN fAirStrikes;//Madd
UINT8 ubGameStyle;
UINT8 ubDifficultyLevel;
BOOLEAN fTurnTimeLimit;
BOOLEAN fIronManMode;
UINT8 ubBobbyRayQuality;
UINT8 ubBobbyRayQuantity;
UINT8 ubInventorySystem;
UINT8 ubAttachmentSystem;
UINT8 ubSquadSize;
// SANDRO - added variables
UINT8 ubFiller1; // Flugente: used to be UINT8 ubMaxIMPCharacters;
BOOLEAN fNewTraitSystem;
UINT8 ubFiller2; // Flugente: used to be BOOLEAN fEnemiesDropAllItems;
UINT8 ubProgressSpeedOfItemsChoices;
UINT8 ubFiller3; // Flugente: used to be BOOLEAN fInventoryCostsAP; // ubFiller: From 500 to 499
UINT8 ubFiller7; // Flugente: used to be BOOLEAN fUseNCTH; // ubFiller: From 499 to 498
UINT8 ubFiller4; // Flugente: used to be BOOLEAN fImprovedInterruptSystem; // ubFiller: From 498 to 497
UINT8 ubFiller5; // Flugente: used to be BOOLEAN fBackGround; // ubFiller: From 497 to 496
UINT8 ubFiller6; // Flugente: used to be BOOLEAN fFoodSystem; // ubFiler: From 496 to 495
UINT8 ubIronManMode; // ubFiler: From 495 to 494
// WANNE: Decrease this filler by 1, for each new UINT8 / BOOLEAN variable, so we can maintain savegame compatibility!!
UINT8 ubFiller[494];
} GAME_OPTIONS;
bool UsingNewInventorySystem();
bool UsingNewAttachmentSystem();
bool UsingNewCTHSystem();
BOOLEAN UsingFoodSystem();
BOOLEAN UsingBackGroundSystem();
BOOLEAN UsingImprovedInterruptSystem();
BOOLEAN UsingInventoryCostsAPSystem();
BOOLEAN IsNIVModeValid(bool checkRes = true);
// Snap: Options read from an INI file in the default of custom Data directory
typedef struct
{
UINT32 iGameStartingTime; //Lalien: game starting time
UINT32 iFirstArrivalDelay;
BOOLEAN fSellAll;
INT16 iPriceModifier;
// SANDRO was here - some changes done
INT32 iIMPProfileCost;
BOOLEAN fDynamicIMPProfileCost;
INT32 iMinAttribute;
INT32 iMaxAttribute;
INT32 iImpAttributePoints;
INT32 iMaxZeroBonus;
INT32 iIMPStartingLevelCostMultiplier;
INT32 iBonusPointsForDisability;
INT32 iBonusPointsPerSkillNotTaken;
INT32 iMaxMilitiaPerSector;
INT32 iTrainingSquadSize;
INT32 iMilitiaTrainingCost;
INT32 iRegularCostModifier;
INT32 iVeteranCostModifier;
INT32 iMinLoyaltyToTrain;
// Flugente: militia volunteer pool
BOOLEAN fMilitiaVolunteerPool;
FLOAT dMilitiaVolunteerGainFactorHourly;
FLOAT dMilitiaVolunteerGainFactorLiberation;
FLOAT dMilitiaVolunteerMultiplierFarm;
INT32 iMaxEnemyGroupSize;
BOOLEAN fMercDayOne;
BOOLEAN fAllMercsAvailable;
// tais: Any AIM merc on assignment?
UINT8 fMercsOnAssignment;
// tais: Soldiers wear any armour
UINT8 fSoldiersWearAnyArmour;
INT8 iPlayerAPBonus;
////////////////////////////////////
// added by SANDRO
INT16 sEnemyAdminCtHBonusPercent;
INT16 sEnemyRegularCtHBonusPercent;
INT16 sEnemyEliteCtHBonusPercent;
INT8 sEnemyAdminEquipmentQualityModifier;
INT8 sEnemyRegularEquipmentQualityModifier;
INT8 sEnemyEliteEquipmentQualityModifier;
INT8 sEnemyAdminDamageResistance;
INT8 sEnemyRegularDamageResistance;
INT8 sEnemyEliteDamageResistance;
BOOLEAN fAssignTraitsToEnemy;
BOOLEAN fAssignTraitsToMilitia;
INT8 bAssignedTraitsRarity;
BOOLEAN fCamoRemoving;
INT8 bCamoKitArea; // silversurfer added this. It defines how much of the body can be painted with camo kits (usually face and hands).
BOOLEAN fEnhancedCloseCombatSystem;
BOOLEAN fImprovedInterruptSystem;
UINT8 ubBasicPercentRegisterValueIIS;
UINT8 ubPercentRegisterValuePerLevelIIS;
UINT8 ubBasicReactionTimeLengthIIS;
BOOLEAN fAllowCollectiveInterrupts;
BOOLEAN fAllowInstantInterruptsOnSight;
BOOLEAN fNoEnemyAutoReadyWeapon;
BOOLEAN fReducedInstantDeath;
BOOLEAN fAllNamedNpcsDecideAction;
UINT16 usAwardSpecialExpForQuests;
BOOLEAN fAllowWalkingWithWeaponRaised;
// Flugente: moved this to the ini from the option screen, as players might want to change it later on
BOOLEAN fUseNCTH;
////////////////////////////////////
// Kaiden: Vehicle Inventory change - Added for INI Option
BOOLEAN fVehicleInventory;
///////////////////////////////////////
// changed/added these - SANDRO
UINT8 sMercsAutoresolveOffenseBonus;
UINT8 sMercsAutoresolveDeffenseBonus;
// Flugente: more ambush options
BOOLEAN fEnableChanceOfEnemyAmbushes;
INT8 bChanceModifierEnemyAmbushes;
BOOLEAN fAmbushSpreadMercs;
UINT16 usAmbushSpreadRadiusMercs;
UINT8 uAmbushEnemyEncircle;
UINT16 usAmbushEnemyEncircleRadius1;
UINT16 usAmbushEnemyEncircleRadius2;
UINT8 usSpecialNPCStronger;
// Flugente: should kingpin's hitmen be disguised? This will make them have random clothes among other stuff
BOOLEAN fAssassinsAreDisguised;
// Flugente: does the queen send out assassins that mix among your militia?
BOOLEAN fEnemyAssassins;
UINT8 usAssassinMinimumProgress;
UINT8 usAssassinMinimumMilitia;
UINT32 usAssassinPropabilityModifier;
///////////////////////////////////////
// System settings
BOOLEAN gfCheatMode;
UINT8 gubDeadLockDelay;
BOOLEAN gfEnableEmergencyButton_SkipStrategicEvents;
//Video settings
BOOLEAN gfVSync;
// Flugente: zombie settings
INT8 sZombieRiseBehaviour;
BOOLEAN fZombieSpawnWaves;
INT8 sZombieRiseWaveFrequency;
BOOLEAN fZombieCanClimb;
BOOLEAN fZombieCanJumpWindows;
BOOLEAN fZombieExplodingCivs;
INT8 sEnemyZombieDamageResistance;
INT8 sEnemyZombieBreathDamageResistance;
BOOLEAN fZombieOnlyHeadshotsWork;
INT8 sZombieDifficultyLevel;
BOOLEAN fZombieRiseWithArmour;
BOOLEAN fZombieOnlyHeadShotsPermanentlyKill;
// Flugente: corpse settings
UINT32 usCorpseDelayUntilRotting;
UINT32 usCorpseDelayUntilDoneRotting;
// Flugente: fortification settings
BOOLEAN fFortificationAllowInHostileSector;
// Flugente: can roofs collapse?
BOOLEAN fRoofCollapse;
// Flugente: option to print out tilesets of structure if we press 'f'
BOOLEAN fPrintStructureTileset;
// Flugente: food settings
BOOLEAN fFoodSystem;
UINT16 usFoodDigestionHourlyBaseFood;
UINT16 usFoodDigestionHourlyBaseDrink;
FLOAT sFoodDigestionSleep;
FLOAT sFoodDigestionTravelVehicle;
FLOAT sFoodDigestionTravel;
FLOAT sFoodDigestionAssignment;
FLOAT sFoodDigestionOnDuty;
FLOAT sFoodDigestionCombat;
BOOLEAN fFoodDecayInSectors;
FLOAT sFoodDecayModificator;
BOOLEAN fFoodEatingSounds;
// Flugente: disease settings
BOOLEAN fDisease;
BOOLEAN fDiseaseStrategic;
INT32 sDiseaseWHOSubscriptionCost;
BOOLEAN fDiseaseContaminatesItems;
BOOLEAN fDiseaseSevereLimitations;
//Animation settings
FLOAT giPlayerTurnSpeedUpFactor;
FLOAT giEnemyTurnSpeedUpFactor;
FLOAT giCreatureTurnSpeedUpFactor;
FLOAT giMilitiaTurnSpeedUpFactor;
FLOAT giCivilianTurnSpeedUpFactor;
FLOAT fScrollSpeedFactor;
//Sound settings
UINT32 guiWeaponSoundEffectsVolume;
UINT8 gubMaxPercentNoiseSilencedSound;
BOOLEAN fEnableTA;
UINT8 ubVolumeTA;
BOOLEAN fEnableSSA;
BOOLEAN fDebugSSA;
UINT8 ubVolumeSSA;
BOOLEAN fNWSS;
BOOLEAN fLimitSimultaneousSound;
// WDS - Option to turn off stealing
BOOLEAN fStealingDisabled;
// WANNE: Externalize chance of shipment package lost
UINT32 gubChanceOfShipmentLost;
// Militia Settings
BOOLEAN fAllowTacticalMilitiaCommand;
BOOLEAN gfTrainVeteranMilitia;
// Flugente: militia movement
BOOLEAN fMilitiaStrategicCommand;
BOOLEAN fMilitiaStrategicCommand_MercRequired;
BOOLEAN gfAllowReinforcements;
BOOLEAN gfAllowReinforcementsOnlyInCity;
UINT32 guiTrainVeteranMilitiaDelay;
// SANDRO - added some variables
INT16 sGreenMilitiaAutoresolveStrength;
INT16 sRegularMilitiaAutoresolveStrength;
INT16 sVeteranMilitiaAutoresolveStrength;
INT8 bGreenMilitiaAPsBonus;
INT8 bRegularMilitiaAPsBonus;
INT8 bVeteranMilitiaAPsBonus;
INT16 sGreenMilitiaCtHBonusPercent;
INT16 sRegularMilitiaCtHBonusPercent;
INT16 sVeteranMilitiaCtHBonusPercent;
INT8 bGreenMilitiaDamageResistance;
INT8 bRegularMilitiaDamageResistance;
INT8 bVeteranMilitiaDamageResistance;
INT8 bGreenMilitiaEquipmentQualityModifier;
INT8 bRegularMilitiaEquipmentQualityModifier;
INT8 bVeteranMilitiaEquipmentQualityModifier;
// Flugente - militia equipment
BOOLEAN fMilitiaUseSectorInventory;
BOOLEAN fMilitiaUseSectorInventory_Armour;
BOOLEAN fMilitiaUseSectorInventory_Face;
BOOLEAN fMilitiaUseSectorInventory_Melee;
BOOLEAN fMilitiaUseSectorInventory_Gun;
BOOLEAN fMilitiaUseSectorInventory_Ammo;
BOOLEAN fMilitiaUseSectorInventory_GunAttachments;
BOOLEAN fMilitiaUseSectorInventory_Grenade;
BOOLEAN fMilitiaUseSectorInventory_Launcher;
UINT16 usMilitiaAmmo_Min;
UINT16 usMilitiaAmmo_Max;
UINT16 usMilitiaAmmo_OptimalMagCount;
BOOLEAN fMilitiaUseSectorClassSpecificTaboos;
// Flugente: militia resources
BOOLEAN fMilitiaResources;
FLOAT fMilitiaResources_ProgressFactor;
FLOAT fMilitiaResources_ItemClassMod_Ammo_Bullet;
FLOAT fMilitiaResources_ItemClassMod_Gun;
FLOAT fMilitiaResources_ItemClassMod_Armour;
FLOAT fMilitiaResources_ItemClassMod_Melee;
FLOAT fMilitiaResources_ItemClassMod_Bomb;
FLOAT fMilitiaResources_ItemClassMod_Grenade;
FLOAT fMilitiaResources_ItemClassMod_Face;
FLOAT fMilitiaResources_ItemClassMod_LBE;
FLOAT fMilitiaResources_ItemClassMod_Attachment_Low;
FLOAT fMilitiaResources_ItemClassMod_Attachment_Medium;
FLOAT fMilitiaResources_ItemClassMod_Attachment_High;
FLOAT fMilitiaResources_WeaponMod[GUN_TYPES_MAX];
// Flugente - allow accessing other mercs inventory via 'stealing'
BOOLEAN fAccessOtherMercInventories;
// Moa - weight of filled backpack lowers our AP
BOOLEAN fBackPackWeightLowersAP;
// sevenfm: enemy gun jams
BOOLEAN fEnemyJams;
// use new code for random
BOOLEAN fNewRandom;
// determine if battle was defeat
UINT8 ubDefeatMode;
// WDS - Improve Tony's and Devin's inventory like BR's
// silversurfer: not used anymore, see "Tactical\XML_Merchants.cpp" for "useBRSetting"
// BOOLEAN tonyUsesBRSetting;
// BOOLEAN devinUsesBRSetting;
// WDS - Smart goggle switching
BOOLEAN smartGoggleSwitch;
// WDS - Automatically flag mines
BOOLEAN automaticallyFlagMines;
// Flugente: display an animation on any active timed bomb
BOOLEAN fTimeBombWarnAnimations;
// WDS - Automatically try to save when an assertion failure occurs
BOOLEAN autoSaveOnAssertionFailure;
UINT32 autoSaveTime;
//JMich
UINT16 guiMaxWeaponSize;
UINT16 guiMaxItemSize;
UINT16 guiOIVSizeNumber;
// Flugente: this change allows to target head/torso/legs of prone targets. This option will be removed once accepted
BOOLEAN fAllowTargetHeadAndLegIfProne;
//Sight range
UINT32 ubStraightSightRange;
INT8 ubBrightnessVisionMod[16];
BOOLEAN gfAllowLimitedVision;
UINT8 usLowerVisionWhileRunning;
BOOLEAN gfShiftFUnloadWeapons;
BOOLEAN gfShiftFRemoveAttachments;
// Rain settings
BOOLEAN gfAllowRain;
UINT16 gusWeatherPerDayRain;
UINT32 gusRainChancePerDay;
UINT32 gusRainMinLength;
UINT32 gusRainMaxLength;
UINT32 guiMaxRainDrops;
// Thunder settings
BOOLEAN gfAllowLightning;
UINT32 guiMinLightningInterval;
UINT32 guiMaxLightningInterval;
UINT32 guiMinDLInterval;
UINT32 guiMaxDLInterval;
UINT32 guiProlongLightningIfSeenSomeone;
UINT32 guiChanceToDoLightningBetweenTurns;
// Sandstorm settings
BOOLEAN gfAllowSandStorms;
UINT16 gusWeatherPerDaySandstorm;
UINT32 gusSandStormsChancePerDay;
UINT32 gusSandStormsMinLength;
UINT32 gusSandStormsMaxLength;
// Snow settings
BOOLEAN gfAllowSnow;
UINT16 gusWeatherPerDaySnow;
UINT32 gusSnowChancePerDay;
UINT32 gusSnowMinLength;
UINT32 gusSnowMaxLength;
// weather penalties
UINT32 ubWeaponReliabilityReduction[WEATHER_FORECAST_MAX];
FLOAT dBreathGainReduction[WEATHER_FORECAST_MAX];
FLOAT dVisDistDecrease[WEATHER_FORECAST_MAX];
FLOAT dHearingReduction[WEATHER_FORECAST_MAX];
// Flugente: this controls what dangers we face in different sectors
// Snakes can attack mercs in water
BOOLEAN gfAllowSnakes;
// WDS - Progress settings
UINT32 ubGameProgressPortionKills;
UINT32 ubGameProgressPortionControl;
UINT32 ubGameProgressPortionIncome;
UINT32 ubGameProgressPortionVisited;
UINT32 ubGameProgressMinimum;
INT32 bGameProgressModifier;
// Event settings
UINT32 ubGameProgressStartMadlabQuest;
UINT32 ubGameProgressMikeAvailable;
UINT32 ubGameProgressIggyAvaliable;
BOOLEAN ubSendTroopsToDrassen;
// Flugente: new counterattacks and other new AI tactics
UINT8 ubAgressiveStrategicAI;
UINT32 ubGameProgressOffensiveStage1;
UINT32 ubGameProgressOffensiveStage2;
// WDS - make number of mercenaries, etc. be configurable
// group sizes
UINT32 ubGameMaximumNumberOfPlayerMercs;
UINT32 ubGameMaximumNumberOfPlayerVehicles;
UINT32 ubGameMaximumNumberOfEnemies;
UINT32 ubGameMaximumNumberOfCreatures;
UINT32 ubGameMaximumNumberOfRebels;
UINT32 ubGameMaximumNumberOfCivilians;
//Gameplay settings
INT32 iExplosivesDamageModifier;
INT32 iGunDamageModifier;
INT32 iGunRangeModifier;
INT32 iMeleeDamageModifier;
// WDS - New AI
BOOLEAN useNewAI;
BOOLEAN gfInvestigateSector;
BOOLEAN gfReassignPendingReinforcements;
// Flugente: ASD
BOOLEAN fASDActive;
INT32 gASDResource_Cost[ASD_RESOURCE_MAX];
INT32 gASDResource_BuyTime[ASD_RESOURCE_MAX];
BOOLEAN fASDAssignsTanks;
BOOLEAN fASDAssignsJeeps;
BOOLEAN fASDAssignsRobots;
INT32 gASDResource_Fuel_Tank;
INT32 gASDResource_Fuel_Jeep;
INT32 gASDResource_Fuel_Robot;
// Flugente: enemy heli
BOOLEAN fEnemyHeliActive;
UINT8 usEnemyHeliMinimumProgress;
UINT8 gEnemyHeliMaxHP;
UINT16 gEnemyHeliTimePerHPRepair;
INT32 gEnemyHeliCostPerRepair1HP;
UINT16 gEnemyHeliMaxFuel;
UINT16 gEnemyHeliTimePerFuelRefuel;
UINT8 gEnemyHeliAllowedSAMContacts;
UINT16 gEnemyHeliSAMDamage_Base;
UINT16 gEnemyHeliSAMDamage_Var;
UINT16 gEnemyHeliMANPADSDamage_Base;
UINT16 gEnemyHeliMANPADSDamage_Var;
// Flugente: raids
BOOLEAN gRaid_Bloodcats;
BOOLEAN gRaid_Zombies;
BOOLEAN gRaid_Bandits;
UINT8 gRaidReplenish_BaseValue;
UINT16 gRaidMaxSize_Bloodcats;
UINT16 gRaidMaxSize_Zombies;
UINT16 gRaidMaxSize_Bandits;
UINT8 gRaid_MaxAttackPerNight_Bloodcats;
UINT8 gRaid_MaxAttackPerNight_Zombies;
UINT8 gRaid_MaxAttackPerNight_Bandits;
INT32 ubEnemiesItemDrop;
BOOLEAN gfUseExternalLoadscreens;
UINT32 ubLoadscreenStretchMode; // added by anv
BOOLEAN gfUseLoadScreenHints; // added by Flugente
UINT32 ubAdditionalDelayUntilLoadScreenDisposal; // added by WANNE to have time to read the load screen hints
//tais: nsgi
BOOLEAN gfUseNewStartingGearInterface;
// DBrot: Seperate Starting items for Experts
BOOLEAN fExpertsGetDifferentChoices;
BOOLEAN gfUseAutoSave;
//Merc Assignment settings
INT32 ubAssignmentUnitsPerDay;
INT32 ubMinutesForAssignmentToCount;
BOOLEAN fSleepDisplayFailNotification;
FLOAT fAdministrationPointsPerPercent;
UINT16 fAdministrationMaxPercent;
FLOAT fExplorationPointsModifier;
INT32 ubTrainingSkillMin;
INT32 ubTrainingSkillMax;
INT32 ubSelfTrainingDivisor;
INT32 ubInstructedTrainingDivisor;
// HEADROCK HAM 3.5: No longer necessary.
//INT32 ubGunRangeTrainingBonus;
INT32 ubTownMilitiaTrainingRate;
BOOLEAN gfMilitiaTrainingCarryOver; // added by Flugente
// HEADROCK HAM 3.5: No longer necessary.
//INT32 ubMaxMilitiaTrainersPerSector;
INT32 ubTeachBonusToTrain;
INT32 ubRpcBonusToTrainMilitia;
INT32 ubMinSkillToTeach;
INT32 ubLowActivityLevel;
INT32 ubMediumActivityLevel;
INT32 ubHighActivityLevel;
INT32 ubDoctoringRateDivisor;
INT32 ubHospitalHealingRate;
INT32 ubBaseMedicalSkillToDealWithEmergency;
INT32 ubMultiplierForDifferenceInLifeValueForEmergency;
INT32 ubPointCostPerHealthBelowOkLife;//OKLIFE = 15
BOOLEAN fAllowBandagingDuringTravel;
INT32 ubRepairCostPerJam;
INT32 ubRepairRateDivisor;
INT32 ubCleaningRateDivisor;
// Flugente: intel
BOOLEAN fIntelResource;
//Misc settings
BOOLEAN fAmmoDynamicWeight; //Pulmu
BOOLEAN fEnableCrepitus;
BOOLEAN fCrepitusAttackAllTowns;
BOOLEAN fEnableAllWeaponCaches;
BOOLEAN fEnableAllTerrorists;
BOOLEAN gfRevealItems;
BOOLEAN gfShowBackpackOwner;
BOOLEAN fEnableArmorCoverage; // ShadoWarrior for Captain J's armor coverage
// ShadoWarrior: Tooltip changes (start)
UINT8 ubSoldierTooltipDetailLevel;
BOOLEAN fEnableDynamicSoldierTooltips;
BOOLEAN fEnableSoldierTooltipLocation;
BOOLEAN fEnableSoldierTooltipBrightness;
BOOLEAN fEnableSoldierTooltipRangeToTarget;
BOOLEAN fEnableSoldierTooltipID;
BOOLEAN fEnableSoldierTooltipOrders;
BOOLEAN fEnableSoldierTooltipAttitude;
BOOLEAN fEnableSoldierTooltipActionPoints;
BOOLEAN fEnableSoldierTooltipHealth;
BOOLEAN fEnableSoldierTooltipEnergy;
BOOLEAN fEnableSoldierTooltipMorale;
BOOLEAN fEnableSoldierTooltipShock; //Moa: debug tooltip only
BOOLEAN fEnableSoldierTooltipSuppressionPoints; //Moa: debug tooltip only
BOOLEAN fEnableSoldierTooltipSuppressionInfo; //sevenfm: additional suppression info
BOOLEAN fEnableSoldierTooltipTraits; // added by SANDRO
BOOLEAN fEnableSoldierTooltipHelmet;
BOOLEAN fEnableSoldierTooltipVest;
BOOLEAN fEnableSoldierTooltipLeggings;
BOOLEAN fEnableSoldierTooltipHeadItem1;
BOOLEAN fEnableSoldierTooltipHeadItem2;
BOOLEAN fEnableSoldierTooltipWeapon;
BOOLEAN fEnableSoldierTooltipSecondHand;
BOOLEAN fEnableSoldierTooltipBigSlot1;
BOOLEAN fEnableSoldierTooltipBigSlot2;
BOOLEAN fEnableSoldierTooltipBigSlot3;
BOOLEAN fEnableSoldierTooltipBigSlot4;
BOOLEAN fEnableSoldierTooltipBigSlot5;
BOOLEAN fEnableSoldierTooltipBigSlot6;
BOOLEAN fEnableSoldierTooltipBigSlot7;
// ShadoWarrior: Tooltip changes (end)
//SCORE: UDT related
BOOLEAN gfAllowUDTRange;
BOOLEAN gfAllowUDTDetail;
INT8 ubUDTModifier;
// sevenfm: debug tooltip for AI
BOOLEAN fEnableSoldierTooltipDebugAI;
//Kaiden MERC Deaths Externalized:
BOOLEAN gfMercsDieOnAssignment;
// Lesh: slow enemy items choice progress
BOOLEAN fSlowProgressForEnemyItemsChoice;
//afp - use bullet tracers
BOOLEAN gbBulletTracer;
// CHRISL: option to allow Slay to remain as a hired PC
BOOLEAN fEnableSlayForever;
// Bob: % chance Slay will leave every hour if left alone in sector
UINT16 ubHourlyChanceSlayWillLeave;
// Flugente: gear kits are always available, even if they've been bought before
BOOLEAN fGearKitsAlwaysAvailable;
// anv: playable Speck
BOOLEAN fEnableRecruitableSpeck;
// anv: John Kulba becomes recruitable as a merc after finishing escort quest
BOOLEAN fEnableRecruitableJohnKulba;
UINT16 ubRecruitableJohnKulbaDelay;
// anv: enable JA1 natives as MERC mercs
BOOLEAN fEnableRecruitableJA1Natives;
UINT32 usMERCBankruptWarning; // Flugente: if outstanding debt exceeds this, Speck will complain about player's outstanding debts
// CHRISL: Setting to turn off the description and stack popup options from the sector inventory panel
BOOLEAN fSectorDesc;
// WANNE: Restrict female enemies from beeing in the queens army (except Female Elite enemies)?
BOOLEAN fRestrictFemaleEnemiesExceptElite;
// HEADROCK: Enhanced Item Description Box ON/OFF
// WANNE: Changed from BOOLEAN to INT32!
INT32 iEnhancedDescriptionBox;
//WarmSteel - New Attachment System?
BOOLEAN fUseDefaultSlots;
UINT32 usAttachmentDropRate;
INT16 iMaxEnemyAttachments;
// Flugente: class specific gun/item choice
BOOLEAN fSoldierClassSpecificItemTables;
//** ddd
//enable ext mouse key
BOOLEAN fExtMouseKeyEnabled;
// sevenfm: new mouse commands
BOOLEAN bAlternateMouseCommands;
INT32 iQuickItem1;
INT32 iQuickItem2;
INT32 iQuickItem3;
INT32 iQuickItem4;
INT32 iQuickItem5;
INT32 iQuickItem6;
INT32 iQuickItem7;
INT32 iQuickItem8;
INT32 iQuickItem9;
INT32 iQuickItem0;
// for small progress bar
BOOLEAN fSmallSizeProgressBar;
BOOLEAN fAutoHideProgressBar;
// anv: hide stuff on roof in explored rooms at ground level view (sandbags and other crap)
BOOLEAN fHideExploredRoomRoofStructures;
BOOLEAN fAdditionalDecals; // Flugente: show additional decals on objects (cracked walls, blood spatters etc.)
// anv: map color variants
UINT8 ubRadarMapModeDay;
UINT8 ubRadarMapModeNight;
UINT8 ubOverheadMapModeDay;
UINT8 ubOverheadMapModeNight;
//enable ext mouse key
BOOLEAN bAltAimEnabled;
BOOLEAN bAimedBurstEnabled;
INT16 uAimedBurstPenalty;
BOOLEAN bWeSeeWhatMilitiaSeesAndViceVersa;
BOOLEAN bAllowWearSuppressor;
BOOLEAN bLazyCivilians;
BOOLEAN bNeutralCiviliansAvoidPlayerMines; //sevenfm: Neutral civilians can detect mines with MAPELEMENT_PLAYER_MINE_PRESENT flag set
BOOLEAN bExtraCivilians; // Flugente: add civilians via LUA
BOOLEAN bExtraMerchants; // Flugente: add non-profile-based merchants via LUA
BOOLEAN bAddSmokeAfterExplosion;
BOOLEAN bAddLightAfterExplosion;
BOOLEAN bAllowExplosiveAttachments;
BOOLEAN bAllowSpecialExplosiveAttachments;
BOOLEAN fDelayedGrenadeExplosion;
INT16 iChanceSayAnnoyingPhrase;
BOOLEAN bNewTacticalAIBehavior;
FLOAT uShotHeadPenalty;
FLOAT fShotHeadMultiplier;
INT16 iPenaltyShootUnSeen;
BOOLEAN fNoStandingAnimAdjustInCombat; // Flugente: in turnbased combat, do not adjust animation after arriving at target location
BOOLEAN fInventoryCostsAP; // manipulating the inventory in tactical costs AP
//Inventory AP Weight Divisor
FLOAT uWeightDivisor;
FLOAT fOutOfGunRangeOrSight;
// anv: automatically return to team panel on turn end (better situation overview during enemy turn)
BOOLEAN fAutoCollapseInventoryOnTurnEnd;
// anv: vehicle interface options
BOOLEAN fAddPassengerToAnySquad;
BOOLEAN fPassengerLeavingSwitchToNewSquad;
// anv: tanks can move!
BOOLEAN fEnemyTanksCanMoveInTactical;
BOOLEAN fEnemyTanksDontSpareShells;