0
0
Fork 0
mirror of https://github.com/id-Software/DOOM-3-BFG.git synced 2025-03-15 23:21:35 +00:00
doom3-bfg/base/script/map_marscity1.script
2022-08-27 13:19:00 +02:00

341 lines
No EOL
7.5 KiB
Text

namespace map_marscity1 {
void cache_sounds() {
sys.cacheSoundShader ("mc1_scanner_rot1s");
sys.cacheSoundShader ("mc1_scanner_3s_movement");
sys.cacheSoundShader ("entrance_scanner_loop");
sys.trigger ($speaker_mouse); // Turn it off...
}
void toggle_intro_sounds() {
sys.print ("Toggling speakers\n");
sys.trigger ($speaker_83);
sys.trigger ($speaker_84);
sys.trigger ($speaker_85);
sys.trigger ($speaker_86);
sys.trigger ($speaker_87);
sys.trigger ($speaker_88);
sys.trigger ($speaker_89);
sys.trigger ($speaker_90);
sys.trigger ($speaker_91);
sys.trigger ($speaker_92);
}
//turret gun movement
void turret_loop() {
while(1)
{
$security_cannon.time( 3 );
$security_cannon.accelTime( 0 );
$security_cannon.decelTime( .25 );
$security_cannon.rotateOnce( '0 -30 0' );
sys.waitFor($security_cannon);
sys.wait(.5);
$security_cannon.rotateOnce( '0 30 0' );
sys.waitFor($security_cannon);
sys.wait(.5);
}
}
// mars city mice movers
void Startmouse1() {
while(1)
{
$mc_mouse1.time( 15 );
$mc_mouse1.accelTime( 0 );
$mc_mouse1.decelTime( 0 );
sys.trigger ($speaker_mouse); // Turn it on...
$mc_mouse1.startSpline( $func_splinemover_3 );
sys.waitFor($mc_mouse1);
sys.trigger ($speaker_mouse); // Turn it off...
sys.wait(60);
$mc_mouse1.removeInitialSplineAngles();
}
}
// function for starting shutters1 sound
void sound_shutter1_start()
{
sys.trigger ($speaker_shutters);
}
// function for stopping shutters1 sound
void sound_shutter1_stop()
{
//sys.trigger ($speaker_shutters);
}
void kitchenlightsoff()
{
sys.wait(1);
$kitchen_swinglight_1.fadeOutLight(2);
$kitchen_swinglight_2.fadeOutLight(2);
$kitchen_swinglight_3.fadeOutLight(2);
$kitchen_swinglight_4.fadeOutLight(2);
$kitchen_swinglight_5.fadeOutLight(2);
$kitchen_swinglight_6.fadeOutLight(2);
}
void windshutter1_open()
{
//start the kitchen lights fading
thread kitchenlightsoff();
/// starting shutter sound
thread sound_shutter1_start();
//might need this later
//$windshutter1_gui.setGuiParm( "gui_parm1" , windstatus1);
//fade in the bounce lightlight
$shutter_bounce_light.fadeInLight(1.5);
//times for shutters opening
$windshutter1_1.time(1.5);
$windshutter1_1.accelTime(1);
$windshutter1_1.decelTime(.5);
$windshutter1_2.time(1.5);
$windshutter1_2.accelTime(1);
$windshutter1_2.decelTime(.5);
// Going up
$windshutter1_1.rotateOnce( '180 0 0' );
sys.wait(0.5);
$windshutter1_2.rotateOnce( '180 0 0' );
sys.waitFor($windshutter1_2);
// stopping shutter sound
thread sound_shutter1_stop();
}
void kitchenlightson()
{
sys.wait(3);
$kitchen_swinglight_1.fadeInLight(2);
$kitchen_swinglight_2.fadeInLight(2);
$kitchen_swinglight_3.fadeInLight(2);
$kitchen_swinglight_4.fadeInLight(2);
$kitchen_swinglight_5.fadeInLight(2);
$kitchen_swinglight_6.fadeInLight(2);
}
void windshutter1_close()
{
//start the kitchen lights fading
thread kitchenlightson();
// starting shutter sound
thread sound_shutter1_start();
// Fade bounce light
$shutter_bounce_light.fadeOutLight(3);
//times for shutters closing
$windshutter1_1.time(3);
$windshutter1_1.accelTime(2);
$windshutter1_1.decelTime(1);
$windshutter1_2.time(3);
$windshutter1_2.accelTime(2);
$windshutter1_2.decelTime(1);
// Going down
$windshutter1_1.rotateOnce( '-180 0 0' );
sys.wait(0.25);
$windshutter1_2.rotateOnce( '-180 0 0' );
sys.waitFor($windshutter1_2);
// stopping shutter sound
thread sound_shutter1_stop();
}
////////////////////////////////////////////////////
//
// Mars City Bio Scanners
//
////////////////////////////////////////////////////
void bioscan_lockdoors ()
{
//close both doors
$func_door_1.close();
$func_door_9.close();
//lock both doors
$func_door_1.lock(2);
$func_door_9.lock(2);
//trigger the relay to remove things in the Hangar
sys.trigger ( $trigger_remove_floods );
//change gui and shader parms on doors
$func_static_4456.setShaderParm (7, 0);
$func_static_929.setShaderParm (7, 0);
$func_door_1.setGuiParm ( "gui_parm3" , 0);
$func_door_1.setShaderParm (7, 0);
$func_door_9.setGuiParm ( "gui_parm3" , 0);
$func_door_9.setShaderParm (7, 0);
}
void bioscan_opendoor ()
{
//trigger the lights to fade
sys.trigger($bioscan_fadein);
//slight delay to make sure the sentry is in motion
//before the doors open
sys.wait(.85);
//unlock door
$func_door_9.lock(0);
//open door
$func_door_9.open();
//lock the little room door
$func_door_11.lock(2);
//change gui parms on doors
$func_door_9.setGuiParm ( "gui_parm3" , 1);
$func_door_9.setShaderParm (7, 1);
$func_static_4456.setShaderParm (7, 1);
toggle_intro_sounds(); // Trigger the start sounds on when the player gets to this point
turret_loop(); // Start the turret looping here...
}
void bioscan_go ()
{
//trigger the particles
$scan_lazmodel_1.startSoundShader ("entrance_scanner_loop", SND_CHANNEL_VOICE );
$scan_lazmodel_2.startSoundShader ("entrance_scanner_loop", SND_CHANNEL_VOICE );
sys.trigger($scan_particle_1);
sys.trigger($scan_particle_2);
//change the gui on bioscanner
sys.trigger($bio_scanner);
//trigger the lights to fade
sys.trigger($bioscan_fadeout);
sys.wait(.4);
//trigger the laser models to unhide them
sys.trigger($scan_lazmodel_1);
sys.trigger($scan_lazmodel_2);
//set times
//up 64 scan_anchor
$scan_anchor.time (1);
$scan_anchor.startSoundShader ("mc1_scanner_3s_movement", SND_CHANNEL_VOICE);
$scan_anchor.move ( UP, 64 );
sys.waitFor ($scan_anchor);
//rotate 90 scan_anchor
$scan_anchor.rotateOnce ( '0 0 -90' );
sys.waitFor ($scan_anchor);
//move 24 scan_anchor
$scan_anchor.move ( SOUTH, -24 );
sys.waitFor ($scan_anchor);
//rotate 720 scan_thing_1
$scan_thing_1.startSoundShader ("mc1_scanner_rot1s", SND_CHANNEL_VOICE);
$scan_thing_1.rotateOnce ( '360 0 0' );
//rotate 720 scan_thing_2
$scan_thing_2.startSoundShader ("mc1_scanner_rot1s", SND_CHANNEL_VOICE);
$scan_thing_2.rotateOnce ( '360 0 0' );
//wait for rotating to stop and a bit extra
sys.waitFor ($scan_thing_1);
sys.wait (1);
//move 24 scan_anchor
$scan_anchor.startSoundShader ("mc1_scanner_3s_movement", SND_CHANNEL_VOICE);
$scan_anchor.move ( SOUTH, 24 );
sys.waitFor ($scan_anchor);
//rotate 90 scan_anchor
$scan_anchor.rotateOnce ( '0 0 90' );
sys.waitFor ($scan_anchor);
//down 64 scan_anchor
$scan_anchor.move ( DOWN, 64 );
sys.waitFor ($scan_anchor);
//trigger the particles
sys.trigger($scan_particle_1);
sys.trigger($scan_particle_2);
sys.wait(2);
//trigger the laser models to hide them
$scan_lazmodel_1.stopSound (SND_CHANNEL_VOICE, false);
sys.trigger($scan_lazmodel_1);
$scan_lazmodel_2.stopSound (SND_CHANNEL_VOICE, false);
sys.trigger($scan_lazmodel_2);
}
void bioscan_noreturn ()
{
//close both doors
$func_door_9.close();
//lock both doors
$func_door_9.lock(2);
//change gui parms on doors
$func_door_9.setGuiParm ( "gui_parm3" , 0);
$func_door_9.setShaderParm (7, 0);
$func_static_4456.setShaderParm (7, 0);
}
void show_pda ()
{
$player_pda.show();
}
//move fog brush in the hanger
void move_hangar_fog ()
{
$hanger_fog_mover.time( 5 );
$hanger_fog_mover.move( UP, 320 );
}
////////////////////////////////////////////////////
//
// MAIN
//
////////////////////////////////////////////////////
void main () {
cache_sounds();
//setup_objects ();
//init_world();
}
}