mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-25 11:01:30 +00:00
323 lines
8.2 KiB
Text
323 lines
8.2 KiB
Text
namespace map_site3 {
|
|
|
|
void setup_objects ()
|
|
{
|
|
// Cache the sounds... -Xian
|
|
|
|
sys.cacheSoundShader ("train_door_close");
|
|
sys.cacheSoundShader ("train_door_open");
|
|
|
|
$transport.accelTime (.5);
|
|
$transport.decelTime (.5);
|
|
|
|
$transport_door.accelTime (.2);
|
|
$transport_door.decelTime (.1);
|
|
$transport_door.time (.5);
|
|
$transport_door.bind ($transport);
|
|
$transport_door_open1.bind ($transport);
|
|
$transport_door_close1.bind ($transport);
|
|
$transport_door_close2.bind ($transport);
|
|
$transport_activator_2.bind ($transport);
|
|
|
|
$pistrod1.bind ($piston1);
|
|
$pistrod2.bind ($piston2);
|
|
$pistrod3.bind ($piston3);
|
|
|
|
$piston1.time (.125);
|
|
$pistrod1.time (.125);
|
|
$piston2.time (.125);
|
|
$pistrod2.time (.125);
|
|
$piston3.time (.125);
|
|
$pistrod3.time (.125);
|
|
$crankshaft.time (.125);
|
|
|
|
$arm_base.time (1);
|
|
$arm_base.accelTime (.5);
|
|
$arm_base.decelTime (.1);
|
|
|
|
$metaldoor.time (.05);
|
|
|
|
$finger1.bind ($hand);
|
|
$finger2.bind ($hand);
|
|
$hand.bind ($arm);
|
|
$arm.bind ($arm_anchor);
|
|
$arm_anchor.bind ($arm_base);
|
|
|
|
$pipe_crash.bind ($pipe_crash_anchor);
|
|
$pipe_crash_anchor.accelTime (.4);
|
|
$pipe_crash_anchor.time (1);
|
|
$skcube_crash.bind ($skcube_crash_anchor);
|
|
$skcube_crash_anchor.accelTime (.4);
|
|
$skcube_crash_anchor.time (.8);
|
|
|
|
$walkway1_anchor.time (.5);
|
|
$walkway1_anchor.accelTime (.5);
|
|
$walkway2_anchor.time (.5);
|
|
$walkway2_anchor.accelTime (.5);
|
|
$walkway1edge_anchor.time (.3);
|
|
$walkway1edge_anchor.accelTime (.3);
|
|
$walkway2edge_anchor.time (.3);
|
|
$walkway2edge_anchor.accelTime (.3);
|
|
|
|
$walkway1.bind ($walkway1_anchor);
|
|
$walkway1edge.bind ($walkway1edge_anchor);
|
|
$walkway1edge_anchor.bind ($walkway1);
|
|
$walkway2.bind ($walkway2_anchor);
|
|
$walkway2edge.bind ($walkway2edge_anchor);
|
|
$walkway2edge_anchor.bind ($walkway2);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// transport
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
void call_transport ()
|
|
{
|
|
sys.trigger ($door_block_trigger);
|
|
sys.trigger ($trigger_objectivecomplete_2);
|
|
$transport.time (10);
|
|
$transport.moveTo ($transport_spot1);
|
|
sys.waitFor ($transport);
|
|
$transport_activator_2.unbind ();
|
|
$transport_activator_1.bind ($transport);
|
|
$transport_door.unbind ();
|
|
sys.trigger ($trans_trigger);
|
|
sys.trigger ($trigger_objective_3);
|
|
}
|
|
|
|
void move_transport ()
|
|
{
|
|
sys.trigger ($airdoor1_lf);
|
|
$transport.time (4);
|
|
$transport.moveTo ($transport_spot1a);
|
|
sys.waitFor ($transport);
|
|
sys.wait (.5);
|
|
sys.trigger ($airdoor1_lf);
|
|
sys.wait (2);
|
|
sys.trigger ($airdoor2_lf);
|
|
sys.waitFor ($airdoor2_lf);
|
|
sys.trigger ($airdoor2_relay);
|
|
sys.trigger ($airdoor3_relay);
|
|
$transport.time (7);
|
|
$transport.moveTo ($transport_spot2);
|
|
sys.waitFor ($transport);
|
|
sys.trigger ($airdoor3_lf);
|
|
sys.trigger ($trans_trigger2);
|
|
}
|
|
|
|
void transport_door_close ()
|
|
{
|
|
$transport_door.startSoundShader ("train_door_close", SND_CHANNEL_VOICE);
|
|
$transport_door.moveTo ($transport_door_close1);
|
|
sys.waitFor ($transport_door);
|
|
$transport_door.moveTo ($transport_door_close2);
|
|
sys.waitFor ($transport_door);
|
|
$transport_door.bind ($transport);
|
|
}
|
|
|
|
void transport_door_open ()
|
|
{
|
|
$transport_door.unbind ();
|
|
$transport_door.startSoundShader ("train_door_open", SND_CHANNEL_VOICE);
|
|
$transport_door.moveTo ($transport_door_close1);
|
|
sys.waitFor ($transport_door);
|
|
$transport_door.moveTo ($transport_door_open1);
|
|
sys.waitFor ($transport_door);
|
|
}
|
|
|
|
void airdoor1_open ()
|
|
{
|
|
sys.trigger ($airdoor1_lf);
|
|
}
|
|
void airdoor2_open ()
|
|
{
|
|
sys.trigger ($airdoor2_lf);
|
|
}
|
|
void airdoor3_open ()
|
|
{
|
|
sys.trigger ($airdoor3_lf);
|
|
}
|
|
void airdoor1_close ()
|
|
{
|
|
sys.trigger ($airdoor1_lf);
|
|
}
|
|
void airdoor2_close ()
|
|
{
|
|
sys.trigger ($airdoor2_lf);
|
|
}
|
|
void airdoor3_close ()
|
|
{
|
|
sys.trigger ($airdoor3_lf);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// archvile room
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
void archvile_start ()
|
|
{
|
|
sys.trigger ($blight_trigger1);
|
|
sys.wait (.7);
|
|
sys.trigger ($blight_trigger3);
|
|
sys.wait (.2);
|
|
sys.trigger ($blight_trigger2);
|
|
sys.wait (.6);
|
|
sys.trigger ($alight_trigger1);
|
|
sys.trigger ($alight_trigger2);
|
|
sys.trigger ($alight_trigger3);
|
|
sys.trigger ($alight_trigger4);
|
|
sys.trigger ($alight_trigger5);
|
|
sys.trigger ($alight_trigger6);
|
|
|
|
$walkway1_anchor.rotateOnce ('-88 0 0');
|
|
$walkway1edge_anchor.rotateOnce ('84 0 0');
|
|
$walkway2_anchor.rotateOnce ('0 0 -88');
|
|
$walkway2edge_anchor.rotateOnce ('0 0 84');
|
|
sys.waitFor ($walkway1_anchor);
|
|
sys.wait (1);
|
|
|
|
sys.trigger ($candles_trigger);
|
|
sys.wait (.5);
|
|
sys.trigger ($archvile_trigger);
|
|
sys.wait (.5);
|
|
sys.trigger ($fire_trigger);
|
|
sys.trigger ($speaker_flames_1);
|
|
sys.trigger ($speaker_flames_2);
|
|
sys.trigger ($speaker_av_mood);
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// misc
|
|
//
|
|
////////////////////////////////////////////////////
|
|
|
|
void pipe_crash_trigger ()
|
|
{
|
|
$pipe_crash_anchor.rotateOnce ('-20 0 25');
|
|
$skcube_crash_anchor.rotateOnce ('0 10 90');
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// crane arm movement
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void crane_move ()
|
|
{
|
|
while (1) {
|
|
|
|
$arm_base.startSoundShader ("s3_arm_back", SND_CHANNEL_ANY );
|
|
$arm_base.move ( SOUTH, 256 );
|
|
sys.waitFor ($arm_base);
|
|
sys.trigger ($doorbang);
|
|
sys.trigger ($doorspark);
|
|
$metaldoor.move (SOUTH,1);
|
|
|
|
$arm_anchor.time (.1);
|
|
$arm_anchor.decelTime (.05);
|
|
|
|
$arm_anchor.rotateOnce ('0 0 -4');
|
|
sys.waitFor ($arm_anchor);
|
|
$metaldoor.move (NORTH,1);
|
|
|
|
$arm_anchor.rotateOnce ('0 0 5');
|
|
sys.waitFor ($arm_anchor);
|
|
$arm_anchor.time (.08);
|
|
$arm_anchor.rotateOnce ('0 0 -1.5');
|
|
sys.waitFor ($arm_anchor);
|
|
$arm_anchor.time (.04);
|
|
$arm_anchor.rotateOnce ('0 0 0.5');
|
|
sys.waitFor ($arm_anchor);
|
|
|
|
// need sound here
|
|
|
|
sys.trigger ($armsound1);
|
|
$arm_base.move ( NORTH, 256 );
|
|
sys.waitFor ($arm_base);
|
|
|
|
$arm_anchor.time (.2);
|
|
$arm_anchor.decelTime (.1);
|
|
|
|
$arm_anchor.rotateOnce ('0 0 6');
|
|
sys.waitFor ($arm_anchor);
|
|
$arm_anchor.rotateOnce ('0 0 -7');
|
|
sys.waitFor ($arm_anchor);
|
|
$arm_anchor.time (.15);
|
|
$arm_anchor.rotateOnce ('0 0 2');
|
|
sys.waitFor ($arm_anchor);
|
|
$arm_anchor.time (.08);
|
|
$arm_anchor.rotateOnce ('0 0 -1');
|
|
sys.waitFor ($arm_anchor);
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// piston movement
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void piston_move ()
|
|
{
|
|
while (1)
|
|
{
|
|
|
|
$piston1.move ( DOWN, 6 );
|
|
$pistrod1.rotateOnce ( '0 0 -26.56' );
|
|
$piston2.move ( UP, 6 );
|
|
$pistrod2.rotateOnce ( '0 0 26.56' );
|
|
$piston3.move ( DOWN, 6 );
|
|
$pistrod3.rotateOnce ( '0 0 -26.56' );
|
|
$crankshaft.rotateOnce ( '0 0 90' );
|
|
sys.waitFor ($piston1);
|
|
|
|
$piston1.move ( DOWN, 6 );
|
|
$pistrod1.rotateOnce ( '0 0 26.56' );
|
|
$piston2.move ( UP, 6 );
|
|
$pistrod2.rotateOnce ( '0 0 -26.56' );
|
|
$piston3.move ( DOWN, 6 );
|
|
$pistrod3.rotateOnce ( '0 0 26.56' );
|
|
$crankshaft.rotateOnce ( '0 0 90' );
|
|
sys.waitFor ($piston1);
|
|
|
|
$piston1.move ( UP, 6 );
|
|
$pistrod1.rotateOnce ( '0 0 26.56' );
|
|
$piston2.move ( DOWN, 6 );
|
|
$pistrod2.rotateOnce ( '0 0 -26.56' );
|
|
$piston3.move ( UP, 6 );
|
|
$pistrod3.rotateOnce ( '0 0 26.56' );
|
|
$crankshaft.rotateOnce ( '0 0 90' );
|
|
sys.waitFor ($piston1);
|
|
|
|
$piston1.move ( UP, 6 );
|
|
$pistrod1.rotateOnce ( '0 0 -26.56' );
|
|
$piston2.move ( DOWN, 6 );
|
|
$pistrod2.rotateOnce ( '0 0 26.56' );
|
|
$piston3.move ( UP, 6 );
|
|
$pistrod3.rotateOnce ( '0 0 -26.56' );
|
|
$crankshaft.rotateOnce ( '0 0 90' );
|
|
sys.waitFor ($piston1);
|
|
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
//
|
|
// MAIN
|
|
//
|
|
////////////////////////////////////////////////////
|
|
void main ()
|
|
{
|
|
sys.cacheSoundShader ("s3_arm_back");
|
|
setup_objects ();
|
|
piston_move ();
|
|
|
|
}
|
|
}
|
|
|