Initial commit of Command & Conquer Renegade source code.

This commit is contained in:
LFeenanEA
2025-02-27 16:39:46 +00:00
parent 74ab8fa5e0
commit 58ed459113
4918 changed files with 1366710 additions and 0 deletions

65
Code/Scripts/Common.cpp Normal file
View File

@@ -0,0 +1,65 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Common.cpp
*
* DESCRIPTION
* Programmer Inserted Common Scripting Functions
*
* PROGRAMMER
* Programming Team
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 14 $
* $Modtime: 6/13/00 11:46a $
* $Archive: /Commando/Code/Scripts/Common.cpp $
*
******************************************************************************/
#include "common.h"
/******************************************************************************
*
* NAME
* RandomVector3
*
* DESCRIPTION
* Generate a random vector.
*
* INPUTS
* xRange - Maximum X extent.
* yRange - Maximum Y extent.
* zRange - Maximum Z extent.
*
* RESULTS
* Vector - Randomized vector
*
******************************************************************************/
Vector3 RandomVector3(float xRange, float yRange, float zRange)
{
float x = Commands->Get_Random(-xRange, xRange);
float y = Commands->Get_Random(-yRange, yRange);
float z = Commands->Get_Random(-zRange, zRange);
return Vector3(x, y, z);
}

55
Code/Scripts/Common.h Normal file
View File

@@ -0,0 +1,55 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Common.h
*
* DESCRIPTION
* Common scripting functions and definitions.
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 12 $
* $Modtime: 6/13/00 11:57a $
* $Archive: /Commando/Code/Scripts/Common.h $
*
******************************************************************************/
#ifndef _COMMON_H_
#define _COMMON_H_
#include "customevents.h"
#include "scripts.h"
#include "dprint.h"
#include "groupcontrol.h"
#include "group.h"
#include "vector3.h"
#include "wwmath.h"
#include <string.h>
#include <assert.h>
class Vector3;
Vector3 RandomVector3(float xRange, float yRange, float zRange);
#endif // _COMMON_H_

173
Code/Scripts/CustomEvents.h Normal file
View File

@@ -0,0 +1,173 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
*
* DESCRIPTION
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Patrick $
* $Revision: 7 $
* $Modtime: 11/29/00 5:14p $
* $Archive: /Commando/Code/Scripts/CustomEvents.h $
*
******************************************************************************/
#ifndef _CUSTOMEVENTS_H_
#define _CUSTOMEVENTS_H_
// Custom script events
typedef enum {
// Global events 0-999
SCMD_GLOBAL = 0,
// Sent by subscribers to publishers to request subscription to published events.
// Note: Not all scripts support subscription, if a script subscribes to an object
// that does not publish then it will never receive messages from it.
//
// Param = Subscriber
SCMD_SUBSCRIBE,
// Sent by subscribers to publishers to request removal from subscriber list.
//
// Param = Subscriber
SCMD_UNSUBSCRIBE,
// Sent by the mission controller when an objective has failed to be satisfied.
// (An example of a failed objective would be when an object that was to be
// protected was destroyed or when a timed objective expired.)
//
// Param = Objective Number
SCMD_OBJECTIVE_FAILED,
// Sent by mission controller when an objective has been completed.
//
// Param: Objective Number
SCMD_OBJECTIVE_COMPLETE,
// Sent by mission controller when the mission is lost.
SCMD_MISSION_FAILED,
// Send by mission controller when the mission is accomplished.
SCMD_MISSION_ACCOMPLISHED,
// Refer to Group definition for description of group events.
SCMD_GROUP_EVENT,
// Mission 1 events 1000-1999
SCMD_MISSION1 = 1000,
// Mission 2 events 2000-2999
SCMD_MISSION2 = 2000,
// Mission 3 events 3000-3999
SCMD_MISSION3 = 3000,
// Mission 4 events 4000-4999
SCMD_MISSION4 = 4000,
// Mission 5 events 5000-5999
SCMD_MISSION5 = 5000,
// Mission 6 events 6000-6999
SCMD_MISSION6 = 6000,
// Mission 7 events 7000-7999
SCMD_MISSION7 = 7000,
// Mission 8 events 8000-8999
SCMD_MISSION8 = 8000,
// Mission 9 events 9000-9999
SCMD_MISSION9 = 9000,
// Mission 10 events 10000-10999
SCMD_MISSION10 = 10000,
// Mission 11 events 11000-11999
SCMD_MISSION11 = 11000,
// Mission 12 events 12000-12999
SCMD_MISSION12 = 12000,
// PR Demo events 99000-99999
SCMD_PRDEMO = 99000,
// Programmer generated events begin at 1000000000
} SCRIPT_CUSTOMEVENT;
// Script timer IDs
typedef enum {
// Global timers 0-99
STIMER_GLOBAL = 0,
STIMER_BEAT,
STIMER_SURVIVE,
// Mission 1 timers 100-199
STIMER_MISSION1 = 100,
// Mission 2 timers 200-299
STIMER_MISSION2 = 200,
// Mission 3 timers 300-399
STIMER_MISSION3 = 300,
// Mission 4 timers 400-499
STIMER_MISSION4 = 400,
// Mission 5 timers 500-599
STIMER_MISSION5 = 500,
// Mission 6 timers 600-699
STIMER_MISSION6 = 600,
// Mission 7 timers 700-799
STIMER_MISSION7 = 700,
// Mission 8 timers 800-899
STIMER_MISSION8 = 800,
// Mission 9 timers 900-999
STIMER_MISSION9 = 900,
// Mission 10 timers 1000-1099
STIMER_MISSION10 = 1000,
// Mission 11 timers 1100-1199
STIMER_MISSION11 = 1100,
// Mission 12 timers 1200-1299
STIMER_MISSION12 = 1200,
// PR Demo timers 1300-1399
STIMER_PRDEMO = 1300,
// Toolkit timers 9900 - 9999
STIMER_TOOLKIT = 9900,
} SCRIPT_TIMER;
#endif // _CUSTOMEVENTS_H_

257
Code/Scripts/DLLmain.cpp Normal file
View File

@@ -0,0 +1,257 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
*
* DESCRIPTION
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Patrick $
* $Revision: 10 $
* $Modtime: 8/29/01 4:04p $
* $Archive: /Commando/Code/Scripts/DLLmain.cpp $
*
******************************************************************************/
#include "Windows.H"
#include "scripts.h"
#include "scriptregistrar.h"
//#include "missioncontrol.h"
#include "dprint.h"
/******************************************************************************
*
* NAME
* DllMain
*
* DESCRIPTION
* Main DLL entry point
*
* INPUTS
* HINSTANCE hinst
* DWORD reason
* LPVOID
*
* RESULTS
* BOOL APIENTRY
*
******************************************************************************/
__declspec(dllexport)
BOOL APIENTRY DllMain(HINSTANCE hinst, DWORD reason, LPVOID)
{
if (reason == DLL_PROCESS_ATTACH) {
// DebugPrint("\n========== Script.dll loaded ==========\n");
DebugPrint("Total registered scripts: %d\n", ScriptRegistrar::Count());
} else if (reason == DLL_PROCESS_DETACH) {
// DebugPrint("\n========== Script.dll Unloaded ==========\n");
}
return TRUE;
}
/******************************************************************************
*
* NAME
* Create_Script
*
* DESCRIPTION
* DLL entry to create a script instance.
*
* INPUTS
* const char* name
*
* RESULTS
* ScriptClass*
*
******************************************************************************/
ScriptClass* Create_Script(const char* name)
{
return ScriptRegistrar::CreateScript(name);
}
/******************************************************************************
*
* NAME
* Destroy_Script
*
* DESCRIPTION
* DLL entry to destroy a script instance
*
* INPUTS
* ScriptClass* script
*
* RESULTS
* NONE
*
******************************************************************************/
void Destroy_Script(ScriptClass* script)
{
assert(script != NULL);
delete script;
}
/******************************************************************************
*
* NAME
* Get_Script_Count
*
* DESCRIPTION
* DLL entry to count the number of registered scripts
*
* INPUTS
* NONE
*
* RESULTS
* Count
*
******************************************************************************/
int Get_Script_Count(void)
{
return ScriptRegistrar::Count();
}
/******************************************************************************
*
* NAME
* Get_Script_Name
*
* DESCRIPTION
* DLL entry to retrieve script name.
*
* INPUTS
* int index
*
* RESULTS
* const char*
*
******************************************************************************/
const char* Get_Script_Name(int index)
{
ScriptFactory* factory = ScriptRegistrar::GetScriptFactory(index);
if (factory != NULL) {
return factory->GetName();
}
return NULL;
}
/******************************************************************************
*
* NAME
* Get_Script_Param_Description
*
* DESCRIPTION
* DLL entry to retrieve Script parameter description.
*
* INPUTS
* int index
*
* RESULTS
* const char*
*
******************************************************************************/
const char* Get_Script_Param_Description(int index)
{
ScriptFactory* factory = ScriptRegistrar::GetScriptFactory(index);
if (factory != NULL) {
return factory->GetParamDescription();
}
return NULL;
}
/******************************************************************************
*
* NAME
* Set_Script_Commands
*
* DESCRIPTION
* DLL entry to initialize script commands hooks.
*
* INPUTS
* ScriptCommandsClass* commands
*
* RESULTS
* Success - True if successful; otherwise false.
*
******************************************************************************/
bool Set_Script_Commands(ScriptCommandsClass* commands)
{
assert(commands != NULL);
// Save the commands list
Commands = commands->Commands;
DebugPrint("Setting script commands (Version %d, Size %d)\n",
Commands->Version, Commands->Size);
// Check the commands version number
if ((Commands->Size != sizeof(ScriptCommands))
|| (Commands->Version != SCRIPT_COMMANDS_VERSION)) {
DebugPrint("***** Invalid script commands (Expected Version %d, Size %d)\n",
SCRIPT_COMMANDS_VERSION, sizeof(ScriptCommands));
Commands->Debug_Message("******** Incorrect Script Commands Version\n");
return false;
}
return true;
}
/******************************************************************************
*
* NAME
* Set_Request_Destroy_Func
*
* DESCRIPTION
*
* INPUTS
* Function
*
* RESULTS
* NONE
*
******************************************************************************/
void Set_Request_Destroy_Func(void (*function)(ScriptClass*))
{
assert(function != NULL);
ScriptImpClass::Set_Request_Destroy_Func(function);
}

152
Code/Scripts/DPrint.cpp Normal file
View File

