1
0
Fork 0
forked from fte/fteqw
fteqw/quakec/fallout2/mod_other.qc

232 lines
5.6 KiB
C++
Raw Permalink Normal View History

/*
########################################################################
This QC file houses all of the ugly code that no one wants to deal with.
########################################################################
*/
/*drain_energy - Makes energy weapons overheat*/
/*GetWeaponName - Tells the player what weapons he is carrying*/
/*GetWeaponWeight - Calculates the total weight for weapons*/
void (vector org, entity guy, float input, float cost) spawn_station =
{
local entity dog;
local entity te;
if ((self.ammo_shells < cost))
{
sprint (self, 2, "not enough money.\n");
return;
}
self = guy;
te = find (world, classname, "station");
while (te)
{
if (((te.track == self) && (te.skin == input)))
{
sprint (self, 2, "already have one.\n");
return;
}
te = find (te, classname, "station");
}
makevectors (self.v_angle);
org = ((org + (v_forward * IT_LIGHTNING)) + (v_up * EF_FLAG2));
if ((pointcontents ((org + '0 20 0')) != CONTENT_EMPTY))
{
sprint (self, 2, "can't build there.\n");
return;
}
if ((pointcontents ((org + '0 -20 0')) != CONTENT_EMPTY))
{
sprint (self, 2, "can't build there.\n");
return;
}
if ((pointcontents ((org + '20 0 0')) != CONTENT_EMPTY))
{
sprint (self, 2, "can't build there.\n");
return;
}
if ((pointcontents ((org + '-20 0 0')) != CONTENT_EMPTY))
{
sprint (self, 2, "can't build there.\n");
return;
}
if ((pointcontents ((org + '0 0 50')) != CONTENT_EMPTY))
{
sprint (self, 2, "can't build there.\n");
return;
}
if ((pointcontents ((org + '0 0 -10')) != CONTENT_EMPTY))
{
sprint (self, 2, "can't build there.\n");
return;
}
self.impulse = 0;
te = findradius (org, 40);
while (te)
{
if (te.classname == "spawn1")
{
sprint (self, 2, "can't build at spawn.\n");
return;
}
if (te.classname == "spawn2")
{
sprint (self, 2, "can't build at spawn.\n");
return;
}
if (te.classname == "ghoul")
{
sprint (self, 2, "somethings in the way.\n");
return;
}
if (((te.classname == "player") && (te.health > 0)))
{
sprint (self, 2, "can't build on players.\n");
return;
}
if (((te.classname == "station") && (te.health > 0)))
{
sprint (self, 2, "can't build on other stations.\n");
return;
}
te = te.chain;
}
self.ammo_shells = (self.ammo_shells - cost);
dog = spawn ();
dog.team = self.team;
dog.track = self;
self = dog;
//spawn_dot (dog);
self.origin = org;
self.takedamage = DAMAGE_YES;
self.solid = SOLID_SLIDEBOX;
self.movetype = MOVETYPE_STEP;
setsize (self, '-16 -16 0', '16 16 40');
self.health = SVC_INTERMISSION;
self.max_health = (300 + (input * 50));
self.th_die = station_die;
setmodel (self, "progs/station.mdl");
self.classname = "station";
self.think = station_think;
self.helmet = 2;
self.skin = input;
if ((self.skin == 0))
{
self.netname = "depot";
}
if ((self.skin == 1))
{
self.netname = "armslab";
}
if ((self.skin == 2))
{
self.netname = "armory";
}
if ((self.skin == 3))
{
self.netname = "protolab";
}
self.frame = WEAPON_SPIKES;
};
void (float dat) drain_energy =
{
self.ammo_cells = (self.ammo_cells - dat);
if ((self.ammo_cells <= 0))
{
self.recharge = 1;
}
if ((dat != WEAPON_SPIKES))
{
if ((self.recharge == 1))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD>!COOLING!<21><> \n");
}
else
{
if ((self.ammo_cells >= 200))
{
return;
}
else
{
if ((self.ammo_cells >= (200 * 0.9)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.8)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.7)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.6)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.5)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.4)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.3)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells >= (200 * 0.2)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
if ((self.ammo_cells <= (200 * 0.1)))
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
else
{
centerprint (self, "\n\n\n\n\n\n\n\n\n\n\n\n\nH TEMP C \n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \n");
}
}
}
}
}
}
}
}
}
}
}
}
};
void (entity guy, float slot) GetWeaponWeight =
{
return;
};