PRDemo.h 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  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. *
  20. * FILE
  21. * PRDemo.h
  22. *
  23. * DESCRIPTION
  24. * PR Demo level definitions
  25. *
  26. * PROGRAMMER
  27. * Design Team
  28. *
  29. * VERSION INFO
  30. * $Author: Rich_d $
  31. * $Revision: 15 $
  32. * $Modtime: 6/13/00 11:29a $
  33. * $Archive: /Commando/Code/Scripts/PRDemo.h $
  34. *
  35. ******************************************************************************/
  36. #ifndef _PRDEMO_H_
  37. #define _PRDEMO_H_
  38. // Defines and Includes
  39. #include "toolkit.h"
  40. // Custom Types
  41. typedef enum
  42. {
  43. MPR_CUSTOM_START_DEL = SCMD_PRDEMO,
  44. MPR_CUSTOM_EXPLODE_BRIDGE_DEL,
  45. MPR_CUSTOM_FOLLOW_ME_DEL,
  46. MPR_CUSTOM_I_AM_DEAD_DEL,
  47. MPR_CUSTOM_ESCORT_ATTACKED_DEL,
  48. MPR_CUSTOM_EVAC_CALL_DEL,
  49. MPR_CUSTOM_APACHE_GOTO_POSITION_DEL,
  50. MPR_CUSTOM_APACHE_SHOOT_DEL,
  51. MPR_A01_CUSTOM_ORCA_TURRETSTRIKE_RAD,
  52. MPR_A04_CUSTOM_OBELISK_FIRING_RAD,
  53. MPR_A05_CUSTOM_TEMPLE_ZONE_ENTERED_RAD,
  54. MPR_A05_CUSTOM_MAMMOTH_RAD,
  55. MPR_A02_CUSTOM_DRILL_INSTRUCTOR_JDG,
  56. MPR_A02_CUSTOM_CADET_1_JDG,
  57. MPR_A02_CUSTOM_CADET_2_JDG,
  58. MPR_A02_CUSTOM_CADET_3_JDG,
  59. MPR_A02_CUSTOM_DRIVEBY_HARVESTER_JDG,
  60. } PRCMD_EVENTS;
  61. // Custom Parameters
  62. typedef enum
  63. {
  64. MPR_A02_PARAM_CADETS_TEN_HUT_JDG = 0,
  65. MPR_A02_PARAM_CADETS_AT_ATTENTION_JDG,
  66. MPR_A02_PARAM_CADETS_MADE_MISTAKE_JDG,
  67. MPR_A02_PARAM_CADETS_GOTO_INNATE_JDG,
  68. MPR_A00_PARAM_HAVOC_IN_ENTER_ZONE_JDG,
  69. } PRCMD_PARAMS;
  70. // Timers
  71. typedef enum
  72. {
  73. MPR_TIMER_START_DEL = STIMER_PRDEMO,
  74. MPR_TIMER_HARVESTER_DONE_DEL,
  75. MPR_TIMER_HARVESTER_MOVE_DEL,
  76. MPR_TIMER_APACHE_SHOOT_DEL,
  77. MPR_TIMER_TIBERIUM_PMP,
  78. MPR_TIMER_DELAY_01_PMP,
  79. MPR_TIMER_EVAC_PMP,
  80. MPR_TIMER_WANDER_PMP,
  81. MPR_TIMER_DELAY_01_04_PMP,
  82. MPR_TIMER_DELAY_01_03_PMP,
  83. MPR_TIMER_DELAY_01_02_PMP,
  84. MPR_A01_TIMER_ORCASTRIKE_RAD,
  85. MPR_A01_TIMER_ORCASTRIKE_OFF_RAD,
  86. MPR_A02_TIMER_CADET_1_TEN_HUT_DELAY_JDG,
  87. MPR_A02_TIMER_CADET_1_PUSHUPS_DELAY_JDG,
  88. MPR_A02_TIMER_CADET_1_SITUPS_DELAY_JDG,
  89. MPR_A02_TIMER_CADET_1_JUMPING_JACKS_DELAY_JDG,
  90. MPR_A02_TIMER_CADET_1_MISTAKE_DELAY_JDG,
  91. MPR_A02_TIMER_CADET_2_TEN_HUT_DELAY_JDG,
  92. MPR_A02_TIMER_CADET_2_PUSHUPS_DELAY_JDG,
  93. MPR_A02_TIMER_CADET_2_SITUPS_DELAY_JDG,
  94. MPR_A02_TIMER_CADET_2_JUMPING_JACKS_DELAY_JDG,
  95. MPR_A02_TIMER_CADET_2_MISTAKE_DELAY_JDG,
  96. MPR_A02_TIMER_CADET_3_TEN_HUT_DELAY_JDG,
  97. MPR_A02_TIMER_CADET_3_PUSHUPS_DELAY_JDG,
  98. MPR_A02_TIMER_CADET_3_SITUPS_DELAY_JDG,
  99. MPR_A02_TIMER_CADET_3_JUMPING_JACKS_DELAY_JDG,
  100. MPR_A02_TIMER_CADET_3_MISTAKE_DELAY_JDG,
  101. MPR_A02_TIMER_DRILL_INSTRUCTOR_ATTACK_DELAY_JDG,
  102. MPR_A02_TIMER_CADET_1_ATTACK_DELAY_JDG,
  103. MPR_A02_TIMER_CADET_2_ATTACK_DELAY_JDG,
  104. MPR_A02_TIMER_CADET_3_ATTACK_DELAY_JDG,
  105. MPR_A02_TIMER_DI_PRE_GIVE_ORDER_JDG,
  106. MPR_A03_TIMER_BRIDGESCENE_ENGINEER_HAVOC_IN_ZONE_DELAY_JDG,
  107. MPR_A03_TIMER_BRIDGESCENE_ENTER_ZONE_EXPLOSION_DELAY_JDG,
  108. MPR_A03_TIMER_INJURED_PILOT_CRAWL_1_JDG,
  109. MPR_A04_TIMER_SUICIDERUN_NOD_MINIGUNNER_HAVOC_IN_ZONE_DELAY_JDG,
  110. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_CHASE_DELAY_JDG,
  111. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_CHASE_DELAY_JDG,
  112. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_FOLLOW_TANK_DELAY_JDG,
  113. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_FOLLOW_TANK_DELAY_JDG,
  114. MPR_A04_TIMER_SUICIDERUN_NOD_LIGHTTANK_ATTACK_MEDIUMTANK_DELAY_JDG,
  115. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_ATTACK_LIGHTTANK_DELAY_JDG,
  116. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_ATTACK_LIGHTTANK_DELAY_JDG,
  117. MPR_A04_TIMER_SUICIDERUN_GDI_MEDIUMTANK_ATTACK_LIGHTTANK_DELAY_JDG,
  118. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_ATTACK_OBELISK_DELAY_JDG,
  119. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_ATTACK_OBELISK_DELAY_JDG,
  120. MPR_A04_TIMER_SUICIDERUN_GDI_MEDIUMTANK_ATTACK_OBELISK_DELAY_JDG,
  121. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_OBELISK_IS_DEAD_DELAY_JDG,
  122. MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_OBELISK_IS_DEAD_DELAY_JDG,
  123. MPR_A04_TIMER_SUICIDERUN_GDI_MEDIUMTANK_OBELISK_IS_DEAD_DELAY_JDG,
  124. MPR_A04_TIMER_OBELISK_FIRING_RAD,
  125. MPR_A04_TIMER_OBELISK_STOPFIRING_RAD,
  126. MPR_A04_TIMER_OBELISK_PREFIRING_RAD,
  127. MPR_A05_TIMER_MAMMOTH_RAD,
  128. MPR_A05_TIMER_MAMMOTH_2_RAD,
  129. MPR_A05_TIMER_MAMMOTH_3_RAD,
  130. MPR_A05_TIMER_DROP_OBJECT_RMV,
  131. MPR_A05_TIMER_DIE_RMV,
  132. } PRTIMER_TIMERS;
  133. // Public Variables
  134. bool MPR_nod_dead_PMP;
  135. bool MPR_evacing_to_chinook_PMP;
  136. bool MPR_A01_startstrike_RAD;
  137. // Predefined Constants
  138. const Vector3 MPR_A05_tank_move_locations_RAD [4] =
  139. {
  140. Vector3(-8.0f, 676.0f, 4.0f), // Mammoth Tank temple location
  141. Vector3(177.0f, 615.0f, 3.0f), // Airfield Flame Tank airstrip location
  142. Vector3(-180.0f, 522.0f, 2.0f), // Temple Flame Tank temple location
  143. Vector3(-160.0f, 521.0f, 4.0f) // Temple Flame Tank temple location
  144. };
  145. const char * MPR_control_klaxons_RAD [] =
  146. {
  147. "HONalert",
  148. "HONalert",
  149. "HONalert",
  150. "HONalert",
  151. "HONalert"
  152. };
  153. const float MPR_A01_orca_attack_stoptime_RAD = 0.2f; // How long the ORCA turret attack should stay on.
  154. const float MPR_A01_obelisk_firing_time_RAD = 2.0f; // How much time delay between Obelisk attacks.
  155. #define MPR_A02_DRILL_INSTRUCTOR_X1_JDG -57.75f
  156. #define MPR_A02_DRILL_INSTRUCTOR_Y1_JDG -12.79f
  157. #define MPR_A02_DRILL_INSTRUCTOR_Z1_JDG 2.42f
  158. #define MPR_A02_DRILL_INSTRUCTOR_X2_JDG -52.80f
  159. #define MPR_A02_DRILL_INSTRUCTOR_Y2_JDG -7.26f
  160. #define MPR_A02_DRILL_INSTRUCTOR_Z2_JDG 2.42f
  161. #define MPR_A02_CADET_1_X_JDG -51.62f
  162. #define MPR_A02_CADET_1_Y_JDG -10.56f
  163. #define MPR_A02_CADET_1_Z_JDG 2.42f
  164. #define MPR_A02_CADET_2_X_JDG -53.05f
  165. #define MPR_A02_CADET_2_Y_JDG -11.93f
  166. #define MPR_A02_CADET_2_Z_JDG 2.42f
  167. #define MPR_A02_CADET_3_X_JDG -54.58f
  168. #define MPR_A02_CADET_3_Y_JDG -13.31f
  169. #define MPR_A02_CADET_3_Z_JDG 2.42f
  170. #define MPR_A03_BRIDGESCENE_BRIDGE_ID_JDG 16016
  171. // Typedefined Enumerations
  172. typedef enum
  173. {
  174. PUSHUPS = 0,
  175. SITUPS,
  176. JUMPING_JACKS,
  177. } Exercise;
  178. Exercise exercise;
  179. typedef enum
  180. {
  181. MPR_A04_SUICIDERUN_LIGHTTANK_ALIVE = 0,
  182. MPR_A04_SUICIDERUN_LIGHTTANK_DEAD,
  183. } LIGHTTANKState;
  184. LIGHTTANKState state;
  185. typedef enum
  186. {
  187. MPR_A04_SUICIDERUN_CONSOLE_ALIVE = 0,
  188. MPR_A04_SUICIDERUN_CONSOLE_DEAD,
  189. } CONSOLEState;
  190. CONSOLEState status;
  191. // ID Values that need permanent address in the Level Editor
  192. int MPR_A01_BARNZONE_GOTHERE_ID_PMP;
  193. int MPR_A01_CIV01_ID_PMP;
  194. int MPR_A01_CIV02_ID_PMP;
  195. int MPR_A01_CIV03_ID_PMP;
  196. int MPR_A01_orca_turret1_RAD;
  197. int MPR_A01_orca_turret2_RAD;
  198. int MPR_A02_drill_instructor_id_JDG;
  199. int MPR_A02_cadet_1_id_JDG;
  200. int MPR_A02_cadet_2_id_JDG;
  201. int MPR_A02_cadet_3_id_JDG;
  202. int MPR_A02_drill_zone_id_JDG;
  203. int MPR_A02_driveby_harvester_id_JDG;
  204. int MPR_A03_helicopter_injured_nod_pilot_id_JDG;
  205. int MPR_A03_bridgescene_enterzone_id_JDG;
  206. int MPR_A03_bridgescene_engineer_id_JDG;
  207. int MPR_A03_bridgescene_blowupzone_id_JDG;
  208. int MPR_A04_suiciderun_enterzone_id_JDG;
  209. int MPR_A04_suiciderun_gdi_minigunner_1_id_JDG;
  210. int MPR_A04_suiciderun_gdi_minigunner_2_id_JDG;
  211. int MPR_A04_suiciderun_nod_minigunner_id_JDG;
  212. int MPR_A04_suiciderun_gdi_medium_tank_id_JDG;
  213. int MPR_A04_suiciderun_nod_light_tank_id_JDG;
  214. int MPR_A05_mammoth_tank_id_RAD;
  215. #define MPR_A02_HARVESTER_WAYPATH_JDG 364188
  216. #define MPR_A02_HARVESTER_WAYPATH_START_JDG 364187
  217. #define MPR_A02_HARVESTER_WAYPATH_STOP_JDG 364199
  218. #endif // _PRDEMO_H_