/* ** Command & Conquer Renegade(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ /****************************************************************************** * * FILE * PRDemo.h * * DESCRIPTION * PR Demo level definitions * * PROGRAMMER * Design Team * * VERSION INFO * $Author: Rich_d $ * $Revision: 15 $ * $Modtime: 6/13/00 11:29a $ * $Archive: /Commando/Code/Scripts/PRDemo.h $ * ******************************************************************************/ #ifndef _PRDEMO_H_ #define _PRDEMO_H_ // Defines and Includes #include "toolkit.h" // Custom Types typedef enum { MPR_CUSTOM_START_DEL = SCMD_PRDEMO, MPR_CUSTOM_EXPLODE_BRIDGE_DEL, MPR_CUSTOM_FOLLOW_ME_DEL, MPR_CUSTOM_I_AM_DEAD_DEL, MPR_CUSTOM_ESCORT_ATTACKED_DEL, MPR_CUSTOM_EVAC_CALL_DEL, MPR_CUSTOM_APACHE_GOTO_POSITION_DEL, MPR_CUSTOM_APACHE_SHOOT_DEL, MPR_A01_CUSTOM_ORCA_TURRETSTRIKE_RAD, MPR_A04_CUSTOM_OBELISK_FIRING_RAD, MPR_A05_CUSTOM_TEMPLE_ZONE_ENTERED_RAD, MPR_A05_CUSTOM_MAMMOTH_RAD, MPR_A02_CUSTOM_DRILL_INSTRUCTOR_JDG, MPR_A02_CUSTOM_CADET_1_JDG, MPR_A02_CUSTOM_CADET_2_JDG, MPR_A02_CUSTOM_CADET_3_JDG, MPR_A02_CUSTOM_DRIVEBY_HARVESTER_JDG, } PRCMD_EVENTS; // Custom Parameters typedef enum { MPR_A02_PARAM_CADETS_TEN_HUT_JDG = 0, MPR_A02_PARAM_CADETS_AT_ATTENTION_JDG, MPR_A02_PARAM_CADETS_MADE_MISTAKE_JDG, MPR_A02_PARAM_CADETS_GOTO_INNATE_JDG, MPR_A00_PARAM_HAVOC_IN_ENTER_ZONE_JDG, } PRCMD_PARAMS; // Timers typedef enum { MPR_TIMER_START_DEL = STIMER_PRDEMO, MPR_TIMER_HARVESTER_DONE_DEL, MPR_TIMER_HARVESTER_MOVE_DEL, MPR_TIMER_APACHE_SHOOT_DEL, MPR_TIMER_TIBERIUM_PMP, MPR_TIMER_DELAY_01_PMP, MPR_TIMER_EVAC_PMP, MPR_TIMER_WANDER_PMP, MPR_TIMER_DELAY_01_04_PMP, MPR_TIMER_DELAY_01_03_PMP, MPR_TIMER_DELAY_01_02_PMP, MPR_A01_TIMER_ORCASTRIKE_RAD, MPR_A01_TIMER_ORCASTRIKE_OFF_RAD, MPR_A02_TIMER_CADET_1_TEN_HUT_DELAY_JDG, MPR_A02_TIMER_CADET_1_PUSHUPS_DELAY_JDG, MPR_A02_TIMER_CADET_1_SITUPS_DELAY_JDG, MPR_A02_TIMER_CADET_1_JUMPING_JACKS_DELAY_JDG, MPR_A02_TIMER_CADET_1_MISTAKE_DELAY_JDG, MPR_A02_TIMER_CADET_2_TEN_HUT_DELAY_JDG, MPR_A02_TIMER_CADET_2_PUSHUPS_DELAY_JDG, MPR_A02_TIMER_CADET_2_SITUPS_DELAY_JDG, MPR_A02_TIMER_CADET_2_JUMPING_JACKS_DELAY_JDG, MPR_A02_TIMER_CADET_2_MISTAKE_DELAY_JDG, MPR_A02_TIMER_CADET_3_TEN_HUT_DELAY_JDG, MPR_A02_TIMER_CADET_3_PUSHUPS_DELAY_JDG, MPR_A02_TIMER_CADET_3_SITUPS_DELAY_JDG, MPR_A02_TIMER_CADET_3_JUMPING_JACKS_DELAY_JDG, MPR_A02_TIMER_CADET_3_MISTAKE_DELAY_JDG, MPR_A02_TIMER_DRILL_INSTRUCTOR_ATTACK_DELAY_JDG, MPR_A02_TIMER_CADET_1_ATTACK_DELAY_JDG, MPR_A02_TIMER_CADET_2_ATTACK_DELAY_JDG, MPR_A02_TIMER_CADET_3_ATTACK_DELAY_JDG, MPR_A02_TIMER_DI_PRE_GIVE_ORDER_JDG, MPR_A03_TIMER_BRIDGESCENE_ENGINEER_HAVOC_IN_ZONE_DELAY_JDG, MPR_A03_TIMER_BRIDGESCENE_ENTER_ZONE_EXPLOSION_DELAY_JDG, MPR_A03_TIMER_INJURED_PILOT_CRAWL_1_JDG, MPR_A04_TIMER_SUICIDERUN_NOD_MINIGUNNER_HAVOC_IN_ZONE_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_CHASE_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_CHASE_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_FOLLOW_TANK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_FOLLOW_TANK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_NOD_LIGHTTANK_ATTACK_MEDIUMTANK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_ATTACK_LIGHTTANK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_ATTACK_LIGHTTANK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MEDIUMTANK_ATTACK_LIGHTTANK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_ATTACK_OBELISK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_ATTACK_OBELISK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MEDIUMTANK_ATTACK_OBELISK_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_1_OBELISK_IS_DEAD_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MINIGUNNER_2_OBELISK_IS_DEAD_DELAY_JDG, MPR_A04_TIMER_SUICIDERUN_GDI_MEDIUMTANK_OBELISK_IS_DEAD_DELAY_JDG, MPR_A04_TIMER_OBELISK_FIRING_RAD, MPR_A04_TIMER_OBELISK_STOPFIRING_RAD, MPR_A04_TIMER_OBELISK_PREFIRING_RAD, MPR_A05_TIMER_MAMMOTH_RAD, MPR_A05_TIMER_MAMMOTH_2_RAD, MPR_A05_TIMER_MAMMOTH_3_RAD, MPR_A05_TIMER_DROP_OBJECT_RMV, MPR_A05_TIMER_DIE_RMV, } PRTIMER_TIMERS; // Public Variables bool MPR_nod_dead_PMP; bool MPR_evacing_to_chinook_PMP; bool MPR_A01_startstrike_RAD; // Predefined Constants const Vector3 MPR_A05_tank_move_locations_RAD [4] = { Vector3(-8.0f, 676.0f, 4.0f), // Mammoth Tank temple location Vector3(177.0f, 615.0f, 3.0f), // Airfield Flame Tank airstrip location Vector3(-180.0f, 522.0f, 2.0f), // Temple Flame Tank temple location Vector3(-160.0f, 521.0f, 4.0f) // Temple Flame Tank temple location }; const char * MPR_control_klaxons_RAD [] = { "HONalert", "HONalert", "HONalert", "HONalert", "HONalert" }; const float MPR_A01_orca_attack_stoptime_RAD = 0.2f; // How long the ORCA turret attack should stay on. const float MPR_A01_obelisk_firing_time_RAD = 2.0f; // How much time delay between Obelisk attacks. #define MPR_A02_DRILL_INSTRUCTOR_X1_JDG -57.75f #define MPR_A02_DRILL_INSTRUCTOR_Y1_JDG -12.79f #define MPR_A02_DRILL_INSTRUCTOR_Z1_JDG 2.42f #define MPR_A02_DRILL_INSTRUCTOR_X2_JDG -52.80f #define MPR_A02_DRILL_INSTRUCTOR_Y2_JDG -7.26f #define MPR_A02_DRILL_INSTRUCTOR_Z2_JDG 2.42f #define MPR_A02_CADET_1_X_JDG -51.62f #define MPR_A02_CADET_1_Y_JDG -10.56f #define MPR_A02_CADET_1_Z_JDG 2.42f #define MPR_A02_CADET_2_X_JDG -53.05f #define MPR_A02_CADET_2_Y_JDG -11.93f #define MPR_A02_CADET_2_Z_JDG 2.42f #define MPR_A02_CADET_3_X_JDG -54.58f #define MPR_A02_CADET_3_Y_JDG -13.31f #define MPR_A02_CADET_3_Z_JDG 2.42f #define MPR_A03_BRIDGESCENE_BRIDGE_ID_JDG 16016 // Typedefined Enumerations typedef enum { PUSHUPS = 0, SITUPS, JUMPING_JACKS, } Exercise; Exercise exercise; typedef enum { MPR_A04_SUICIDERUN_LIGHTTANK_ALIVE = 0, MPR_A04_SUICIDERUN_LIGHTTANK_DEAD, } LIGHTTANKState; LIGHTTANKState state; typedef enum { MPR_A04_SUICIDERUN_CONSOLE_ALIVE = 0, MPR_A04_SUICIDERUN_CONSOLE_DEAD, } CONSOLEState; CONSOLEState status; // ID Values that need permanent address in the Level Editor int MPR_A01_BARNZONE_GOTHERE_ID_PMP; int MPR_A01_CIV01_ID_PMP; int MPR_A01_CIV02_ID_PMP; int MPR_A01_CIV03_ID_PMP; int MPR_A01_orca_turret1_RAD; int MPR_A01_orca_turret2_RAD; int MPR_A02_drill_instructor_id_JDG; int MPR_A02_cadet_1_id_JDG; int MPR_A02_cadet_2_id_JDG; int MPR_A02_cadet_3_id_JDG; int MPR_A02_drill_zone_id_JDG; int MPR_A02_driveby_harvester_id_JDG; int MPR_A03_helicopter_injured_nod_pilot_id_JDG; int MPR_A03_bridgescene_enterzone_id_JDG; int MPR_A03_bridgescene_engineer_id_JDG; int MPR_A03_bridgescene_blowupzone_id_JDG; int MPR_A04_suiciderun_enterzone_id_JDG; int MPR_A04_suiciderun_gdi_minigunner_1_id_JDG; int MPR_A04_suiciderun_gdi_minigunner_2_id_JDG; int MPR_A04_suiciderun_nod_minigunner_id_JDG; int MPR_A04_suiciderun_gdi_medium_tank_id_JDG; int MPR_A04_suiciderun_nod_light_tank_id_JDG; int MPR_A05_mammoth_tank_id_RAD; #define MPR_A02_HARVESTER_WAYPATH_JDG 364188 #define MPR_A02_HARVESTER_WAYPATH_START_JDG 364187 #define MPR_A02_HARVESTER_WAYPATH_STOP_JDG 364199 #endif // _PRDEMO_H_