mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-12 16:21:04 +02:00
1078 lines
31 KiB
Plaintext
1078 lines
31 KiB
Plaintext
namespace map_recycling1 {
|
|
|
|
//this variable tracks which door is the entrance
|
|
float airlock_state = 0;
|
|
float airlock2_state = 0;
|
|
|
|
void mover_startsound (entity ent) {
|
|
ent.startSoundShader ("m1_start", SND_CHANNEL_VOICE);
|
|
sys.wait (0.75);
|
|
ent.startSoundShader ("m1_loop", SND_CHANNEL_VOICE2);
|
|
}
|
|
|
|
void mover_stopsound (entity ent) {
|
|
ent.startSoundShader ("m1_stop", SND_CHANNEL_VOICE2);
|
|
ent.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_ITEM );
|
|
}
|
|
|
|
void setup_objects ()
|
|
{
|
|
|
|
//set airlock door guis initial states to 1
|
|
$airlock_door1_gui.setGuiParm ( "gui_parm1" , 1);
|
|
$airlock2_door1_gui.setGuiParm ( "gui_parm1" , 1);
|
|
$airlock2_door2_gui.setGuiParm ( "gui_parm1" , 1);
|
|
|
|
//airlock door1 times
|
|
$airlock_door1_left.time (1.2);
|
|
$airlock_door1_right.time (1.2);
|
|
$airlock_door1_left.accelTime (.2);
|
|
$airlock_door1_left.decelTime (1);
|
|
$airlock_door1_right.accelTime (.2);
|
|
$airlock_door1_right.decelTime (1);
|
|
|
|
$airlock_door1_top_lock.time (.25);
|
|
$airlock_door1_bottom_lock.time (.25);
|
|
|
|
$airlock_door1_left_lock.time (.75);
|
|
$airlock_door1_right_lock.time (.75);
|
|
$airlock_door1_left_lock.accelTime (.1);
|
|
$airlock_door1_left_lock.decelTime (.65);
|
|
$airlock_door1_right_lock.accelTime (.1);
|
|
$airlock_door1_right_lock.decelTime (.65);
|
|
|
|
//airlock door2 times
|
|
$airlock_door2_left.time (1.2);
|
|
$airlock_door2_right.time (1.2);
|
|
$airlock_door2_left.accelTime (.2);
|
|
$airlock_door2_left.decelTime (1);
|
|
$airlock_door2_right.accelTime (.2);
|
|
$airlock_door2_right.decelTime (1);
|
|
|
|
$airlock_door2_top_lock.time (.25);
|
|
$airlock_door2_bottom_lock.time (.25);
|
|
|
|
$airlock_door2_left_lock.time (.75);
|
|
$airlock_door2_right_lock.time (.75);
|
|
$airlock_door2_left_lock.accelTime (.1);
|
|
$airlock_door2_left_lock.decelTime (.65);
|
|
$airlock_door2_right_lock.accelTime (.1);
|
|
$airlock_door2_right_lock.decelTime (.65);
|
|
|
|
//airlock2 door1 times
|
|
$airlock2_door1_left.time (1.2);
|
|
$airlock2_door1_right.time (1.2);
|
|
$airlock2_door1_left.accelTime (.2);
|
|
$airlock2_door1_left.decelTime (1);
|
|
$airlock2_door1_right.accelTime (.2);
|
|
$airlock2_door1_right.decelTime (1);
|
|
|
|
$airlock2_door1_top_lock.time (.25);
|
|
$airlock2_door1_bottom_lock.time (.25);
|
|
|
|
$airlock2_door1_left_lock.time (.75);
|
|
$airlock2_door1_right_lock.time (.75);
|
|
$airlock2_door1_left_lock.accelTime (.1);
|
|
$airlock2_door1_left_lock.decelTime (.65);
|
|
$airlock2_door1_right_lock.accelTime (.1);
|
|
$airlock2_door1_right_lock.decelTime (.65);
|
|
|
|
//airlock2 door2 times
|
|
$airlock2_door2_left.time (1.2);
|
|
$airlock2_door2_right.time (1.2);
|
|
$airlock2_door2_left.accelTime (.2);
|
|
$airlock2_door2_left.decelTime (1);
|
|
$airlock2_door2_right.accelTime (.2);
|
|
$airlock2_door2_right.decelTime (1);
|
|
|
|
$airlock2_door2_top_lock.time (.25);
|
|
$airlock2_door2_bottom_lock.time (.25);
|
|
|
|
$airlock2_door2_left_lock.time (.75);
|
|
$airlock2_door2_right_lock.time (.75);
|
|
$airlock2_door2_left_lock.accelTime (.1);
|
|
$airlock2_door2_left_lock.decelTime (.65);
|
|
$airlock2_door2_right_lock.accelTime (.1);
|
|
$airlock2_door2_right_lock.decelTime (.65);
|
|
|
|
//leaking pump room
|
|
$bpipes.bind ($bpipes_anchor);
|
|
$arm_pivot.bind ($arm_pivot_anchor);
|
|
$arm_top.bind ($arm_top_anchor);
|
|
$arm_bottom.bind ($arm_bottom_anchor);
|
|
$arm_bottom_anchor.bind ($arm_top_anchor);
|
|
$arm_top_anchor.bind ($arm_pivot_anchor);
|
|
|
|
//revenant room
|
|
$walkway1.bind ($walkway1_anchor);
|
|
$walkway2.bind ($walkway2_anchor);
|
|
$walkway3.bind ($walkway3_anchor);
|
|
|
|
$walkway1_anchor.accelTime (1);
|
|
//$walkway2_anchor.accelTime (.5);
|
|
$walkway3_anchor.accelTime (.5);
|
|
|
|
$walkway1_anchor.time (1);
|
|
$walkway2_anchor.time (.5);
|
|
$walkway3_anchor.time (.8);
|
|
|
|
|
|
}
|
|
|
|
////////////////
|
|
//misc
|
|
////////////////
|
|
|
|
|
|
void walkway2_fall ()
|
|
{
|
|
sys.wait (7.8);
|
|
|
|
$walkway1_anchor.rotateOnce ('-80 0 0');
|
|
sys.waitFor ($walkway1_anchor);
|
|
|
|
$walkway3_anchor.rotateOnce ('0 0 -45');
|
|
sys.waitFor ($walkway3_anchor);
|
|
|
|
sys.wait (4.7);
|
|
|
|
//sys.trigger ($walkway2_explosion);
|
|
|
|
$walkway2_anchor.rotateOnce ('-56 0 0');
|
|
sys.waitFor ($walkway2_anchor);
|
|
|
|
}
|
|
|
|
void skcube_fall ()
|
|
{
|
|
$skcube_mover.accelTime (.4);
|
|
$skcube_mover.time (.5);
|
|
$skcube_mover.rotateOnce ('0 0 90');
|
|
sys.waitFor ($skcube_mover);
|
|
|
|
sys.trigger ($skcube_dust);
|
|
|
|
$skcube_mover.accelTime (.05);
|
|
$skcube_mover.time (.05);
|
|
$skcube_mover.rotateOnce ('0 0 -4');
|
|
sys.waitFor ($skcube_mover);
|
|
$skcube_mover.rotateOnce ('0 0 4');
|
|
sys.waitFor ($skcube_mover);
|
|
|
|
$skcube_mover.time (.05);
|
|
$skcube_mover.rotateOnce ('0 0 -2');
|
|
sys.waitFor ($skcube_mover);
|
|
$skcube_mover.rotateOnce ('0 0 2');
|
|
|
|
}
|
|
|
|
void skcube2_fall ()
|
|
{
|
|
$skcube2_mover.accelTime (.4);
|
|
$skcube2_mover.time (.5);
|
|
$skcube2_mover.rotateOnce ('0 0 90');
|
|
sys.waitFor ($skcube2_mover);
|
|
|
|
sys.trigger ($skcube2_dust);
|
|
|
|
$skcube2_mover.accelTime (.05);
|
|
$skcube2_mover.time (.05);
|
|
$skcube2_mover.rotateOnce ('0 0 -4');
|
|
sys.waitFor ($skcube2_mover);
|
|
$skcube2_mover.rotateOnce ('0 0 4');
|
|
sys.waitFor ($skcube2_mover);
|
|
|
|
$skcube2_mover.time (.05);
|
|
$skcube2_mover.rotateOnce ('0 0 -2');
|
|
sys.waitFor ($skcube2_mover);
|
|
$skcube2_mover.rotateOnce ('0 0 2');
|
|
|
|
}
|
|
void skcube3_fall ()
|
|
{
|
|
$skcube3_mover.accelTime (.4);
|
|
$skcube3_mover.time (.5);
|
|
$skcube3_mover.rotateOnce ('0 0 90');
|
|
sys.waitFor ($skcube3_mover);
|
|
|
|
sys.trigger ($skcube3_dust);
|
|
|
|
$skcube3_mover.accelTime (.05);
|
|
$skcube3_mover.time (.05);
|
|
$skcube3_mover.rotateOnce ('0 0 -4');
|
|
sys.waitFor ($skcube3_mover);
|
|
$skcube3_mover.rotateOnce ('0 0 4');
|
|
sys.waitFor ($skcube3_mover);
|
|
|
|
$skcube3_mover.time (.05);
|
|
$skcube3_mover.rotateOnce ('0 0 -2');
|
|
sys.waitFor ($skcube3_mover);
|
|
$skcube3_mover.rotateOnce ('0 0 2');
|
|
|
|
}
|
|
|
|
void ceilingpipe_mover1_rumble()
|
|
{
|
|
$ceilingpipe_mover1.time (.1);
|
|
|
|
while(1){
|
|
$ceilingpipe_mover1.rotateOnce ( '0.5 1 0' );
|
|
sys.waitFor ($ceilingpipe_mover1);
|
|
$ceilingpipe_mover1.rotateOnce ( '-0.5 -1 0' );
|
|
sys.waitFor ($ceilingpipe_mover1);
|
|
|
|
}
|
|
}
|
|
|
|
void ladder1_lower()
|
|
{
|
|
$ladder1.time(2);
|
|
sys.trigger ($speaker_ladder1);
|
|
$ladder1.moveTo ($ladder_down);
|
|
}
|
|
|
|
void pipesteam1_cycle ()
|
|
{
|
|
while (1)
|
|
{
|
|
sys.trigger ($pipesteam1);
|
|
sys.trigger ($pipesteam1_speaker);
|
|
sys.wait (2);
|
|
sys.trigger ($pipesteam1);
|
|
sys.wait (3);
|
|
}
|
|
}
|
|
|
|
////////////////
|
|
//break skywalk
|
|
////////////////
|
|
|
|
void skywalk_fall ()
|
|
{
|
|
sys.trigger ($recycling1_skybridge);
|
|
}
|
|
|
|
|
|
|
|
////////////////
|
|
//big tank pump room
|
|
////////////////
|
|
|
|
void bigtank_pumps_on1 ()
|
|
{
|
|
while (1)
|
|
{
|
|
$piston_left.accelTime (.4);
|
|
$piston_left.time (1.2);
|
|
thread mover_startsound ($piston_left);
|
|
$piston_left.move (DOWN,128);
|
|
$piston_left.rotateOnce ('0 20 0');
|
|
sys.waitFor ($piston_left);
|
|
mover_stopsound ($piston_left);
|
|
|
|
sys.wait (0.5);
|
|
|
|
$piston_left.time (1.6);
|
|
thread mover_startsound ($piston_left);
|
|
$piston_left.move (UP,128);
|
|
$piston_left.rotateOnce ('0 -20 0');
|
|
sys.waitFor ($piston_left);
|
|
mover_stopsound ($piston_left);
|
|
|
|
sys.wait (0.5);
|
|
|
|
}
|
|
}
|
|
|
|
void bigtank_pumps_on2 ()
|
|
{
|
|
while (1)
|
|
{
|
|
$piston_right.accelTime (.4);
|
|
thread mover_startsound ($piston_right);
|
|
$piston_right.time (1);
|
|
$piston_right.move (DOWN,128);
|
|
$piston_right.rotateOnce ('0 -20 0');
|
|
sys.waitFor ($piston_right);
|
|
mover_stopsound ($piston_right);
|
|
|
|
sys.wait (0.5);
|
|
|
|
$piston_right.time (1.5);
|
|
thread mover_startsound ($piston_right);
|
|
$piston_right.move (UP,128);
|
|
$piston_right.rotateOnce ('0 20 0');
|
|
sys.waitFor ($piston_right);
|
|
mover_stopsound ($piston_right);
|
|
|
|
sys.wait (0.5);
|
|
}
|
|
}
|
|
|
|
void bigtank_pumps_on3 ()
|
|
{
|
|
while (1)
|
|
{
|
|
$piston_center.time (3);
|
|
$piston_center.startSoundShader ("rec1_3s_piston", SND_CHANNEL_VOICE );
|
|
$piston_center.move (EAST,96);
|
|
$piston_center.rotateOnce ('0 0 360');
|
|
sys.waitFor ($piston_center);
|
|
|
|
$bigtank_smoke.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE );
|
|
sys.trigger ($bigtank_smoke);
|
|
sys.wait (2);
|
|
$bigtank_smoke.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE2 );
|
|
sys.trigger ($bigtank_smoke);
|
|
|
|
$piston_center.time (3);
|
|
$piston_center.startSoundShader ("rec1_3s_piston", SND_CHANNEL_VOICE );
|
|
$piston_center.move (WEST,96);
|
|
$piston_center.rotateOnce ('0 0 -360');
|
|
sys.waitFor ($piston_center);
|
|
|
|
$piston_center.startSoundShader ("rec1_2s_rotation", SND_CHANNEL_VOICE2 );
|
|
$piston_center.time (2);
|
|
$piston_center.rotateOnce ('0 0 360');
|
|
sys.waitFor ($piston_center);
|
|
}
|
|
}
|
|
|
|
void bigtank_pumps_off ()
|
|
{
|
|
|
|
sys.killthread ( "map_recycling1::bigtank_pumps_on1" );
|
|
sys.killthread ( "map_recycling1::bigtank_pumps_on2" );
|
|
sys.killthread ( "map_recycling1::bigtank_pumps_on3" );
|
|
|
|
}
|
|
|
|
////////////////
|
|
//pump1 room
|
|
////////////////
|
|
|
|
void pump1apiston_start ()
|
|
{
|
|
while (1)
|
|
{
|
|
$pump1apiston.accelTime (.3);
|
|
$pump1apiston.decelTime (.3);
|
|
$pump1apiston.startSoundShader ("rec1_pump_movement_1_5s", SND_CHANNEL_VOICE );
|
|
$pump1apiston.time (1);
|
|
$pump1apiston.moveTo ($pump1aspot1);
|
|
$pump1apiston.rotateOnce ('0 20 0');
|
|
sys.waitFor ($pump1apiston);
|
|
$pump1apiston.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_VOICE2 );
|
|
|
|
$pump1apiston_steam.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE );
|
|
sys.trigger ($pump1apiston_steam);
|
|
|
|
$pump1apiston.time (.5);
|
|
$pump1apiston.startSoundShader ("rec1_pump_movement_0_5s", SND_CHANNEL_VOICE );
|
|
$pump1apiston.moveTo ($pump1aspot2);
|
|
$pump1apiston.rotateOnce ('0 -20 0');
|
|
sys.waitFor ($pump1apiston);
|
|
$pump1apiston.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_VOICE2 );
|
|
|
|
sys.trigger ($pump1apiston_steam);
|
|
}
|
|
}
|
|
|
|
void pump1bpiston_start ()
|
|
{
|
|
while (1)
|
|
{
|
|
$pump1bpiston.accelTime (.3);
|
|
$pump1bpiston.decelTime (.3);
|
|
$pump1bpiston.startSoundShader ("rec1_pump_movement_1_5s", SND_CHANNEL_VOICE );
|
|
$pump1bpiston.time (1.2);
|
|
$pump1bpiston.moveTo ($pump1bspot1);
|
|
$pump1bpiston.rotateOnce ('0 -15 0');
|
|
$pump1bpiston.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_VOICE2 );
|
|
sys.waitFor ($pump1bpiston);
|
|
|
|
$pump1bpiston_steam.startSoundShader ("rec1_steamchuff", SND_CHANNEL_VOICE );
|
|
sys.trigger ($pump1bpiston_steam);
|
|
|
|
$pump1bpiston.time (.4);
|
|
$pump1bpiston.startSoundShader ("rec1_pump_movement_0_4s", SND_CHANNEL_VOICE );
|
|
$pump1bpiston.moveTo ($pump1bspot2);
|
|
|
|
$pump1bpiston.rotateOnce ('0 15 0');
|
|
sys.waitFor ($pump1bpiston);
|
|
$pump1bpiston.startSoundShader ("rec1_pump_endclack_01", SND_CHANNEL_VOICE2 );
|
|
|
|
sys.trigger ($pump1bpiston_steam);
|
|
}
|
|
}
|
|
|
|
///////////////////
|
|
//leaking pump room
|
|
///////////////////
|
|
|
|
void bpump_on ()
|
|
{
|
|
while (1)
|
|
{
|
|
|
|
|
|
$bpipes_anchor.time (.5);
|
|
$bpipes_anchor.startSoundShader ("rec1_1_rotation", SND_CHANNEL_VOICE );
|
|
$bpipes_anchor.rotateOnce ('0 0 -120');
|
|
|
|
sys.waitFor ($bpipes_anchor);
|
|
|
|
$arm_pivot_anchor.time (1.2);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_1_2s_movement", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.moveTo ($arm_spot2);
|
|
|
|
$arm_top_anchor.time (.3);
|
|
$arm_top_anchor.startSoundShader ("rec1_pivot_0_3s", SND_CHANNEL_VOICE );
|
|
$arm_top_anchor.rotateOnce ('-30 0 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_pivot_anchor.time (.7);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_pivot_0_7s", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.rotateOnce ('0 -180 0');
|
|
$arm_top_anchor.startSoundShader ("rec1_pivot_0_3s", SND_CHANNEL_VOICE );
|
|
$arm_top_anchor.time (.3);
|
|
$arm_top_anchor.rotateOnce ('30 0 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_bottom_anchor.time (.8);
|
|
$arm_bottom_anchor.startSoundShader ("rec1_pivot_0_8s", SND_CHANNEL_VOICE );
|
|
$arm_bottom_anchor.rotateOnce ('90 0 0');
|
|
sys.waitFor ($arm_bottom_anchor);
|
|
|
|
sys.trigger ($pipefill);
|
|
sys.trigger ($speaker_pipefill);
|
|
sys.wait (3.5);
|
|
|
|
sys.trigger ($pipefill);
|
|
|
|
$arm_bottom_anchor.time (.4);
|
|
$arm_bottom_anchor.startSoundShader ("rec1_pivot_0_4s", SND_CHANNEL_VOICE );
|
|
$arm_bottom_anchor.rotateOnce ('-90 0 0');
|
|
sys.waitFor ($arm_bottom_anchor);
|
|
|
|
$arm_pivot_anchor.time (.7);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_pivot_0_7s", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.rotateOnce ('0 180 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_pivot_anchor.time (1.5);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_1_5s_movement", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.moveTo ($arm_spot1);
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
sys.wait (.5);
|
|
|
|
$bpipes_anchor.time (1);
|
|
$bpipes_anchor.startSoundShader ("rec1_2_rotation", SND_CHANNEL_VOICE );
|
|
$bpipes_anchor.rotateOnce ('0 0 240');
|
|
|
|
sys.waitFor ($bpipes_anchor);
|
|
|
|
$arm_pivot_anchor.time (1.2);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_1_2s_movement", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.moveTo ($arm_spot2);
|
|
$arm_top_anchor.time (.3);
|
|
$arm_top_anchor.startSoundShader ("rec1_pivot_0_3s", SND_CHANNEL_VOICE );
|
|
$arm_top_anchor.rotateOnce ('-30 0 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_pivot_anchor.time (.7);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_pivot_0_7s", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.rotateOnce ('0 -180 0');
|
|
$arm_top_anchor.startSoundShader ("rec1_pivot_0_3s", SND_CHANNEL_VOICE );
|
|
$arm_top_anchor.time (.3);
|
|
$arm_top_anchor.rotateOnce ('30 0 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_bottom_anchor.time (.8);
|
|
$arm_bottom_anchor.startSoundShader ("rec1_pivot_0_8s", SND_CHANNEL_VOICE );
|
|
$arm_bottom_anchor.rotateOnce ('90 0 0');
|
|
sys.waitFor ($arm_bottom_anchor);
|
|
|
|
sys.trigger ($speaker_pipefill);
|
|
sys.trigger ($pipefill);
|
|
|
|
sys.wait (3.5);
|
|
|
|
sys.trigger ($pipefill);
|
|
|
|
$arm_bottom_anchor.time (.4);
|
|
$arm_bottom_anchor.startSoundShader ("rec1_pivot_0_4s", SND_CHANNEL_VOICE );
|
|
$arm_bottom_anchor.rotateOnce ('-90 0 0');
|
|
sys.waitFor ($arm_bottom_anchor);
|
|
|
|
$arm_pivot_anchor.time (.7);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_pivot_0_7s", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.rotateOnce ('0 180 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_pivot_anchor.time (1.5);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_1_5s_movement", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.moveTo ($arm_spot1);
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
sys.wait (.5);
|
|
|
|
$bpipes_anchor.time (2);
|
|
$bpipes_anchor.startSoundShader ("rec1_3_rotation", SND_CHANNEL_VOICE );
|
|
$bpipes_anchor.rotateOnce ('0 0 -480');
|
|
|
|
sys.waitFor ($bpipes_anchor);
|
|
|
|
$arm_pivot_anchor.time (1.2);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_1_2s_movement", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.moveTo ($arm_spot2);
|
|
$arm_top_anchor.startSoundShader ("rec1_pivot_0_3s", SND_CHANNEL_VOICE );
|
|
$arm_top_anchor.time (.3);
|
|
$arm_top_anchor.rotateOnce ('-30 0 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_pivot_anchor.time (.7);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_pivot_0_7s", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.rotateOnce ('0 -180 0');
|
|
$arm_top_anchor.startSoundShader ("rec1_pivot_0_3s", SND_CHANNEL_VOICE );
|
|
$arm_top_anchor.time (.3);
|
|
$arm_top_anchor.rotateOnce ('30 0 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_bottom_anchor.time (.8);
|
|
$arm_bottom_anchor.startSoundShader ("rec1_pivot_0_8s", SND_CHANNEL_VOICE );
|
|
$arm_bottom_anchor.rotateOnce ('90 0 0');
|
|
sys.waitFor ($arm_bottom_anchor);
|
|
|
|
sys.trigger ($speaker_pipefill);
|
|
sys.trigger ($pipefill);
|
|
|
|
sys.wait (3.5);
|
|
|
|
sys.trigger ($pipefill);
|
|
|
|
$arm_bottom_anchor.time (.4);
|
|
$arm_bottom_anchor.startSoundShader ("rec1_pivot_0_4s", SND_CHANNEL_VOICE );
|
|
$arm_bottom_anchor.rotateOnce ('-90 0 0');
|
|
sys.waitFor ($arm_bottom_anchor);
|
|
|
|
$arm_pivot_anchor.time (.7);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_pivot_0_7s", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.rotateOnce ('0 180 0');
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
$arm_pivot_anchor.time (1.5);
|
|
$arm_pivot_anchor.startSoundShader ("rec1_1_5s_movement", SND_CHANNEL_VOICE );
|
|
$arm_pivot_anchor.moveTo ($arm_spot1);
|
|
sys.waitFor ($arm_pivot_anchor);
|
|
|
|
sys.wait (.5);
|
|
}
|
|
}
|
|
|
|
void bpump_off ()
|
|
{
|
|
sys.killthread ( "map_recycling1::bpump_on" );
|
|
sys.trigger ($func_remove_2);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Open airlock door1
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock_door1_open()
|
|
{
|
|
entity ent;
|
|
|
|
//disable the gui on door1
|
|
$airlock_door1_gui.setGuiParm ( "gui_parm1" , 0);
|
|
|
|
//turn door1 light on and door2 light off
|
|
thread crossFadeEnt ($door2_light, '.82 .76 .56', '0.4 0 0', 1);
|
|
sys.wait(1);
|
|
thread crossFadeEnt ($door1_light, '0.4 0 0', '.82 .76 .56', 1);
|
|
|
|
//move the 4 locks to unlock position
|
|
|
|
sys.trigger ($speaker_airlock_door1_bottom_lock); // SOUND
|
|
|
|
$airlock_door1_top_lock.move ( UP, 15 );
|
|
$airlock_door1_bottom_lock.move ( DOWN, 15 );
|
|
sys.waitFor ($airlock_door1_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door1_right_lock); // SOUND
|
|
sys.trigger ($speaker_airlock_door1_left_lock); // SOUND
|
|
|
|
$airlock_door1_left_lock.move ( NORTH, -16 );
|
|
$airlock_door1_right_lock.move ( NORTH, -16 );
|
|
sys.waitFor ($airlock_door1_right_lock);
|
|
|
|
//open doors
|
|
|
|
sys.trigger ($speaker_airlock_door1_open); // SOUND
|
|
|
|
$airlock_door1_left.rotateOnce ( '0 45 0' );
|
|
$airlock_door1_right.rotateOnce ( '0 -45 0' );
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock_door1_portal);
|
|
|
|
sys.waitFor ($airlock_door1_right);
|
|
sys.waitFor ($airlock_door1_left);
|
|
|
|
//set airlock state to door 1
|
|
ent=sys.getEntity( "airlock_door1_portal" );
|
|
ent.setKey( "state", 1 );
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Open airlock door2
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock_door2_open()
|
|
{
|
|
entity ent;
|
|
|
|
//turn door2 light on and door1 light off
|
|
thread crossFadeEnt ($door1_light, '.82 .76 .56', '0.4 0 0', 1);
|
|
sys.wait(1);
|
|
thread crossFadeEnt ($door2_light, '0.4 0 0', '.82 .76 .56', 1);
|
|
|
|
//move the 4 locks to unlock position
|
|
|
|
sys.trigger ($speaker_airlock_door2_bottom_lock); // SOUND
|
|
|
|
$airlock_door2_top_lock.move ( UP, 15 );
|
|
$airlock_door2_bottom_lock.move ( DOWN, 15 );
|
|
sys.waitFor ($airlock_door2_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door2_right_lock); // SOUND
|
|
sys.trigger ($speaker_airlock_door2_left_lock); // SOUND
|
|
|
|
$airlock_door2_left_lock.move ( NORTH, 16 );
|
|
$airlock_door2_right_lock.move ( NORTH, 16 );
|
|
sys.waitFor ($airlock_door2_right_lock);
|
|
|
|
//open doors
|
|
|
|
sys.trigger ($speaker_airlock_door2_open); // SOUND
|
|
|
|
$airlock_door2_left.rotateOnce ( '0 45 0' );
|
|
$airlock_door2_right.rotateOnce ( '0 -45 0' );
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock_door2_portal);
|
|
|
|
sys.waitFor ($airlock_door2_right);
|
|
sys.waitFor ($airlock_door2_left);
|
|
|
|
//set airlock state
|
|
ent=sys.getEntity( "airlock_door1_portal" );
|
|
ent.setKey( "state", 2 );
|
|
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Close airlock door1
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock_door1_close()
|
|
{
|
|
//close doors
|
|
|
|
sys.trigger ($speaker_airlock_door1_close); // SOUND
|
|
|
|
$airlock_door1_left.rotateOnce ( '0 -45 0' );
|
|
$airlock_door1_right.rotateOnce ( '0 45 0' );
|
|
sys.waitFor ($airlock_door1_right);
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock_door1_portal);
|
|
|
|
//fire sound trigger
|
|
sys.trigger ($airlock_speaker);
|
|
|
|
//move the 4 locks to lock position
|
|
sys.trigger ($speaker_airlock_door1_right_lock); // SOUND
|
|
sys.trigger ($speaker_airlock_door1_left_lock); // SOUND
|
|
|
|
$airlock_door1_left_lock.move ( NORTH, 16 );
|
|
$airlock_door1_right_lock.move ( NORTH, 16 );
|
|
sys.waitFor ($airlock_door1_right_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door1_bottom_lock); // SOUND
|
|
|
|
$airlock_door1_top_lock.move ( DOWN, 15 );
|
|
$airlock_door1_bottom_lock.move ( UP, 15 );
|
|
sys.waitFor ($airlock_door1_top_lock);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Close airlock door2
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock_door2_close()
|
|
{
|
|
//close doors
|
|
|
|
sys.trigger ($speaker_airlock_door2_close); // SOUND
|
|
|
|
$airlock_door2_left.rotateOnce ( '0 -45 0' );
|
|
$airlock_door2_right.rotateOnce ( '0 45 0' );
|
|
sys.waitFor ($airlock_door2_right);
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock_door2_portal);
|
|
|
|
//fire sound trigger
|
|
sys.trigger ($airlock_speaker);
|
|
|
|
//move the 4 locks to lock position
|
|
sys.trigger ($speaker_airlock_door2_right_lock); // SOUND
|
|
sys.trigger ($speaker_airlock_door2_left_lock); // SOUND
|
|
|
|
$airlock_door2_left_lock.move ( NORTH, -16 );
|
|
$airlock_door2_right_lock.move ( NORTH, -16 );
|
|
sys.waitFor ($airlock_door2_right_lock);
|
|
|
|
sys.trigger ($speaker_airlock_door2_bottom_lock); // SOUND
|
|
|
|
$airlock_door2_top_lock.move ( DOWN, 15 );
|
|
$airlock_door2_bottom_lock.move ( UP, 15 );
|
|
sys.waitFor ($airlock_door2_top_lock);
|
|
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Main Activate airlock
|
|
// conditionally chooses based on entrance
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock_main_activate()
|
|
{
|
|
entity ent;
|
|
|
|
//check to see which way the player entered by checking the airlock_state
|
|
//if 1 then close 1 and open 2
|
|
|
|
ent=sys.getEntity ("airlock_door1_portal" );
|
|
|
|
if (ent.getFloatKey ("state")==1) {
|
|
airlock_door1_close();
|
|
airlock_door2_open();
|
|
|
|
} else { //else close 2 and open 1
|
|
airlock_door2_close();
|
|
airlock_door1_open();
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// AIRLOCK main activation
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock1_activate()
|
|
{
|
|
//disable the guis on the doors
|
|
$airlock_door1_gui.setGuiParm ( "gui_parm1" , 0);
|
|
$airlock_innerguiholder.setGuiParm ( "gui_parm11" , 0);
|
|
|
|
airlock_main_activate();
|
|
|
|
//check the airlock state and enable the guis on the closed door
|
|
if ($airlock_door1_portal.getFloatKey ("state")==1) {
|
|
$airlock_door2_gui.setGuiParm ( "gui_parm1" , 1);
|
|
} else { //else close 2 and open 1
|
|
$airlock_door1_gui.setGuiParm ( "gui_parm1" , 1);
|
|
}
|
|
|
|
$airlock_innerguiholder.setGuiParm ( "gui_parm11" , 1);
|
|
}
|
|
|
|
|
|
//////////////////////////
|
|
////////////airlock2
|
|
//////////////////////////
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Open airlock2 door1
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock2_door1_open()
|
|
{
|
|
entity ent;
|
|
|
|
//disable the gui on door1
|
|
$airlock2_door1_gui.setGuiParm ( "gui_parm1" , 0);
|
|
|
|
//turn door1 light on and door2 light off
|
|
thread crossFadeEnt ($airlock2_door2_light, '.82 .76 .56', '0.4 0 0', 1);
|
|
sys.wait(1);
|
|
thread crossFadeEnt ($airlock2_door1_light, '0.4 0 0', '.82 .76 .56', 1);
|
|
|
|
//move the 4 locks to unlock position
|
|
sys.trigger ($speaker_airlock2_door1_bottom_lock); // SOUND
|
|
$airlock2_door1_top_lock.move ( UP, 15 );
|
|
$airlock2_door1_bottom_lock.move ( DOWN, 15 );
|
|
sys.waitFor ($airlock2_door1_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock2_door1_left_lock); // SOUND
|
|
sys.trigger ($speaker_airlock2_door1_right_lock); // SOUND
|
|
$airlock2_door1_left_lock.move ( WEST, -16 );
|
|
$airlock2_door1_right_lock.move ( WEST, -16 );
|
|
sys.waitFor ($airlock2_door1_right_lock);
|
|
|
|
//open doors
|
|
|
|
sys.trigger ($speaker_airlock2_door1_open);
|
|
|
|
$airlock2_door1_left.rotateOnce ( '0 45 0' );
|
|
$airlock2_door1_right.rotateOnce ( '0 -45 0' );
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock2_door1_portal);
|
|
|
|
sys.waitFor ($airlock2_door1_right);
|
|
sys.waitFor ($airlock2_door1_left);
|
|
|
|
//set airlock state
|
|
ent=sys.getEntity( "airlock2_door1_portal" );
|
|
ent.setKey( "state", 1 );
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Open airlock2 door2
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock2_door2_open()
|
|
{
|
|
entity ent;
|
|
|
|
//disable the gui on door2
|
|
$airlock2_door2_gui.setGuiParm ( "gui_parm1" , 0);
|
|
|
|
//turn door2 light on and door1 light off
|
|
thread crossFadeEnt ($airlock2_door1_light, '.82 .76 .56', '0.4 0 0', 1);
|
|
sys.wait(1);
|
|
thread crossFadeEnt ($airlock2_door2_light, '0.4 0 0', '.82 .76 .56', 1);
|
|
|
|
//move the 4 locks to unlock position
|
|
|
|
sys.trigger ($speaker_airlock2_door2_bottom_lock);
|
|
|
|
$airlock2_door2_top_lock.move ( UP, 15 );
|
|
$airlock2_door2_bottom_lock.move ( DOWN, 15 );
|
|
sys.waitFor ($airlock2_door2_bottom_lock);
|
|
|
|
sys.trigger ($speaker_airlock2_door2_left_lock); // SOUND
|
|
sys.trigger ($speaker_airlock2_door2_right_lock); // SOUND
|
|
|
|
$airlock2_door2_left_lock.move ( WEST, 16 );
|
|
$airlock2_door2_right_lock.move ( WEST, 16 );
|
|
sys.waitFor ($airlock2_door2_right_lock);
|
|
|
|
//open doors
|
|
|
|
sys.trigger ($speaker_airlock2_door2_open);
|
|
|
|
$airlock2_door2_left.rotateOnce ( '0 45 0' );
|
|
$airlock2_door2_right.rotateOnce ( '0 -45 0' );
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock2_door2_portal);
|
|
|
|
sys.waitFor ($airlock2_door2_right);
|
|
sys.waitFor ($airlock2_door2_left);
|
|
|
|
//set airlock state
|
|
ent=sys.getEntity( "airlock2_door1_portal" );
|
|
ent.setKey( "state", 2 );
|
|
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Close airlock2 door1
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock2_door1_close()
|
|
{
|
|
//close doors
|
|
|
|
sys.trigger ($speaker_airlock2_door1_close); // SOUND
|
|
|
|
$airlock2_door1_left.rotateOnce ( '0 -45 0' );
|
|
$airlock2_door1_right.rotateOnce ( '0 45 0' );
|
|
sys.waitFor ($airlock2_door1_right);
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock2_door1_portal);
|
|
|
|
//fire sound trigger
|
|
sys.trigger ($airlock2_speaker);
|
|
|
|
sys.trigger ($speaker_airlock2_door1_left_lock); // SOUND
|
|
sys.trigger ($speaker_airlock2_door1_right_lock); // SOUND
|
|
|
|
//move the 4 locks to lock position
|
|
$airlock2_door1_left_lock.move ( WEST, 16 );
|
|
$airlock2_door1_right_lock.move ( WEST, 16 );
|
|
sys.waitFor ($airlock2_door1_right_lock);
|
|
|
|
sys.trigger ($speaker_airlock2_door1_bottom_lock); // SOUND
|
|
|
|
$airlock2_door1_top_lock.move ( DOWN, 15 );
|
|
$airlock2_door1_bottom_lock.move ( UP, 15 );
|
|
sys.waitFor ($airlock2_door1_top_lock);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Close airlock2 door2
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock2_door2_close()
|
|
{
|
|
//close doors
|
|
|
|
sys.trigger ($speaker_airlock2_door2_close);
|
|
|
|
$airlock2_door2_left.rotateOnce ( '0 -45 0' );
|
|
$airlock2_door2_right.rotateOnce ( '0 45 0' );
|
|
sys.waitFor ($airlock2_door2_right);
|
|
|
|
//trigger the portal
|
|
sys.trigger ($airlock2_door2_portal);
|
|
|
|
//fire sound trigger
|
|
sys.trigger ($airlock2_speaker);
|
|
|
|
//move the 4 locks to lock position
|
|
|
|
sys.trigger ($speaker_airlock2_door2_left_lock);
|
|
sys.trigger ($speaker_airlock2_door2_right_lock);
|
|
|
|
$airlock2_door2_left_lock.move ( WEST, -16 );
|
|
$airlock2_door2_right_lock.move ( WEST, -16 );
|
|
sys.waitFor ($airlock2_door2_right_lock);
|
|
|
|
sys.trigger ($speaker_airlock2_door2_bottom_lock);
|
|
|
|
$airlock2_door2_top_lock.move ( DOWN, 15 );
|
|
$airlock2_door2_bottom_lock.move ( UP, 15 );
|
|
sys.waitFor ($airlock2_door2_top_lock);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// Main Activate airlock
|
|
// conditionally chooses based on entrance
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock2_main_activate()
|
|
{
|
|
entity ent;
|
|
|
|
//check to see which way the player entered by checking the airlock_state
|
|
//if 1 then close 1 and open 2
|
|
|
|
ent=sys.getEntity ("airlock2_door1_portal" );
|
|
|
|
if (ent.getFloatKey ("state")==1) {
|
|
airlock2_door1_close();
|
|
airlock2_door2_open();
|
|
|
|
} else { //else close 2 and open 1
|
|
airlock2_door2_close();
|
|
airlock2_door1_open();
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// AIRLOCK main activation
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void airlock2_activate()
|
|
{
|
|
//disable the guis on the doors
|
|
$airlock2_door1_gui.setGuiParm ( "gui_parm1" , 0);
|
|
$airlock2_door2_gui.setGuiParm ( "gui_parm1" , 0);
|
|
$airlock2_innerguiholder.setGuiParm ( "gui_parm11" , 0);
|
|
|
|
airlock2_main_activate();
|
|
|
|
//check the airlock state and enable the guis on the closed door
|
|
if ($airlock2_door1_portal.getFloatKey ("state")==1) {
|
|
$airlock2_door2_gui.setGuiParm ( "gui_parm1" , 1);
|
|
} else { //else close 2 and open 1
|
|
$airlock2_door1_gui.setGuiParm ( "gui_parm1" , 1);
|
|
}
|
|
|
|
$airlock2_innerguiholder.setGuiParm ( "gui_parm11" , 1);
|
|
}
|
|
|
|
void cache_sounds() {
|
|
sys.cacheSoundShader ("rec1_1_2s_movement");
|
|
sys.cacheSoundShader ("rec1_1_5s_movement");
|
|
sys.cacheSoundShader ("rec1_pivot_0_8s");
|
|
sys.cacheSoundShader ("rec1_pivot_0_7s");
|
|
sys.cacheSoundShader ("rec1_pivot_0_4s");
|
|
sys.cacheSoundShader ("rec1_pivot_0_3s");
|
|
sys.cacheSoundShader ("rec1_3_rotation");
|
|
sys.cacheSoundShader ("rec1_2_rotation");
|
|
sys.cacheSoundShader ("rec1_1_rotation");
|
|
sys.cacheSoundShader ("rec1_pump_endclack_01");
|
|
sys.cacheSoundShader ("rec1_pump_movement_0_4s");
|
|
sys.cacheSoundShader ("rec1_pump_movement_1_5s");
|
|
sys.cacheSoundShader ("rec1_2s_rotation");
|
|
sys.cacheSoundShader ("rec1_steamchuff");
|
|
sys.cacheSoundShader ("rec1_3s_piston");
|
|
sys.cacheSoundShader ("m1_start");
|
|
sys.cacheSoundShader ("m1_stop");
|
|
sys.cacheSoundShader ("m1_loop");
|
|
}
|
|
|
|
void main ()
|
|
{
|
|
cache_sounds();
|
|
setup_objects();
|
|
thread map_recycling1::pump1apiston_start();
|
|
thread map_recycling1::pump1bpiston_start();
|
|
|
|
//setup the airlocks in the correct states
|
|
thread map_recycling1::airlock_door2_open();
|
|
thread map_recycling1::airlock2_door1_open();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//James's Rev Rockets
|
|
|
|
void rev_rocketa( entity self ) {
|
|
self.launchMissiles( "projectile_rev_rocket_cinematic", "snd_fire", "Lmissile", "target1", 1, 0 );
|
|
}
|
|
|
|
void rev_rocketb( entity self ) {
|
|
self.launchMissiles( "projectile_rev_rocket_cinematic", "snd_fire", "Rmissile", "target2", 1, 0 );
|
|
}
|