game-source/ParoxysmII/source/builtins.r
Jeff Teunissen 5b81f01e3b Okay, this is the first import of my recovered (thanks, Despair!) PoxII tree.
It works, and is playable, but you need to symlink source/config.qw to
source/config.qw -- otherwise it won't build a qwprogs.dat for you. :)
2003-10-22 09:24:50 +00:00

236 lines
4.8 KiB
R

/*
builtins.r
Master builtins list
Copyright (C) 2002 Jeff Teunissen <deek@d2dc.net>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
$Id$
*/
#include "config.rh"
/****************************************************************************
* MATH FUNCTIONS *
****************************************************************************/
/*
ceil
Returns v, rounded up to the next higher integer
*/
float (float v) ceil = #38;
/*
fabs
Returns the absolute value of v
*/
float (float v) fabs = #43;
/*
floor
Returns v, rounded down to the next lower integer
*/
float (float v) floor = #37;
/*
makevectors
Sets v_forward, v_up, v_right global vectors from the vector ang
*/
void (vector ang) makevectors = #1;
/*
normalize
Transform vector v into a unit vector (a vector with a length of 1)
*/
vector (vector v) normalize = #9;
/*
random
Generate a random number such that 0 <= num <= 1
*/
float () random = #7;
/*
rint
Returns v, rounded to the closest integer. x.5 rounds up.
*/
float (float v) rint = #36;
/*
vectoangles
Returns a vector 'pitch yaw 0' corresponding to vector v.
*/
vector (vector v) vectoangles = #51;
/*
vectoyaw
Returns the yaw angle ("bearing"), in degrees, associated with vector v.
*/
float (vector v) vectoyaw = #13;
/*
vlen
Return the length of vector v
*/
float (vector v) vlen = #12;
/****************************************************************************
* ENTITY FUNCTIONS *
****************************************************************************/
/*
makestatic
Make entity e static (part of the world).
Static entities do not interact with the game.
*/
void (entity e) makestatic = #69;
/*
remove
Remove entity e.
*/
void (entity e) remove = #15;
/*
setmodel
Sets the model name for entity e to string m.
Set the entity's move type and solid type before calling.
*/
void (entity e, string m) setmodel = #3;
/*
setorigin
Sets origin for entity e to vector o.
*/
void (entity e, vector o) setorigin = #2;
/*
setsize
Set the size of entity e to a cube with the bounds ( x1 y1 z1 ) ( x2 y2 z2 )
*/
void (entity e, vector min, vector max) setsize = #4;
/*
spawn
Creates a new entity and returns it.
*/
entity () spawn = #14;
// -------------------------------------------------------------------------
/****************************************************************************
* DEBUGGING FUNCTIONS *
****************************************************************************/
/*
abort (in QuakeC, this was break)
Tell the engine to abort (stop) code processing.
*/
void () abort = #6;
/*
coredump
Tell the engine to print all edicts (entities)
*/
void () coredump = #28;
/*
traceon
Enable instruction trace in the interpreter
*/
void () traceon = #29;
/*
traceoff
Disable instruction trace in the interpreter
*/
void () traceoff = #30;
/*
eprint
Print all information on an entity to the server console
*/
void (entity e) eprint = #31;
/****************************************************************************
* CLIENT/SERVER FUNCTIONS *
****************************************************************************/
/*
cvar
Get the value of one of the server's configuration variables.
Doesn't really supply anything useful for string or vector Cvars.
*/
float (string s) cvar = #45;
/*
cvar_set
Set the value of one of the server's configuration variables.
*/
void (string var, string val) cvar_set = #72;
/*
infokey
Get an info key for an entity. Using an entity of zero (world) reads the
serverinfo/localinfo.
*/
#ifdef QUAKEWORLD
string (entity e, string key) infokey = #80;
/*
setinfokey (QuakeForge-only)
Set an info key for an entity. Using an entity of zero (world) sets a key
in the server's localinfo. Does nothing if the entity is not a player.
*/
# ifndef __VERSION6__
void (entity e, string key, string value) setinfokey = #102;
# endif
#endif
#if 0
PR_AddBuiltin (pr, "vectoyaw", PF_vectoyaw, 13); // float (vector v) vectoyaw
PR_AddBuiltin (pr, "find", PF_Find, 18); // entity (entity start, .(...) fld, ... match) find
PR_AddBuiltin (pr, "dprint", PF_dprint, 25); // void (string s) dprint
#endif