move enums and constants around

master
an 2019-09-19 10:16:20 -04:00
parent 8a8b6c6cc1
commit 661307339e
19 changed files with 214 additions and 293 deletions

View File

@ -233,7 +233,7 @@ void() execute_changelevel = {
other = find(world, classname, "player");
while(other != world) {
other.view_ofs = '0 0 0';
other.view_ofs = VEC_ORIGIN;
other.angles = other.v_angle = pos.mangle;
other.fixangle = TRUE; // turn this way immediately
other.nextthink = time + 0.5;
@ -449,7 +449,7 @@ void() PutClientInServer = {
setmodel(self, "progs/player.mdl");
modelindex_player = self.modelindex;
setsize(self, VEC_HULL_MIN, VEC_HULL_MAX);
setsize(self, '-16 -16 -24', '16 16 32');
self.view_ofs = '0 0 22';
@ -593,7 +593,7 @@ void() PlayerDeathThink = {
forward = vlen(self.velocity);
forward = forward - 20;
if(forward <= 0) {
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
} else {
self.velocity = forward * normalize(self.velocity);
}
@ -782,15 +782,12 @@ Called every frame before physics are run
================
*/
void() PlayerPreThink = {
float mspeed, aspeed;
float r;
if(intermission_running) {
IntermissionThink(); // otherwise a button could be missed between
return; // the think tics
}
if(self.view_ofs == '0 0 0') {
if(self.view_ofs == VEC_ORIGIN) {
return; // intermission or finale
}
@ -820,7 +817,7 @@ void() PlayerPreThink = {
// teleporters can force a non-moving pause time
if(time < self.pausetime) {
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
}
if(time > self.attack_finished && self.currentammo == 0 && self.weapon != IT_AXE) {
@ -952,7 +949,6 @@ void() CheckPowerups = {
self.radsuit_finished = 0;
}
}
};
/*
@ -963,11 +959,8 @@ Called every frame after physics are run
================
*/
void() PlayerPostThink = {
float mspeed, aspeed;
float r;
if(self.view_ofs == '0 0 0') {
return; // intermission or finale
if(self.view_ofs == VEC_ORIGIN) {
return; // intermission, finale or spectating
}
if(self.deadflag) {
return;

View File

@ -53,10 +53,7 @@ float(entity targ) visible = {
return FALSE; // sight line crossed contents
}
if(trace_fraction == 1) {
return TRUE;
}
return FALSE;
return trace_fraction == 1;
};
// returns 1 if the entity is in front(in sight) of self
@ -68,10 +65,7 @@ float(entity targ) infront = {
vec = normalize(targ.origin - self.origin);
dot = vec * v_forward;
if(dot > 0.3) {
return TRUE;
}
return FALSE;
return dot > 0.3;
};
// EOF

View File

@ -20,8 +20,8 @@ float deathmatch;
float coop;
float teamplay;
float serverflags; // propagated from level to level, used to
// keep track of completed episodes
// propagated from level to level, used to keep track of completed episodes
float serverflags;
float total_secrets;
float total_monsters;
@ -272,11 +272,15 @@ void(entity e) setspawnparms = #78;
// constants -----------------------------------------------------------------|
const vector VEC_ORIGIN = '0 0 0';
const vector VEC_HULL_MIN = '-16 -16 -24';
const vector VEC_HULL_MAX = '16 16 32';
const vector VEC_HULL2_MIN = '-32 -32 -24';
const vector VEC_HULL2_MAX = '32 32 64';
const string WEPNAME_AXE = "Axe";
const string WEPNAME_SHOTGUN = "Shotgun";
const string WEPNAME_SUPER_SHOTGUN = "Double-barrelled Shotgun";
const string WEPNAME_NAILGUN = "Nailgun";
const string WEPNAME_SUPER_NAILGUN = "Super Nailgun";
const string WEPNAME_GRENADE_LAUNCHER = "Grenade Launcher";
const string WEPNAME_ROCKET_LAUNCHER = "Rocket Launcher";
const string WEPNAME_LIGHTNING = "Thunderbolt";
enum {
FALSE,
@ -302,8 +306,6 @@ enum {
// edict.movetype values
enum {
MOVETYPE_NONE, // never moves
//MOVETYPE_ANGLENOCLIP,
//MOVETYPE_ANGLECLIP,
MOVETYPE_WALK = 3, // players only
MOVETYPE_STEP, // discrete, not real time unless fall
MOVETYPE_FLY,
@ -489,6 +491,72 @@ enum {
PRO_MAX,
};
enum {
DOOR_START_OPEN = 1,
DOOR_DONT_LINK = 4,
DOOR_GOLD_KEY = 8,
DOOR_SILVER_KEY = 16,
DOOR_TOGGLE = 32,
};
enum {
SECRET_OPEN_ONCE = 1, // stays open
SECRET_1ST_LEFT = 2, // 1st move is left of arrow
SECRET_1ST_DOWN = 4, // 1st move is down from arrow
SECRET_NO_SHOOT = 8, // only opened by trigger
SECRET_YES_SHOOT = 16, // shootable even if targeted
};
enum {
COUNTER_NOMESSAGE = 1,
};
enum {
MULTIPLE_NOTOUCH = 1,
};
enum {
TELE_PLAYER_ONLY = 1,
TELE_SILENT = 2,
};
enum {
PUSH_ONCE = 1,
};
enum {
ZOMBIE_SPAWN_CRUCIFIED = 1,
};
enum {
PLAT_LOW_TRIGGER = 1,
};
enum {
LIGHT_START_OFF = 1,
};
enum {
SPIKESHOOTER_SUPER = 1,
SPIKESHOOTER_LASER = 2,
};
enum {
HEALTH_ROTTEN = 1,
HEALTH_MEGA = 2,
};
enum {
AMMO_BIG = 1,
};
enum {
WEAPON_SHOTGUN = 1,
WEAPON_ROCKET = 2,
WEAPON_SPIKES = 4,
WEAPON_BIG = 8,
};
#pragma noref 0
// globals -------------------------------------------------------------------|

View File

@ -189,7 +189,7 @@ void() monster_demon1 = {
setmodel(self, "progs/demon.mdl");
setsize(self, VEC_HULL2_MIN, VEC_HULL2_MAX);
setsize(self, '-32 -32 -24', '32 32 64');
self.health = 300;
self.th_stand = demon1_stand1;

View File

@ -1,13 +1,5 @@
// doors.qc: player-triggered moving brush entities
enum {
DOOR_START_OPEN = 1,
DOOR_DONT_LINK = 4,
DOOR_GOLD_KEY = 8,
DOOR_SILVER_KEY = 16,
DOOR_TOGGLE = 32,
};
/*
Doors are similar to buttons, but can spawn a fat trigger field around them
@ -492,14 +484,6 @@ SECRET DOORS
=============================================================================
*/
enum {
SECRET_OPEN_ONCE = 1, // stays open
SECRET_1ST_LEFT = 2, // 1st move is left of arrow
SECRET_1ST_DOWN = 4, // 1st move is down from arrow
SECRET_NO_SHOOT = 8, // only opened by trigger
SECRET_YES_SHOOT = 16, // shootable even if targeted
};
void() fd_secret_use = {
float temp;
@ -518,7 +502,7 @@ void() fd_secret_use = {
self.th_pain = SUB_PainNull;
self.takedamage = DAMAGE_NO;
}
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
// Make a sound, wait a little...
@ -682,7 +666,7 @@ void() func_door_secret = {
// Magic formula...
self.mangle = self.angles;
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.solid = SOLID_BSP;
self.movetype = MOVETYPE_PUSH;
self.classname = "door";

View File

@ -76,7 +76,7 @@ void(vector org, vector vec) LaunchLaser = {
newmis.effects = EF_DIMLIGHT;
setmodel(newmis, "progs/laser.mdl");
setsize(newmis, '0 0 0', '0 0 0');
setsize(newmis, VEC_ORIGIN, VEC_ORIGIN);
setorigin(newmis, org);

View File

@ -1,14 +1,5 @@
// items.qc: items the player can pick up
const string WEPNAME_AXE = "Axe";
const string WEPNAME_SHOTGUN = "Shotgun";
const string WEPNAME_SUPER_SHOTGUN = "Double-barrelled Shotgun";
const string WEPNAME_NAILGUN = "Nailgun";
const string WEPNAME_SUPER_NAILGUN = "Super Nailgun";
const string WEPNAME_GRENADE_LAUNCHER = "Grenade Launcher";
const string WEPNAME_ROCKET_LAUNCHER = "Rocket Launcher";
const string WEPNAME_LIGHTNING = "Thunderbolt";
string() Key1Name = {
switch(world.worldtype) {
case WORLD_MEDIEVAL:
@ -72,7 +63,7 @@ void() PlaceItem = {
self.flags = FL_ITEM; // make extra wide
self.solid = SOLID_TRIGGER;
self.movetype = MOVETYPE_TOSS;
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.origin_z = self.origin_z + 6;
oldz = self.origin_z;
if(!droptofloor()) {
@ -133,22 +124,17 @@ rot you down to your maximum health limit,
one point per second.
*/
enum {
H_ROTTEN = 1,
H_MEGA = 2,
};
void() item_health = {
self.touch = health_touch;
if(self.spawnflags & H_ROTTEN) {
if(self.spawnflags & HEALTH_ROTTEN) {
precache_model("maps/b_bh10.bsp");
precache_sound("items/r_item1.wav");
setmodel(self, "maps/b_bh10.bsp");
self.noise = "items/r_item1.wav";
self.healamount = 15;
self.healtype = 0;
} else if(self.spawnflags & H_MEGA) {
} else if(self.spawnflags & HEALTH_MEGA) {
precache_model("maps/b_bh100.bsp");
precache_sound("items/r_item2.wav");
setmodel(self, "maps/b_bh100.bsp");
@ -163,7 +149,7 @@ void() item_health = {
self.healamount = 25;
self.healtype = 1;
}
setsize(self, '0 0 0', '32 32 56');
setsize(self, VEC_ORIGIN, '32 32 56');
StartItem();
};
@ -680,20 +666,12 @@ void() ammo_touch = {
SUB_UseTargets(); // fire all targets / killtargets
};
enum {
WEAPON_BIG2 = 1,
};
/*QUAKED item_shells(0 .5 .8) (0 0 0) (32 32 32) big
*/
void() item_shells = {
self.touch = ammo_touch;
if(self.spawnflags & WEAPON_BIG2) {
if(self.spawnflags & AMMO_BIG) {
precache_model("maps/b_shell1.bsp");
setmodel(self, "maps/b_shell1.bsp");
self.aflag = 40;
@ -704,17 +682,16 @@ void() item_shells = {
}
self.weapon = 1;
self.netname = "shells";
setsize(self, '0 0 0', '32 32 56');
setsize(self, VEC_ORIGIN, '32 32 56');
StartItem();
};
/*QUAKED item_spikes(0 .5 .8) (0 0 0) (32 32 32) big
*/
void() item_spikes = {
self.touch = ammo_touch;
if(self.spawnflags & WEAPON_BIG2) {
if(self.spawnflags & AMMO_BIG) {
precache_model("maps/b_nail1.bsp");
setmodel(self, "maps/b_nail1.bsp");
self.aflag = 50;
@ -725,17 +702,16 @@ void() item_spikes = {
}
self.weapon = 2;
self.netname = "nails";
setsize(self, '0 0 0', '32 32 56');
setsize(self, VEC_ORIGIN, '32 32 56');
StartItem();
};
/*QUAKED item_rockets(0 .5 .8) (0 0 0) (32 32 32) big
*/
void() item_rockets = {
self.touch = ammo_touch;
if(self.spawnflags & WEAPON_BIG2) {
if(self.spawnflags & AMMO_BIG) {
precache_model("maps/b_rock1.bsp");
setmodel(self, "maps/b_rock1.bsp");
self.aflag = 10;
@ -746,7 +722,7 @@ void() item_rockets = {
}
self.weapon = 3;
self.netname = "rockets";
setsize(self, '0 0 0', '32 32 56');
setsize(self, VEC_ORIGIN, '32 32 56');
StartItem();
};
@ -757,7 +733,7 @@ void() item_rockets = {
void() item_cells = {
self.touch = ammo_touch;
if(self.spawnflags & WEAPON_BIG2) {
if(self.spawnflags & AMMO_BIG) {
precache_model("maps/b_batt1.bsp");
setmodel(self, "maps/b_batt1.bsp");
self.aflag = 12;
@ -768,71 +744,10 @@ void() item_cells = {
}
self.weapon = 4;
self.netname = "cells";
setsize(self, '0 0 0', '32 32 56');
setsize(self, VEC_ORIGIN, '32 32 56');
StartItem();
};
/*QUAKED item_weapon(0 .5 .8) (0 0 0) (32 32 32) shotgun rocket spikes big
DO NOT USE THIS!!!! IT WILL BE REMOVED!
*/
enum {
WEAPON_SHOTGUN = 1,
WEAPON_ROCKET = 2,
WEAPON_SPIKES = 4,
WEAPON_BIG = 8,
};
void() item_weapon = {
self.touch = ammo_touch;
if(self.spawnflags & WEAPON_SHOTGUN) {
if(self.spawnflags & WEAPON_BIG) {
precache_model("maps/b_shell1.bsp");
setmodel(self, "maps/b_shell1.bsp");
self.aflag = 40;
} else {
precache_model("maps/b_shell0.bsp");
setmodel(self, "maps/b_shell0.bsp");
self.aflag = 20;
}
self.weapon = 1;
self.netname = "shells";
}
if(self.spawnflags & WEAPON_SPIKES) {
if(self.spawnflags & WEAPON_BIG) {
precache_model("maps/b_nail1.bsp");
setmodel(self, "maps/b_nail1.bsp");
self.aflag = 40;
} else {
precache_model("maps/b_nail0.bsp");
setmodel(self, "maps/b_nail0.bsp");
self.aflag = 20;
}
self.weapon = 2;
self.netname = "spikes";
}
if(self.spawnflags & WEAPON_ROCKET) {
if(self.spawnflags & WEAPON_BIG) {
precache_model("maps/b_rock1.bsp");
setmodel(self, "maps/b_rock1.bsp");
self.aflag = 10;
} else {
precache_model("maps/b_rock0.bsp");
setmodel(self, "maps/b_rock0.bsp");
self.aflag = 5;
}
self.weapon = 3;
self.netname = "rockets";
}
setsize(self, '0 0 0', '32 32 56');
StartItem();
};
/*
===============================================================================

View File

@ -15,17 +15,13 @@ void() info_notnull = {
//============================================================================
enum {
START_OFF = 1,
};
void() light_use = {
if(self.spawnflags & START_OFF) {
if(self.spawnflags & LIGHT_START_OFF) {
lightstyle(self.style, "m");
self.spawnflags = self.spawnflags - START_OFF;
self.spawnflags = self.spawnflags - LIGHT_START_OFF;
} else {
lightstyle(self.style, "a");
self.spawnflags = self.spawnflags + START_OFF;
self.spawnflags = self.spawnflags + LIGHT_START_OFF;
}
};
@ -44,7 +40,7 @@ void() light = {
if(self.style >= 32) {
self.use = light_use;
if(self.spawnflags & START_OFF) {
if(self.spawnflags & LIGHT_START_OFF) {
lightstyle(self.style, "a");
} else {
lightstyle(self.style, "m");
@ -62,7 +58,7 @@ Makes steady fluorescent humming sound
void() light_fluoro = {
if(self.style >= 32) {
self.use = light_use;
if(self.spawnflags & START_OFF) {
if(self.spawnflags & LIGHT_START_OFF) {
lightstyle(self.style, "a");
} else {
lightstyle(self.style, "m");
@ -176,7 +172,7 @@ void() fire_fly = {
fireball.velocity_z = self.speed + (random() * 200);
fireball.classname = "fireball";
setmodel(fireball, "progs/lavaball.mdl");
setsize(fireball, '0 0 0', '0 0 0');
setsize(fireball, VEC_ORIGIN, VEC_ORIGIN);
setorigin(fireball, self.origin);
fireball.nextthink = time + 5;
fireball.think = SUB_Remove;
@ -199,7 +195,7 @@ void() barrel_explode = {
// did say self.owner
T_RadiusDamage(self, self, 160, world);
sound(self, CHAN_VOICE, "weapons/r_exp3.wav", 1, ATTN_NORM);
particle(self.origin, '0 0 0', 75, 255);
particle(self.origin, VEC_ORIGIN, 75, 255);
self.origin_z = self.origin_z + 32;
BecomeExplosion();
@ -260,20 +256,15 @@ void() misc_explobox2 = {
//============================================================================
enum {
SPAWNFLAG_SUPERSPIKE = 1,
SPAWNFLAG_LASER = 2,
};
void() spikeshooter_use = {
if(self.spawnflags & SPAWNFLAG_LASER) {
if(self.spawnflags & SPIKESHOOTER_LASER) {
sound(self, CHAN_VOICE, "enforcer/enfire.wav", 1, ATTN_NORM);
LaunchLaser(self.origin, self.movedir);
} else {
sound(self, CHAN_VOICE, "weapons/spike2.wav", 1, ATTN_NORM);
launch_spike(self.origin, self.movedir);
newmis.velocity = self.movedir * 500;
if(self.spawnflags & SPAWNFLAG_SUPERSPIKE) {
if(self.spawnflags & SPIKESHOOTER_SUPER) {
newmis.touch = superspike_touch;
}
}
@ -293,7 +284,7 @@ Laser is only for REGISTERED.
void() trap_spikeshooter = {
SetMovedir();
self.use = spikeshooter_use;
if(self.spawnflags & SPAWNFLAG_LASER) {
if(self.spawnflags & SPIKESHOOTER_LASER) {
precache_model2("progs/laser.mdl");
precache_sound2("enforcer/enfire.wav");
precache_sound2("enforcer/enfstop.wav");
@ -442,9 +433,7 @@ void() bubble_bob = {
Just for the debugging level. Don't use
*/
void() viewthing =
{
void() viewthing = {
self.movetype = MOVETYPE_NONE;
self.solid = SOLID_NOT;
precache_model("progs/player.mdl");
@ -468,7 +457,7 @@ void() func_wall_use = {
This is just a solid wall if not inhibitted
*/
void() func_wall = {
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.movetype = MOVETYPE_PUSH; // so it doesn't get pushed by anything
self.solid = SOLID_BSP;
self.use = func_wall_use;
@ -479,7 +468,7 @@ void() func_wall = {
A simple entity that looks solid but lets you walk through it.
*/
void() func_illusionary = {
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.movetype = MOVETYPE_NONE;
self.solid = SOLID_NOT;
setmodel(self, self.model);
@ -489,14 +478,12 @@ void() func_illusionary = {
/*QUAKED func_episodegate(0 .5 .8) ? E1 E2 E3 E4
This bmodel will appear if the episode has allready been completed, so players can't reenter it.
*/
void() func_episodegate =
{
void() func_episodegate = {
if(!(serverflags & self.spawnflags)) {
return; // can still enter episode
}
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.movetype = MOVETYPE_PUSH; // so it doesn't get pushed by anything
self.solid = SOLID_BSP;
self.use = func_wall_use;
@ -506,13 +493,11 @@ void() func_episodegate =
/*QUAKED func_bossgate(0 .5 .8) ?
This bmodel appears unless players have all of the episode sigils.
*/
void() func_bossgate =
{
void() func_bossgate = {
if((serverflags & 15) == 15) {
return; // all episodes completed
}
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.movetype = MOVETYPE_PUSH; // so it doesn't get pushed by anything
self.solid = SOLID_BSP;
self.use = func_wall_use;

View File

@ -53,7 +53,7 @@ void() OgreGrenadeExplode = {
WriteCoord(MSG_BROADCAST, self.origin_y);
WriteCoord(MSG_BROADCAST, self.origin_z);
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.touch = SUB_Null;
setmodel(self, "progs/s_explod.spr");
self.solid = SOLID_NOT;
@ -69,8 +69,8 @@ void() OgreGrenadeTouch = {
return;
}
sound(self, CHAN_VOICE, "weapons/bounce.wav", 1, ATTN_NORM); // bounce sound
if(self.velocity == '0 0 0') {
self.avelocity = '0 0 0';
if(self.velocity == VEC_ORIGIN) {
self.avelocity = VEC_ORIGIN;
}
};
@ -110,7 +110,7 @@ void() OgreFireGrenade = {
missile.think = OgreGrenadeExplode;
setmodel(missile, "progs/grenade.mdl");
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, self.origin);
};
@ -422,7 +422,7 @@ void() monster_ogre = {
setmodel(self, "progs/ogre.mdl");
setsize(self, VEC_HULL2_MIN, VEC_HULL2_MAX);
setsize(self, '-32 -32 -24', '32 32 64');
self.health = 200;
self.th_stand = ogre_stand1;

View File

@ -116,7 +116,7 @@ void() finale_1 = {
pl = find(world, classname, "player");
while(pl != world) {
pl.view_ofs = '0 0 0';
pl.view_ofs = VEC_ORIGIN;
pl.angles = other.v_angle = pos.mangle;
pl.fixangle = TRUE; // turn this way immediately
pl.map = self.map;

View File

@ -1,9 +1,5 @@
// plats.qc: moving platforms
enum {
PLAT_LOW_TRIGGER = 1,
};
void() plat_spawn_inside_trigger = {
entity trigger;
vector tmin, tmax;
@ -165,7 +161,7 @@ void() func_plat = {
}
self.mangle = self.angles;
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.classname = "plat";
self.solid = SOLID_BSP;

View File

@ -436,7 +436,7 @@ void(string gibname, float dm) ThrowGib = {
new = spawn();
new.origin = self.origin;
setmodel(new, gibname);
setsize(new, '0 0 0', '0 0 0');
setsize(new, VEC_ORIGIN, VEC_ORIGIN);
new.velocity = VelocityForDamage(dm);
new.movetype = MOVETYPE_BOUNCE;
new.solid = SOLID_NOT;

View File

@ -137,7 +137,7 @@ void() ShalMissile = {
missile.movetype = MOVETYPE_FLYMISSILE;
setmodel(missile, "progs/v_spike.mdl");
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
missile.origin = self.origin + '0 0 10';
missile.velocity = dir * 400;
@ -182,7 +182,7 @@ void() ShalMissileTouch = {
WriteCoord(MSG_BROADCAST, self.origin_y);
WriteCoord(MSG_BROADCAST, self.origin_z);
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.touch = SUB_Null;
setmodel(self, "progs/s_explod.spr");
self.solid = SOLID_NOT;
@ -213,7 +213,7 @@ void() monster_shalrath = {
self.movetype = MOVETYPE_STEP;
setmodel(self, "progs/shalrath.mdl");
setsize(self, VEC_HULL2_MIN, VEC_HULL2_MAX);
setsize(self, '-32 -32 -24', '32 32 64');
self.health = 400;
self.th_stand = shal_stand;

View File

@ -346,7 +346,7 @@ void() monster_shambler = {
self.movetype = MOVETYPE_STEP;
setmodel(self, "progs/shambler.mdl");
setsize(self, VEC_HULL2_MIN, VEC_HULL2_MAX);
setsize(self, '-32 -32 -24', '32 32 64');
self.health = 600;
self.th_stand = sham_stand1;

View File

@ -18,7 +18,7 @@ void() SetMovedir = {
self.movedir = v_forward;
}
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
};
/*
@ -29,7 +29,7 @@ InitTrigger
void() InitTrigger = {
// trigger angles are used for one-way touches. An angle of 0 is assumed
// to mean no restrictions, so use a yaw of 360 instead.
if(self.angles != '0 0 0') {
if(self.angles != VEC_ORIGIN) {
SetMovedir();
}
self.solid = SOLID_TRIGGER;
@ -69,7 +69,7 @@ void(vector tdest, float tspeed, void() func) SUB_CalcMove = {
self.think = SUB_CalcMoveDone;
if(tdest == self.origin) {
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.nextthink = self.ltime + 0.1;
return;
}
@ -84,7 +84,7 @@ void(vector tdest, float tspeed, void() func) SUB_CalcMove = {
traveltime = len / tspeed;
if(traveltime < 0.1) {
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.nextthink = self.ltime + 0.1;
return;
}
@ -103,7 +103,7 @@ After moving, set origin to exact final destination
*/
void() SUB_CalcMoveDone = {
setorigin(self, self.finaldest);
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.nextthink = -1;
if(self.think1) {
self.think1();
@ -163,7 +163,7 @@ After rotating, set angle to exact final angle
*/
void() SUB_CalcAngleMoveDone = {
self.angles = self.finalangle;
self.avelocity = '0 0 0';
self.avelocity = VEC_ORIGIN;
self.nextthink = -1;
if(self.think1) {
self.think1();

View File

@ -6,14 +6,6 @@ void() trigger_reactivate = {
//=============================================================================
enum {
SPAWNFLAG_NOMESSAGE = 1,
};
enum {
SPAWNFLAG_NOTOUCH = 1,
};
// the wait time has passed, so set back up for another activation
void() multi_wait = {
if(self.max_health) {
@ -78,7 +70,7 @@ void() multi_touch = {
}
// if the trigger has an angles field, check player's facing direction
if(self.movedir != '0 0 0') {
if(self.movedir != VEC_ORIGIN) {
makevectors(other.angles);
if(v_forward * self.movedir < 0) {
return; // not facing the right way
@ -122,7 +114,7 @@ void() trigger_multiple = {
InitTrigger();
if(self.health) {
if(self.spawnflags & SPAWNFLAG_NOTOUCH) {
if(self.spawnflags & MULTIPLE_NOTOUCH) {
objerror("health and notouch don't make sense\n");
}
self.max_health = self.health;
@ -131,7 +123,7 @@ void() trigger_multiple = {
self.solid = SOLID_BBOX;
setorigin(self, self.origin); // make sure it links into the world
} else {
if(!(self.spawnflags & SPAWNFLAG_NOTOUCH)) {
if(!(self.spawnflags & MULTIPLE_NOTOUCH)) {
self.touch = multi_touch;
}
}
@ -199,8 +191,6 @@ void() trigger_secret = {
//=============================================================================
void() counter_use = {
string junk;
self.count = self.count - 1;
if(self.count < 0) {
return;
@ -208,7 +198,7 @@ void() counter_use = {
if(self.count != 0) {
if(activator.classname == "player"
&& (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0) {
&& (self.spawnflags & COUNTER_NOMESSAGE) == 0) {
if(self.count >= 4) {
centerprint(activator, "There are more to go...");
} else if(self.count == 3) {
@ -222,8 +212,7 @@ void() counter_use = {
return;
}
if(activator.classname == "player"
&& (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0) {
if(activator.classname == "player" && (self.spawnflags & COUNTER_NOMESSAGE) == 0) {
centerprint(activator, "Sequence completed!");
}
self.enemy = activator;
@ -254,11 +243,6 @@ TELEPORT TRIGGERS
==============================================================================
*/
enum {
PLAYER_ONLY = 1,
SILENT = 2,
};
void() play_teleport = {
float v;
string tmpstr;
@ -324,7 +308,7 @@ void(vector org, entity death_owner) spawn_tdeath = {
death.classname = "teledeath";
death.movetype = MOVETYPE_NONE;
death.solid = SOLID_TRIGGER;
death.angles = '0 0 0';
death.angles = VEC_ORIGIN;
setsize(death, death_owner.mins - '1 1 1', death_owner.maxs + '1 1 1');
setorigin(death, org);
death.touch = tdeath_touch;
@ -345,7 +329,7 @@ void() teleport_touch = {
}
}
if(self.spawnflags & PLAYER_ONLY) {
if(self.spawnflags & TELE_PLAYER_ONLY) {
if(other.classname != "player") {
return;
}
@ -399,7 +383,7 @@ This is the destination marker for a teleporter. It should have a "targetname" f
void() info_teleport_destination = {
// this does nothing, just serves as a target spot
self.mangle = self.angles;
self.angles = '0 0 0';
self.angles = VEC_ORIGIN;
self.model = "";
self.origin = self.origin + '0 0 27';
if(!self.targetname) {
@ -429,7 +413,7 @@ void() trigger_teleport = {
}
self.use = teleport_use;
if(!(self.spawnflags & SILENT)) {
if(!(self.spawnflags & TELE_SILENT)) {
precache_sound("ambience/hum1.wav");
o = (self.mins + self.maxs) * 0.5;
ambientsound(o, "ambience/hum1.wav", 0.5, ATTN_STATIC);
@ -532,10 +516,6 @@ void() trigger_hurt = {
//============================================================================
enum {
PUSH_ONCE = 1,
};
void() trigger_push_touch = {
if(other.classname == "grenade") {
other.velocity = self.speed * self.movedir * 10;
@ -597,7 +577,7 @@ void() trigger_monsterjump = {
if(!self.height) {
self.height = 200;
}
if(self.angles == '0 0 0') {
if(self.angles == VEC_ORIGIN) {
self.angles = '0 360 0';
}
InitTrigger();

View File

@ -36,7 +36,7 @@ void() W_FireAxe = {
if(trace_ent.takedamage) {
trace_ent.axhitme = 1;
SpawnBlood(org, '0 0 0', 20);
SpawnBlood(org, VEC_ORIGIN, 20);
T_Damage(trace_ent, self, self, 20);
} else {
// hit wall
@ -88,7 +88,7 @@ void(vector org, vector vel) SpawnMeatSpray = {
missile.think = SUB_Remove;
setmodel(missile, "progs/zom_gib.mdl");
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, org);
};
@ -277,7 +277,7 @@ void() s_explode6 = [5, SUB_Remove] {};
void() BecomeExplosion = {
self.movetype = MOVETYPE_NONE;
self.velocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.touch = SUB_Null;
setmodel(self, "progs/s_explod.spr");
self.solid = SOLID_NOT;
@ -356,7 +356,7 @@ void() W_FireRocket = {
missile.think = SUB_Remove;
setmodel(missile, "progs/missile.mdl");
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, self.origin + v_forward * 8 + '0 0 16');
};
@ -479,8 +479,8 @@ void() GrenadeTouch = {
return;
}
sound(self, CHAN_WEAPON, "weapons/bounce.wav", 1, ATTN_NORM); // bounce sound
if(self.velocity == '0 0 0') {
self.avelocity = '0 0 0';
if(self.velocity == VEC_ORIGIN) {
self.avelocity = VEC_ORIGIN;
}
};
@ -527,7 +527,7 @@ void() W_FireGrenade = {
missile.think = GrenadeExplode;
setmodel(missile, "progs/grenade.mdl");
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, self.origin);
};
@ -679,51 +679,61 @@ PLAYER WEAPON USE
void() W_SetCurrentAmmo = {
player_run(); // get out of any weapon firing states
self.items = self.items - (self.items & (IT_SHELLS | IT_NAILS | IT_ROCKETS | IT_CELLS));
self.items &= ~(IT_SHELLS | IT_NAILS | IT_ROCKETS | IT_CELLS);
if(self.weapon == IT_AXE) {
self.currentammo = 0;
self.weaponmodel = "progs/v_axe.mdl";
self.weaponframe = 0;
} else if(self.weapon == IT_SHOTGUN) {
self.currentammo = self.ammo_shells;
self.weaponmodel = "progs/v_shot.mdl";
self.weaponframe = 0;
self.items = self.items | IT_SHELLS;
} else if(self.weapon == IT_SUPER_SHOTGUN) {
self.currentammo = self.ammo_shells;
self.weaponmodel = "progs/v_shot2.mdl";
self.weaponframe = 0;
self.items = self.items | IT_SHELLS;
} else if(self.weapon == IT_NAILGUN) {
self.currentammo = self.ammo_nails;
self.weaponmodel = "progs/v_nail.mdl";
self.weaponframe = 0;
self.items = self.items | IT_NAILS;
} else if(self.weapon == IT_SUPER_NAILGUN) {
self.currentammo = self.ammo_nails;
self.weaponmodel = "progs/v_nail2.mdl";
self.weaponframe = 0;
self.items = self.items | IT_NAILS;
} else if(self.weapon == IT_GRENADE_LAUNCHER) {
self.currentammo = self.ammo_rockets;
self.weaponmodel = "progs/v_rock.mdl";
self.weaponframe = 0;
self.items = self.items | IT_ROCKETS;
} else if(self.weapon == IT_ROCKET_LAUNCHER) {
self.currentammo = self.ammo_rockets;
self.weaponmodel = "progs/v_rock2.mdl";
self.weaponframe = 0;
self.items = self.items | IT_ROCKETS;
} else if(self.weapon == IT_LIGHTNING) {
self.currentammo = self.ammo_cells;
self.weaponmodel = "progs/v_light.mdl";
self.weaponframe = 0;
self.items = self.items | IT_CELLS;
} else {
self.currentammo = 0;
self.weaponmodel = "";
self.weaponframe = 0;
switch(self.weapon) {
case IT_AXE:
self.currentammo = 0;
self.weaponmodel = "progs/v_axe.mdl";
self.weaponframe = 0;
break;
case IT_SHOTGUN:
self.currentammo = self.ammo_shells;
self.weaponmodel = "progs/v_shot.mdl";
self.weaponframe = 0;
self.items |= IT_SHELLS;
break;
case IT_SUPER_SHOTGUN:
self.currentammo = self.ammo_shells;
self.weaponmodel = "progs/v_shot2.mdl";
self.weaponframe = 0;
self.items |= IT_SHELLS;
break;
case IT_NAILGUN:
self.currentammo = self.ammo_nails;
self.weaponmodel = "progs/v_nail.mdl";
self.weaponframe = 0;
self.items |= IT_NAILS;
break;
case IT_SUPER_NAILGUN:
self.currentammo = self.ammo_nails;
self.weaponmodel = "progs/v_nail2.mdl";
self.weaponframe = 0;
self.items |= IT_NAILS;
break;
case IT_GRENADE_LAUNCHER:
self.currentammo = self.ammo_rockets;
self.weaponmodel = "progs/v_rock.mdl";
self.weaponframe = 0;
self.items |= IT_ROCKETS;
break;
case IT_ROCKET_LAUNCHER:
self.currentammo = self.ammo_rockets;
self.weaponmodel = "progs/v_rock2.mdl";
self.weaponframe = 0;
self.items |= IT_ROCKETS;
break;
case IT_LIGHTNING:
self.currentammo = self.ammo_cells;
self.weaponmodel = "progs/v_light.mdl";
self.weaponframe = 0;
self.items |= IT_CELLS;
break;
default:
self.currentammo = 0;
self.weaponmodel = "";
self.weaponframe = 0;
break;
}
};

View File

@ -62,7 +62,7 @@ void(entity missile, float mspeed, float accuracy) LaunchMissile = {
missile.velocity = vec * mspeed;
missile.angles = '0 0 0';
missile.angles = VEC_ORIGIN;
missile.angles_y = vectoyaw(missile.velocity);
// set missile duration
@ -196,7 +196,7 @@ void() Wiz_StartFast = {
missile = spawn();
missile.owner = self;
missile.nextthink = time + 0.6;
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, self.origin + '0 0 30' + v_forward * 14 + v_right * 14);
missile.enemy = self.enemy;
missile.nextthink = time + 0.8;
@ -206,7 +206,7 @@ void() Wiz_StartFast = {
missile = spawn();
missile.owner = self;
missile.nextthink = time + 1;
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, self.origin + '0 0 30' + v_forward * 14 + v_right * -14);
missile.enemy = self.enemy;
missile.nextthink = time + 0.3;

View File

@ -45,10 +45,6 @@ $frame paine29 paine30
$frame cruc_1 cruc_2 cruc_3 cruc_4 cruc_5 cruc_6
enum {
SPAWN_CRUCIFIED = 1,
};
//=============================================================================
void() zombie_stand1 = [ $stand1, zombie_stand2 ] {ai_stand();};
@ -149,8 +145,8 @@ void() ZombieGrenadeTouch = {
return;
}
sound(self, CHAN_WEAPON, "zombie/z_miss.wav", 1, ATTN_NORM); // bounce sound
self.velocity = '0 0 0';
self.avelocity = '0 0 0';
self.velocity = VEC_ORIGIN;
self.avelocity = VEC_ORIGIN;
self.touch = SUB_Remove;
};
@ -190,7 +186,7 @@ void(vector st) ZombieFireGrenade = {
missile.think = SUB_Remove;
setmodel(missile, "progs/zom_gib.mdl");
setsize(missile, '0 0 0', '0 0 0');
setsize(missile, VEC_ORIGIN, VEC_ORIGIN);
setorigin(missile, org);
};
@ -497,7 +493,7 @@ void() monster_zombie = {
self.th_die = zombie_die;
self.th_missile = zombie_missile;
if(self.spawnflags & SPAWN_CRUCIFIED) {
if(self.spawnflags & ZOMBIE_SPAWN_CRUCIFIED) {
self.movetype = MOVETYPE_NONE;
zombie_cruc1();
} else {