cod5-sdk/raw/maps/_aircraft.gsc

102 lines
4.3 KiB
Text
Raw Normal View History

2008-11-20 00:00:00 +00:00
// _aircraft.gsc
// Sets up the behavior for the following aircraft:
//
// US: Corsair, Avenger
// Japanese: Betty Bomber, Zero, Zero "Rufe", Tenzan Torpedo Bomber, Mavis Flying Boat
// German: Me-109, Stuka
// British: Mosquito
// Russuan: IL-2
//
// Notes: - Ask about splitting this up for various aircraft (what about sounds?)
// - Make sure we get tags set up on each plane
// - basing team on model kinda sucks but makes sense...
// - people will need to pass in stuka for now
#include maps\_vehicle_aianim;
#include maps\_vehicle;
#include common_scripts\utility;
main( model, type, max_turrets, build_bombs, non_default_turret_type )
{
build_template( "stuka", model, type );
build_localinit( ::init_local );
build_deathmodel( "vehicle_usa_aircraft_f4ucorsair", "vehicle_usa_aircraft_f4ucorsair" );
build_deathmodel( "vehicle_usa_aircraft_pel1_f4ucorsair", "vehicle_usa_aircraft_pel1_f4ucorsair" );
build_deathmodel( "vehicle_usa_aircraft_f4ucorsair_dist", "vehicle_usa_aircraft_f4ucorsair_dist" );
build_deathmodel( "vehicle_stuka_flying", "vehicle_stuka_flying" );
build_deathmodel( "vehicle_p51_mustang", "vehicle_p51_mustang" );
build_deathmodel( "vehicle_spitfire_flying", "vehicle_spitfire_flying" );
build_deathmodel( "vehicle_rus_airplane_il2", "vehicle_rus_airplane_il2" );
build_deathmodel( "vehicle_jap_airplane_rufe_fly", "vehicle_jap_airplane_rufe_fly" );
build_deathmodel( "vehicle_brt_aircraft_spitfire", "vehicle_brt_aircraft_spitfire" );
build_deathmodel( "weapon_ger_panzershreck_rocket", "weapon_ger_panzershreck_rocket" );
build_deathfx( "explosions/large_vehicle_explosion", undefined, "explo_metal_rand" ); // TODO change to actual explosion fx/sound when we get it
build_life( 99999, 5000, 15000 );
build_treadfx();
//build_rumble( "tank_rumble", 0.55, 1.75, 2200, 0.1, 0.1 ); // this works well for pel1, let Jesse know if it breaks your map
//build_rumble( "tank_rumble", 0.15, 4.5, 600, 1, 1 );
if (model == "vehicle_stuka_flying" || model == "vehicle_jap_airplane_rufe_fly")
{
build_team( "axis" );
}
else
{
build_team( "allies" );
}
// default is to build bombs since that's what everyone is used to3
if (!isdefined(build_bombs) || build_bombs)
{
// Bomb stuff: TODO update with actual explosion fx, sound, and bomb model when we get them
// quakepower, quaketime, quakeradius, range, min_damage, max_damage
maps\_planeweapons::build_bomb_explosions( type, 0.5, 2.0, 1024, 768, 400, 25 );
maps\_planeweapons::build_bombs( type, "aircraft_bomb", "explosions/fx_mortarExp_dirt", "mortar_dirt" );
}
// turret stuff: TODO update with actual turret models and types when we get them
if( IsDefined(non_default_turret_type ) )
{
//-- GLocke ( 8/6/08 ) : Added the ability to specify a specific turret that you want to be built so that you can get a different fx set
turretType = non_default_turret_type;
}
else if( type == "corsair" )
{
turretType = "corsair_mg";
}
else
{
turretType = "allied_coaxial_mg";
}
turretModel = "weapon_machinegun_tiger";
// MikeD (5/31/2008): Someone switched the tag names for the zero, so we now have to do a special case since it's too late
// to change the model
if( model == "vehicle_jap_airplane_zero_fly" )
{
build_turret( turretType, "tag_flash_gunner1", turretModel, true, undefined, undefined, undefined, undefined, max_turrets );
build_turret( turretType, "tag_flash_gunner2", turretModel, true, undefined, undefined, undefined, undefined, max_turrets );
}
else
{
build_turret( turretType, "tag_gunLeft", turretModel, true, undefined, undefined, undefined, undefined, max_turrets );
build_turret( turretType, "tag_gunRight", turretModel, true, undefined, undefined, undefined, undefined, max_turrets );
}
// end turret stuff
}
// When the vehicle spawns, it calls this function, so put vehicle-specific post-spawn stuff here.
// self = the vehicle
init_local()
{
wait( 0.05 ); // wait a frame for the vehicle to spawn and get set up by _vehicle
self thread maps\_mgturret::link_turrets( self.mgturret ); // make the turrets fire together
if( IsDefined( self.script_numbombs ) && self.script_numbombs > 0 )
{
self thread maps\_planeweapons::bomb_init( self.script_numbombs );
}
}