@@ -0,0 +1,152 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/****************************************************************************
*
* FILE
* DPrint.cpp
*
* DESCRIPTION
* Debug printing mechanism
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Byon_g $
* $Revision: 2 $
* $Modtime: 2/13/01 11:02a $
* $Archive: /Commando/Code/Scripts/DPrint.cpp $
*
****************************************************************************/
#ifdef _DEBUG
#include "dprint.h"
#include <windows.h>
#include <stdio.h>
#include <stdarg.h>
#include <assert.h>
#include "scriptcommands.h"
extern ScriptCommands* Commands;
#define LOGFILE_NAME "ScriptLog"
/****************************************************************************
*
* NAME
* DPrint(String, ArgList...)
*
* DESCRIPTION
* Ouput debug print messages to the debugger and log file.
*
* INPUTS
* String - String to output.
* ArgList - Argument list
*
* RESULT
* NONE
*
****************************************************************************/
void __cdecl DebugPrint(const char* string, ...)
{
static char _buffer[1024];
static char _filename[512] = "";
if (string != NULL)
{
va_list va;
// Format string
va_start(va, string);
vsprintf(&_buffer[0], string, va);
va_end(va);
if (Commands != NULL)
{
// Send string to commando executable
Commands->Debug_Message(_buffer);
}
else
{
// Send string to debugger
OutputDebugString(_buffer);
}
#if 0
HANDLE file = INVALID_HANDLE_VALUE;
// Open log file
if (strlen(_filename) == 0)
{
char path[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
GetModuleFileName(GetModuleHandle(NULL), &path[0], sizeof(path));
_splitpath(path, drive, dir, NULL, NULL);
_makepath(_filename, drive, dir, LOGFILE_NAME, "txt");
file = CreateFile(_filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
}
else
{
file = CreateFile(_filename, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
}
// Insert carriage return after newlines
int i = 0;
while (_buffer[i] != '\0')
{
if (_buffer[i] == '\n')
{
int end = strlen(_buffer);
assert((end + 1) <= sizeof(_buffer));
while (end >= i)
{
_buffer[end + 1] = _buffer[end];
end--;
}
_buffer[i] = '\r';
i++;
}
i++;
}
// Send string to log file
if (file != INVALID_HANDLE_VALUE)
{
DWORD written;
SetFilePointer(file, 0, NULL, FILE_END);
WriteFile(file, &_buffer[0], strlen(_buffer), &written, NULL);
CloseHandle(file);
}
#endif
}
}
#endif // _DEBUG

58
Code/Scripts/DPrint.h Normal file
View File

@@ -0,0 +1,58 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/****************************************************************************
*
* FILE
* DPrint.h
*
* DESCRIPTION
* Debug printing mechanism
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Denzil_l $
* $Revision: 1 $
* $Modtime: 3/24/00 1:27p $
* $Archive: /Commando/Code/Scripts/DPrint.h $
*
****************************************************************************/
#ifndef _DPRINT_H_
#define _DPRINT_H_
#ifdef __cplusplus
extern "C"
{
#endif
#ifdef _DEBUG
//! Ouput debug print messages to the debugger and log file.
void __cdecl DebugPrint(const char* string, ...);
#else
#define DebugPrint
#endif
#ifdef __cplusplus
}
#endif
#endif // _DPRINT_H_

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

78
Code/Scripts/DrMobius.cpp Normal file
View File

@@ -0,0 +1,78 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
*
* DESCRIPTION
*
* PROGRAMMER
* Patrick Smith
*
* VERSION INFO
* $Author: Patrick $
* $Revision: 6 $
* $Modtime: 10/30/00 6:53p $
* $Archive: /Commando/Code/Scripts/DrMobius.cpp $
*
******************************************************************************/
#include "scripts.h"
#include "dprint.h"
DECLARE_SCRIPT(Dr_Mobius_Script, "")
{
GameObject *CurrentLeader;
////////////////////////////////////////////////////////////////////
// Created
////////////////////////////////////////////////////////////////////
void Created (GameObject *game_obj)
{
CurrentLeader = NULL;
Commands->Start_Timer (game_obj, this, 0.5F, 777);
return ;
}
////////////////////////////////////////////////////////////////////
// Timer_Expired
////////////////////////////////////////////////////////////////////
void Timer_Expired (GameObject *game_obj, int timer_id)
{
if (timer_id == 777) {
Commands->Innate_Disable (game_obj);
Vector3 pos = Commands->Get_Position(game_obj);
GameObject * p_leader = Commands->Find_Closest_Soldier(pos, 0.1f, 2.0f, true);
if (p_leader != NULL && p_leader != CurrentLeader) {
ActionParamsStruct params;
params.Set_Basic(this, 100, 100);
params.Set_Movement(p_leader, 1.0f, 1.0f);
params.MoveFollow = true;
Commands->Action_Goto(game_obj, params);
CurrentLeader = p_leader;
}
Commands->Start_Timer (game_obj, this, 0.5F, 777);
}
return ;
}
};

269
Code/Scripts/Group.cpp Normal file
View File

@@ -0,0 +1,269 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Group.cpp
*
* DESCRIPTION
* Group manager for GameObjects
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Denzil_l $
* $Revision: 1 $
* $Modtime: 4/17/00 9:47a $
* $Archive: /Commando/Code/Scripts/Group.cpp $
*
******************************************************************************/
#include "group.h"
/******************************************************************************
*
* NAME
* Group::Group
*
* DESCRIPTION
* Group Constructor
*
* INPUTS
* Name - Name of team.
*
* RESULTS
* NONE
*
******************************************************************************/
Group::Group(const char* name)
{
mName[0] = '\0';
// Make copy of team name
assert(name != NULL);
if (name != NULL)
{
strncpy(mName, name, sizeof(mName));
mName[sizeof(mName) - 1] = '\0';
}
}
/******************************************************************************
*
* NAME
* Group::~Group
*
* DESCRIPTION
* Group Destructor
*
* INPUTS
* NONE
*
* RESULTS
* NONE
*
******************************************************************************/
Group::~Group()
{
}
/******************************************************************************
*
* NAME
* Group::GetName
*
* DESCRIPTION
* Retrieve name of Group.
*
* INPUTS
* NONE
*
* RESULTS
* Name - Name of team
*
******************************************************************************/
const char* Group::GetName(void) const
{
return mName;
}
/******************************************************************************
*
* NAME
* Group::AddMember
*
* DESCRIPTION
* Add a game object to the Group.
*
* INPUTS
* GameObject - Pointer to game object to add.
*
* RESULTS
* NONE
*
******************************************************************************/
void Group::AddMember(GameObject* object)
{
assert(object != NULL);
// Add the object if it is not already a member of the team.
if (IsMember(object) == false)
{
mMembers.Add(object);
}
}
/******************************************************************************
*
* NAME
* Group::RemoveMember
*
* DESCRIPTION
* Remove a game object from the Group.
*
* INPUTS
* GameObject - Pointer to game object to remove.
*
* RESULTS
* NONE
*
******************************************************************************/
void Group::RemoveMember(GameObject* object)
{
assert(object != NULL);
mMembers.Delete(object);
}
/******************************************************************************
*
* NAME
* Group::IsMember
*
* DESCRIPTION
* Check if a game object is member of the Group.
*
* INPUTS
* GameObjectID objectID
*
* RESULTS
* bool
*
******************************************************************************/
bool Group::IsMember(GameObject* object) const
{
assert(object != NULL);
for (int index = 0; index < mMembers.Count(); index++)
{
if (mMembers[index] == object)
{
return true;
}
}
return false;
}
/******************************************************************************
*
* NAME
* MemberCount
*
* DESCRIPTION
* Get the number of members in the Group.
*
* INPUTS
* NONE
*
* RESULTS
* Count - Member count
*
******************************************************************************/
int Group::MemberCount(void) const
{
return mMembers.Count();
}
/******************************************************************************
*
* NAME
* Group::GetMember
*
* DESCRIPTION
* Get a Group member.
*
* INPUTS
* int index
*
* RESULTS
* GameObject*
*
******************************************************************************/
GameObject* Group::GetMember(int index)
{
assert(index >= 0);
assert(index < MemberCount());
return mMembers[index];
}
/******************************************************************************
*
* NAME
* Group::SendCommand
*
* DESCRIPTION
* Send a command to all the members of the Group.
*
* INPUTS
* Command - Command to send to Group members.
* Data - Command specific data parameter.
*
* RESULTS
* NONE
*
******************************************************************************/
void Group::SendCustomEvent(GameObject* from, int event, int data)
{
for (int index = 0; index < mMembers.Count(); index++)
{
GameObject* object = mMembers[index];
assert(object != NULL);
Commands->Send_Custom_Event(from, object, event, data);
}
}

109
Code/Scripts/Group.h Normal file
View File

@@ -0,0 +1,109 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Group.h
*
* DESCRIPTION
* Group definitions
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Denzil_l $
* $Revision: 1 $
* $Modtime: 4/17/00 9:42a $
* $Archive: /Commando/Code/Scripts/Group.h $
*
******************************************************************************/
#ifndef _GROUP_H_
#define _GROUP_H_
#include "scripts.h"
#include "vector.h"
// Group event identifiers
typedef enum
{
GROUP_MEMBER_DAMAGED = 1,
GROUP_MEMBER_KILLED,
GROUP_MEMBER_HEARD,
GROUP_MEMBER_SAW,
} GroupEvent;
// Group event information.
//
// A pointer to this structure is sent as a data parameter when the custom
// event SCMD_GROUP_EVENT is sent to an object.
typedef struct GroupEventInfoTag
{
const char* GroupName;
GroupEvent Event;
union
{
GameObject* Object;
const CombatSound* Sound;
};
} GroupEventInfo;
class GroupController;
class Group
{
public:
// Retrieve Team name
const char* GetName(void) const;
// Add a GameObject to the team.
void AddMember(GameObject* object);
// Remove a GameObject from the team.
void RemoveMember(GameObject* object);
// Check if a GameObject is a member of the team.
bool IsMember(GameObject* object) const;
// Get the number of members in the team.
int MemberCount(void) const;
// Get a team member.
GameObject* GetMember(int index);
// Send a command to all the members of the team.
void SendCustomEvent(GameObject* from, int event, int data);
protected:
// Only the TeamController can create and delete Teams
friend class GroupController;
Group(const char* name);
~Group();
private:
char mName[64];
DynamicVectorClass<GameObject*> mMembers;
};
#endif // _GROUP_H_

View File

@@ -0,0 +1,289 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* GroupControl.cpp
*
* DESCRIPTION
* Group controller
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Pat_p $
* $Revision: 2 $
* $Modtime: 4/26/00 10:31a $
* $Archive: /Commando/Code/Scripts/GroupControl.cpp $
*
******************************************************************************/
#include "groupcontrol.h"
#include "group.h"
#include "scripts.h"
#include <assert.h>
GroupController _GroupController;
GroupController* GroupController::_mInstance = NULL;
/******************************************************************************
*
* NAME
* GroupController::Instance
*
* DESCRIPTION
* Retrieve GroupController instance.
*
* INPUTS
* NONE
*
* RESULTS
* GroupController - GroupController instance pointer.
*
******************************************************************************/
GroupController* GroupController::Instance(void)
{
assert(_mInstance != NULL);
return _mInstance;
}
/******************************************************************************
*
* NAME
* GroupController::GroupController
*
* DESCRIPTION
* Construct GroupController
*
* INPUTS
* NONE
*
* RESULTS
* NONE
*
******************************************************************************/
GroupController::GroupController()
{
_mInstance = this;
}
/******************************************************************************
*
* NAME
* GroupController::~GroupController
*
* DESCRIPTION
* Destruct GroupController
*
* INPUTS
* NONE
*
* RESULTS
* NONE
*
******************************************************************************/
GroupController::~GroupController()
{
mGroups.Remove_All();
_mInstance = NULL;
}
/******************************************************************************
*
* NAME
* GroupController::AddToGroup
*
* DESCRIPTION
* Add a game object to the specified Group.
*
* INPUTS
* GroupName - Name of the team to object to.
* GameObject - Object to add.
*
* RESULTS
* Success - Success / Failure condition
*
******************************************************************************/
bool GroupController::AddToGroup(const char* groupName, GameObject* object)
{
assert(groupName != NULL);
assert(object != NULL);
if ((groupName != NULL) && (object != NULL))
{
// Find the team to add the GameObject to.
Group* group = FindOrCreateGroup(groupName);
if (group != NULL)
{
group->AddMember(object);
return true;
}
}
return false;
}
/******************************************************************************
*
* NAME
* GroupController::RemoveFromGroup
*
* DESCRIPTION
* Remove a game object from the specified Group.
*
* INPUTS
* GroupName - Name of group to remove object from.
* GameObject - Object to remove.
*
* RESULTS
* NONE
*
******************************************************************************/
void GroupController::RemoveFromGroup(const char* groupName, GameObject* object)
{
assert(groupName != NULL);
assert(object != NULL);
Group* group = FindGroup(groupName);
if (group != NULL)
{
group->RemoveMember(object);
}
}
/******************************************************************************
*
* NAME
* GroupController::FindGroup
*
* DESCRIPTION
* Find a group by name,
*
* INPUTS
* GroupName - Name of group to find.
*
* RESULTS
* Group - Pointer to Group; NULL if not found.
*
******************************************************************************/
Group* GroupController::FindGroup(const char* groupName)
{
SLNode<Group>* node = mGroups.Head();
// Go through all the Groups
while (node != NULL)
{
Group* group = node->Data();
assert(group != NULL);
// If there is a group with a matching name then return with that group.
const char* name = group->GetName();
if (stricmp(groupName, name) == 0)
{
return group;
}
node = node->Next();
}
return NULL;
}
/******************************************************************************
*
* NAME
* GroupController::FindOrCreateGroup
*
* DESCRIPTION
* Create a new group with the specified name. If the group already exists
* then the existing group will be returned.
*
* INPUTS
* GroupName - Name of group to find or create.
*
* RESULTS
* Group - Pointer to Group; NULL if failure to create group.
*
******************************************************************************/
Group* GroupController::FindOrCreateGroup(const char* groupName)
{
Group* group = FindGroup(groupName);
// Create the group only if it doesn't already exist.
if (group == NULL)
{
Group* group = new Group(groupName);
assert(group != NULL);
if (group != NULL)
{
mGroups.Add_Tail(group);
}
}
return group;
}
/******************************************************************************
*
* NAME
* GroupController::SendGroupCustomEvent
*
* DESCRIPTION
* Send a Group a custom event.
*
* INPUTS
* GroupName - Name of group to send event to.
* GameObject - Object event is from.
* Event - Event to send to Group.
* Data - Event specific data parameter.
*
* RESULTS
* NONE
*
******************************************************************************/
void GroupController::SendGroupCustomEvent(const char* groupName, GameObject* from,
int event, int data)
{
Group* group = FindGroup(groupName);
if (group != NULL)
{
group->SendCustomEvent(from, event, data);
}
}

View File

@@ -0,0 +1,80 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* GroupControl.h
*
* DESCRIPTION
* Group controller definitions
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Pat_p $
* $Revision: 2 $
* $Modtime: 4/26/00 10:32a $
* $Archive: /Commando/Code/Scripts/GroupControl.h $
*
******************************************************************************/
#ifndef _GROUPCONTROL_H_
#define _GROUPCONTROL_H_
#include "scripts.h"
#include "slist.h"
class Group;
class GroupController
{
public:
// Retrieve pointer to the GroupController
static GroupController* Instance(void);
GroupController();
~GroupController();
// Find a Group with the specified name.
Group* FindGroup(const char* groupName);
// Add a GameObject to the specified Group.
bool AddToGroup(const char* groupName, GameObject* object);
// Remove a GameObject from the specified Group,
void RemoveFromGroup(const char* groupName, GameObject* object);
// Send a Group a custom event.
void SendGroupCustomEvent(const char* groupName, GameObject* from,
int command, int data);
protected:
// Create a Group with the specified name.
Group* FindOrCreateGroup(const char* groupName);
private:
// Instance pointer to GroupController
static GroupController* _mInstance;
// List of groups
SList<Group> mGroups;
};
#endif // _GROUPCONTROL_H_

View File

@@ -0,0 +1,181 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* GroupScript.cpp
*
* DESCRIPTION
* Group script
*
* PROGRAMMER
* Denzil E. Long, Jr.
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 2 $
* $Modtime: 6/14/00 12:55p $
* $Archive: /Commando/Code/Scripts/GroupScript.cpp $
*
******************************************************************************/
#include "scripts.h"
#include "groupcontrol.h"
#include "group.h"
#include "customevents.h"
#include "dprint.h"
DECLARE_SCRIPT(MXX_Group_Member_DEL, "GroupName:string")
{
const char* mGroupName;
// Add the object to the group when it is created.
void Created(GameObject* owner)
{
mGroupName = Get_Parameter("GroupName");
assert(mGroupName != NULL);
GroupController* controller = GroupController::Instance();
assert(controller != NULL);
controller->AddToGroup(mGroupName, owner);
}
// Remove the object from the group when it is destroyed.
void Destroyed(GameObject* owner)
{
GroupController* controller = GroupController::Instance();
assert(controller != NULL);
controller->RemoveFromGroup(mGroupName, owner);
}
// Notify group that a member was killed.
void Killed(GameObject* owner, GameObject* killer)
{
GroupController* controller = GroupController::Instance();
assert(controller != NULL);
GroupEventInfo info;
info.GroupName = mGroupName;
info.Event = GROUP_MEMBER_KILLED;
info.Object = killer;
Group* group = controller->FindGroup(mGroupName);
assert(group != NULL);
group->SendCustomEvent(owner, SCMD_GROUP_EVENT, (int)&info);
}
// Notify group that a member was damaged.
void Damaged(GameObject* owner, GameObject* damager)
{
GroupController* controller = GroupController::Instance();
assert(controller != NULL);
GroupEventInfo info;
info.GroupName = mGroupName;
info.Event = GROUP_MEMBER_DAMAGED;
info.Object = damager;
Group* group = controller->FindGroup(mGroupName);
assert(group != NULL);
group->SendCustomEvent(owner, SCMD_GROUP_EVENT, (int)&info);
}
// Notify group that a member heard a sound.
void Sound_Heard(GameObject* owner, const CombatSound& sound)
{
GroupController* controller = GroupController::Instance();
assert(controller != NULL);
GroupEventInfo info;
info.GroupName = mGroupName;
info.Event = GROUP_MEMBER_HEARD;
info.Sound = &sound;
Group* group = controller->FindGroup(mGroupName);
assert(group != NULL);
group->SendCustomEvent(owner, SCMD_GROUP_EVENT, (int)&info);
}
// Notify group that a member saw the enemy.
void Enemy_Seen(GameObject* owner, GameObject* enemy)
{
GroupController* controller = GroupController::Instance();
assert(controller != NULL);
GroupEventInfo info;
info.GroupName = mGroupName;
info.Event = GROUP_MEMBER_SAW;
info.Object = enemy;
Group* group = controller->FindGroup(mGroupName);
assert(group != NULL);
group->SendCustomEvent(owner, SCMD_GROUP_EVENT, (int)&info);
}
#ifdef _DEBUG
void Custom(GameObject* owner, int event, int data, GameObject* sender)
{
if (SCMD_GROUP_EVENT == event)
{
GroupEventInfo* info = (GroupEventInfo*)data;
assert(info != NULL);
int senderID = Commands->Get_ID(sender);
int objectID = Commands->Get_ID(info->Object);
switch (info->Event)
{
case GROUP_MEMBER_DAMAGED:
DebugPrint("Group %s member %d damaged by object %d\n",
info->GroupName, senderID, objectID);
break;
case GROUP_MEMBER_KILLED:
DebugPrint("Group %s member %d killed by object %d\n",
info->GroupName, senderID, objectID);
break;
case GROUP_MEMBER_HEARD:
{
const CombatSound* sound = info->Sound;
objectID = Commands->Get_ID(sound->Creator);
DebugPrint("Group %s member %d heard a sound from object %d\n",
info->GroupName, senderID, objectID);
}
break;
case GROUP_MEMBER_SAW:
DebugPrint("Group %s member %d saw object %d\n",
info->GroupName, senderID, objectID);
break;
default:
break;
}
}
}
#endif
};

4826
Code/Scripts/Mission00.cpp Normal file

File diff suppressed because it is too large Load Diff

437
Code/Scripts/Mission00.h Normal file
View File

@@ -0,0 +1,437 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission00.h
*
* DESCRIPTION
* Mission 0 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 45 $
* $Modtime: 11/28/01 10:47a $
* $Archive: /Commando/Code/Scripts/Mission00.h $
*
******************************************************************************/
#ifndef _MISSION0_H_
#define _MISSION0_H_
// Defines and Includes
#include "toolkit.h"
// Available Characters
#define MTU_CONTROLLER 400099
#define MTU_LOGAN 400005
#define MTU_GATE_GUARD 400006
#define MTU_SYDNEY 400007
#define MTU_GUNNER 400008
#define MTU_HOTWIRE 400009
#define MTU_MOBIUS 400010
#define MTU_PETROVA 400011
#define MTU_GDI_01 400012
#define MTU_GDI_02 400013
#define MTU_BARRACKS 450938
#define MTU_POWERPLANT 450937
#define MTU_TOWER 450939
#define MTU_SPAWN_01 400157
#define MTU_SPAWN_02 400158
#define MTU_SPAWN_03 400159
// Available Zones
#define MTU_ZONE_JUMP_HUD_INFO 300001
#define MTU_ZONE_TRIGGER_SNEAK_TRAINING 400014
#define MTU_ZONE_TRIGGER_JUMP_TRAINING 400015
#define MTU_ZONE_TRIGGER_EVA_TRAINING 400016
#define MTU_ZONE_TRIGGER_MOVE_TO_AGT 400017
#define MTU_ZONE_TRIGGER_KEYCARD_TRAINING 400018
#define MTU_ZONE_RESET_SYDNEY 400019
#define MTU_ZONE_START_SYDNEY 400020
#define MTU_ZONE_INTRODUCE_BARRACKS 400021
#define MTU_ZONE_RESET_GUNNER 400022
#define MTU_ZONE_START_GUNNER 400023
#define MTU_ZONE_SETUP_RANGE 400024
#define MTU_ZONE_RESET_RANGE 400025
#define MTU_ZONE_GUNNER_NEXT_WEAPON 400026
#define MTU_ZONE_BEACON_PLACEMENT 400027
#define MTU_ZONE_INTRODUCE_WEAPONS_FACTORY 400028
#define MTU_ZONE_RESET_HOTWIRE_01 400029
#define MTU_ZONE_RESET_HOTWIRE_02 400030
#define MTU_ZONE_START_HOTWIRE 400031
#define MTU_ZONE_VEHICLE_APPROACHED 400032
#define MTU_ZONE_CHECKPOINT_01 400033
#define MTU_ZONE_CHECKPOINT_02 400034
#define MTU_ZONE_CHECKPOINT_03 400035
#define MTU_ZONE_CHECKPOINT_04 400036
#define MTU_ZONE_INTRODUCE_REFINERY 400037
#define MTU_ZONE_RESET_IGNATIO 400038
#define MTU_ZONE_START_IGNATIO 400039
#define MTU_ZONE_INTRODUCE_POWER_PLANT 400040
#define MTU_ZONE_RESET_PETROVA 400041
#define MTU_ZONE_START_PETROVA 400042
#define MTU_ZONE_START_INVASION_01 400043
#define MTU_ZONE_START_INVASION_02 400044
// Available Waypath IDs
#define MTU_WAYPATH_LOGAN_JUMP_TRAINING 400049
#define MTU_WAYPATH_LOGAN_EVA_TRAINING 400067
#define MTU_WAYPATH_GDI_SOLDIER_PATROL 400083
#define MTU_WAYPATH_LOGAN_COURSE_EXTERIOR 400074
#define MTU_WAYPATH_APACHE_FLYOVER 400100
// Obstacle Course Gates
#define MTU_GATE_01 400142
#define MTU_GATE_02 400143
#define MTU_GATE_03 400144
#define MTU_GATE_04 400146
// Enumated Constant Custom Types
enum
{
MTU_TYPE_DEFAULT,
MTU_TYPE_STAR,
MTU_TYPE_LOGAN,
MTU_TYPE_SYDNEY,
MTU_TYPE_HEALTH_POWERUP_ADD,
MTU_TYPE_HEALTH_POWERUP_SUBTRACT,
MTU_TYPE_ALL_POWERUPS_RESET,
MTU_TYPE_ARMOR_POWERUP_ADD,
MTU_TYPE_ARMOR_POWERUP_SUBTRACT,
MTU_TYPE_GUNNER,
MTU_TYPE_RANGE_CLEANUP_TARGETS,
MTU_TYPE_RANGE_CHECK_TARGETS,
MTU_TYPE_RANGE_SETUP_HANDGUN,
MTU_TYPE_RANGE_TARGET_DESTROYED,
MTU_TYPE_RANGE_SETUP_SNIPER_RIFLE,
MTU_TYPE_RANGE_POWERUP_RETRIEVED,
MTU_TYPE_RANGE_SETUP_AUTORIFLE,
MTU_TYPE_RANGE_SETUP_GRENADE,
MTU_TYPE_RANGE_SETUP_CHAINGUN,
MTU_TYPE_RANGE_SETUP_FLAMETHROWER,
MTU_TYPE_RANGE_SETUP_ROCKET,
MTU_TYPE_RANGE_SETUP_C4,
MTU_TYPE_RANGE_SETUP_ION,
MTU_TYPE_SYDNEY_RESET,
MTU_TYPE_SYDNEY_CHECK_RESET,
MTU_TYPE_SYDNEY_IS_RESET,
MTU_TYPE_WEAP_FACTORY_CLEANUP,
MTU_TYPE_WEAP_ATTEMPT_RESET,
MTU_TYPE_WEAP_FORCE_RESET,
MTU_TYPE_HOTWIRE_START,
MTU_TYPE_HOTWIRE,
MTU_TYPE_WEAP_CREATE_HUMMVEE,
MTU_TYPE_RESET_TRIGGER_ONCE,
MTU_TYPE_RESET_CHECKPOINT_COUNT,
MTU_TYPE_ADD_CHECKPOINT,
MTU_TYPE_WEAP_CREATE_MEDTANK,
MTU_TYPE_WEAP_CREATE_SQUISHIES,
MTU_TYPE_BUILDING_DAMAGEABLE,
MTU_TYPE_MOBIUS_RESET,
MTU_TYPE_MOBIUS_CHECK_RESET,
MTU_TYPE_MOBIUS,
MTU_TYPE_RESET_PETROVA,
MTU_TYPE_PETROVA_CHECK_RESET,
MTU_TYPE_PETROVA,
MTU_TYPE_ACTIVATE_FINALE,
MTU_TYPE_CHECK_FINALE_START,
MTU_TYPE_LIEUTENANT,
MTU_TYPE_LIEUTENANT_START,
MTU_TYPE_BUILDING_POWER_OFF,
MTU_TYPE_BUILDING_POWER_ON,
MTU_TYPE_BUILDING_DESTROY,
MTU_TYPE_MOCK_INVASION,
MTU_TYPE_GDI_SOLDIER_PATROL,
MTU_TYPE_TRIGGER_SPAWNER,
MTU_TYPE_COUNT_OFFICERS,
MTU_TYPE_STAR_FACING,
MTU_TYPE_REMOVE_OBJECTIVES
};
// Enumerated Constant Custom Parameters
enum
{
MTU_PARAM_DEFAULT,
MTU_PARAM_CONTROL_ENABLE,
MTU_PARAM_CONTROL_DISABLE,
MTU_PARAM_SPEECH_INTRO,
MTU_PARAM_SPEECH_CROUCH,
MTU_PARAM_SPEECH_JUMP,
MTU_PARAM_SPEECH_EVA,
MTU_PARAM_SPEECH_COURSE_DONE,
MTU_PARAM_ACTION_KEYCARD_TRAIN,
MTU_PARAM_ACTION_GOTO_AGT_RESET,
MTU_PARAM_SPEECH_SYDNEY_START,
MTU_PARAM_SPEECH_HEALTH,
MTU_PARAM_SPEECH_PICKUP,
MTU_PARAM_SPEECH_SHOOT_AGAIN,
MTU_PARAM_SYDNEY_SHOT_RESET,
MTU_PARAM_SPEECH_LAST_TIME,
MTU_PARAM_SPEECH_RADAR,
MTU_PARAM_ACTION_GOTO_INFANTRY,
MTU_PARAM_GUNNER_RESET,
MTU_PARAM_CHECK_TARGETS,
MTU_PARAM_SPEECH_MORE_TARGETS,
MTU_PARAM_TARGETS_ELIMINATED,
MTU_PARAM_ACTION_GOTO_WEAPONS,
MTU_PARAM_SPEECH_WEAP_INTRO,
MTU_PARAM_SPEECH_WEAP_MOVEOUT,
MTU_PARAM_SPEECH_WEAP_ACTION,
MTU_PARAM_SPEECH_WEAP_MEDTANK,
MTU_PARAM_SPEECH_WEAP_UNFINISHED,
MTU_PARAM_SPEECH_WEAP_SQUISH,
MTU_PARAM_SPEECH_WEAP_BIKE,
MTU_PARAM_ACTION_PREPARE_REFINERY,
MTU_PARAM_SPEECH_MOBIUS_REFINERY,
MTU_PARAM_ACTION_PREPARE_POWER,
MTU_PARAM_SPEECH_INTRO_POWER,
MTU_PARAM_SPEECH_PETROVA_POWER,
MTU_PARAM_ACTION_PREPARE_FINALE,
MTU_PARAM_SPEECH_LIEUTENANT_START,
MTU_PARAM_ACTION_GOTO_REFINERY,
MTU_PARAM_SPEECH_INTRO_INFANTRY,
MTU_PARAM_ACTION_PREPARE_INFANTRY,
MTU_PARAM_SPEECH_INTRO_REFINERY,
MTU_PARAM_ACTION_GOTO_POWER,
MTU_PARAM_ACTION_PREPARE_WEAPONS,
MTU_PARAM_ACTION_GOTO_HAVOC,
MTU_PARAM_SPEECH_RETICULE
};
// Enumerated Constant Timers
enum
{
MTU_TIMER_DEFAULT,
MTU_TIMER_MISSION_START,
MTU_TIMER_APACHE_DESTROY,
MTU_TIMER_SYDNEY_CONTINUE,
MTU_TIMER_GUNNER_DELAY_SPEECH,
MTU_TIMER_GUNNER_SNIPER_AMMO,
MTU_TIMER_GUNNER_AUTORIFLE_AMMO,
MTU_TIMER_GUNNER_GRENADE_AMMO,
MTU_TIMER_GUNNER_CHAINGUN_AMMO,
MTU_TIMER_GUNNER_FLAMETHROWER_AMMO,
MTU_TIMER_GUNNER_ROCKET_AMMO,
MTU_TIMER_GUNNER_C4_AMMO,
MTU_TIMER_GUNNER_ION_AMMO,
MTU_TIMER_LOGAN_WAIT_FOR_HAVOC,
MTU_TIMER_LOGAN_WAIT_REFINERY,
MTU_TIMER_LOGAN_WAIT_POWER,
MTU_TIMER_LOGAN_WAIT_POWER_02,
MTU_TIMER_LOGAN_WAIT_AGT,
MTU_TIMER_LOGAN_WAIT_INFANTRY,
MTU_TIMER_LIEUTENANT_WAIT,
MTU_TIMER_GDI_CONVERSATION,
MTU_TIMER_ENDGAME,
MTU_TIMER_FLYOVERS,
MTU_TIMER_COMMANDO_CAMERA_01,
MTU_TIMER_COMMANDO_CAMERA_02,
MTU_TIMER_ANOTHER_APACHE,
MTU_TIMER_MCT_ATTACK,
MTU_TIMER_POKE_DELAY,
MTU_TIMER_NOD_SOLDIER_REMOVAL
};
// Enumerated Constant Action and Conversation Identifiers
enum
{
MTU_ACTION_DEFAULT,
MTU_ACTION_LOGAN_JUMP_TEST,
MTU_ACTION_LOGAN_EVA_TRAIN,
MTU_ACTION_LOGAN_COURSE_DONE,
MTU_ACTION_LOGAN_GOTO_AGT,
MTU_SPEECH_LOGAN_START,
MTU_SPEECH_LOGAN_CROUCH,
MTU_SPEECH_LOGAN_CROUCH_TEST,
MTU_SPEECH_LOGAN_HEARD,
MTU_SPEECH_LOGAN_SNEAK_WIN,
MTU_SPEECH_LOGAN_SNEAK_LOSE,
MTU_SPEECH_LOGAN_JUMP_TEST,
MTU_SPEECH_LOGAN_EVA,
MTU_SPEECH_LOGAN_POKE,
MTU_SPEECH_GATEGUARD_POKE,
MTU_SPEECH_LOGAN_COURSE_DONE,
MTU_SPEECH_LOGAN_KEYCARDS,
MTU_SPEECH_LOGAN_GO_INSIDE,
MTU_ACTION_GATEGUARD_OUTSIDE,
MTU_ACTION_GATEGUARD_PATROL,
MTU_SPEECH_SYDNEY_START,
MTU_SPEECH_SYDNEY_HEALTH,
MTU_SPEECH_SYDNEY_PICKUP,
MTU_SPEECH_SYDNEY_ARMOR,
MTU_SPEECH_SYDNEY_SHOOT_AGAIN,
MTU_SPEECH_SYDNEY_LAST_TIME,
MTU_SPEECH_SYDNEY_RADAR,
MTU_SPEECH_INTRODUCE_BARRACKS,
MTU_SPEECH_GUNNER_START,
MTU_SPEECH_GUNNER_RETICULE,
MTU_SPEECH_GUNNER_SNIPER_RIFLE,
MTU_SPEECH_GUNNER_AUTORIFLE,
MTU_SPEECH_GUNNER_GRENADE,
MTU_SPEECH_GUNNER_CHAINGUN,
MTU_SPEECH_GUNNER_FLAMETHROWER,
MTU_SPEECH_GUNNER_ROCKET,
MTU_SPEECH_GUNNER_C4,
MTU_SPEECH_GUNNER_ION,
MTU_SPEECH_GUNNER_MORE_TARGETS,
MTU_SPEECH_GUNNER_ENDING,
MTU_SPEECH_INTRODUCE_WEAP_FACTORY,
MTU_SPEECH_HOTWIRE_INTRO,
MTU_SPEECH_HOTWIRE_GO_OUT,
MTU_SPEECH_HOTWIRE_MOVEOUT,
MTU_SPEECH_HOTWIRE_ACTION,
MTU_SPEECH_HOTWIRE_MEDTANK,
MTU_SPEECH_HOTWIRE_UNFINISHED,
MTU_SPEECH_HOTWIRE_SQUISH,
MTU_SPEECH_HOTWIRE_BIKE,
MTU_SPEECH_LOGAN_WHATSNEXT,
MTU_SPEECH_INTRODUCE_REFINERY,
MTU_SPEECH_MOBIUS_REFINERY,
MTU_SPEECH_LOGAN_PREPARE_POWER,
MTU_SPEECH_INTRODUCE_POWER,
MTU_SPEECH_PETROVA_POWER,
MTU_SPEECH_PETROVA_POWER_END,
MTU_SPEECH_LOGAN_PREPARE_FINALE,
MTU_SPEECH_LIEUTENANT_START,
MTU_SPEECH_LIEUTENANT_LETIN,
MTU_SPEECH_LIEUTENANT_MCT,
MTU_SPEECH_LIEUTENANT_AFTER,
MTU_ACTION_MOVE_LOGAN_WEAPONS,
MTU_SPEECH_LOGAN_PREPARE_INFANTRY,
MTU_ACTION_MOVE_LOGAN_EXIT,
MTU_ACTION_MOVE_LIEUTENANT_HAVOC,
MTU_ACTION_LIEUTENANT_LEAVE
};
// Movement Destination Identifiers
enum
{
MTU_MOVE_DEFAULT,
MTU_MOVE_LOGAN_JUMP_TRAINING,
MTU_MOVE_LOGAN_EVA_TRAINING,
MTU_MOVE_LOGAN_COURSE_EXTERIOR,
MTU_MOVE_LOGAN_AGT,
MTU_MOVE_LOGAN_INFANTRY,
MTU_MOVE_LOGAN_WEAPONS,
MTU_MOVE_LOGAN_REFINERY,
MTU_MOVE_LOGAN_POWER,
MTU_MOVE_LOGAN_EXIT,
MTU_MOVE_LIEUTENANT_HAVOC
};
// Gunner Range State Identifiers
enum
{
MTU_RANGE_STATE_DEFAULT
};
// Objective Identifiers
enum
{
MTU_OBJECTIVE_01 = 1,
MTU_OBJECTIVE_02,
MTU_OBJECTIVE_03,
MTU_OBJECTIVE_04,
MTU_OBJECTIVE_05,
MTU_OBJECTIVE_06,
MTU_RADAR_GUNNER,
MTU_RADAR_COURSE_01,
MTU_RADAR_COURSE_02,
MTU_RADAR_COURSE_03,
MTU_RADAR_COURSE_04,
MTU_RADAR_MCT_01,
MTU_RADAR_MCT_02,
MTU_RADAR_MCT_03,
MTU_RADAR_MCT_04,
MTU_RADAR_MCT_05
};
inline float Get_Obj_Distance (GameObject * obj1, GameObject * obj2)
{
Vector3 loc1 = Vector3 (0,0,0);
Vector3 loc2 = Vector3 (0,0,0);
if (obj1)
{
loc1 = Commands->Get_Position (obj1);
}
if (obj2)
{
loc2 = Commands->Get_Position (obj2);
}
return Commands->Get_Distance (loc1, loc2);
};
// THESE DEFINES ARE FOR THE SKIRMISH MODE IN MULTIPLAYER
#define MSK_CONTROLLER 300203
#define MSK_GDI_DEF_01 300052
#define MSK_GDI_DEF_02 300064
#define MSK_GDI_DEF_03 300072
#define MSK_GDI_DEF_04 300081
#define MSK_GDI_ATK_01 300091
#define MSK_GDI_ATK_02 300092
#define MSK_GDI_ATK_03 300093
#define MSK_NOD_DEF_01 300001
#define MSK_NOD_DEF_02 300016
#define MSK_NOD_DEF_03 300028
#define MSK_NOD_DEF_04 300042
#define MSK_NOD_ATK_01 300150
#define MSK_NOD_ATK_02 300151
#define MSK_NOD_ATK_03 300152
#define MSK_GDI_DEF_PATH_01 300053
#define MSK_GDI_DEF_PATH_02 300065
#define MSK_GDI_DEF_PATH_03 300073
#define MSK_GDI_DEF_PATH_04 300082
#define MSK_GDI_ATK_PATH_01 300094
#define MSK_GDI_ATK_PATH_02 300111
#define MSK_GDI_ATK_PATH_03 300126
#define MSK_NOD_DEF_PATH_01 300002
#define MSK_NOD_DEF_PATH_02 300017
#define MSK_NOD_DEF_PATH_03 300029
#define MSK_NOD_DEF_PATH_04 300043
#define MSK_NOD_ATK_PATH_01 300153
#define MSK_NOD_ATK_PATH_02 300166
#define MSK_NOD_ATK_PATH_03 300178
#define MSK_SOLDIER_DEAD 100
#define MSK_TIMER 101
#define MSK_TIMER_02 102
#endif // _MISSION2_H_

22059
Code/Scripts/Mission01.cpp Normal file

File diff suppressed because it is too large Load Diff

5380
Code/Scripts/Mission02.cpp Normal file

File diff suppressed because it is too large Load Diff

7144
Code/Scripts/Mission03.cpp Normal file

File diff suppressed because it is too large Load Diff

10518
Code/Scripts/Mission04.cpp Normal file

File diff suppressed because it is too large Load Diff

7859
Code/Scripts/Mission05.cpp Normal file

File diff suppressed because it is too large Load Diff

5710
Code/Scripts/Mission06.cpp Normal file

File diff suppressed because it is too large Load Diff

6733
Code/Scripts/Mission07.cpp Normal file

File diff suppressed because it is too large Load Diff

4706
Code/Scripts/Mission09.cpp Normal file

File diff suppressed because it is too large Load Diff

806
Code/Scripts/Mission1.h Normal file
View File

@@ -0,0 +1,806 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission1.h
*
* DESCRIPTION
* Mission 1 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Joe_g $
* $Revision: 124 $
* $Modtime: 1/14/02 10:14a $
* $Archive: /Commando/Code/Scripts/Mission1.h $
*
******************************************************************************/
#ifndef _MISSION1_H_
#define _MISSION1_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
#define M01_CHURCH_OBJECTIVE_JDG 100
#define M01_HARVESTER_OBJECTIVE_JDG 101
#define M01_GDI_BASE_COMMANDER_OBJECTIVE_JDG 102
#define M01_HON_OBJECTIVE_JDG 103
#define M01_FIRST_NOD_COMMANDER_OBJECTIVE_JDG 104
#define M01_HON_SAM_OBJECTIVE_JDG 105
#define M01_PRISONER_OBJECTIVE_JDG 106
#define M01_UNLOCK_GATE_OBJECTIVE_JDG 107
#define M01_COMM_SAM_OBJECTIVE_JDG 108
#define M01_TURRETS_OBJECTIVE_JDG 109
#define M01_BARN_OBJECTIVE_JDG 110
//#define M01_SNIPER_OBJECTIVE_JDG 111
#define M01_BARN_ROUNDUP_OBJECTIVE_JGD 112
#define M01_OPEN_THE_GATE_JDG 113
#define M01_GDI_BASE_POW_OBJECTIVE_JDG 114
#define M01_MISSION_POG_CONTROLLER_JDG 105828
#define M01_MISSION_CONTROLLER_JDG 100376
#define M01_MISSION_POG_CONTROLLER_JDG 105828
#define M01_AMBIENT_SOUND_CONTROLLER_JDG 100253
#define M01_NOD_BUGGY_01_JDG 102471
#define M01_NOD_BUGGY_02_JDG 102472
#define M01_EVAC_PRIORITY_JDG 90
#define M01_EASY_DIFFICULTY_HOMERANGE_JDG 5
#define M01_MEDIUM_DIFFICULTY_HOMERANGE_JDG 20
#define M01_HARD_DIFFICULTY_HOMERANGE_JDG 45
#define M01_EASY_DIFFICULTY_AGGRESSION_JDG 0.25f
#define M01_MEDIUM_DIFFICULTY_AGGRESSION_JDG 0.5f
#define M01_HARD_DIFFICULTY_AGGRESSION_JDG 1
#define M01_EASY_DIFFICULTY_TAKECOVER_JDG 1
#define M01_MEDIUM_DIFFICULTY_TAKECOVER_JDG 0.5f
#define M01_HARD_DIFFICULTY_TAKECOVER_JDG 0
#define M01_GDI_CONYARD_JDG 157976
#define M01_GDI_POWERPLANT_JDG 157977
#define M01_GDIBASE_GT1_NOD_LEADER_JDG 103303
#define M01_GDIBASE_GT1_NOD_HIDER_JDG 103302
#define M01_GDIBASE_GT1_NOD_BEACHGUY_JDG 103304
#define M01_GDIBASE_GT1_GDI01_JDG 103306
#define M01_GDIBASE_GT1_GDI02_JDG 103325
#define M01_GDIBASE_GT1_MONITOR_JDG 103326
#define M01_GDIBASE_POWSCENE02_MONITOR_JDG 103331
#define M01_GDIBASE_POWSCENE02_NODGUY01_JDG 103329
#define M01_GDIBASE_POWSCENE02_NODGUY02_JDG 103330
#define M01_GDIBASE_POWSCENE02_POWGUY01_JDG 116386
#define M01_GDIBASE_POWSCENE02_POWGUY02_JDG 116385
#define M01_GDIBASE_ARTILLERY_CONTROLLER_ID 102294
#define M01_GDIBASE_EVAC_MONITOR_JDG 103419
#define M01_BARNAREA_EVAC_MONITOR_JDG 103420
#define M01_CHURCHAREA_EVAC_MONITOR_JDG 103421
#define M01_GDIBASE_SPAWNER_CONTROLLER_JDG 102335
#define M01_GDIBASE_SPAWNER_A_JDG 102332
#define M01_GDIBASE_SPAWNER_B_JDG 102333
#define M01_GDIBASE_SPAWNER_C_JDG 102334
#define M01_BARNAREA_NOD_COMMANDER_JDG 102360
#define M01_BARNAREA_NOD_COMMANDER_02_JDG 102476
#define M01_TAILGUNAREA_NOD_COMMANDER_JDG 102358
#define M01_CHURCHAREA_NOD_COMMANDER_JDG 102357
#define M01_TAILGUNRUN_SPAWNER_CONTROLLER_JDG 102346
#define M01_TAILGUNRUN_SPAWNER_A_JDG 102343
#define M01_TAILGUNRUN_SPAWNER_B_JDG 102344
#define M01_TAILGUNRUN_SPAWNER_C_JDG 102345
#define M01_CHURCHAREA_SPAWNER_CONTROLLER_JDG 102350
#define M01_CHURCHAREA_SPAWNER_A_JDG 102347
#define M01_CHURCHAREA_SPAWNER_B_JDG 102348
#define M01_CHURCHAREA_SPAWNER_C_JDG 102349
#define M01_HAND_OF_NOD_JDG 153909
#define M01_HON_SAM_SITE_JDG 100031
#define M01_HON_CAFETERIA_EATING_GUY_ID 101293
#define M01_HON_CAFETERIA_WALKING_GUY_ID 101294
#define M01_HON_CAFETERIA_JUDO_GUY_ID 101295
#define M01_HON_DORMROOM_MINIGUNNER_ID 101296
#define M01_HON_DORMROOM_ROCKET_GUY_ID 101297
#define M01_HON_DORMROOM_CHEM_GUY_ID 101298
#define M01_HON_DORMROOM_FLAME_GUY_ID 101299
#define M01_HON_DORMROOM_CRAPPER_ID 101301
#define M01_HON_INTERROGATION_ROOM_GUY_ID 101357
#define M01_HON_REPAIR_ENGINEER_ID 101948
#define M01_HON_FRONTDOOR_DESTROYED_SPAWNER_JDG 100712
#define M01_HON_BACKDOOR_DESTROYED_SPAWNER_JDG 100713
#define M01_HON_DOJO_CIV_01_JDG 102048
#define M01_HON_DOJO_CIV_02_JDG 102049
#define M01_HON_DOJO_CIV_03_JDG 102050
#define M01_HON_DOJO_SENSEI_JDG 102051
#define M01_REFINERY_JDG 153908
#define M01_REFINERY_SAM_JDG 100032
#define M01_REFINERY_MAIN_CONSOLE_TECH_ID 101302
#define M01_REFINERY_SECONDARY_TECH_ID 101303
#define M01_REFINERY_ENGINEER_ID 101304
#define M01_REFINERY_DESTROYED_SPAWNER_JDG 100726
#define M01_COMM_CENTER_JDG 153910
#define M01_COMMCENTER_SAM_JDG 100034
#define M01_COMM_CENTER_ENGINEER_ID 101949
#define M01_COMMCENTER_DESTROYED_SPAWNER_JDG 100727
#define M01_COMMCENTER_BASE_COMMANDER_JDG 101936
#define M01_COMMCENTER_BASE_SCAPEGOAT_JDG 101938
#define M01_COMMCENTER_CEILING_CAMERA_JDG 101937
#define M01_COMMCENTER_UPSTAIRS_TECH_JDG 101168
#define M01_COMMCENTER_WAROOM_TECH_01_JDG 101170
#define M01_COMMCENTER_WAROOM_TECH_02_JDG 101171
#define M01_COMMCENTER_COMPUTERROOM_TECH_JDG 101172
#define M01_COMMCENTER_UPSTAIRS_GUARD_JDG 101946
#define M01_COMMCENTER_LIGHTTANK_ZONE_JDG 102225
#define M01_HARVESTER_ESCORT01_JDG 100251
#define M01_HARVESTER_ESCORT02_JDG 100252
#define M01_HARVESTER_JDG 100033
#define M01_CHURCH_LOVESHACK_MINIGUNNER_ID 101305
#define M01_CHURCH_LOVESHACK_NUN_ID 101310
#define M01_CHURCH_EXTERIOR_MINIGUNNER_ID 101311
#define M01_CHURCH_BALCONY_MINIGUNNER_ID 101312
#define M01_CHURCH_GUARD_MINIGUNNER_ID 101313
#define M01_CHURCH_INTERIOR_NUN_ID 101314
#define M01_CHURCH_PRIEST_ID 101315
#define M01_BRIDGE_DRIVEBY_MINIGUNNER_01_ID 101316
#define M01_BRIDGE_DRIVEBY_MINIGUNNER_02_ID 101317
#define M01_BRIDGE_DRIVEBY_MINIGUNNER_03_ID 101318
#define M01_TURRETBEACH_TURRET_01_ID 101434
#define M01_TURRETBEACH_TURRET_02_ID 101435
#define M01_TURRETBEACH_GUNBOAT_ID 101477
#define M01_TURRETBEACH_ENGINEER_ID 101654
#define M01_TURRETBEACH_CONTROLLER_ID 113325
#define M01_BARN_DOOR_GUARD_ID 101512
#define M01_BARN_TALK_GUARD_01_ID 103318
//#define M01_BARN_TALK_GUARD_02_ID 101441
#define M01_BARN_PRISONER_01_ID 101442
#define M01_BARN_PRISONER_02_ID 101444
#define M01_BARN_PRISONER_03_ID 101443
#define M01_BARN_OBJECTIVE_ZONE_ID 101540
#define M01_BARNAREA_LIGHTTANK_ID 103012
#define M01_TANK_TUNNEL_ZONE_ID 101679
#define M01_TANK_TUNNEL_SQUISH_GUY_01_ID 101682
#define M01_TANK_TUNNEL_SQUISH_GUY_02_ID 101683
#define M01_TANK_TUNNEL_SQUISH_GUY_03_ID 101684
#define M01_KILL_JUMPING_BUGGY_ZONE_JDG 100933
#define M01_JUMPING_BUGGY_LOOKOUT_ZONE_JDG 100936
#define M01_TIB_TUNNEL_HELICOPTER_ZONE_JDG 100955
#define M01_TAILGUN_01_ID 108707
#define M01_TAILGUN_02_ID 108708
#define M01_TAILGUN_03_ID 108709
#define M01_TAILGUNNER_01_ID 101470
#define M01_TAILGUNNER_02_ID 101471
#define M01_TAILGUNNER_03_ID 101472
#define M01_TAILGUNAREA_NOD_LIGHTTANK_JDG 102435
#define M01_DETENTION_GDI_GUY_01_JDG 101926
#define M01_DETENTION_GDI_GUY_02_JDG 101927
#define M01_DETENTION_GDI_GUY_03_JDG 101928
#define M01_DETENTION_CIVILIAN_01_JDG 101929//BABUSHKA
#define M01_DETENTION_CIVILIAN_02_JDG 101930//PIERRE
#define M01_DETENTION_CIVILIAN_03_JDG 101931//FARMER JOHN
#define M01_COMMCENTER_DETENTION_GATE_JDG 157984
//Logical Sounds
#define M01_HON_ESCORTS_FORM_UP_JDG 400000
#define M01_DETENTION_GUY_HAS_SEEN_HAVOC_JDG 400003
#define M01_DETENTION_GATE_IS_DOWN_JDG 400004
#define M01_DETENTION_GATE_DOWN_SAM_DEAD_JDG 400005
/*****************************************************************************************************
Starting level 04 defines here
******************************************************************************************************/
#define M04_TEST_APACHE_JDG 100397
#define M04_SHIPS_CAPTAIN_JDG 100401
#define M04_SHIPS_FIRST_MATE_JDG 100400
#define M04_PRISON_WARDEN_JDG 100399
#define M04_MEDLAB_TECHNICIAN_JDG 101202
#define M04_CARGO_TALKGUY_01_JDG 101463
#define M04_CARGO_TALKGUY_02_JDG 101464
#define M04_CARGO_TALKGUY_03_JDG 101465
#define M04_CARGO_BLACKHAND_01_JDG 101534
#define M04_OBJECTIVE_CONTROLLER_JDG 100424
#define M04_CARGOHOLD_CONTROLLER_JDG 100558
//#define M04_ENGINEROOM_CONTROLLER_JDG 100750
#define M04_AFT_DECK_CONTROLLER_JDG 100624
#define M04_FORE_DECK_CONTROLLER_JDG 100790
//#define M04_SNIPER_ENCOUNTER_CONTROLLER_JDG 100264
#define M04_TIBERIUM_HOLD_CONTROLLER_JDG 100572
#define M04_APACHE_CONTROLLER_JDG 200586
#define M04_END_FIREFIGHT_CONTROLLER_JDG 100948
#define M04_PRISON_PRISONER_01_JDG 100011
#define M04_PRISON_PRISONER_02_JDG 101196
#define M04_PRISON_PRISONER_03_JDG 100013
#define M04_PRISON_DOOR_JDG 201089
//#define M04_ENGINEROOM_ALARMBOX_JDG 101120
#define M04_MISSILE_ROOM_TARGET_01_JDG 100421
#define M04_MISSILE_ROOM_TARGET_02_JDG 100422
#define M04_MISSILE_ROOM_TARGET_03_JDG 100423
#define M04_MISSILE_ROOM_TARGET_04_JDG 100420
#define M04_ENGINEROOM_TARGET_01_JDG 100419
#define M04_ENGINEROOM_TARGET_02_JDG 100416
#define M04_ENGINEROOM_TARGET_03_JDG 100418
#define M04_ENGINEROOM_TARGET_04_JDG 100417
#define M04_ROCKET_EMPLACEMENT_01_JDG 103461
#define M04_ROCKET_EMPLACEMENT_02_JDG 103462
#define M04_ENGINEROOM_PRISONGUARD_01_JDG 101988
#define M04_ENGINEROOM_PRISONGUARD_02_JDG 101989
#define M04_ENGINEROOM_CHIEF_ENGINEER_JDG 101762
#define M04_ENGINEROOM_TECH_01_JDG 101691
#define M04_ENGINEROOM_TECH_02_JDG 101692
#define M04_ENGINEROOM_TECH_03_JDG 101690
#define M04_ENGINEROOM_TECH_04_JDG 101693
#define M04_ENGINEROOM_SPAWNER_01_JDG 101942
#define M04_ENGINEROOM_SPAWNER_02_JDG 101943
#define M04_ENGINEROOM_BUILDING_CONTROLLER_JDG 150001
#define M04_ENGINEROOM_HUNTING_CONTROLLER_JDG 103390
#define M04_TIBERIUM_HOLD_TECH01_JDG 102147
#define M04_TIBERIUM_HOLD_TECH02_JDG 102148
#define M04_TIBERIUM_CRYOCHAMBER_JDG 102243
#define M04_TIBERIUM_SIMPLEMUTANT_JDG 102240
#define M04_TIBERIUM_CHAMBERCONTROLLER_JDG 104113
// Public Variables
// Enumerations
enum
{
M01_CAPT_DUNCAN_HAS_BEEN_FOUND_JDG,
M01_GDI_BASE_POWS_RESCUED_JDG,
M01_GDI_BASE_POWS_OVER_JDG,
M01_START_GDIBASE_FRONT_CONVERSATION,
//M01_ANNOUNCE_LIGHTHOUSE_SNIPER_JDG,
//M01_SNIPERS_BEEN_KILLED_JDG,
M01_DO_END_MISSION_CHECK_JDG,
M01_END_MISSION_PASS_JDG,
M01_ADD_OBJECTIVE_POG_JDG,
M01_CHANGE_OBJECTIVE_POG_JDG,
M01_REMOVE_OBJECTIVE_POG_JDG,
M01_GOTO_YOUR_EVAC_SPOT_JDG,
M01_GIVE_ME_A_ROPE_JDG,
M01_TAKE_AWAY_ROPE_JDG,
M01_ROPE_IS_SENDING_ID_JDG,
M01_WAYPATH_IS_SENDING_ID_JDG,
M01_CHOPPER_IS_SENDING_ID_JDG,
M01_EVERYONES_ON_BOARD_JDG,
M01_START_ACTING_JDG,
M01_START_ATTACKING_01_JDG,
M01_START_ATTACKING_02_JDG,
M01_START_ATTACKING_03_JDG,
M01_START_ATTACKING_04_JDG,
M01_START_ATTACKING_05_JDG,
M01_IVE_BEEN_KILLED_JDG,
M01_HOLD_YOUR_POSITION_JDG,
M01_GOTO_IDLE_JDG,
M01_GOTO_INNATE_JDG,
M01_DO_DAMAGE_CHECK_JDG,
M01_MODIFY_YOUR_ACTION_JDG,
M01_MODIFY_YOUR_ACTION_02_JDG,
M01_MODIFY_YOUR_ACTION_03_JDG,
M01_MODIFY_YOUR_ACTION_04_JDG,
M01_MODIFY_YOUR_ACTION_05_JDG,
M01_MODIFY_YOUR_ACTION_06_JDG,
M01_MODIFY_YOUR_ACTION_07_JDG,
M01_MODIFY_YOUR_ACTION_08_JDG,
M01_MODIFY_YOUR_ACTION_09_JDG,
M01_MODIFY_YOUR_ACTION_10_JDG,
M01_MODIFY_YOUR_ACTION_11_JDG,
M01_WALKING_WAYPATH_01_JDG,
M01_WALKING_WAYPATH_02_JDG,
M01_WALKING_WAYPATH_03_JDG,
M01_WALKING_WAYPATH_04_JDG,
M01_WALKING_WAYPATH_05_JDG,
M01_WALKING_WAYPATH_06_JDG,
M01_WALKING_WAYPATH_07_JDG,
M01_GOING_TO_HAVOC_JDG,
M01_DOING_ANIMATION_01_JDG,
M01_DOING_ANIMATION_02_JDG,
M01_DOING_ANIMATION_03_JDG,
M01_DOING_ANIMATION_04_JDG,
M01_DOING_ANIMATION_05_JDG,
M01_DOING_ANIMATION_06_JDG,
M01_DOING_ANIMATION_07_JDG,
M01_DOING_ANIMATION_08_JDG,
M01_DOING_ANIMATION_09_JDG,
M01_DOING_ANIMATION_10_JDG,
M01_DOING_ANIMATION_11_JDG,
M01_TECH_IS_AT_WORKSPOT_01_JDG,
M01_TECH_IS_AT_WORKSPOT_02_JDG,
M01_TECH_IS_AT_WORKSPOT_03_JDG,
M01_TECH_IS_FACING_WORKSPOT_JDG,
M01_TECH_IS_DOING_WORK_ANIMATION_JDG,
M01_DOING_ENTER_ANIMATION_JDG,
M01_FACING_SPECIFIED_DIRECTION_01_JDG,
M01_FACING_SPECIFIED_DIRECTION_02_JDG,
M01_HUNT_THE_PLAYER_JDG,
M01_CALL_IN_REINFORCEMENTS_JDG,
M01_PICK_A_NEW_LOCATION_JDG,
//E3 radar markers
// M01_E3_WARP_MARKER_01_JDG,
// M01_E3_WARP_MARKER_02_JDG,
// M01_E3_WARP_MARKER_03_JDG,
//spawners
M01_SPAWNER_SPAWN_PLEASE_JDG,
M01_SPAWNER_IS_DEAD_JDG,
M01_QUIT_SPAWNING_PLEASE_JDG,
M01_SEND_GUARD_TOWER_CHINOOK_JDG,
M01_SEND_BARN_CHINOOK_JDG,
M01_SEND_TAILGUN_CHINOOK_JDG,
M01_SEND_CHURCH_CHINOOK_JDG,
M01_SEND_BARN_CIVILIANS_RESCUE_CHINOOK_JDG,
M01_RESPAWN_SHED01_POWERUP_JDG,
M01_RESPAWN_ARMORY_POWERUP_JDG,
M01_RESPAWN_TIBCAVE_POWERUP_JDG,
M01_HAVOC_GOTO_START_SPOT_JDG,
M01_ATTACH_HAVOCS_SCRIPT_JDG,
M01_CHECK_HAVOCS_HEALTH_JDG,
M01_RESET_HAVOCS_HEALTH_WARNING_JDG,
M01_ADD_CHURCH_OBJECTIVE_JDG,
//M01_ADD_HON_SAM_OBJECTIVE_JDG,
M01_ADD_HARVESTER_OBJECTIVE_JDG,
M01_ADD_REFINERY_OBJECTIVE_JDG,
M01_ADD_REFINERY_SAM_OBJECTIVE_JDG,
M01_ADD_PRISONER_OBJECTIVE_JDG,
M01_ADD_UNLOCK_GATE_OBJECTIVE_JDG,
M01_ADD_COMM_SAM_OBJECTIVE_JDG,
M01_ADD_BARN_OBJECTIVE_JDG,
M01_ADD_HON_OBJECTIVE_JDG,
M01_ADD_TURRETS_OBJECTIVE_JDG,
M01_ADD_BARN_COMMANDER_OBJECTIVE_JDG,
M01_CLEAR_CHURCH_OBJECTIVE_PASS_JDG,
M01_CLEAR_CHURCH_OBJECTIVE_FAIL_JDG,
M01_CLEAR_HARVESTER_OBJECTIVE_PASS_JDG,
M01_CLEAR_REFINERY_OBJECTIVE_PASS_JDG,
M01_CLEAR_HON_OBJECTIVE_PASS_JDG,
M01_CLEAR_UNLOCK_GATE_OBJECTIVE_JDG,
M01_CLEAR_PRISONERS_PASS_JDG,
M01_CLEAR_FIRST_NOD_COMMANDER_PASS_JDG,
M01_ANNOUNCE_HARVESTER_OBJECTIVE_JDG,
M01_ANNOUNCE_HON_OBJECTIVE_JDG,
M01_ANNOUNCE_HON_SAM_OBJECTIVE_JDG,
M01_ANNOUNCE_PRISONER_OBJECTIVE_JDG,
M01_ANNOUNCE_UNLOCK_GATE_OBJECTIVE_JDG,
M01_ANNOUNCE_COMMCENTER_SAM_OBJECTIVE_JDG,
M01_ANNOUNCE_BARN_OBJECTIVE_JDG,
M01_ANNOUNCE_REFINERY_SAM_OBJECTIVE_JDG,
M01_ANNOUNCE_TURRETS_OBJECTIVE_JDG,
M01_START_BARN_OBJECTIVE_JDG,
M01_END_TURRETS_OBJECTIVE_PASS_JDG,
M01_END_TURRETS_OBJECTIVE_FAIL_JDG,
M01_END_BARN_OBJECTIVE_JDG,
M01_END_BARN_ROUNDUP_OBJECTIVE_JDG,
M01_CHANGE_BARN_OBJECTIVE_JDG,
M01_PASS_TURRETS_OBJECTIVE_JDG,
M01_PASS_UNLOCK_GATE_OBJECTIVE_JDG,
M01_PASS_COMM_SAM_OBJECTIVE_JDG,
//M01_SEND_HON_AIRSTRIKE_JDG,
//M01_SEND_COMM_AIRSTRIKE_JDG,
M01_SEND_COMMCENTER_REINFORCEMENTS_JDG,
M01_SPAWN_REFINERY_AIRSTRIKE_JDG,
//M01_CHURCH_OBJECTIVE_JDG,
M01_HON_HAS_BEEN_DESTROYED_JDG,
M01_HON_SAMSITE_HAS_BEEN_DESTROYED_JDG,
M01_COMM_CENTER_HAS_BEEN_DESTROYED_JDG,
M01_COMMCENTER_SAMSITE_HAS_BEEN_DESTROYED_JDG,
M01_REFINERY_HAS_BEEN_DESTROYED_JDG,
M01_REFINERY_SAMSITE_HAS_BEEN_DESTROYED_JDG,
M01_PLAYER_APPROACHING_BARN_AREA_JDG,
M01_PLAYER_APPROACHING_GDI_BASE_AREA_JDG,
M01_PLAYER_IS_INSIDE_GDI_CON_JDG,
M01_PLAYER_IS_OUTSIDE_GDI_CON_JDG,
M01_PLAYER_IS_INSIDE_GDI_POWERPLANT_JDG,
M01_PLAYER_IS_OUTSIDE_GDI_POWERPLANT_JDG,
M01_PLAYER_IS_APPROACHING_TAILGUN_ALLEY_JDG,
M01_PLAYER_IS_INSIDE_HON_JDG,
M01_PLAYER_IS_IN_HON_GRUNT_LEVEL_JDG,
M01_PLAYER_IS_IN_HON_DOJO_JDG,
M01_PLAYER_IS_OUTSIDE_HON_JDG,
M01_PLAYER_IS_INSIDE_REFINERY_JDG,
M01_PLAYER_IS_OUTSIDE_REFINERY_JDG,
M01_PLAYER_IS_INSIDE_COMM_CENTER_JDG,
M01_PLAYER_IS_OUTSIDE_COMM_CENTER_JDG,
M01_PLAYER_IS_INSIDE_TUNNEL_JDG,
M01_PLAYER_IS_OUTSIDE_TUNNEL_JDG,
M01_PLAYER_IS_INSIDE_WATERFALL_JDG,
M01_PLAYER_IS_OUTSIDE_WATERFALL_JDG,
M01_PLAYER_IS_AT_SNIPER_SCENARIO_JDG,
M01_PLAYER_IS_APPROACHING_CHURCH_JDG,
M01_PLAYER_IS_LEAVING_CHURCH_01_JDG,
M01_PLAYER_IS_LEAVING_CHURCH_02_JDG,
M01_PLAYER_IS_LEAVING_HON_01_JDG,
M01_PLAYER_IS_LEAVING_HON_02_JDG,
M01_PLAYER_IS_CROSSING_THE_BRIDGE_JDG,
M01_PLAYER_IS_CROSSING_THE_BRIDGE_VIA_CAVE_JDG,
M01_PLAYER_ENTERING_LEFT_INTEROG_ROOM_JDG,
M01_PLAYER_ENTERING_RIGHT_INTEROG_ROOM_JDG,
M01_PLAYER_ENTERING_CENTER_INTEROG_ROOM_JDG,
M01_TURN_ON_OUTSIDE_AMBIENTS_JDG,
M01_TURN_OFF_OUTSIDE_AMBIENTS_JDG,
//M01_CUE_THE_SNIPER_SCENARIO_JDG,
M01_HON_CUE_WARROOM_LEVEL_ACTORS_JDG,
M01_REFINERY_CUE_PRIMARY_ACTORS_JDG,
M01_GUARD_TIBERIUM_FIELD_JDG,
M01_GUARD_REFINERY_JDG,
M01_ESCORT_HARVESTER_JDG,
M01_YOUR_BUILDING_HAS_BEEN_DESTROYED_JDG,
M01_ANNOUNCE_AIRSTRIKE_JDG,
M01_ANNOUNCE_REINFORCEMENTS_JDG,
M01_SEND_HON_REINFORCEMENTS_A_JDG,
M01_SEND_HON_REINFORCEMENTS_B_JDG,
M01_SEND_HON_REINFORCEMENTS_C_JDG,
M01_SEND_CHURCH_REINFORCEMENTS_JDG,
M01_HON_CHINOOK_GUY_HAS_BEEN_KILLED_JDG,
M01_CHURCH_GUARD_IS_DEAD_JDG,
M01_LOVESHACK_GUARD_IS_DEAD_JDG,
M01_CUE_CHURCH_PICKUP_CHINOOK_JDG,
M01_CHURCH_CHINOOK_HAS_LANDED_JDG,
M01_CHURCH_CLERGY_HAS_BOARDED_JDG,
M01_CARD_CARRIER_HAS_BEEN_KILLED_JDG,
M01_GDI_GUY_HAS_BEEN_POKED_JDG,
M01_PLEASE_START_ESCORTING_PLAYER_JDG,
M01_PLEASE_STOP_ESCORTING_PLAYER_JDG,
M01_PLAYERS_ESCORT_HAS_BEEN_KILLED_JDG,
M01_PLAYER_HAS_PICKED_UP_CHEMSPRAYER_JDG,
M01_PLAYER_HAS_PICKED_UP_MINIGUN_JDG,
M01_PLAYER_HAS_PICKED_UP_FLAMETHROWER_JDG,
M01_PLAYER_HAS_PICKED_UP_SHOTGUN_JDG,
M01_PLAYER_HAS_PICKED_UP_ROCKETLAUNCHER_JDG,
M01_PLAYER_HAS_PICKED_UP_SNIPERRIFLE_JDG,
M01_PLAYER_IS_ATTACKING_ME_JDG,
M01_DO_ESCORT_ANIMATION_JDG,
M01_ESCORT_IS_ATTACKING_TARGET_JDG,
M01_ESCORT_IS_HOLDING_POSITION_JDG,
M01_DRIVEBYGUY_SAYS_SORRY_JDG,
M01_LOOK_AT_SPEEDRACER_JDG,
M01_SPAWN_TIB_CAVE_HELICOPTER_JDG,
M01_KILL_THE_HON_JDG,
M01_KILL_THE_COMM_JDG,
M01_KILL_THE_GDI_POWER_PLANT_JDG,
M01_PLAYER_HAS_POKED_COMM_CENTER_PCT_JDG,
M01_PLAYER_HAS_POKED_PEN_GATE_JDG,
M01_SCRAMBLE_THE_RADAR_JDG,
M01_UNSCRAMBLE_THE_RADAR_JDG,
M01_SPAWN_WHACK_A_MOLE_GUY_JDG,
M01_CHANGE_WHACK_A_MOLE_GUY_JDG,
M01_HON_SPAWNS_MINIGUNNER_JDG,
M01_HON_SPAWNER_IN_POSITION_JDG,
M01_HON_SPAWNER_IS_DEAD_JDG,
M01_HON_SPAWNER_01_IS_DEAD_JDG,
M01_HON_SPAWNER_02_IS_DEAD_JDG,
M01_HON_SPAWNER_03_IS_DEAD_JDG,
M01_CUE_INTERIOR_NUN_CONVERSATION_JDG,
M01_CUE_LOVESHACK_NUN_CONVERSATION_JDG,
M01_CUE_PRIEST_CONVERSATION_JDG,
M01_CUE_KANE_AND_NUMBER2_CONVERSATION_JDG,
M01_CUE_KANE_AND_NUMBER2_CONVERSATION_02_JDG,
M01_CUE_KANE_AND_HAVOC_CONVERSATION_JDG,
//M01_CUE_LOCKES_HON_MCT_CONVERSATION_JDG,
M01_TURRET_HAS_BEEN_DESTROYED_JDG,
//M01_TURRET_02_HAS_BEEN_DESTROYED_JDG,
M01_FODDER_HOVERCRAFT_IS_HERE,
M01_SPAWN_THE_MEDIUM_TANK_JDG,
M01_BARN_APC_HAS_ARRIVED_JDG,
M01_BUSY_TRY_AGAIN_JDG,
M01_TURRET_BEACH_ENGINEER_IS_DEAD_JDG,
M01_NEW_TURRET_BEACH_ENGINEER_IS_HERE_JDG,
M01_CHECK_TURRETS_HEALTH_JDG,
M01_CUE_BILLYS_CONVERSATION_JDG,
M01_CUE_BABUSHKA_CONVERSATION_JDG,
M01_BARN_GUARD_IS_DEAD_JDG,
M01_MEDIUM_TANK_IS_HERE_JDG,
M01_CIVILIAN_KILLED_JDG,
M01_YOUR_OPERATOR_IS_DEAD_JDG,
M01_START_FLYOVERS_JDG,
M01_STOP_FLYOVERS_JDG,
M01_KILL_THE_REFINERY_JDG = 4000,
M01_GOING_TO_EVAC_SPOT_JDG,
M01_GOING_TO_EVAC_SPOT02_JDG,
};
// Timer Enumerations
typedef enum
{
M1TIMER_START = STIMER_MISSION1,
} M1TIMER;
//mission functions
inline char *M01_Choose_Cheer_Animation ( )
{
char *animationList[4] =
{
"H_A_J01C",
"H_A_J18C",
"H_A_J24C",
"H_A_J26C",
};
int random = Commands->Get_Random_Int(0, 4);
return animationList[random];
};
inline char *M01_Choose_Duck_Animation ( )
{
char *animationList[5] =
{
"H_A_A0A0_L20",
"H_A_A0A0_L21",
"H_A_A0A0_L36",
"H_A_A0A0_L52",
"H_A_J21C",
};
int random = Commands->Get_Random_Int(0, 5);
return animationList[random];
};
inline char *M01_Choose_Search_Animation ( )
{
char *animationList[4] =
{
"H_A_J01C",
//"H_A_J18C",
"H_A_J11C",
"H_A_J23C",
"H_A_J27C",
};
int random = Commands->Get_Random_Int(0, 4);
return animationList[random];
};
inline char *M01_Choose_Idle_Animation ( )
{
char *animationList[14] =
{
"H_A_A0A0_L01",
"H_A_A0A0_L02",
"H_A_A0A0_L03",
"H_A_A0A0_L04",
"H_A_A0A0_L05",
"H_A_A0A0_L13",
"H_A_X33C",
"H_A_J33C",
"H_A_J24C",
"H_A_J22C",
"H_A_J17C",
"H_A_J15C",
"H_A_J14C",
"H_A_J11C",
};
int random = Commands->Get_Random_Int(0, 14);
return animationList[random];
};
/*inline char *M01_Choose_Cheer_Animation ( )
{
char *animationName;
float animationNumber = Commands->Get_Random ( 0.5f, 4.5f);
if ((animationNumber >= 0.5) && (animationNumber < 1.5))
{
animationName = "H_A_J01C";
}
else if ((animationNumber >= 1.5) && (animationNumber < 2.5))
{
animationName = "H_A_J18C";
}
else if ((animationNumber >= 2.5) && (animationNumber < 3.5))
{
animationName = "H_A_J24C";
}
else
{
animationName = "H_A_J26C";
}
return animationName;
};*/
/*inline char *M01_Choose_Search_Animation ( )
{
char *animationName;
float animationNumber = Commands->Get_Random ( 0.5f, 5.5f);
if ((animationNumber >= 0.5) && (animationNumber < 1.5))
{
animationName = "H_A_J01C";
}
else if ((animationNumber >= 1.5) && (animationNumber < 2.5))
{
animationName = "H_A_J11C";
}
else if ((animationNumber >= 2.5) && (animationNumber < 3.5))
{
animationName = "H_A_J18C";
}
else if ((animationNumber >= 3.5) && (animationNumber < 4.5))
{
animationName = "H_A_J23C";
}
else
{
animationName = "H_A_J27C";
}
return animationName;
};*/
/*inline char *M01_Choose_Idle_Animation ( )
{
char *animationName;
float animationNumber = Commands->Get_Random ( 0.5f, 14.5f);
if ((animationNumber >= 0.5) && (animationNumber < 1.5))
{
animationName = "H_A_A0A0_L01";
}
else if ((animationNumber >= 1.5) && (animationNumber < 2.5))
{
animationName = "H_A_A0A0_L02";
}
else if ((animationNumber >= 2.5) && (animationNumber < 3.5))
{
animationName = "H_A_A0A0_L03";
}
else if ((animationNumber >= 3.5) && (animationNumber < 4.5))
{
animationName = "H_A_A0A0_L04";
}
else if ((animationNumber >= 4.5) && (animationNumber < 5.5))
{
animationName = "H_A_A0A0_L05";
}
else if ((animationNumber >= 5.5) && (animationNumber < 6.5))
{
animationName = "H_A_A0A0_L13";
}
else if ((animationNumber >= 6.5) && (animationNumber < 7.5))
{
animationName = "H_A_X33C";
}
else if ((animationNumber >= 7.5) && (animationNumber < 8.5))
{
animationName = "H_A_J33C";
}
else if ((animationNumber >= 8.5) && (animationNumber < 9.5))
{
animationName = "H_A_J24C";
}
else if ((animationNumber >= 9.5) && (animationNumber < 10.5))
{
animationName = "H_A_J22C";
}
else if ((animationNumber >= 10.5) && (animationNumber < 11.5))
{
animationName = "H_A_J17C";
}
else if ((animationNumber >= 11.5) && (animationNumber < 12.5))
{
animationName = "H_A_J15C";
}
else if ((animationNumber >= 12.5) && (animationNumber < 13.5))
{
animationName = "H_A_J14C";
}
else
{
animationName = "H_A_J11C";
}
return animationName;
};*/
#endif // _MISSION1_H_

4779
Code/Scripts/Mission10.cpp Normal file

File diff suppressed because it is too large Load Diff

89
Code/Scripts/Mission10.h Normal file
View File

@@ -0,0 +1,89 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission10.h
*
* DESCRIPTION
* Mission 10 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Dan_e $
* $Revision: 23 $
* $Modtime: 12/06/01 11:43a $
* $Archive: /Commando/Code/Scripts/Mission10.h $
*
******************************************************************************/
#ifndef _MISSION10_H_
#define _MISSION10_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
// Public Variables
// Enumerations
#define MAMMOTH 40000
#define ATTACK 40001
#define KILLED 40002
#define TARGET 40003
#define HON 40004
#define GRANT 40005
#define HELIPAD 40006
#define GOTO_LOC 40007
#define FAKE_TIMER 40008
#define HAVOCS_SCRIPT 40009
#define MISSION_COMPLETE 40010
#define REBUILD 40011
#define M10_PLAYERTYPE_CHANGE_OBELISK 40012
#define FLYOVER 40013
#define REMOVE_SECONDARY_POG 40014
#define ENTERED 40015
#define CLEAR1 40016
#define CLEAR2 40017
#define GRANT_MRLS 40018
#define OCCUPIED 40019
#define TANK_KILLED 40020
#define CARGO_DROP 40021
#define REINFORCE 40022
#define NO_DROP 40023
#define KEY_OBJ 40024
#define DAMAGED 40025
#define RESET 40026
#define KANE_CONV 40027
#define MAMMY 40028
// Timer Enumerations
typedef enum
{
M10TIMER_START = STIMER_MISSION10,
} M10TIMER;
#endif // _MISSION10_H_

11267
Code/Scripts/Mission11.cpp Normal file

File diff suppressed because it is too large Load Diff

281
Code/Scripts/Mission11.h Normal file
View File

@@ -0,0 +1,281 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission11.h
*
* DESCRIPTION
* Mission 11 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Joe_g $
* $Revision: 41 $
* $Modtime: 1/12/02 8:05p $
* $Archive: /Commando/Code/Scripts/Mission11.h $
*
******************************************************************************/
#ifndef _MISSION11_H_
#define _MISSION11_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
//CHARACTERS
#define M11_SIMPLE_SYDNEY_MOBIUS_JDG 100697
#define M11_REAL_SYDNEY_MOBIUS_JDG 100644
#define M11_MUTANT_PETROVA_JDG 300303
#define M11_C130_EASY_SPAWN_CAP_JDG 3
#define M11_C130_MEDIUM_SPAWN_CAP_JDG 6
#define M11_C130_HARD_SPAWN_CAP_JDG 12
//CONTROLLERS
#define M11_MISSION_CONTROLLER_JDG 100101
#define M11_C130_DROPOFF_CONTROLLER_JDG 100221
#define M11_FLOOR01_SECURITY_CONTROLLER_JDG 100179
#define M11_WETBAR_SPAWNER_CONTROLLER_JDG 100326
#define M11_KANESROOM_SECURITY_CONTROLLER_JDG 100351
#define M11_FODDER_CONTROLLER_JDG 100588
#define M11_FIRSTFLOOR_STUFF_CONTROLLER_JDG 100593
#define M11_FIRSTFLOOR_REPELER_CONTROLLER_JDG 101125
//First floor fodder stuff
#define M11_OBELISK_FODDER_SPAWNER01_JDG 100581
#define M11_OBELISK_FODDER_SPAWNER02_JDG 100582
#define M11_TEMPLEROOF_FODDER_SPAWNER01_JDG 100583
#define M11_TEMPLEROOF_FODDER_SPAWNER02_JDG 100586
//floor 01 security turrets related
#define M11_FLOOR01_SECURITY_TURRET_01_JDG 100177
#define M11_FLOOR01_SECURITY_TURRET_03_JDG 100175
#define M11_FLOOR01_SECURITY_TURRET_05_JDG 100173
#define M11_FLOOR01_SECURITY_TURRET_08_JDG 100170
#define M11_FLOOR01_SECURITY_TURRET_10_JDG 100168
#define M11_FLOOR01_SECURITY_TURRET_12_JDG 100167
//museum level encounter related
#define M11_MUSEUM_GUARD_01_JDG 100256
#define M11_MUSEUM_GUARD_02_JDG 100257
#define M11_MUSEUM_GUARD_03_JDG 100258
#define M11_MUSEUM_GUARD_04_JDG 100259
#define M11_MUSEUM_GUARD_05_JDG 100260
#define M11_MUSEUM_GUARD_06_JDG 100261
#define M11_MUSEUM_SPAWNER_JDG 100323
#define M11_WETBAR_SPAWNER_01_JDG 100330
#define M11_WETBAR_SPAWNER_02_JDG 100331
#define M11_WETBAR_SPAWNER_03_JDG 100332
//kane's room's security cameras and turrets
#define M11_KANESROOM_SECURITY_TURRET_01_JDG 100346
#define M11_KANESROOM_SECURITY_TURRET_03_JDG 100349
//WARROOM's security cameras and turrets
#define M11_WARROOM_SECURITY_TURRET_01_JDG 100359
#define M11_WARROOM_SECURITY_TURRET_02_JDG 100360
#define M11_WARROOM_SECURITY_CONTROLLER_JDG 100361
#define M11_WARROOM_SECURITY_SPAWNER_JDG 100362
#define M11_WARROOM_SECURITY_SPAWNER_02_JDG 101772
#define M11_WARROOM_ENGINEER_JDG 100353
//all the barrack encounters stuff going here
#define M11_BARRACKS_SPAWNER_CONTROLLER_JDG 100430
#define M11_BARRACKS_SPAWNER_01_JDG 100427
#define M11_BARRACKS_SPAWNER_02_JDG 100428
#define M11_BARRACKS_SPAWNER_03_JDG 100429
#define M11_BARRACKS_MUTANT_REJECT_JDG 100415
#define M11_BARRACKS_SCIENTIST_JDG 100405
#define M11_BARRACKS_RAGSESSION_TECH_JDG 100402
#define M11_BARRACKS_RAGSESSION_BLACKHAND_JDG 100403
#define M11_BARRACKS_STEALTHSOLDIER_JDG 100400
#define M11_BARRACKS_MUTANTCONVERSATION_GUY01_JDG 100378
#define M11_BARRACKS_MUTANTCONVERSATION_GUY02_JDG 100379
#define M11_BARRACKS_TOILET_MUTANT_01_JDG 100374
#define M11_BARRACKS_TOILET_MUTANT_02_JDG 100375
#define M11_BARRACKS_MUTANTUPRISING_BLACKHAND_JDG 100387
#define M11_BARRACKS_MUTANTUPRISING_MUTANT01_JDG 100388
#define M11_BARRACKS_MUTANTUPRISING_MUTANT02_JDG 100389
//LABORATORY related stuff
#define M11_LABORATORY_MUTANT_CONTROLLER_JDG 100910
//Sydney's rally zones and whatnot
#define M11_SYDNEY_RALLY_ZONE_01_JDG 100132
#define M11_SYDNEY_RALLY_ZONE_02_JDG 100109
#define M11_SYDNEY_RALLY_ZONE_03A_JDG 100133
#define M11_SYDNEY_RALLY_ZONE_03B_JDG 100134
//MUTANT CRYPT SPAWNER STUFF
#define M11_MUTANT_CRYPT_SPAWNER_01_JDG 100691
#define M11_MUTANT_CRYPT_SPAWNER_02_JDG 100692
#define M11_MUTANT_CRYPT_SPAWNER_03_JDG 100693
#define M11_MUTANT_CRYPT_SPAWNER_04_JDG 100694
#define M11_MUTANT_CRYPT_SPAWNER_05_JDG 100695
#define M11_MUTANT_CRYPT_SPAWNER_06_JDG 100696
#define M11_MUTANT_CRYPT_SPAWNER_CONTROLLER_JDG 100689
//POWER CORE STUFF
#define M11_POWERCORE_INITAL_STEALTHGUY01_JDG 100536
#define M11_POWERCORE_INITAL_STEALTHGUY02_JDG 100537
#define M11_POWERCORE_INITAL_STEALTHGUY03_JDG 100538
#define M11_MISSILE_LIFT_01_JDG 167623
#define M11_MISSILE_LIFT_02_JDG 167622
#define M11_MISSILE_LIFT_03_JDG 167621
#define M11_MISSILE_LIFT_04_JDG 167620
#define M11_MISSILE_LIFT_CONTROLLER_JDG 101673
#define M11_PETROVA_STEALTHSPAWNER_01_JDG 105889
#define M11_PETROVA_STEALTHSPAWNER_02_JDG 105890
#define M11_PETROVA_STEALTHSPAWNER_03_JDG 105891
//various MISSION11 objects
#define M11_END_MISSION_SWITCH_JDG 100106
//LOGICAL SOUNDS
#define M11_MUTANT_IS_NEARBY_JDG 400000
//#define M11_STEALTHS_START_ACTING_JDG 400001
// Public Variables
// Enumerations
enum
{
//general commands
//M11_PICK_A_NEW_WAYPATH_JDG,
//M11_DOING_ANIMATION_01_JDG,
//mission controller specific commands
M11_ATTACH_HAVOCS_SCRIPT_JDG,
M11_END_MISSION_PASS_JDG,
M11_END_MISSION_FAIL_JDG,
M11_ADD_FIRST_OBJECTIVE_JDG,
M11_FIRST_OBJECTIVE_JDG,
M11_END_FIRST_OBJECTIVE_JDG,
M11_ADD_SECOND_OBJECTIVE_JDG,
M11_ADD_SECOND_OBJECTIVE_POG_JDG,
M11_SECOND_OBJECTIVE_JDG,
M11_END_SECOND_OBJECTIVE_JDG,
M11_ADD_THIRD_OBJECTIVE_JDG,
M11_THIRD_OBJECTIVE_JDG,
M11_END_THIRD_OBJECTIVE_JDG,
M11_ADD_FORTH_OBJECTIVE_JDG,
M11_FORTH_OBJECTIVE_JDG,
M11_END_FORTH_OBJECTIVE_JDG,
M11_ADD_FIFTH_OBJECTIVE_JDG,
M11_FIFTH_OBJECTIVE_JDG,
M11_END_FIFTH_OBJECTIVE_JDG,
M11_PLAY_SECOND_INTRO_CONVERSATION_JDG,
M11_PETROVA_START_ACTING_JDG,
M11_PETROVA_ATTACK_PLAYER_JDG,
M11_PETROVA_PICK_NEW_LOCATION_JDG,
M11_PLAYER_HAS_POKED_LEVEL4_ELEVATOR_SWITCH_JDG,
M11_PLAYER_HAS_POKED_LEVEL3_ELEVATOR_SWITCH_JDG,
M11_PLAYER_HAS_POKED_LEVEL2_ELEVATOR_SWITCH_JDG,
M11_PLAYER_HAS_POKED_LEVEL1_ELEVATOR_SWITCH_JDG,
M11_GOTO_IDLE_JDG,
M11_START_ACTING_JDG,
M11_PETROVA_FACE_PLAYER_IML,
M11_HAVOC_IS_DEAD_JDG = 4000,
//mutant crypt related
//M11_MUTANT_CHOOSES_SOUND_JDG,
};
// Timer Enumerations
//mission functions
inline char *M11_Choose_Mutant_Idle_Sound ( )
{
char *soundList[4] =
{
"M00MEIN_CTOA0001I1MEIN_SND",
"M00MEIN_CTOR0001I1MEIN_SND",
"M00MEIN_STOA0001I1MEIN_SND",
"M00MEIN_STOR0001I1MEIN_SND",
};
int random = Commands->Get_Random_Int(0, 4);
return soundList[random];
};
inline char *M11_Choose_Mutant_Alerted_Sound ( )
{
char *soundList[3] =
{
"M00MEIN_CTOS0001I1MEIN_SND",
"M00MEIN_RTOS0001I1MEIN_SND",
"M00MEIN_TDFA0001I1MEIN_SND",
};
int random = Commands->Get_Random_Int(0, 3);
return soundList[random];
};
inline char *M11_Choose_Mutant_Attack_Sound ( )
{
char *soundList[3] =
{
"M00MEIN_ATOS0001I1MEIN_SND",
"M00MEIN_CTOS0001I1MEIN_SND",
"M00MEIN_STOC0001I1MEIN_SND",
};
int random = Commands->Get_Random_Int(0, 3);
return soundList[random];
};
inline char *M11_Choose_Mutant_Attack_Animation ( )
{
char *animationList[6] =
{
"S_A_Human.H_A_4243",
"S_A_Human.H_A_822A",
"S_A_Human.H_A_891A",
"S_A_Human.H_A_892A",
"S_A_Human.H_A_893A",
"S_A_Human.H_A_A0F0",
//"S_A_Human.H_A_D11A",
};
int random = Commands->Get_Random_Int(0, 6);
return animationList[random];
};
typedef enum
{
M11TIMER_START = STIMER_MISSION11,
} M11TIMER;
#endif // _MISSION11_H_

60
Code/Scripts/Mission12.h Normal file
View File

@@ -0,0 +1,60 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission12.h
*
* DESCRIPTION
* Mission 12 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 2 $
* $Modtime: 6/13/00 11:27a $
* $Archive: /Commando/Code/Scripts/Mission12.h $
*
******************************************************************************/
#ifndef _MISSION12_H_
#define _MISSION12_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
// Public Variables
// Enumerations
// Timer Enumerations
typedef enum
{
M12TIMER_START = STIMER_MISSION12,
} M12TIMER;
#endif // _MISSION12_H_

110
Code/Scripts/Mission2.h Normal file
View File

@@ -0,0 +1,110 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission2.h
*
* DESCRIPTION
* Mission 2 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 18 $
* $Modtime: 1/02/02 3:10p $
* $Archive: /Commando/Code/Scripts/Mission2.h $
*
******************************************************************************/
#ifndef _MISSION2_H_
#define _MISSION2_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
#define M02_OBJCONTROLLER 1111112
#define M02_AREACOUNT 26
// Public Variables
Vector3 Objective_Radar_Locations [20] =
{
Vector3 (1113.53f,877.16f,17.47f), // Destroy or Deactivate Obelisk
Vector3 (1001.69f,903.86f,0.82f), // Destroy the Dam's MCT
Vector3 (1209.60f,571.97f,18.15f), // Destroy the Hand of Nod
Vector3 (1163.07f,513.01f,20.52f), // Commandeer the Nod Cargo Plane
Vector3 (139.51f,-5.62f,-12.83f), // Destroy the Nod Helipad
Vector3 (130.88f,21.10f,-8.49f), // Secure the Nod Guard Tower
Vector3 (556.17f,23.18f,-53.88f), // Capture the Second House
Vector3 (495.01f,114.70f,-55.84f), // Capture the First House
Vector3 (648.77f,300.74f,-59.99f), // Capture the Third House
Vector3 (425.43f,840.52f,8.09f), // Secure the Ski Resort
Vector3 (468.59f,582.74f,-43.48f), // Destroy the First SAM
Vector3 (493.76f,619.03f,-36.62f), // Destroy the Nod Convoy
Vector3 (572.80f,873.57f,-2.83f), // Destroy the Second SAM
Vector3 (801.57f,1054.95f,22.00f), // Destroy the Third SAM
Vector3 (783.25f,945.26f,23.04f), // Destroy the Fourth SAM
Vector3 (1062.0f,978.7f,-18.3f), // Destroy the Power Plant
Vector3 (1300.2f,614.1f,19.2f), // Eliminate Tiberium Station C
Vector3 (1310.1f,696.5f,19.5f), // Eliminate Tiberium Station A
Vector3 (1342.2f,655.1f,19.3f), // Eliminate Tiberium Station B
Vector3 (570.06f,261.47f,-60.0f) // Commandeer the GDI Mammoth Tank
};
// Enumerations
// Timer Enumerations
typedef enum
{
M2TIMER_START = STIMER_MISSION2,
} M2TIMER;
inline void Send_Custom_To_SAM_Sites (GameObject * obj, int type, int param)
{
GameObject * sam = Commands->Find_Object(1100085);
if (sam)
{
Commands->Send_Custom_Event(obj, sam, type, param, 0.5f);
}
sam = Commands->Find_Object(1100094);
if (sam)
{
Commands->Send_Custom_Event(obj, sam, type, param, 0.5f);
}
sam = Commands->Find_Object(1100120);
if (sam)
{
Commands->Send_Custom_Event(obj, sam, type, param, 0.5f);
}
sam = Commands->Find_Object(1100130);
if (sam)
{
Commands->Send_Custom_Event(obj, sam, type, param, 0.5f);
}
}
#endif // _MISSION2_H_

83
Code/Scripts/Mission3.h Normal file
View File

@@ -0,0 +1,83 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission3.h
*
* DESCRIPTION
* Mission 3 Header File
*
* PROGRAMMER
* Dan Etter
*
* VERSION INFO
* $Author: Dan_e $
* $Revision: 45 $
* $Modtime: 12/03/01 11:46a $
* $Archive: /Commando/Code/Scripts/Mission3.h $
*
******************************************************************************/
#ifndef _MISSION3_H_
#define _MISSION3_H_
// Defines and Includes
#define GOTO_STAR 20000
// Predefined Constants
// Public Variables
// Enumerations
#define SAKURA_DOGFIGHT 40000
#define DOGFIGHT_ENDED 40001
#define MCT_ACCESSED 40002
#define COMM_KILLED 40003
#define ENTERED 40004
#define MESSAGE_DELAY 40005
#define REMOVE_SECONDARY_POG 40006
#define ANNOUNCEMENT_DELAY 40007
#define TROOP_KILLED 40008
#define PAST_PILLBOX 40009
#define POWER_KILLED 40010
#define ENGINEER 40011
#define HEAL_ME 40012
#define HEALTH_CHECK 40013
#define STOP_REPAIR 40014
#define MOVE_TO_HEAL 40015
#define REPAIRING 40016
#define UPDATE 40017
#define BASE 40018
#define INLET 40019
#define BEACH 40020
#define LOCATION 40021
#define ACTIVATE 40022
#define BASE_ENTERED 40023
#define ORCA_TIMER 40024
#define MISSION_FAIL 40025
#define GUNBOAT_KILLED 40026
#define CANNON_KILLED 40027
// Timer Enumerations
#define INLET_REINFORCE 60000
#define CLOUD_DELAY 60001
#endif // _MISSION3_H_

60
Code/Scripts/Mission4.h Normal file
View File

@@ -0,0 +1,60 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission4.h
*
* DESCRIPTION
* Mission 4 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 2 $
* $Modtime: 6/13/00 11:21a $
* $Archive: /Commando/Code/Scripts/Mission4.h $
*
******************************************************************************/
#ifndef _MISSION4_H_
#define _MISSION4_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
// Public Variables
// Enumerations
// Timer Enumerations
typedef enum
{
M4TIMER_START = STIMER_MISSION4,
} M4TIMER;
#endif // _MISSION4_H_

98
Code/Scripts/Mission5.h Normal file
View File

@@ -0,0 +1,98 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission5.h
*
* DESCRIPTION
* Mission 5 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Darren_k $
* $Revision: 49 $
* $Modtime: 11/19/01 2:29p $
* $Archive: /Commando/Code/Scripts/Mission5.h $
*
******************************************************************************/
#ifndef _MISSION5_H_
#define _MISSION5_H_
// Defines and Includes
#include "toolkit.h"
#define M05_CUSTOM_ACTIVATE 5001
#define M05_PARK_ENGINEER_KILLED 5003
#define M05_STAR_INN 5004
#define M05_REINFORCEMENT_KILLED 5005
#define M05_TRIANGLE_REINFORCE 5006
#define M05_TOWNSQUARE_REINFORCE 5007
#define M05_FREE_OVERLOOK_CAPTIVES 5008
#define M05_OVERLOOK_REINFORCE 5009
#define M05_CACHE_REINFORCE 5010
#define M05_FREE_DUMP_CAPTIVES 5011
#define M05_DUMP_REINFORCE 5012
#define M05_INN_REINFORCE 5013
#define M05_INITIATE_CATHEDRAL 5014
#define M05_CATHEDRAL_VEHICLE_KILLED 5015
#define M05_CATHEDRAL_REINFORCE 5016
#define M05_ROADBLOCK_REINFORCE 5017
#define M05_PARK_UNIT_KILLED 5018
#define M05_PARK_VEHICLE_KILLED 5019
#define M05_BLOW_BUILDING 5020
#define M05_CACHE_CIV_KILLED 5021
#define M05_CIV_ARRIVED 5022
#define M05_PROTECT_HAVOC 5023
#define M05_MOVE_DEADEYE 5024
#define M05_DESTROY_OBJECT 5025
#define M05_DEADEYE_FREED 5026
#define M05_HEAL_DEAD6 5027
#define M05_RELOCATE 5028
#define M05_SWAP_ARTILLERY 5029
#define M05_CATHEDRAL_VEHICLE_CREATED 5030
// Predefined Constants
// Logical Sound Types
#define M05_PARK_ALERT 15500
#define M05_CATHEDRAL_FREE 15501
// Public Variables
// Enumerations
// Timer Enumerations
#define M05_DEAD_HAVOC 100500
typedef enum
{
M5TIMER_START = STIMER_MISSION5,
} M5TIMER;
#endif // _MISSION5_H_

108
Code/Scripts/Mission6.h Normal file
View File

@@ -0,0 +1,108 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission6.h
*
* DESCRIPTION
* Mission 6 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Dave_s $
* $Revision: 36 $
* $Modtime: 12/20/01 1:38p $
* $Archive: /Commando/Code/Scripts/Mission6.h $
*
******************************************************************************/
#ifndef _MISSION6_H_
#define _MISSION6_H_
// Defines and Includes
#include "toolkit.h"
#define M06_OBJECTIVE_ACTIVATE 101
// Predefined Constants
// Customs
#define M06_SOUND_ALARM 6000
#define M06_MENDOZA_ID 6001
#define M06_WR_KCARD_ACQUIRED 6002
#define M06_STOP_PICKUP 6003
#define M06_CHECK_ALARM 6005
#define M06_STAND_DOWN 6006
#define M06_START_CONVERSATION 6007
#define M06_FIX_ALARM 6008
#define M06_DEAD_COURTYARD_EAGLE 6009
#define M06_DEAD_HEDGEMAZE_EAGLE 6010
#define M06_DEAD_BARRACKS_EAGLE 6011
#define M06_DISABLE_ZONE 6012
#define M06_DEAD_INTERIOR_PATROL 6013
#define M06_ATTACK_HAVOC 6014
#define M06_DEAD_HAVOC_ATTACKER 6015
#define M06_YOU_ATTACK_HAVOC 6016
#define M06_ALARMED 6017
#define M06_NEXT_EVAC 6018
#define M06_EVAC_ARRIVED 6019
#define M06_TO_EVAC 6020
#define M06_FLYOVER_COMPLETE 6021
#define M06_CUSTOM_ACTIVATE 6023
#define M06_ACTIVATE_FLYOVERS 6024
#define M06_MOVE_SYDNEY 6025
#define M06_CHATEAU_COLLAPSE 6026
#define M06_RELOCATE 6027
#define M06_MIDTRO_EXPLOSION 6028
// Logical Sound Types
#define M06_SOUND_ALARM_ON 16600
#define M06_SOUND_ALARM_OFF 16601
#define M06_DISABLE_TOWER_SPAWN 16602
#define M06_DISABLE_COURTYARD_SPAWN 16603
#define M06_DISABLE_HEDGEMAZE_SPAWN 16604
#define M06_DISABLE_BARRACKS_SPAWN 16605
#define M06_ATTACK_HAVOC_SOUND 16606
#define M06_SOLDIER_TO_EVAC 16607
#define M06_CHATEAU_DESTRUCTION 16608
#define M06_CLEAR_FOR_MENDOZA 16609
// Timers
#define M06_DEAD_HAVOC 100600
// Public Variables
// Enumerations
// Timer Enumerations
typedef enum
{
M6TIMER_START = STIMER_MISSION6,
} M6TIMER;
#endif // _MISSION6_H_

119
Code/Scripts/Mission7.h Normal file
View File

@@ -0,0 +1,119 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission7.h
*
* DESCRIPTION
* Mission 7 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Dave_s $
* $Revision: 17 $
* $Modtime: 11/08/01 1:59p $
* $Archive: /Commando/Code/Scripts/Mission7.h $
*
******************************************************************************/
#ifndef _MISSION7_H_
#define _MISSION7_H_
// Defines and Includes
#include "toolkit.h"
// Customs
#define M07_GO_EVAC_SITE 7000
#define M07_NUKE_BLAST 7001
#define M07_CUSTOM_ACTIVATE 7002
#define M07_REINFORCEMENT_KILLED 7002
#define M07_EVAC_SITE_VEHICLE_KILLED 7003
#define M07_CAPTURE_SAM 7004
#define M07_HOTWIRE_CAPTURE_SAMS 7005
#define M07_CHANGE_SAM_TEAM 7006
#define M07_SAM_CONVERTED 7007
#define M07_SAM_KILLED 7008
#define M07_TOWNSQUARE_CHINOOK 7009
#define M07_RADAR_KILLED 7010
#define M07_FREE_CIV 7011
#define M07_PLAYER_VEHICLE_KILLED 7012
#define M07_VEHICLE_DROP_ZONE 7013
#define M07_ARTILLERY_KILLED 7014
#define M07_PLAYERTYPE_CHANGE_OBELISK 7015
#define M07_DEACTIVATE_ENCOUNTER 7016
#define M07_REINFORCEMENT_UNIT_KILLED 7017
#define M07_REINFORCEMENT_UNIT_CREATED 7018
#define M07_ACTIVATE_ENCOUNTER 7019
#define M07_WINDOW_ACTIVATE 7020
#define M07_WINDOW_REINFORCEMENTS_KILLED 7021
#define M07_V01_UNIT_KILLED 7022
#define M07_DEACTIVATE_V01 7023
#define M07_ACTIVATE_V01 7024
#define M07_TRIANGLE_APC_KILLED 7025
#define M07_TRIANGLE_UNIT_KILLED 7026
#define M07_SPAWN_TRIANGLE_CIV 7027
#define M07_PLAYER_VEHICLE_ID 7028
#define M07_E10_TANK_CREATED 7029
#define M07_PARADROP_UNIT_KILLED 7030
#define M07_DEACTIVATE_PARADROP 7031
#define M07_GO_ASSEMBLY 7032
#define M07_MOVE_HOTWIRE 7033
#define M07_V05_OFFICER_KILLED 7034
#define M07_EVAC_INN 7035
#define M07_INN_HELICOPTER_OUT 7036
#define M07_INN_HELO_COLLISIONS 7037
#define M07_DEAD6_EVAC 7038
#define M07_MOVE_STEALTH_TANK 7039
#define M07_SSM_DAMAGED 7040
#define M07_SSM_FIXED 7041
#define M07_DEACTIVATE_NUKE_BLAST 7042
#define M07_SSM_CRATE_KILLED 7043
#define M07_FREE_CIV_RESIST 7044
#define M07_OBELISK_KILLED 7045
// Logical Sound Types
#define M07_NUKE_IMPACT 17000
#define M07_RADAR_DAMAGED 17001
#define M07_RADAR_FIXED 17002
#define M07_EXPLODE_BARRELS 17003
#define M07_ENGINEER_DAMAGED 17004
#define M07_ENGINEER_FIXED 17005
#define M07_RELOCATE_TRIANGLE_APACHE 17006
// Predefined Constants
#define GUNNER (Commands->Find_Object(100661))
#define PATCH (Commands->Find_Object(100659))
#define DEADEYE (Commands->Find_Object(100660))
#define SYDNEY (Commands->Find_Object(100662))
#define HOTWIRE (Commands->Find_Object(100658))
typedef enum
{
M7TIMER_START = STIMER_MISSION7,
} M7TIMER;
#endif // _MISSION7_H_

129
Code/Scripts/Mission8.h Normal file
View File

@@ -0,0 +1,129 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission8.h
*
* DESCRIPTION
* Mission 8 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Dave_s $
* $Revision: 17 $
* $Modtime: 12/10/01 5:20p $
* $Archive: /Commando/Code/Scripts/Mission8.h $
*
******************************************************************************/
#ifndef _MISSION8_H_
#define _MISSION8_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
// Public Variables
// Enumerations
// Customs
#define M08_ALARMED 8000
#define M08_CHECK_ALARM 8001
#define M08_SOUND_ALARM 8002
#define M08_YOU_ATTACK_HAVOC 8003
#define M08_DEAD_HAVOC_ATTACKER 8004
#define M08_DONT_MOVE 8005
#define M08_NOD_ATTACKEE_KILLED 8006
#define M08_PRISONER_ATTACKER_KILLED 8007
#define M08_GDI_FREE_PRISON_KILLED 8008
#define M08_CUSTOM_ACTIVATE 8009
#define M08_REINFORCEMENT_KILLED 8010
#define M08_UNIT_ID 8011
#define M08_ARCHAELOGICAL_KILLED 8012
#define M08_PETRAA25_KILLED 8013
#define M08_DEACTIVATE_ENCOUNTER 8014
#define M08_INNATE_ON 8015
#define M08_BASKETBALL_GUN_EMP_KILLED 8016
#define M08_PETRA_A_CREATED 8017
#define M08_PETRA_A_KILLED 8018
#define M08_PETRA_A_HELO_KILLED 8019
#define M08_PETRA_A_ACTIVATE 8020
#define M08_PETRA_A_DEACTIVATE 8021
#define M08_PETRA_A_DEACTIVATE_LOGICAL 8022
#define M08_PETRA_A_UNIT_STATUS 8023
#define M08_PETRA_B_CREATED 8024
#define M08_PETRA_B_KILLED 8025
#define M08_PETRA_B_HELO_KILLED 8026
#define M08_PETRA_B_ACTIVATE 8027
#define M08_PETRA_B_DEACTIVATE 8028
#define M08_PETRA_B_DEACTIVATE_LOGICAL 8029
#define M08_PETRA_B_UNIT_STATUS 8030
#define M08_PETRA_C_CREATED 8031
#define M08_PETRA_C_KILLED 8032
#define M08_PETRA_C_HELO_KILLED 8033
#define M08_PETRA_C_ACTIVATE 8034
#define M08_PETRA_C_DEACTIVATE 8035
#define M08_PETRA_C_DEACTIVATE_LOGICAL 8036
#define M08_PETRA_C_UNIT_STATUS 8037
#define M08_SCIENTIST_KILLED 8038
#define M08_REINFORCEMENTS 8039
#define M08_CAVERN_ENTRANCE_TRUCK 8040
#define M08_PATROL_KILLED 8041
#define M08_FREE_PRISONER 8042
#define M08_SAKURA_ID 8043
#define M08_MOVE_SAKURA 8044
#define M08_PLAYER_VEHICLE_ID 8045
#define M08_MOBILE_APACHE_FLEE 8046
#define M08_RELOCATE 8047
#define M08_STAR_IMMORTAL 8048
// Logical Sound Types
#define M08_SOUND_ALARM_ON 18000
#define M08_SOUND_ALARM_OFF 18001
#define M08_ATTACK_HAVOC_SOUND 18002
#define M08_ATTACK_HAVOC 18003
#define M08_FIX_ALARM 18004
#define M08_HELIPAD_DESTROYED 18006
#define M08_PETRA_A_LOGICAL 18007
#define M08_PETRA_B_LOGICAL 18008
#define M08_PETRA_C_LOGICAL 18009
// Timer Enumerations
#define M08_DEAD_HAVOC 28001
typedef enum
{
M8TIMER_START = STIMER_MISSION8,
} M8TIMER;
#endif // _MISSION8_H_

146
Code/Scripts/Mission9.h Normal file
View File

@@ -0,0 +1,146 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission9.h
*
* DESCRIPTION
* Mission 9 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Dan_e $
* $Revision: 57 $
* $Modtime: 1/02/02 10:11a $
* $Archive: /Commando/Code/Scripts/Mission9.h $
*
******************************************************************************/
#ifndef _MISSION9_H_
#define _MISSION9_H_
// Defines and Includes
#include "toolkit.h"
#define check 10000
// Predefined Constants
// Public Variables
// Enumerations
#define RUN_TO_TANK 40000
#define ATTACK 40001
#define CHANGE_ATTACK 40002
#define CHARGE_COMPLETE 40003
#define ACTIVATE 40004
#define COUNTER 40005
#define CONVERSATION 40006
#define TRIGGERED 40007
#define CHANGE_PLAYERTYPE 40008
#define MUTANT 40009
#define ENTERED 40010
#define DEACTIVATE 40011
#define SPAWN_LOC 40012
#define INCREMENT 40013
#define KEY_COUNTER 40014
#define CHECK 40015
#define COUNT 40016
#define VERIFY 40017
#define GO 40018
#define STOP 40019
#define WAYPATH 40020
#define LOCKBOX 40021
#define FOLLOW 40022
#define SET_STAR 40023
#define SET_MOBIUS 40024
#define ENTER 40025
#define EXIT 40026
#define CHECK_STAR 40027
#define CHECK_MOBIUS 40028
#define ELEVATOR 40029
#define START 40030
#define ANIMATION 40031
#define RUN_TO_TARGET 40032
#define RUN_TO_STAR 40033
#define ANIMATION_STAR 40034
#define ATTACK_STAR 40035
#define MUTANT_ATTACKER 40036
#define MUTANT_ATTACKEE 40037
#define ATTACKEE_CHECK 40038
#define ATTACKER_CHECK 40039
#define ELEV_WAYPOINT 40040
#define ELEVATOR_DOWN 40041
#define ELEV_WAYPOINT2 40042
#define ACTIVATEDOWN 40043
#define STAR_STATUS 40044
#define DEAD_MUTANT 40045
#define MOBIUS_GOTO 40046
#define GOAL 40047
#define DECREMENT 40048
#define ENDED 40049
#define FLYOVER 40050
#define COLLISION 40051
#define RESEND_GOTO 40052
#define GOTO 40053
#define RESET 40054
#define MUTANT_GOTO 40055
#define DOING_ANIMATION 40056
#define M09_INNATE_ENABLE 40057
#define ATTACKING 40058
#define AMB_SOUND 40059
#define NEW_KLAXON 40060
#define AMB_EXPLOSION 40061
#define ANIM_DELAY 40062
#define INITIATION 40063
#define CLARK_KENT 40064
#define M09_CHECK_IN 40065
#define INNATE_RECYCLE 40066
#define BAD_PATH 40067
#define DIST_CHECK 40068
#define ALREADY_ENTERED 40069
#define TIMER_RESET 40070
#define ELEVATOR_EXIT 40071
#define TOO_FAR 40072
#define NO_FOLLOW 40073
#define ON 40074
#define OFF 40075
#define MOBIUS_KILLED 40076
#define BLOCK_ON 40077
#define BLOCK_OFF 40078
#define SUIT_ANIMATION 40079
// Timer Enumerations
#define CHECK_DISTANCE 1000
#define M09_DEAD_HAVOC 1001
#define M09_MISSION_COMPLETE 1002
typedef enum
{
M9TIMER_START = STIMER_MISSION9,
} M9TIMER;
#endif // _MISSION9_H_

1855
Code/Scripts/MissionDemo.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,59 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* Mission3.cpp
*
* DESCRIPTION
* Mission 3 script
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Dan_e $
* $Revision: 1 $
* $Modtime: 5/02/02 4:31p $
* $Archive: /Commando/Code/Scripts/MissionS04.cpp $
*
******************************************************************************/
#include "scripts.h"
#include "toolkit.h"
#include <string.h>
#include <stdio.h>
#include "Mission3.h"
#ifdef _XBOX
#include "wwhack.h"
#endif
DECLARE_SCRIPT(MS04_Gunboat_Waypath_Movement, "")
{
void Created( GameObject * obj )
{
ActionParamsStruct params;
params.Set_Basic( this, 45, 999 );
params.Set_Movement( Vector3(0,0,0), 1.0f, 3.0f );
params.WaypathID = 100033;
Commands->Action_Goto( obj, params );
}
}

3346
Code/Scripts/MissionX0.cpp Normal file

File diff suppressed because it is too large Load Diff

395
Code/Scripts/MissionX0.h Normal file
View File

@@ -0,0 +1,395 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* FILE
* MissionX0.h
*
* DESCRIPTION
* Mission X0 definitions
*
* PROGRAMMER
* Design Team
*
* VERSION INFO
* $Author: Rich_d $
* $Revision: 106 $
* $Modtime: 12/17/01 1:12p $
* $Archive: /Commando/Code/Scripts/MissionX0.h $
*
******************************************************************************/
#ifndef _MISSIONX0_H_
#define _MISSIONX0_H_
// Defines and Includes
#include "toolkit.h"
// Predefined Constants
// Public Variables
// Enumerations
#define LEAD 100
#define ENGINEER_GOTO 101
#define COUNTER 102
#define SET_ENGINEER 103
#define CHECK_ENGINEER 104
#define RETURN_ENGINEER1 105
#define RETURN_ENGINEER2 106
#define AMB_SOUND 107
#define COUNT_UP 108
#define SNIPE 108
#define TROOP_DROP 109
#define SEND_EM 110
#define KILL_SNIPER 111
#define KILL 112
#define DOING_ANIMATION 113
#define START_SNIPER 114
#define RUNNING_CONV 115
#define RESEND_GOTO 116
#define EQUIP 117
#define F1_HELP 118
#define INITIAL_CONV 119
#define PROMPT_LOOP 120
#define STATIONARY 121
#define POINT_ANIM 122
#define WAVE_ANIM 123
#define SNIPER_REMINDER 124
#define SNIPER_ANIM 125
#define FIRE_HELP 126
#define MOUSE_HELP 127
#define WSAD_HELP 128
#define INITIAL_EQUIP 129
#define ENGINEER_RETURN 130
#define RUN_AWAY 131
#define ENGINEER_CROUCH 132
#define SNIPER_CREATE 133
#define SNIPER_EXCHANGE 134
#define HIT_ANIMATION 135
#define CROUCH_WANDER 136
#define CROUCH_GOTO 137
#define SNIPER1KILLED 138
#define SNIPE_CONV 139
#define SNIPE_CONV2 140
#define SNIPE_CONV_DONE 141
#define STAY_HERE 142
// Rich's Elements
#define MX0_A02_CONTROLLER_ID 1100000
#define MX0_A01_CONTROLLER_ID 1200001
#define MX0_A02_SPAWNER_01 1100026
#define MX0_A02_SPAWNER_02 1100027
#define MX0_A02_SPAWNER_03 1100028
#define MX0_A02_WAYPATH_01 1100029
#define MX0_A02_WAYPATH_02 1100034
#define MX0_A02_MOVE_OBJ_01 1100006
#define MX0_A02_MOVE_OBJ_02 1100007
#define MX0_A02_MOVE_OBJ_03 1100010
#define MX0_A02_MOVE_OBJ_04 1100011
#define MX0_A02_MOVE_OBJ_05 1100008
#define MX0_A02_MOVE_OBJ_06 1100009
#define MX0_A02_MOVE_OBJ_07 1100012
#define MX0_A02_MOVE_OBJ_08 1100013
#define MX0_A02_MOVE_OBJ_09 1100014
#define MX0_A02_MOVE_OBJ_10 1100015
#define MX0_A02_MOVE_OBJ_11 1100016
#define MX0_A02_MOVE_OBJ_12 1100017
#define MX0_A02_MOVE_OBJ_13 1100018
#define MX0_A02_MOVE_OBJ_14 1100019
#define MX0_A02_MOVE_OBJ_15 1100020
#define MX0_A02_MOVE_OBJ_16 1100021
#define MX0_A02_MOVE_OBJ_SNIPER_01 1100023
#define MX0_A02_MOVE_OBJ_SNIPER_02 1100024
#define MX0_A02_ACTOR_HEADCOUNT 9
#define MX0_A02_ACTOR_NOD_START 5
#define MX0_A02_PLAYER_RETREAT_DISTANCE 30
#define MX0_A02_PRE_AMBIENT_MAX 11
#define MX0_A02_TIMERLENGTH_BASIC_MOVE 4
#define MX0_A02_APPROACH_DISTANCE 50
#define MX0_A02_PRIORITY_ENEMY_SEEN_SHOOT 80
#define MX0_A02_PRIORITY_DEFAULT_SHOOT 90
#define MX0_A02_PRIORITY_DEFAULT_MOVE 95
#define MX0_A02_PRIORITY_FORCED_ACTION 100
// Darren's Stuff
#define MX0_A03_CONTROLLER_ID 1400041 // section 3 controler
#define MX0_A03_TROOPER_ONE_ID 1400141 // test trooper1 id.
#define MX0_A03_NOD_BUGGIE_ID 1400081
#define MX0_A03_NOD_HARVESTER_ID 1400001
#define MX0_A03_DROP_TROOP_ONE_LOC_ID 1400138
#define MX0_A03_DROP_TROOP_TWO_LOC_ID 1400139
#define MX0_A03_DROP_TROOP_THREE_LOC_ID 1400140
#define MX0_A03_NOD_MINIGUNNER_ONE 1400110
#define MX0_A03_NOD_MINIGUNNER_TWO 1400109
#define MX0_A03_GDI_HAVOC_TANK_ID 1400080 // test havoc tank id.
#define MX0_A03_NOD_TURRET_ONE 1400144
#define MX0_A03_NOD_TURRET_TWO 1400146
#define MX0_A03_NOD_PLACED_MINIGUNNER_ONE_ID 1400150
#define MX0_A03_NOD_PLACED_MINIGUNNER_TWO_ID 1400149
#define MX0_A03_CUSTOM_TYPE_START_ZONE 401
#define MX0_A03_CUSTOM_TYPE_NOD_BUGGIE 402
#define MX0_A03_CUSTOM_NOD_TURRET_CREATED 403
#define MX0_A03_CUSTOM_NOD_TURRET_DESTROYED 404
#define MX0_A03_CUSTOM_TYPE_END_ZONE 405
#define MX0_A03_CUSTOM_NOD_LEDGE_CREATED 406
#define MX0_A03_CUSTOM_NOD_LEDGE_KILLED 407
#define MX0_A03_CUSTOM_HARVESTER_DEAD 408
#define MX0_A03_CUSTOM_NOD_INFANTRY_DEAD 409
#define MX0_A03_CUSTOM_GET_TARGET 410
#define MX0_A03_CUSTOM_SEND_TARGET 411
#define MX0_A03_CUSTOM_NO_TARGET 412
#define MX0_A03_CUSTOM_NOD_HARVESTER_DMG_SELF 413
#define MX0_A03_CUSTOM_LOCK_END_ZONE 414
#define MX0_A03_CUSTOM_BUGGIE_DEAD 415
#define MX0_A03_CUSTOM_IS_ZONE_FINISHED 416
#define MX0_A03_CUSTOM_NOD_PLACED_MINIGUNNER_INNATE_ENABLE 417
#define MX0_A03_HUMVEE_DROP_ID 1400042 // humvee drop off location
#define MX0_A03_GDI_TROOP_DROP_ID 1400053 // GDI infantry drop off location
#define MX0_A03_GDI_TANK_DROP_ID 1400057 // GDI Medium Tank drop off location
#define MX0_A03_GDI_ORCA_STRIKE_ID 1400131 // Orca strike location
#define MX0_A03_NOD_LEDGE_DROP_LOC_ID 1400152
#define MX0_A03_NOD_LEDGE_LEFT_LOC_ID 1400153
#define MX0_A03_NOD_LEDGE_RIGHT_LOC_ID 1400155
#define MX0_A03_END_ZONE_ID 1400069
#define MX0_A03_WAYPATH_TANK_ID 1400058 // Medium Tank section 3 waypath
#define MX0_A03_WAYPATH_HUMVEE_TO_A04_ID 1400070 // humvee to section 4 waypath
#define MX0_A03_WAYPATH_NOD_BUGGIE_ID 1400096 // NOD buggie waypath ID.
#define MX0_A03_WAYPATH_HUMVEE_ID 1400043 // humvee secton 3 waypath
#define MX0_A03_WAYPATH_NOD_HARVESTER_ID 1400093 // NOD Harvester waypath ID.
#define MX0_A03_WAYPATH_GDI_TROOPER_ONE_A_ID 1400117
#define MX0_A03_WAYPATH_GDI_TROOPER_ONE_B_ID 1400124
#define MX0_A03_WAYPATH_GDI_TROOPER_ONE_C_ID 1400132
enum
{
MX0_A02_TIMER_DEFAULT = 201,
MX0_A02_TIMER_BASIC_MOVE_01,
MX0_A02_TIMER_BASIC_MOVE_02,
MX0_A02_TIMER_PRE_AMBIENT,
MX0_A02_TIMER_SOLDIER_01_START,
MX0_A02_TIMER_SOLDIER_02_START,
MX0_A02_TIMER_PLAYER_RETREAT,
MX0_A02_TIMER_PREVENT_SPAWNS,
MX0_A02_TIMER_AFTER_HELI_01,
MX0_A02_TIMER_DESTROY_FLAME,
MX0_A02_TIMER_DESTROY_HELI_02,
MX0_A02_TIMER_NOD_RETREAT,
MX0_A02_TIMER_RETREAT_DONE,
MX0_A02_TIMER_DESTROY_MINIGUNNER,
MX0_A02_TIMER_ENGINEER_FIX_TANK,
MX0_A02_TIMER_WAITFOR_MOVETOTANK,
MX0_A02_TIMER_WAITFOR_MOVETORUBBLE,
MX0_A02_TIMER_EAGLE_BASE,
MX0_A02_TIMER_ENTER_TANK,
MX0_A02_TIMER_RANDOM_EXPLOSIONS,
MX0_A02_TIMER_DESTROY_RUBBLE,
MX0_A02_TIMER_WRONG_WAY
};
enum
{
MX0_A02_ACTION_DEFAULT = 201,
MX0_A02_ACTION_ROCKET_SNIPER_MOVE,
MX0_A02_ACTION_ROCKET_SNIPER_MOVE_02,
MX0_A02_ACTION_ROCKET_SNIPER_SHOOT,
MX0_A02_ACTION_ROCKET_SNIPER_SHOOT_02,
MX0_A02_ACTION_BASIC_MOVE_01,
MX0_A02_ACTION_BASIC_MOVE_02,
MX0_A02_ACTION_APPROACH_HAVOC_01,
MX0_A02_ACTION_NODFALL01_MOVE,
MX0_A02_ACTION_GDI_SHOOTS_NOD_01,
MX0_A02_ACTION_NODFALL02_MOVE,
MX0_A02_ACTION_GDI_SHOOTS_NOD_02,
MX0_A02_ACTION_NOD_MOVETO_APC,
MX0_A02_ACTION_NOD_SHOOT_APC,
MX0_A02_ACTION_NOD_DONEWITH_APC,
MX0_A02_ACTION_NOD_HELI_01_MOVE,
MX0_A02_ACTION_NOD_HELI_02_MOVE,
MX0_A02_ACTION_RETREAT_MOVE,
MX0_A02_ACTION_ENGINEER_01_MEDTANK,
MX0_A02_ACTION_ENGINEER_02_RUBBLE,
MX0_A02_ACTION_ENGINEER_RETREAT
};
enum
{
MX0_A02_SPEECH_DEFAULT = 201,
MX0_A02_SPEECH_GDI_01_STARTUP,
MX0_A02_SPEECH_GDI_02_STARTUP,
MX0_A02_SPEECH_GDI_01_STARTUP_02,
MX0_A02_SPEECH_GDI_02_BECKON,
MX0_A02_SPEECH_GDI_03_STARTUP,
MX0_A02_SPEECH_GDI_SOLDIER_CONGRATS_01,
MX0_A02_SPEECH_GDI_SOLDIER_CONGRATS_02,
MX0_A02_SPEECH_GDI_SOLDIER_CONGRATS_03,
MX0_A02_SPEECH_GDI_SOLDIER_CONGRATS_04,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_01,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_02,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_03,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_04,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_05,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_06,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_07,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_08,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_09,
MX0_A02_SPEECH_GDI_PLAYER_CONGRATS_10,
MX0_A02_SPEECH_GDI_PLAYER_RETREAT_01,
MX0_A02_SPEECH_GDI_PLAYER_RETREAT_02,
MX0_A02_SPEECH_GDI_PLAYER_RETREAT_03,
MX0_A02_SPEECH_GDI_PLAYER_RETREAT_04,
MX0_A02_SPEECH_GDI_NOTICES_NOD_01,
MX0_A02_SPEECH_GDI_RESPONDS_01,
MX0_A02_SPEECH_GDI_SPOTS_HELI_DESTROY,
MX0_A02_SPEECH_GDI_SPOTS_HELI_01,
MX0_A02_SPEECH_GDI_SPOTS_HELI_02,
MX0_A02_SPEECH_GDI_NOTICES_FLAME,
MX0_A02_SPEECH_GDI_NOTICES_FLAME_DEAD,
MX0_A02_SPEECH_NOD_HELI_DESTROYED_01,
MX0_A02_SPEECH_NOD_HELI_DESTROYED_02,
MX0_A02_SPEECH_ENDING_01,
MX0_A02_SPEECH_ENDING_02,
MX0_A02_SPEECH_ENDING_03,
MX0_A02_SPEECH_ENDING_04,
MX0_A02_SPEECH_ENDING_05,
MX0_A02_SPEECH_ENGINEER_TANK_01,
MX0_A02_SPEECH_ENGINEER_DONE,
MX0_A02_SPEECH_UNSTOPPABLE,
MX0_A02_SPEECH_TANKSAY_01,
MX0_A02_SPEECH_TANKSAY_02,
MX0_A02_SPEECH_TANKSAY_03,
MX0_A02_SPEECH_TANKSAY_04,
MX0_A02_SPEECH_APC_DOWN,
MX0_A02_SPEECH_WRONGWAY_01,
MX0_A02_SPEECH_WRONGWAY_02,
MX0_A02_SPEECH_WRONGWAY_03
};
enum
{
MX0_A02_CUSTOM_TYPE_DEFAULT = 201,
MX0_A02_CUSTOM_TYPE_MAIN_STARTUP,
MX0_A02_CUSTOM_TYPE_MAIN_ENDING,
MX0_A02_CUSTOM_TYPE_REGISTER_ACTOR_ID,
MX0_A02_CUSTOM_TYPE_DAMAGE_ON,
MX0_A02_CUSTOM_TYPE_DAMAGE_OFF,
MX0_A02_CUSTOM_TYPE_DEFAULT_STATE_ON,
MX0_A02_CUSTOM_TYPE_DEFAULT_STATE_OFF,
MX0_A02_CUSTOM_TYPE_REQUEST_TARGET,
MX0_A02_CUSTOM_TYPE_DESTROY_APC,
MX0_A02_CUSTOM_TYPE_PRE_AMBIENT,
MX0_A02_CUSTOM_TYPE_PRE_AMBIENT_OFF,
MX0_A02_CUSTOM_KILL_SNIPER_01,
MX0_A02_CUSTOM_KILL_SNIPER_02,
//DAY - Added these two to fix scripts.
MX0_A02_CUSTOM_TYPE_STARTUP,
MX0_A02_CUSTOM_TYPE_ROCKET_SNIPER,
MX0_A02_CUSTOM_TYPE_START_GDI_01,
MX0_A02_CUSTOM_TYPE_START_GDI_02,
MX0_A02_CUSTOM_TYPE_START_GDI_03,
MX0_A02_CUSTOM_TYPE_START_GDI_04,
MX0_A02_CUSTOM_TYPE_START_GDI_05,
MX0_A02_CUSTOM_TYPE_CONTINUE,
MX0_A02_CUSTOM_TYPE_GET_SNIPER_01_ID,
MX0_A02_CUSTOM_TYPE_GET_SNIPER_02_ID,
MX0_A02_CUSTOM_TYPE_HANDOFF_SNIPER_01_ID,
MX0_A02_CUSTOM_TYPE_HANDOFF_SNIPER_02_ID,
MX0_A02_CUSTOM_TYPE_PLAYER_KILLED_NOD,
MX0_A02_CUSTOM_TYPE_SOLDIER_KILLED_NOD,
MX0_A02_CUSTOM_TYPE_PLAYER_CONGRATS,
MX0_A02_CUSTOM_TYPE_SOLDIER_CONGRATS,
MX0_A02_CUSTOM_TYPE_PLAYER_RETREAT,
MX0_A02_CUSTOM_TYPE_NOD_SOLDIER_KILLED,
MX0_A02_CUSTOM_TYPE_GDI_NOTICES_NOD_01,
MX0_A02_CUSTOM_TYPE_GDI_SHOOTS_NOD_01,
MX0_A02_CUSTOM_TYPE_NEXT_SEQUENCE,
MX0_A02_CUSTOM_TYPE_GDI_RESPONDS_01,
MX0_A02_CUSTOM_TYPE_GDI_SHOOTS_NOD_02,
MX0_A02_CUSTOM_TYPE_APC_DESTROY,
MX0_A02_CUSTOM_TYPE_APC_BLOWITUP,
MX0_A02_CUSTOM_TYPE_GET_APC_ID,
MX0_A02_CUSTOM_TYPE_HELI_DESTROYED,
MX0_A02_CUSTOM_TYPE_GDI_NOTICES_HELI_01,
MX0_A02_CUSTOM_TYPE_GDI_NOTICES_HELI_02,
MX0_A02_CUSTOM_TYPE_GDI_NOTICES_FLAME,
MX0_A02_CUSTOM_TYPE_GDI_NOTICES_FLAME_DEAD,
MX0_A02_CUSTOM_TYPE_HELI_DESTROYED_02,
MX0_A02_CUSTOM_TYPE_RETREAT_SEQUENCE,
MX0_A02_CUSTOM_TYPE_RETREAT_DONE,
MX0_A02_CUSTOM_TYPE_ENDING_01,
MX0_A02_CUSTOM_TYPE_ENDING_02,
MX0_A02_CUSTOM_TYPE_ENDING_03,
MX0_A02_CUSTOM_TYPE_ENDING_04,
MX0_A02_CUSTOM_TYPE_ENDING_05,
MX0_A02_CUSTOM_TYPE_ENDING_06,
MX0_A02_CUSTOM_TYPE_ENGINEER_MOVETOTANK,
MX0_A02_CUSTOM_TYPE_ENGINEER_DONE,
MX0_A02_CUSTOM_TYPE_SAY_TANK,
MX0_A02_CUSTOM_TYPE_ENGINEER_02_REGISTER,
MX0_A02_CUSTOM_TYPE_TANKSAY_01,
MX0_A02_CUSTOM_TYPE_TANKSAY_02,
MX0_A02_CUSTOM_TYPE_TANKSAY_03,
MX0_A02_CUSTOM_TYPE_ENTERED_TANK,
MX0_A02_CUSTOM_TYPE_SAY_FIREHOLE,
MX0_A02_CUSTOM_TYPE_EXPLODE,
MX0_A02_CUSTOM_TYPE_FOLLOW_HAVOC,
MX0_A02_CUSTOM_TYPE_A02_DONE,
MX0_A02_CUSTOM_TYPE_SAY_APC_DOWN,
MX0_A02_CUSTOM_TYPE_SHOOT_HELI_02,
MX0_A02_CUSTOM_TYPE_SAY_WRONG_WAY
};
enum
{
MX0_A02_CUSTOM_PARAM_DEFAULT
};
enum
{
MX0_A02_ID_DEFAULT,
MX0_A02_ID_TROOPER_01,
MX0_A02_ID_TROOPER_02,
MX0_A02_ID_TROOPER_03,
MX0_A02_ID_TROOPER_04,
MX0_A02_ID_NOD_UNIT_01,
MX0_A02_ID_NOD_UNIT_02,
MX0_A02_ID_NOD_UNIT_03,
MX0_A02_ID_NOD_UNIT_04
};
#endif // _MISSION4_H_

4694
Code/Scripts/PRDemo.cpp Normal file

File diff suppressed because it is too large Load Diff

255
Code/Scripts/PRDemo.h Normal file
View File

@@ -0,0 +1,255 @@
/*
** 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 <http://www.gnu.org/licenses/>.
*/
/******************************************************************************
*
* 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_

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More