Files
DoomRTX/base/maps/game/mp/d3dm4.script
T
2026-05-22 23:51:43 -07:00

295 lines
6.5 KiB
Plaintext

// =================================================
// Map: D3DM4 ( The Edge 2 )
// =================================================
// 0 = lightswitch guis OFF
// 1 = lightswitch guis ON
float complab_lights;
float teleroom_lights;
// -------------------------------------------------
// Sound Functions
// -------------------------------------------------
// function for random steamblasts
void sound_steamblasts()
{
while( 1 ) {
sys.wait( 8 + sys.random( 4 ) );
sys.trigger( $mrdr_speaker_36 );
}
}
// -------------------------------------------------
// Setup Small Crankshaft binds and times
// -------------------------------------------------
void setup_sm_crankshaft()
{
$sm_pistonrod01.bind($sm_piston01);
$sm_pistonrod02.bind($sm_piston02);
$sm_pistonrod03.bind($sm_piston03);
$sm_piston01.time(0.25);
$sm_pistonrod01.time(0.25);
$sm_piston02.time(0.25);
$sm_pistonrod02.time(0.25);
$sm_piston03.time(0.25);
$sm_pistonrod03.time(0.25);
$sm_crankshaft.time(0.25);
}
// -------------------------------------------------
// grate light mover
// -------------------------------------------------
void gratelight_move()
{
$gratelight_mover.time( 1 );
$gratelight_mover.accelTime( .25 );
$gratelight_mover.decelTime( .25 );
float ran1;
while(1) //begin main while
{
ran1=sys.random(3);
if(ran1<1){
$gratelight_mover.moveTo($gratelightpoint_1);
sys.waitFor($gratelight_mover);
} else if(ran1<2) {
$gratelight_mover.moveTo($gratelightpoint_2);
sys.waitFor($gratelight_mover);
} else {
$gratelight_mover.moveTo($gratelightpoint_3);
sys.waitFor($gratelight_mover);
}
} //end main while
}
/*
// -------------------------------------------------
// Shaking machine
// -------------------------------------------------
void qfraggel_shaker1_move()
{
$qfraggel_func_mover_7.time(.075);
while(1){
$qfraggel_func_mover_7.rotateOnce( '.8 1.1 .4' );
sys.waitFor($qfraggel_func_mover_7);
$qfraggel_func_mover_7.rotateOnce( '-.8 -1.1 -.4' );
sys.waitFor($qfraggel_func_mover_7);
}
}
*/
// -------------------------------------------------
// Global Parm(parm) from 1 to 0 in a specific time(time)
// -------------------------------------------------
void globalparm_1to0(float parm, float blendtime)
{
float i,v,t;
t = blendtime * 60;
for( i = t; i > 0; i-- ) {
v =( i / t );
sys.setShaderParm( parm, v );
sys.wait( 1 / 60 );
}
sys.setShaderParm( parm, 0 );
}
// -------------------------------------------------
// Global Parm(parm) from 0 to 1 in a specific time(time)
// -------------------------------------------------
void globalparm_0to1(float parm, float blendtime)
{
float i,v,t;
t = blendtime * 60;
for( i = 0; i < t; i++ ) {
v =( i / t );
sys.setShaderParm( parm, v );
sys.wait( 1 / 60 );
}
sys.setShaderParm( parm, 1 );
}
// -------------------------------------------------
// Teleporter Room - Lights off
// -------------------------------------------------
void teleroom_off()
{
float i, t, v;
//sound for lights off
sys.trigger($teleroom_lightsoff_speaker);
$teleroom_lightswitch.setGuiParm( "gui_parm3", 1 );
t =( .75 * 60 );
for( i = t; i > 0; i-- ) {
v =( i / t );
sys.setShaderParm( 0, v );
sys.wait( 1 / 60 );
}
sys.setShaderParm( 0, 0 );
//$teleroom_lightswitch.setShaderParm(7, 0);
$teleroom_lightswitch_light.setColor(.84, .34, .20);
teleroom_lights = 0;
}
// -------------------------------------------------
// Teleporter Room - Lights on
// -------------------------------------------------
void teleroom_on()
{
float i, t, v;
//sound for lights on
sys.trigger($teleroom_lightson_speaker);
$teleroom_lightswitch.setGuiParm( "gui_parm3", 0 );
t = .75 * 60;
for( i = 0; i < t; i++ ) {
v =( i / t );
sys.setShaderParm( 0, v );
sys.wait( 1 / 60 );
}
sys.setShaderParm( 0, 1 );
//$teleroom_lightswitch.setShaderParm(7, 1);
$teleroom_lightswitch_light.setColor(.52, .84, .73);
teleroom_lights = 1;
}
// -------------------------------------------------
// Teleport room lights
// -------------------------------------------------
void teleroom_switch()
{
// 0 = lightswitch guis OFF
// 1 = lightswitch guis ON
if ( teleroom_lights == 0 ) {
thread teleroom_on();
}
if ( teleroom_lights == 1 ) {
thread teleroom_off();
}
}
// -------------------------------------------------
// Computer Lab - Lights off
// -------------------------------------------------
void complab_off()
{
float i, t, v;
//sound for lights off
sys.trigger($complab_lightsoff_speaker);
$complab_lightswitch01.setGuiParm( "gui_parm3", 1 );
$complab_lightswitch02.setGuiParm( "gui_parm3", 1 );
t =( .75 * 60 );
for( i = t; i > 0; i-- ) {
v =( i / t );
sys.setShaderParm( 1, v );
sys.wait( 1 / 60 );
}
sys.setShaderParm( 1, 0 );
$complab_lightswitch_light01.setColor(.84, .34, .20);
$complab_lightswitch_light02.setColor(.84, .34, .20);
// 0 = lightswitch guis OFF
// 1 = lightswitch guis ON
complab_lights = 0;
}
// -------------------------------------------------
// Computer Lab - Lights on
// -------------------------------------------------
void complab_on()
{
float i, t, v;
//sound for lights on
sys.trigger($complab_lightson_speaker);
$complab_lightswitch01.setGuiParm( "gui_parm3", 0 );
$complab_lightswitch02.setGuiParm( "gui_parm3", 0 );
t = .75 * 60;
for( i = 0; i < t; i++ ) {
v =( i / t );
sys.setShaderParm( 1, v );
sys.wait( 1 / 60 );
}
sys.setShaderParm( 1, 1 );
$complab_lightswitch_light01.setColor( .52, .84, .73 );
$complab_lightswitch_light02.setColor( .52, .84, .73 );
// 0 = lightswitch guis OFF
// 1 = lightswitch guis ON
complab_lights = 1;
}
// -------------------------------------------------
// Checker for Computer Lab light switches
// -------------------------------------------------
void complab_switch()
{
// 0 = lightswitch guis OFF
// 1 = lightswitch guis ON
if ( complab_lights == 0 ) {
thread complab_on();
}
if ( complab_lights == 1 ) {
thread complab_off();
}
}
// -------------------------------------------------
// Setup the switchable lights in the Teleporter Room
// and Computer Lab
// -------------------------------------------------
void setup_switchable_lights()
{
sys.setShaderParm( 0, 1 );
sys.setShaderParm( 1, 1 );
sys.setShaderParm( 2, 1 );
// 0 = lightswitch guis OFF
// 1 = lightswitch guis ON
complab_lights = 1;
teleroom_lights = 1;
}
// -------------------------------------------------
// Main
// -------------------------------------------------
void main()
{
sys.wait(1);
setup_switchable_lights();
//thread qfraggel_shaker1_move();
thread gratelight_move();
thread sound_steamblasts();
}