1157 lines
29 KiB
C++
1157 lines
29 KiB
C++
|
/*
|
||
|
** 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
|