Added shaders and doomscript from the build.

This commit is contained in:
Justin Marshall
2026-08-09 04:23:10 -07:00
parent 82cfb1972d
commit 1d0c9d6657
734 changed files with 19587 additions and 0 deletions
+282
View File
@@ -0,0 +1,282 @@
/***********************************************************************
script_util.script
This defines utility functions for scripts
***********************************************************************/
/*
==================
waitForButtonPress
Waits for the user to press a button
==================
*/
void waitForButtonPress() {
float buttons;
do {
buttons = $player1.getUserButtons();
sys.wait( 0.01 );
} while( !buttons );
}
/*
==================
abs
Returns the absolute value of a number
==================
*/
float abs( float value ) {
if ( value < 0 ) {
return value * -1;
}
return value;
}
/*
==================
unpause
Utility function that works with onSignal to unpause a script
==================
*/
void unpause() {
}
/*
==================
anglemod360
Puts angles into the range of 0 to 360
==================
*/
vector anglemod360( vector ang ) {
while( ang_x < 0 ) {
ang_x += 360;
}
while( ang_x >= 360 ) {
ang_x -= 360;
}
while( ang_y < 0 ) {
ang_y += 360;
}
while( ang_y >= 360 ) {
ang_y -= 360;
}
while( ang_z < 0 ) {
ang_z += 360;
}
while( ang_z >= 360 ) {
ang_z -= 360;
}
return ang;
}
/*
==================
anglemod180
Puts angles into the range of -180 to 180
==================
*/
vector anglemod180( vector ang ) {
while( ang_x < -180 ) {
ang_x += 360;
}
while( ang_x >= 180 ) {
ang_x -= 360;
}
while( ang_y < -180 ) {
ang_y += 360;
}
while( ang_y >= 180 ) {
ang_y -= 360;
}
while( ang_z < -180 ) {
ang_z += 360;
}
while( ang_z >= 180 ) {
ang_z -= 360;
}
return ang;
}
/*
==================
delayRemoveThread
Service thread for delayRemove.
==================
*/
void delayRemoveThread( entity ent, float mytime ) {
sys.wait( mytime );
ent.remove();
}
/*
==================
delayRemove
Causes an entity to be removed after a specified amount of time.
==================
*/
void delayRemove( entity ent, float mytime ) {
thread delayRemoveThread( ent, mytime );
}
/*
==================
fadeOutEnt
Causes a entity to fade to black
==================
*/
void fadeOutEnt( entity ent, vector color, float totalTime ) {
float i;
vector c;
float frac;
float numTics;
// convert to the total number of game tics
numTics = totalTime * sys.getTicsPerSecond();
for( i = 0; i < numTics; i++ ) {
frac = ( numTics - i ) / numTics;
c = color * frac;
ent.setColor( c_x, c_y, c_z );
// wait one game frame
sys.waitFrame();
}
// make sure we are set to exactly black
ent.setColor( 0, 0, 0 );
}
/*
==================
fadeInEnt
Causes a entity to from black to color
==================
*/
void fadeInEnt( entity ent, vector color, float totalTime ) {
float i;
vector c;
float frac;
float numTics;
// convert to the total number of game tics
numTics = totalTime * sys.getTicsPerSecond();
for( i = 0; i < numTics; i++ ) {
frac = i / numTics;
c = color * frac;
ent.setColor( c_x, c_y, c_z );
// wait one game frame
sys.waitFrame();
}
// make sure we are set to exactly the color
ent.setColor( color_x, color_y, color_z );
}
/*
==================
crossFadeEnt
Causes a entity to from one color to another
==================
*/
void crossFadeEnt( entity ent, vector source, vector dest, float totalTime ) {
float i;
vector c;
float frac;
float numTics;
// convert to the total number of game tics
numTics = totalTime * sys.getTicsPerSecond();
for( i = 0; i < numTics; i++ ) {
frac = i / numTics;
c = dest * frac + source * ( 1 - frac );
ent.setColor( c_x, c_y, c_z );
// wait one game frame
sys.waitFrame();
}
// make sure we are set to exactly the destination color
ent.setColor( dest_x, dest_y, dest_z );
}
/*
==================
CalcTimeForRotationAroundEntity
Calculates the time to perform a rotation of an entity around an entity it is bound to given
the angles to rotate and the desired speed.
==================
*/
float CalcTimeForRotationAroundEntity( float distanceFromCenter, float angles, float desiredSpeed ) {
float distance;
if ( desiredSpeed <= 0 ) {
return 0;
}
distance = DEG2RAD( angles ) * distanceFromCenter;
return distance / desiredSpeed;
}
/*
==================
RandomDelay
==================
*/
float RandomDelay( float min, float max ) {
float t;
t = sys.getTime();
t += min + sys.random( max - min );
return t;
}
/*
==================
RandomTime
==================
*/
float RandomTime( float delay ) {
float t;
t = sys.getTime();
t += sys.random( delay );
return t;
}
/*
==================
DelayTime
==================
*/
float DelayTime( float delay ) {
float t;
t = sys.getTime();
t += delay;
t += sys.random( 2 ) - 1;
return t;
}