globalsettings.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. /*
  2. ** Command & Conquer Renegade(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /***********************************************************************************************
  19. *** Confidential - Westwood Studios ***
  20. ***********************************************************************************************
  21. * *
  22. * Project Name : Commando *
  23. * *
  24. * $Archive:: /Commando/Code/Combat/globalsettings.h $*
  25. * *
  26. * $Author:: Greg_h $*
  27. * *
  28. * $Modtime:: 11/27/01 10:56a $*
  29. * *
  30. * $Revision:: 33 $*
  31. * *
  32. *---------------------------------------------------------------------------------------------*
  33. * Functions: *
  34. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  35. #ifndef GLOBALSETTINGS_H
  36. #define GLOBALSETTINGS_H
  37. #ifndef ALWAYS_H
  38. #include "always.h"
  39. #endif
  40. #ifndef DEFINITION_H
  41. #include "definition.h"
  42. #endif
  43. #ifndef RECT_H
  44. #include "rect.h"
  45. #endif
  46. /*
  47. ** GlobalSettingsDef - Defintion class for a GlobalSettingsDef
  48. */
  49. class GlobalSettingsDef : public DefinitionClass
  50. {
  51. public:
  52. GlobalSettingsDef( void );
  53. ~GlobalSettingsDef( void );
  54. virtual uint32 Get_Class_ID( void ) const;
  55. virtual PersistClass * Create( void ) const ;
  56. virtual bool Save( ChunkSaveClass &csave );
  57. virtual bool Load( ChunkLoadClass &cload );
  58. virtual const PersistFactoryClass & Get_Factory( void ) const;
  59. DECLARE_EDITABLE( GlobalSettingsDef, DefinitionClass );
  60. static GlobalSettingsDef * Get_Global_Settings (void) { return GlobalSettings; }
  61. int Get_Death_Sound_ID (void) const { return DeathSoundID; }
  62. int Get_EVA_Objectives_Sound_ID (void) const { return EVAObjectivesSoundID; }
  63. int Get_HUD_Help_Text_Sound_ID (void) const { return HUDHelpTextSoundID; }
  64. float Get_Conversation_Dist (void) const { return MaxConversationDist; }
  65. float Get_Combat_Conversation_Dist (void) const { return MaxCombatConversationDist; }
  66. float Get_Soldier_Walk_Speed(void) const { return SoldierWalkSpeed; }
  67. float Get_Soldier_Crouch_Speed(void) const { return SoldierCrouchSpeed; }
  68. float Get_Falling_Damage_Min_Distance(void) const { return FallingDamageMinDistance; }
  69. float Get_Falling_Damage_Max_Distance(void) const { return FallingDamageMaxDistance; }
  70. int Get_Falling_Damage_Warhead(void) const { return FallingDamageWarhead; }
  71. const char * Get_Purchase_GDI_Characters_Texture(void) const { return PurchaseGDICharactersTexture; }
  72. const char * Get_Purchase_GDI_Vehicles_Texture(void) const { return PurchaseGDIVehiclesTexture; }
  73. const char * Get_Purchase_GDI_Equipment_Texture(void) const { return PurchaseGDIEquipmentTexture; }
  74. const char * Get_Purchase_NOD_Characters_Texture(void) const { return PurchaseNODCharactersTexture; }
  75. const char * Get_Purchase_NOD_Vehicles_Texture(void) const { return PurchaseNODVehiclesTexture; }
  76. const char * Get_Purchase_NOD_Equipment_Texture(void) const { return PurchaseNODEquipmentTexture; }
  77. const char * Get_Purchase_NOD_MUT_Characters_Texture(void) const { return PurchaseNODMUTCharactersTexture; }
  78. const char * Get_Purchase_NOD_MUT_Vehicles_Texture(void) const { return PurchaseNODMUTVehiclesTexture; }
  79. const char * Get_Purchase_NOD_MUT_Equipment_Texture(void) const { return PurchaseNODMUTEquipmentTexture; }
  80. const char * Get_Purchase_GDI_MUT_Characters_Texture(void) const { return PurchaseGDIMUTCharactersTexture; }
  81. const char * Get_Purchase_GDI_MUT_Vehicles_Texture(void) const { return PurchaseGDIMUTVehiclesTexture; }
  82. const char * Get_Purchase_GDI_MUT_Equipment_Texture(void) const { return PurchaseGDIMUTEquipmentTexture; }
  83. int Get_Encyclopedia_Event_String_ID(void) const { return EncyclopediaEventStringID; }
  84. float Get_Stealth_Distance_Human(void) const { return StealthDistanceHuman; }
  85. float Get_Stealth_Distance_Vehicle(void) const { return StealthDistanceVehicle; }
  86. float Get_MP_Stealth_Distance_Human(void) const { return MPStealthDistanceHuman; }
  87. float Get_MP_Stealth_Distance_Vehicle(void) const { return MPStealthDistanceVehicle; }
  88. protected:
  89. int DeathSoundID;
  90. int EVAObjectivesSoundID;
  91. int HUDHelpTextSoundID;
  92. float MaxConversationDist;
  93. float MaxCombatConversationDist;
  94. float SoldierWalkSpeed;
  95. float SoldierCrouchSpeed;
  96. float FallingDamageMinDistance;
  97. float FallingDamageMaxDistance;
  98. StringClass PurchaseGDICharactersTexture;
  99. StringClass PurchaseGDIVehiclesTexture;
  100. StringClass PurchaseGDIEquipmentTexture;
  101. StringClass PurchaseNODCharactersTexture;
  102. StringClass PurchaseNODVehiclesTexture;
  103. StringClass PurchaseNODEquipmentTexture;
  104. StringClass PurchaseGDIMUTCharactersTexture;
  105. StringClass PurchaseGDIMUTVehiclesTexture;
  106. StringClass PurchaseGDIMUTEquipmentTexture;
  107. StringClass PurchaseNODMUTCharactersTexture;
  108. StringClass PurchaseNODMUTVehiclesTexture;
  109. StringClass PurchaseNODMUTEquipmentTexture;
  110. int EncyclopediaEventStringID;
  111. int FallingDamageWarhead;
  112. float StealthDistanceHuman;
  113. float StealthDistanceVehicle;
  114. float MPStealthDistanceHuman;
  115. float MPStealthDistanceVehicle;
  116. static GlobalSettingsDef * GlobalSettings;
  117. };
  118. /*
  119. ** HumanLoiterGlobalSettingsDef - Defintion class for a HumanLoiterGlobalSettingsDef
  120. */
  121. class HumanLoiterGlobalSettingsDef : public DefinitionClass
  122. {
  123. public:
  124. HumanLoiterGlobalSettingsDef( void );
  125. ~HumanLoiterGlobalSettingsDef( void );
  126. virtual uint32 Get_Class_ID( void ) const;
  127. virtual PersistClass * Create( void ) const ;
  128. virtual bool Save( ChunkSaveClass &csave );
  129. virtual bool Load( ChunkLoadClass &cload );
  130. virtual const PersistFactoryClass & Get_Factory( void ) const;
  131. DECLARE_EDITABLE( HumanLoiterGlobalSettingsDef, DefinitionClass );
  132. float Get_Activation_Delay( void ) { return ActivationDelay; }
  133. const char * Pick_Animation( void );
  134. static HumanLoiterGlobalSettingsDef * Get_Default_Loiters( void );
  135. static HumanLoiterGlobalSettingsDef * Get_Weapon_Loiters( void );
  136. static HumanLoiterGlobalSettingsDef * Get_Weaponless_Loiters( void );
  137. protected:
  138. float ActivationDelay;
  139. float LoiterFrequency;
  140. DynamicVectorClass<StringClass> LoiterAnimList;
  141. static HumanLoiterGlobalSettingsDef * DefaultLoiters;
  142. static HumanLoiterGlobalSettingsDef * WeaponLoiters;
  143. static HumanLoiterGlobalSettingsDef * WeaponlessLoiters;
  144. };
  145. /*
  146. ** HUDGlobalSettingsDef - Defintion class for a HUDGlobalSettingsDef
  147. */
  148. class HUDGlobalSettingsDef : public DefinitionClass
  149. {
  150. public:
  151. HUDGlobalSettingsDef( void );
  152. virtual ~HUDGlobalSettingsDef( void );
  153. virtual uint32 Get_Class_ID( void ) const;
  154. virtual PersistClass * Create( void ) const ;
  155. virtual bool Save( ChunkSaveClass &csave );
  156. virtual bool Load( ChunkLoadClass &cload );
  157. virtual const PersistFactoryClass & Get_Factory( void ) const;
  158. DECLARE_EDITABLE( HUDGlobalSettingsDef, DefinitionClass );
  159. static const HUDGlobalSettingsDef * Get_Instance( void ) { return Instance; }
  160. // Colors
  161. const Vector3 & Get_Nod_Color( void ) const { return NodColor; }
  162. const Vector3 & Get_GDI_Color( void ) const { return GDIColor; }
  163. const Vector3 & Get_Neutral_Color( void ) const { return NeutralColor; }
  164. const Vector3 & Get_Mutant_Color( void ) const { return MutantColor; }
  165. const Vector3 & Get_Renegade_Color( void ) const { return RenegadeColor; }
  166. const Vector3 & Get_Primary_Objective_Color( void ) const { return PrimaryObjectiveColor; }
  167. const Vector3 & Get_Secondary_Objective_Color( void ) const { return SecondaryObjectiveColor; }
  168. const Vector3 & Get_Tertiary_Objective_Color( void ) const { return TertiaryObjectiveColor; }
  169. const Vector3 & Get_Health_High_Color( void ) const { return HealthHighColor; }
  170. const Vector3 & Get_Health_Med_Color( void ) const { return HealthMedColor; }
  171. const Vector3 & Get_Health_Low_Color( void ) const { return HealthLowColor; }
  172. const Vector3 & Get_Enemy_Color( void ) const { return EnemyColor; }
  173. const Vector3 & Get_Friendly_Color( void ) const { return FriendlyColor; }
  174. const Vector3 & Get_No_Relation_Color( void ) const { return NoRelationColor; }
  175. public:
  176. Vector3 NodColor;
  177. Vector3 GDIColor;
  178. Vector3 NeutralColor;
  179. Vector3 MutantColor;
  180. Vector3 RenegadeColor;
  181. Vector3 PrimaryObjectiveColor;
  182. Vector3 SecondaryObjectiveColor;
  183. Vector3 TertiaryObjectiveColor;
  184. Vector3 HealthHighColor;
  185. Vector3 HealthMedColor;
  186. Vector3 HealthLowColor;
  187. Vector3 EnemyColor;
  188. Vector3 FriendlyColor;
  189. Vector3 NoRelationColor;
  190. // 2D interface settings
  191. float InfoTextureSize;
  192. Vector2 StarBracketSize;
  193. Vector2 StarBracketOffset;
  194. RectClass StarBracketUV;
  195. Vector2 StarBracketTopSize;
  196. Vector2 StarBracketTopOffset;
  197. RectClass StarBracketTopUV;
  198. Vector2 StarBracketTopArmedSize;
  199. Vector2 StarBracketTopArmedOffset;
  200. RectClass StarBracketTopArmedUV;
  201. Vector2 StarBarSize;
  202. Vector2 StarBarOffset;
  203. RectClass StarBarUV;
  204. Vector2 StarBarEndSize;
  205. Vector2 StarBarEndOffset;
  206. RectClass StarBarEndUV;
  207. Vector2 StarHealthSize;
  208. Vector2 StarHealthOffset;
  209. RectClass StarHealthUV;
  210. Vector2 StarShieldSize;
  211. Vector2 StarShieldOffset;
  212. RectClass StarShieldUV;
  213. Vector2 StarWeaponIconSize;
  214. Vector2 StarWeaponIconOffset;
  215. Vector2 TargetBracketSize;
  216. Vector2 TargetBracketOffset;
  217. RectClass TargetBracketUV;
  218. Vector2 TargetIconSize;
  219. Vector2 TargetIconOffset;
  220. Vector2 TargetNameBarSize;
  221. Vector2 TargetNameBarOffset;
  222. RectClass TargetNameBarUV;
  223. Vector2 TargetNameOffset;
  224. Vector2 TargetBarSize;
  225. Vector2 TargetBarOffset;
  226. RectClass TargetBarUV;
  227. Vector2 TargetBarEndSize;
  228. Vector2 TargetBarEndOffset;
  229. RectClass TargetBarEndUV;
  230. Vector2 TargetHealthSize;
  231. Vector2 TargetHealthOffset;
  232. RectClass TargetHealthUV;
  233. Vector2 TargetShieldSize;
  234. Vector2 TargetShieldOffset;
  235. RectClass TargetShieldUV;
  236. float RadarTextureSize;
  237. Vector2 RadarOffset;
  238. float RadarRadius;
  239. Vector2 RadarFrameSize;
  240. RectClass RadarFrameUV;
  241. Vector2 RadarCompassOffset;
  242. Vector2 RadarCompassSize;
  243. RectClass RadarCompassBaseUV;
  244. Vector2 RadarCompassUVOffset;
  245. RectClass RadarHumanBlipUV;
  246. RectClass RadarVehicleBlipUV;
  247. RectClass RadarStationaryBlipUV;
  248. RectClass RadarObjectiveBlipUV;
  249. RectClass RadarBlipBracketUV;
  250. RectClass RadarSweepUV;
  251. int RadarOnSoundID;
  252. int RadarOffSoundID;
  253. float SniperTextureSize;
  254. RectClass SniperView;
  255. RectClass SniperViewUV;
  256. RectClass SniperScanLineUV;
  257. RectClass SniperBlackCoverUV;
  258. RectClass SniperTiltBar;
  259. float SniperTiltBarRate;
  260. RectClass SniperTiltBarUV;
  261. RectClass SniperTurnBar;
  262. float SniperTurnBarRate;
  263. RectClass SniperTurnBarUV;
  264. RectClass SniperDistanceGraph;
  265. RectClass SniperDistanceGraphUV;
  266. float SniperDistanceGraphMax;
  267. RectClass SniperZoomGraph;
  268. RectClass SniperZoomGraphUV;
  269. RectClass DamageIndicatorUV;
  270. RectClass DamageDiagIndicatorUV;
  271. static HUDGlobalSettingsDef * Instance;
  272. };
  273. /*
  274. ** HumanAnimOverrides
  275. */
  276. class HumanAnimOverrideDef : public DefinitionClass {
  277. public:
  278. HumanAnimOverrideDef( void );
  279. virtual uint32 Get_Class_ID( void ) const;
  280. virtual PersistClass * Create( void ) const ;
  281. virtual bool Save( ChunkSaveClass &csave );
  282. virtual bool Load( ChunkLoadClass &cload );
  283. virtual const PersistFactoryClass & Get_Factory( void ) const;
  284. DECLARE_EDITABLE( HumanAnimOverrideDef, DefinitionClass );
  285. StringClass RunEmptyHands;
  286. StringClass WalkEmptyHands;
  287. StringClass RunAtChest;
  288. StringClass WalkAtChest;
  289. StringClass RunAtHip;
  290. StringClass WalkAtHip;
  291. };
  292. #endif // GLOBALSETTINGS_H