SPECIAL.H 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. /*
  2. ** Command & Conquer(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. /* $Header: F:\projects\c&c\vcs\code\special.h_v 2.15 16 Oct 1995 16:47:36 JOE_BOSTIC $ */
  19. /***********************************************************************************************
  20. *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
  21. ***********************************************************************************************
  22. * *
  23. * Project Name : Command & Conquer *
  24. * *
  25. * File Name : SPECIAL.H *
  26. * *
  27. * Programmer : Joe L. Bostic *
  28. * *
  29. * Start Date : 02/27/95 *
  30. * *
  31. * Last Update : February 27, 1995 [JLB] *
  32. * *
  33. *---------------------------------------------------------------------------------------------*
  34. * Functions: *
  35. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  36. #ifndef SPECIAL_H
  37. #define SPECIAL_H
  38. class SpecialClass
  39. {
  40. public:
  41. void Init(void) {
  42. IsScrollMod = false;
  43. IsGross = false;
  44. IsHealthBar = true;
  45. IsEasy = false;
  46. IsDifficult = false;
  47. IsSpeedBuild = false;
  48. IsDefenderAdvantage = true;
  49. IsVisibleTarget = false;
  50. IsVariation = false;
  51. IsJurassic = false;
  52. IsJuvenile = false;
  53. IsSmartDefense = false;
  54. IsTreeTarget = false;
  55. IsMCVDeploy = false;
  56. IsMonoEnabled = false;
  57. IsInert = false;
  58. IsShowPath = false;
  59. IsBarOn = false;
  60. IsThreePoint = false;
  61. IsTGrowth = true;
  62. IsTSpread = true;
  63. IsTFast = true;
  64. IsRoad = false;
  65. IsScatter = false;
  66. IsCaptureTheFlag = false;
  67. IsNamed = false;
  68. IsFromInstall = false;
  69. IsSeparate = false;
  70. IsFromWChat = false;
  71. }
  72. /*
  73. ** Show the health bar on the enemy units?
  74. */
  75. unsigned IsHealthBar:1;
  76. /*
  77. ** Is the game flagged for easy mode?
  78. */
  79. unsigned IsEasy:1;
  80. /*
  81. ** Is the game flagged for difficult?
  82. */
  83. unsigned IsDifficult:1;
  84. /*
  85. ** Controls the speedy build option -- used for testing.
  86. */
  87. unsigned IsSpeedBuild:1;
  88. /*
  89. ** If the player can build the helipad separate from the helipad and
  90. ** helicopter combo, then this flag will be true.
  91. */
  92. unsigned IsSeparate:1;
  93. /*
  94. ** If the defender has the advantage then this will be true. This flag
  95. ** allows the defender to have a better advantage in combat than the
  96. ** attacker. Moving units will not be able to dish out or take as much
  97. ** damage when this flag is true.
  98. */
  99. unsigned IsDefenderAdvantage:1;
  100. /*
  101. ** If civilian structures are to have a name, then this flag will be
  102. ** set to true. The default case is to just use generic names for
  103. ** civilians.
  104. */
  105. unsigned IsNamed:1;
  106. /*
  107. ** If from install, then play the special installation movie and
  108. ** skip asking them what type of game they want to play.
  109. */
  110. unsigned IsFromInstall:1;
  111. /*
  112. ** If capture the flag mode is on, this flag will be true. With this
  113. ** flag enabled, then the flag is initially placed at the start of
  114. ** the scenario.
  115. */
  116. unsigned IsCaptureTheFlag:1;
  117. /*
  118. ** Is target selecting by other human opponents visible to the player?
  119. */
  120. unsigned IsVisibleTarget:1;
  121. /*
  122. ** If human generated sound effects are to be used, then this
  123. ** flag will be true.
  124. */
  125. unsigned IsJuvenile:1;
  126. /*
  127. ** If friendly units should return fire when fired upon, set this
  128. ** flag to true. The default is only for the enemy units to do this.
  129. */
  130. unsigned IsSmartDefense:1;
  131. /*
  132. ** If targeting of trees is allowed, then this flag will be true.
  133. */
  134. unsigned IsTreeTarget:1;
  135. /*
  136. ** If this flag is true, then the construction yard can undeploy back into an MCV.
  137. */
  138. unsigned IsMCVDeploy:1;
  139. /*
  140. ** If the monochrome debugging output is enabled, then this flag will be true.
  141. */
  142. unsigned IsMonoEnabled:1;
  143. /*
  144. ** This flags controls whether weapons are inert. An inert weapon doesn't do any
  145. ** damage. Effectively, if this is true, then the units never die.
  146. */
  147. unsigned IsInert:1;
  148. /*
  149. ** When this flag is true, the computer findpath algorithm reveals the route being
  150. ** examined. This is used to trace findpath bugs.
  151. */
  152. unsigned IsShowPath:1;
  153. /*
  154. ** All units will display their health bargraph if this is true.
  155. */
  156. unsigned IsBarOn:1;
  157. /*
  158. ** If wheeled vehicles should do a 3-point turn when rotating in place, then
  159. ** this flag is true.
  160. */
  161. unsigned IsThreePoint:1;
  162. /*
  163. ** If Tiberium is allowed to grow, then this flag will be true.
  164. */
  165. unsigned IsTGrowth:1;
  166. /*
  167. ** If Tiberium is allowed to spread, then this flag will be true.
  168. */
  169. unsigned IsTSpread:1;
  170. /*
  171. ** This controls whether Tiberium grows&spreads quickly or not.
  172. */
  173. unsigned IsTFast:1;
  174. /*
  175. ** This flag controls whether the road additional pieces are added to
  176. ** the bottom of buildings. If true, then the roads are NOT added.
  177. */
  178. unsigned IsRoad:1;
  179. /*
  180. ** Controls whether units (especially infantry) will scatter when there
  181. ** is an immediate threat. This gives infantry a "mind of their own" when
  182. ** it comes to self preservation. If set to false, then units will not
  183. ** scatter.
  184. */
  185. unsigned IsScatter:1;
  186. /*
  187. ** Special bonus scenario enabled.
  188. */
  189. unsigned IsJurassic:1;
  190. /*
  191. ** Are score variations allowed?
  192. */
  193. unsigned IsVariation:1;
  194. /*
  195. ** If the gross human splatter marks should be present.
  196. */
  197. unsigned IsGross:1;
  198. /*
  199. ** Disables scrolling over the "options" and "sidebar" tabs.
  200. */
  201. unsigned IsScrollMod:1;
  202. /*
  203. ** Flag that we were spawned from WChat.
  204. */
  205. unsigned IsFromWChat:1;
  206. };
  207. #endif