| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156 |
- /*
- ** 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
- * Byon Garrabrant
- *
- * VERSION INFO
- * $Author: Byon_g $
- * $Revision: 100 $
- * $Modtime: 12/17/01 11:12a $
- * $Archive: /Commando/Code/Scripts/Test_BMG.cpp $
- *
- ******************************************************************************/
- #include "scripts.h"
- DECLARE_SCRIPT(BMG_Test_Script, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "BMG Test Script\n" );
- // Commands->Start_Timer( obj, this, 5, 0 );
- /* ActionParamsStruct params;
- params.Set_Basic( this, 80, 0 );
- params.Set_Attack( Vector3( 0,0,10 ), 100, 15, 1 );
- params.AttackCheckBlocked = false;
- Commands->Action_Attack( obj, params );*/
- }
- void Sound_Heard( GameObject * obj, const CombatSound & sound )
- {
- Commands->Debug_Message("Heard Sound %d\n", sound.Type );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Start_Timer( obj, this, 5, 0 );
- GameObject * star = Commands->Get_The_Star();
- if ( star ) {
- Commands->Clear_Weapons( star );
- Commands->Give_PowerUp(star, "POW_LaserRifle_Player");
- Commands->Select_Weapon(star, "Weapon_LaserRifle_Player" );
- }
- }
- };
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////// /////////////////////////////////////////
- //////////////////// ALL THE REST ARE COMMENTED OUT /////////////////////////////////////////
- //////////////////// /////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- #if 0
- DECLARE_SCRIPT(BMG_Toggle_Control, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "BMG Test Script\n" );
- Commands->Start_Timer( obj, this, 3, 0 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Debug_Message( "BMG Test Script\n" );
- Commands->Start_Timer( obj, this, 5, timer_id+1 );
- GameObject * star = Commands->Get_The_Star();
- Commands->Control_Enable( star, ( timer_id & 1 ) );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Enter_Vehicle, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "BMG Test Script\n" );
- Commands->Start_Timer( obj, this, 5, 0 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Debug_Message( "Start Goto\n" );
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, 0 );
- params.Set_Movement( Vector3( 0.1f, -6.1f, 0 ), 1, 0.2f );
- Commands->Action_Goto( obj, params );
- }
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- if ( action_id == 0 ) {
- Commands->Debug_Message( "Enter\n" );
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, 1 );
- params.Set_Movement( Vector3( 2.5f, -6.1f, 0 ), 1, 0.2f );
- Commands->Action_Enter_Exit( obj, params );
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_Pogs, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 5, 0 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Debug_Message( "Hello\n" );
- Commands->Start_Timer( obj, this, 5, timer_id+1 );
- switch( timer_id ) {
- case 0:
- Commands->Add_Objective( 100, OBJECTIVE_TYPE_SECONDARY, OBJECTIVE_STATUS_PENDING, IDS_BYON, NULL );
- Commands->Set_Objective_Radar_Blip( 100, Vector3( 10, 10, 0 ) );
- Commands->Set_Objective_HUD_Info( 100, 100, "HUD_OBJE_ARROW.TGA", IDS_BYON );
- break;
- case 1:
- Commands->Add_Objective( 101, OBJECTIVE_TYPE_PRIMARY, OBJECTIVE_STATUS_PENDING, IDS_BYON, NULL );
- Commands->Set_Objective_Radar_Blip( 101, Vector3( 10, -10, 0 ) );
- Commands->Set_Objective_HUD_Info( 101, 101, "HUD_OBJECTIVE.TGA", IDS_BYON );
- break;
- case 2:
- Commands->Set_Objective_Status( 100, OBJECTIVE_STATUS_ACCOMPLISHED );
- break;
- }
- // GameObject *controller = Commands->Create_Object("Invisible_Object", Vector3(0,0,0));
- // Commands->Attach_Script(controller, "Test_Cinematic", "test.txt");
- }
- };
- DECLARE_SCRIPT(BMG_Test_Misc_Script, "" )
- {
- void Created(GameObject* obj)
- {
- // GameObject * star = Commands->Get_The_Star();
- /* ActionParamsStruct params;
- params.Set_Basic( this, 80, 0 );
- params.Set_Attack( Vector3( 9.6f,-3.0f,1.9f), 100, 15, 1 );
- params.AttackCheckBlocked = false;
- Commands->Action_Attack( obj, params );
- Commands->Debug_Message( "BMG Test Script %p\n", obj );*/
- /*
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, 0 );
- params.Set_Movement( Vector3( 13,-78,0 ), 1, 1 );
- Commands->Action_Goto( obj, params );*/
- // Commands->Start_Timer( obj, this, 20, 0 );
- // Action_Complete( obj, 1, (ActionCompleteReason)0 );
- /* Commands->Debug_Message("Objective Created\n");
- Commands->Add_Objective( 300, OBJECTIVE_TYPE_PRIMARY, OBJECTIVE_STATUS_PENDING, 1000 );
- Commands->Set_Objective_Radar_Blip_Object( 300, obj );*/
- }
- int state;
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- Commands->Debug_Message( "BMG Complete %p %d\n", obj, complete_reason );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Mission_Complete( true );
- // Commands->Static_Anim_Phys_Goto_Last_Frame (150047, NULL );
- // Commands->Static_Anim_Phys_Goto_Last_Frame (150047, "BASEGATE.BASEGATE" );
- // Commands->Static_Anim_Phys_Goto_Frame ( 150047, 31, "BASEGATE.BASEGATE" );
- }
- void Sound_Heard( GameObject * obj, const CombatSound & sound )
- {
- Commands->Debug_Message("Heard Sound %d\n", sound.Type );
- }
- void Damaged( GameObject * obj, GameObject * damager, float amount )
- {
- GameObject * o = Commands->Create_Object ( "Invisible_Object", Vector3(-90.0f, 50.0f, 0.0f));
- Commands->Attach_Script(o, "Test_Cinematic", "X1I_troopdrop02.txt");
- }
- };
- DECLARE_SCRIPT(Start_Script, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "Start_Script\n" );
- }
- };
- DECLARE_SCRIPT(Respawn_Script, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "Respawn_Script\n" );
- }
- };
- DECLARE_SCRIPT(BMG_Spray_Shooter, "" )
- {
- void Created(GameObject* obj)
- {
- // GameObject * star = Commands->Get_The_Star();
- ActionParamsStruct params;
- params.Set_Basic( this, 80, 0 );
- params.Set_Attack( Vector3( 9.6f,-3.0f,1.9f), 100, 15, 1 );
- params.AttackCheckBlocked = false;
- Commands->Action_Attack( obj, params );
- Commands->Debug_Message( "BMG Test Script %p\n", obj );
- /*
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, 0 );
- params.Set_Movement( Vector3( 13,-78,0 ), 1, 1 );
- Commands->Action_Goto( obj, params );*/
- // Commands->Start_Timer( obj, this, 20, 0 );
- // Action_Complete( obj, 1, (ActionCompleteReason)0 );
- /* Commands->Debug_Message("Objective Created\n");
- Commands->Add_Objective( 300, OBJECTIVE_TYPE_PRIMARY, OBJECTIVE_STATUS_PENDING, 1000 );
- Commands->Set_Objective_Radar_Blip_Object( 300, obj );*/
- }
- int state;
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- Commands->Debug_Message( "BMG Complete %p %d\n", obj, complete_reason );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Mission_Complete( true );
- // Commands->Static_Anim_Phys_Goto_Last_Frame (150047, NULL );
- // Commands->Static_Anim_Phys_Goto_Last_Frame (150047, "BASEGATE.BASEGATE" );
- // Commands->Static_Anim_Phys_Goto_Frame ( 150047, 31, "BASEGATE.BASEGATE" );
- }
- };
- DECLARE_SCRIPT(BMG_Monitor_Events, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "BMG Monitor Events Created\n" );
- Commands->Enable_Enemy_Seen( obj, true );
- }
- virtual void Custom( GameObject * obj, int type, int param, GameObject * sender )
- {
- switch( type ) {
- case CUSTOM_EVENT_VEHICLE_ENTERED:
- Commands->Debug_Message("BMG CUSTOM VEHICLE ENTERED %d %d\n", param, Commands->Get_ID( sender ) );
- break;
- case CUSTOM_EVENT_VEHICLE_EXITED:
- Commands->Debug_Message("BMG CUSTOM VEHICLE EXITED %d %d\n", param, Commands->Get_ID( sender ) );
- break;
- default:
- Commands->Debug_Message("BMG CUSTOM %d %d\n", type, param );
- break;
- }
- }
- void Enemy_Seen( GameObject * obj, GameObject * enemy )
- {
- Commands->Debug_Message("BMG ENEMY_SEEN %d\n", Commands->Get_ID( enemy ) );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Powerup, "" )
- {
- virtual void Custom( GameObject * obj, int type, int param, GameObject * sender )
- {
- if ( type == CUSTOM_EVENT_POWERUP_GRANTED ) {
- Commands->Debug_Message( "POWERUP for %d\n", Commands->Get_ID( sender ) );
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_Walking, "" )
- {
- int state;
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG Walking\n");
- Action_Complete( obj, 1, (ActionCompleteReason)0 );
- }
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- state = !state;
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, action_id+1 );
- if ( state ) {
- params.Set_Movement( Vector3( 7,-3,0 ), 1, 1 );
- } else {
- params.Set_Movement( Vector3( 10,0,0 ), 1, 1 );
- }
- params.Set_Attack( Vector3( 20,20,0 ), 100, 1, true );
- Commands->Action_Attack( obj, params );
- }
- };
- DECLARE_SCRIPT(BMG_Vehicle_Awareness, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Enable_Enemy_Seen( obj, true );
- }
- void Sound_Heard( GameObject * obj, const CombatSound & sound )
- {
- Commands->Debug_Message("Heard\n");
- }
- void Enemy_Seen( GameObject * obj, GameObject * enemy )
- {
- Commands->Debug_Message("Seen\n");
- }
- };
- DECLARE_SCRIPT(BMG_Test_Score, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 1, 0 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- GameObject * star = Commands->Get_A_Star( Vector3(0,0,0) );
- if (star) {
- Commands->Give_Points( star, 100, 0 );
- Commands->Debug_Message("Add Score\n");
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_Flash, "" )
- {
- void Created(GameObject* obj)
- {
- Timer_Expired( obj, 0 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Start_Timer( obj, this, 1, timer_id + 1 );
- Commands->Set_Is_Rendered( obj, (timer_id & 1) == 0 );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Objective, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("Objective Created\n");
- Commands->Add_Objective( 300, OBJECTIVE_TYPE_PRIMARY, OBJECTIVE_STATUS_PENDING, 1000 );
- Commands->Set_Objective_Radar_Blip_Object( 300, obj );
- Commands->Start_Timer( obj, this, 6, 0);
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Debug_Message("Objective Removed\n");
- Commands->Remove_Objective( 300 );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Messages, "speed=1.0:float")
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG CREATED\n");
- }
- void Killed( GameObject * obj, GameObject * killer )
- {
- Commands->Debug_Message("BMG KILLED\n");
- }
- virtual void Damaged( GameObject * obj, GameObject * damager, float amount )
- {
- Commands->Debug_Message("BMG DAMAGED\n");
- }
- virtual void Custom( GameObject * obj, int type, int param, GameObject * sender )
- {
- Commands->Debug_Message("BMG CUSTOM %d %d\n", type, param );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Anim_Speed, "speed=1.0:float")
- {
- void Created(GameObject* obj)
- {
- Timer_Expired( obj, -1 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Start_Timer( obj, this, 3.5, (timer_id+1)&3 );
- Vector3 position = Commands->Get_Position( obj );
- float speed = Get_Float_Parameter( "speed" );
- switch( timer_id ) {
- case 0: position += Vector3( speed * 100, 0, 0 ); break;
- case 1: position += Vector3( -speed * 100, 0, 0 ); break;
- case 2: position += Vector3( 0, speed * 100, 0 ); break;
- case 3: position += Vector3( 0, -speed * 100, 0 ); break;
- }
- ActionParamsStruct params;
- params.Set_Basic( this, 80, 0 );
- params.Set_Movement( position, speed, 0.5f );
- GameObject * star = Commands->Get_A_Star( position );
- params.Set_Attack( star, 0.1f, 0, 1 );
- Commands->Action_Attack( obj, params );
- }
- };
- DECLARE_SCRIPT( BMG_Test_Radar, "" )
- {
- void Created( GameObject * obj )
- {
- Commands->Debug_Message("BMG Test Radar\n");
- // Commands->Start_Timer( obj, this, 5, 1 );
- // Commands->Start_Timer( obj, this, 10, 2 );
- // Commands->Start_Timer( obj, this, 5, 3 );
- // Commands->Start_Timer( obj, this, 10, 4 );
- // Commands->Start_Timer( obj, this, 15, 5 );
- // Commands->Start_Timer( obj, this, 20, 6 );
- Commands->Start_Timer( obj, this, 5, 7 );
- Commands->Start_Timer( obj, this, 10, 8 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- switch( timer_id ) {
- case 1:
- Commands->Debug_Message("BMG Test Radar : Change Color\n");
- Commands->Set_Obj_Radar_Blip_Color( obj, RADAR_BLIP_COLOR_GDI );
- break;
- case 2:
- Commands->Debug_Message("BMG Test Radar : Change Shape\n");
- Commands->Set_Obj_Radar_Blip_Shape( obj, RADAR_BLIP_SHAPE_VEHICLE );
- break;
- case 3:
- Commands->Debug_Message("BMG Test Radar : Create Objective\n");
- Commands->Add_Objective( 6, OBJECTIVE_TYPE_PRIMARY, OBJECTIVE_STATUS_PENDING, IDS_M04_RescuePrisoners );
- break;
- case 4:
- Commands->Debug_Message("BMG Test Radar : Make Objective Blip\n");
- Commands->Set_Objective_Radar_Blip( 6, Vector3( -5, -15, 0 ) );
- break;
- case 5:
- Commands->Debug_Message("BMG Test Radar : Change Objective Priority\n");
- Commands->Change_Objective_Type( 6, OBJECTIVE_TYPE_SECONDARY );
- break;
- case 6:
- Commands->Debug_Message("BMG Test Radar : Change Objective Status\n");
- Commands->Set_Objective_Status( 6, OBJECTIVE_STATUS_ACCOMPLISHED );
- break;
- case 7:
- Commands->Debug_Message("BMG Test Radar : Create Marker\n");
- Commands->Add_Radar_Marker( 9, Vector3( -5, -15, 0 ), RADAR_BLIP_SHAPE_VEHICLE, RADAR_BLIP_COLOR_GDI );
- break;
- case 8:
- Commands->Debug_Message("BMG Test Radar : Delete Marker\n");
- Commands->Clear_Radar_Marker( 9 );
- break;
- }
- }
- };
- DECLARE_SCRIPT( BMG_Test_Animation, "" )
- {
- void Created( GameObject * obj )
- {
- Commands->Debug_Message("BMG Test Animation\n");
- Timer_Expired( obj, 1 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Start_Timer( obj, this, 1, 1 );
- ActionParamsStruct params;
- params.Set_Basic( this, 190, 0 );
- params.Set_Animation( "S_A_HUMAN.H_A_611A", false );
- // Commands->Action_Play_Animation( obj, params );
- Commands->Set_Animation( obj, "S_A_HUMAN.H_A_611A", true );
- }
- };
- DECLARE_SCRIPT( BMG_Test_Attack, "" )
- {
- void Created(GameObject* obj)
- {
- ActionParamsStruct params;
- params.Set_Basic( this, 1000, 1 );
- params.Set_Movement( Vector3( 5,5,5 ), 1, 1000 );
- params.Set_Attack( Vector3( 5,5,5 ), 1000, 0, 1 );
- params.AttackCheckBlocked = false;
- Commands->Action_Attack( obj, params );
- }
- };
- DECLARE_SCRIPT( BMG_Test_Damage, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 3, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Start_Timer( obj, this, 3, 0 );
- Commands->Debug_Message( "BMG_Test_Damage\n" );
- Commands->Apply_Damage( obj, 2, "STEEL" );
- }
- };
- DECLARE_SCRIPT( BMG_Test_Save_Load, "" )
- {
- int Value1;
- float Value2;
- // Register variables to be Auto-Saved
- // All variables must have a unique ID, less than 256, that never changes
- REGISTER_VARIABLES()
- {
- SAVE_VARIABLE( Value1, 1 );
- SAVE_VARIABLE( Value2, 2 );
- }
- void Created( GameObject* obj )
- {
- Timer_Expired( obj, 1 );
- Timer_Expired( obj, 2 );
- Value1 = 0;
- Value2 = 0.0f;
- }
- void Timer_Expired( GameObject* obj, int Timer_ID )
- {
- if ( Timer_ID == 1 ) {
- Commands->Debug_Message("BMG_Test_Save_Load: Value1: %d\n", Value1++ );
- Commands->Start_Timer( obj, this, 1, Timer_ID );
- } else {
- Value2 += 0.3333f;
- Commands->Debug_Message("BMG_Test_Save_Load: Value2: %f\n", Value2 );
- Commands->Start_Timer( obj, this, 1.5f, Timer_ID );
- }
- }
- //*****************************************************************************
- #if 0
- typedef enum
- {
- DATA_ID_VALUE1,
- DATA_ID_VALUE2,
- };
- void Save_Data( ScriptSaver & saver )
- {
- SAVE_BEGIN();
- SAVE_DATA( DATA_ID_VALUE1, Value1 );
- SAVE_DATA( DATA_ID_VALUE2, Value2 );
- SAVE_END();
- }
- void Load_Data( ScriptLoader & loader )
- {
- LOAD_BEGIN();
- LOAD_DATA( DATA_ID_VALUE1, Value1 );
- LOAD_DATA( DATA_ID_VALUE2, Value2 );
- LOAD_END();
- }
- #endif
- };
- DECLARE_SCRIPT( BMG_Test_Attach, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 3, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Debug_Message("BMG_Test_Attach to Commando's HEAD!!!\n" );
- GameObject * star = Commands->Get_A_Star( Commands->Get_Position( obj ) );
- if ( star != NULL ) {
- Commands->Attach_To_Object_Bone( obj, star, "C HEAD" );
- }
- }
- };
- DECLARE_SCRIPT( BMG_Test_Spawn, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 5, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Start_Timer( obj, this, 5, 0 );
- GameObject * spawn = Commands->Trigger_Spawner( 100026, true );
- Commands->Debug_Message("BMG_Test_Spawn %p\n", spawn);
- }
- };
- DECLARE_SCRIPT( BMG_Test_Custom, "" )
- {
- void Custom( GameObject * obj, int type, int param, GameObject * sender )
- {
- Commands->Debug_Message("BMG Test Custom %d %d\n", type, param );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Running, "" )
- {
- int state;
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG Running\n");
- Action_Complete( obj, 1, (ActionCompleteReason)0 );
- }
-
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- state = !state;
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, action_id+1 );
- if ( state ) {
- params.Set_Movement( Vector3( 13,-78,0 ), 1, 1 );
- } else {
- params.Set_Movement( Vector3( 69,-21,0 ), 1, 1 );
- }
- Commands->Action_Goto( obj, params );
- }
- };
- DECLARE_SCRIPT(BMG_Set_Home, "")
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 5, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Debug_Message("BMG_Set_Home\n");
- Commands->Set_Innate_Soldier_Home_Location( obj, Vector3(0,0,0), 0.5 );
- }
- };
- DECLARE_SCRIPT(BMG_Look_Test, "")
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, this, 1, -10 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Debug_Message("BMG_Look_Test %d\n", Timer_ID);
- ActionParamsStruct params;
- params.Set_Basic(this, 100, 100);
- if ( Timer_ID >= 12 ) {
- Timer_ID = -10;
- } else {
- Timer_ID += 20;
- }
- params.Set_Look( Vector3( 0,2,Timer_ID ), 5 );
- params.Set_Look( Commands->Get_The_Star(), 5 );
- Commands->Start_Timer( obj, this, 10, Timer_ID );
- params.Set_Movement( Vector3( Timer_ID,Timer_ID,0 ), 0, 1 );
- // params.Set_Movement(p_leader, 1.0f, 1.0f);
- Commands->Action_Goto(obj, params);
- }
- };
- DECLARE_SCRIPT(BMG_Timer_Test, "")
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG Timer Test Start\n");
- Commands->Start_Timer( obj, this, 5, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Debug_Message("Difficulty Level is %d\n", Commands->Get_Difficulty_Level() );
- Commands->Start_Timer( obj, this, 5, 0 );
- }
- };
- DECLARE_SCRIPT(BMG_Shooter, "")
- {
- void Created(GameObject* obj)
- {
- GameObject * target = Commands->Find_Object( 100004 );
- if ( target ) {
- Commands->Debug_Message("Shooting\n" );
- ActionParamsStruct params;
- params.Set_Basic( this, 1000, 1 );
- params.Set_Movement( target, 1, 1000 );
- params.Set_Attack( target, 1000, 0, 1 );
- Commands->Action_Attack( obj, params );
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_Display_Text, "" )
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message( "BMG_Test_Display_Text %s %d %f\n", "Hi", 5, 1.5f );
- Commands->Set_Display_Color( 0,0,255 );
- Commands->Display_Text( IDS_BYON );
- Commands->Display_Float( 1.5f );
- Commands->Display_Int( 5 );
- Commands->Set_Display_Color();
- Commands->Display_Text( IDS_BYON );
- Action_Complete( obj, 1, (ActionCompleteReason)0 );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Poked, "" )
- {
- void Poked( GameObject * obj, GameObject * poker )
- {
- Commands->Debug_Message_2("BMG_TEST_POKED %p Poked\n", (int)obj);
- }
- };
- DECLARE_SCRIPT(BMG_Test_Running, "" )
- {
- int state;
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG Running\n");
- Action_Complete( obj, 1, (ActionCompleteReason)0 );
- }
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- state = !state;
- int priority = 80;
- ActionParamsStruct params;
- params.Set_Basic( this, priority, action_id+1 );
- if ( state ) {
- params.Set_Movement( Vector3( 13,-78,0 ), 1, 1 );
- } else {
- params.Set_Movement( Vector3( 69,-21,0 ), 1, 1 );
- }
- Commands->Action_Goto( obj, params );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Objectives, "")
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG Objectives\n");
- Commands->Start_Timer( obj, this, 5, 0 );
- Commands->Start_Timer( obj, this, 10, 1 );
- Commands->Start_Timer( obj, this, 15, 2 );
- Commands->Start_Timer( obj, this, 20, 3 );
- Commands->Start_Timer( obj, this, 25, 4 );
- Commands->Start_Timer( obj, this, 30, 5 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- switch ( Timer_ID ) {
- case 0: Commands->Add_Objective( 100, OBJECTIVE_TYPE_PRIMARY, "Eat Your Vegetables" );
- break;
- case 1: Commands->Set_Objective_Radar_Blip( 100, Vector3( 10,10,10 ) );
- break;
- case 2: Commands->Change_Objective_Type( 100, OBJECTIVE_TYPE_SECONDARY );
- break;
- case 3: Commands->Set_Objective_Status( 100, OBJECTIVE_STATUS_FAILED );
- break;
- case 4: Commands->Remove_Objective( 100 );
- break;
- case 5: Commands->Set_Objective_Radar_Blip_Object( 100, obj );
- break;
- }
- }
- };
- DECLARE_SCRIPT( BMG_Test_Priority_1, "" )
- {
- void Created( GameObject * obj )
- {
- Commands->Debug_Message("BMG Test Priority 1\n");
- Commands->Start_Timer( obj, this, 2, 100 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Debug_Message_2("BMG Test Priority 1 %d\n", timer_id);
- Commands->Send_Custom_Event( obj, obj, 500, 600, 8 );
- // Commands->Start_Timer( obj, this, 6, timer_id + 1 );
- // Commands->Action_Goto_Location( obj, this, 90, Vector3( 18,5,0 ), 0.3f, 1, 0 );
- ActionParamsStruct params;
- params.Set_Basic( this, 90, 0 );
- params.Set_Animation( "S_A_HUMAN.H_A_611A", false );
- Commands->Action_Play_Animation( obj, params );
- // Commands->Action_Play_Animation( obj, this, 90, "S_A_HUMAN.H_A_611A", false, 0 );
- // Vector3 pos = Commands->Get_Position( Commands->Get_The_Star() );
- // Commands->Action_Goto_Location( obj, this, 70, pos, 0.2f, 0.5f, 0 );
- }
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- Commands->Debug_Message_2("BMG Test Priority 1 Complete %d\n", complete_reason );
- }
- void Custom( GameObject * obj, int type, int param, GameObject * sender )
- {
- Commands->Debug_Message_2("BMG Test Priority 1 Custom from %p\n", (int)sender );
- }
- };
- DECLARE_SCRIPT( BMG_Test_Priority_2, "" )
- {
- void Created( GameObject * obj )
- {
- Commands->Debug_Message("BMG Test Priority 2\n");
- Commands->Start_Timer( obj, this, 3, 200 );
- }
- void Timer_Expired( GameObject * obj, int timer_id )
- {
- Commands->Debug_Message_2("BMG Test Priority 2 %d\n", timer_id);
- Commands->Send_Custom_Event( obj, obj, 700, 800 );
- // Commands->Start_Timer( obj, this, 3, timer_id + 1 );
- ActionParamsStruct params;
- params.Set_Basic( this, 80, 0 );
- params.Set_Movement( Vector3( -2,25,0 ), 0.3f, 1 );
- Commands->Action_Goto( obj, params );
- }
- void Action_Complete( GameObject * obj, int action_id, ActionCompleteReason complete_reason )
- {
- Commands->Debug_Message_2("BMG Test Priority 2 Complete %d\n", complete_reason );
- }
- void Custom( GameObject * obj, int type, int param, GameObject * sender )
- {
- Commands->Debug_Message_2("BMG Test Priority 2 Custom from %p\n", (int)sender );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Zone, "")
- {
- void Entered( GameObject * obj, GameObject * enterer )
- {
- Commands->Debug_Message("Test Zone Entered\n");
- }
- void Exited( GameObject * obj, GameObject * exiter )
- {
- Commands->Debug_Message("Test Zone Exited\n");
- }
- };
- DECLARE_SCRIPT(BMG_Test_Cinematic, "ScriptName=:string")
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG Cinematic\n");
- Commands->Set_Animation (obj, Get_Parameter("ScriptName"), 1);
- Commands->Start_Timer( obj, 5, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Debug_Message("BMG Timer\n");
- Commands->Start_Timer( obj, 5, 0 );
- Vector3 pos = Commands->Get_Position( obj );
- Commands->Create_Object_At_Bone( obj, "health 100 standard", "V_LANDGEAR1" );
- Commands->Create_Object_At_Bone( obj, "health 100 standard", "SEAT0" );
- }
- };
- DECLARE_SCRIPT(BMG_Test_C130_DropOff_Cinematic, "ObjToCreate=:string")
- {
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG_Test_C130_DropOff_Cinematic\n");
- Commands->Set_Animation (obj, "v_nod_c-130e3.m_cargo-drop", 0);
- float drop_frame = 446;
- float drop_time = drop_frame / 30; // find the time assumeing 30fps
- Commands->Start_Timer( obj, drop_time, 0 );
- }
- void Timer_Expired (GameObject* obj, int Timer_ID)
- {
- Commands->Create_Object_At_Bone( obj, Get_Parameter("ObjToCreate"), "CARGO" );
- }
- void Animation_Complete(GameObject* obj, const char* name)
- {
- Commands->Debug_Message("Destroy the C130\n");
- Commands->Destroy_Object( obj );
- }
- void Killed(GameObject* obj, GameObject* killer)
- {
- Vector3 pos = Commands->Get_Bone_Position( obj, "CARGO" );
- Commands->Create_Explosion( "Rocket Explosion", pos, killer );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Orca_Attack_Cinematic, "")
- {
- enum {
- SHOOT,
- STOP
- };
- void Created(GameObject* obj)
- {
- float shoot_frame = 100;
- float shoot_time = shoot_frame / 30; // find the time assumeing 30fps
- float stop_frame = 200;
- float stop_time = stop_frame / 30; // find the time assumeing 30fps
- Commands->Start_Timer( obj, shoot_time, SHOOT );
- Commands->Start_Timer( obj, stop_time, STOP );
- }
- void Timer_Expired (GameObject* obj, int timer_id)
- {
- if ( timer_id == SHOOT ) {
- Commands->Trigger_Weapon( obj, true, Vector3(0,0,0) );
- }
- if ( timer_id == STOP ) {
- Commands->Trigger_Weapon( obj, false, Vector3(0,0,0) );
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_SAPO, "")
- {
- enum {
- OPEN,
- CLOSE
- };
- void Created(GameObject* obj)
- {
- Commands->Debug_Message("BMG_Test_SAPO\n");
- Commands->Start_Timer( obj, 1, OPEN );
- }
- void Timer_Expired (GameObject* obj, int timer_id)
- {
- if ( timer_id == OPEN ) {
- Commands->Debug_Message("BMG_Test_SAPO OPEN\n");
- Commands->Static_Anim_Phys_Goto_Frame( 1051, 0 );
- Commands->Start_Timer( obj, 6, CLOSE );
- }
- if ( timer_id == CLOSE ) {
- Commands->Debug_Message("BMG_Test_SAPO CLOSE\n");
- Commands->Static_Anim_Phys_Goto_Last_Frame( 1051 );
- Commands->Start_Timer( obj, 6, OPEN );
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_Follow, "TargetID=:int")
- {
- void Created(GameObject* obj)
- {
- Movement_Complete( obj, (MovementCompleteReason)0 );
- }
- void Movement_Complete(GameObject* obj, MovementCompleteReason reason)
- {
- Commands->Debug_Message("BMG Follow\n");
- GameObject * target = Commands->Find_Object( Get_Int_Parameter( "TargetID" ) );
- if ( target != NULL ) {
- Commands->Action_Movement_Follow_Object( obj, target, 1 );
- }
- }
- };
- DECLARE_SCRIPT(BMG_Test_Complete, "")
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, 3, 0 );
- }
- void Timer_Expired (GameObject* obj, int timer_id)
- {
- Commands->Mission_Complete( true );
- }
- };
- DECLARE_SCRIPT(BMG_Test_Debug, "position=3.1 4.2 5.3:vector3")
- {
- void Created(GameObject* obj)
- {
- Vector3 pos1 = Get_Vector3_Parameter( 0 );
- Vector3 pos2 = Get_Vector3_Parameter( "position" );
- Commands->Display_Text("Got1 %f %f %f\n", pos1.X, pos1.Y, pos1.Z );
- Commands->Display_Text("Got2 %f %f %f\n", pos2.X, pos2.Y, pos2.Z );
- // Commands->Debug_Message("Debug Test 1\n");
- // Commands->Display_Text( "Debug Test 2\n" );
- // Commands->Display_Text_Colored( Vector3( 0,0,1 ), "Debug Test 3\n" );
- // Commands->Start_Timer( obj, 1, 0 );
- }
- void Timer_Expired (GameObject* obj, int timer_id)
- {
- }
- };
- DECLARE_SCRIPT(BMG_Test_Anim, "")
- {
- void Created(GameObject* obj)
- {
- Commands->Start_Timer( obj, 0.001f, 0 );
- }
- void Timer_Expired (GameObject* obj, int timer_id)
- {
- Commands->Start_Timer( obj, 0.001f, 0 );
- Commands->Set_Animation( obj, "S_A_HUMAN.H_A_J99C", true );
- }
- };
- #endif
|