mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-10 07:12:07 +00:00
CTF ist nun aufgeräumt
This commit is contained in:
parent
a7e02622ba
commit
273995acad
28 changed files with 309 additions and 539 deletions
4
Makefile
4
Makefile
|
@ -79,7 +79,7 @@ CFLAGS_OPENGL += -DBROKEN_GL -fPIC -Werror
|
|||
|
||||
# Game
|
||||
CFLAGS_GAME = $(CFLAGS_BASE)
|
||||
CFLAGS_GAME += -fPIC
|
||||
CFLAGS_GAME += -fPIC -Werror
|
||||
|
||||
# ----------
|
||||
|
||||
|
@ -108,7 +108,7 @@ GAMELDFLAGS = -shared
|
|||
|
||||
# Targets
|
||||
|
||||
all: client dedicated_server ref_gl baseq2
|
||||
all: client dedicated_server ref_gl baseq2 ctf
|
||||
|
||||
client:
|
||||
@-mkdir -p build \
|
||||
|
|
|
@ -872,21 +872,12 @@ qboolean ai_checkattack (edict_t *self, float dist)
|
|||
VectorCopy (self->enemy->s.origin, self->monsterinfo.last_sighting);
|
||||
}
|
||||
|
||||
// look for other coop players here
|
||||
// if (coop && self->monsterinfo.search_time < level.time)
|
||||
// {
|
||||
// if (FindTarget (self))
|
||||
// return true;
|
||||
// }
|
||||
|
||||
enemy_infront = infront(self, self->enemy);
|
||||
enemy_range = range(self, self->enemy);
|
||||
VectorSubtract (self->enemy->s.origin, self->s.origin, temp);
|
||||
enemy_yaw = vectoyaw(temp);
|
||||
|
||||
|
||||
// JDC self->ideal_yaw = enemy_yaw;
|
||||
|
||||
if (self->monsterinfo.attack_state == AS_MISSILE)
|
||||
{
|
||||
ai_run_missile (self);
|
||||
|
@ -960,8 +951,6 @@ void ai_run (edict_t *self, float dist)
|
|||
|
||||
if (enemy_vis)
|
||||
{
|
||||
// if (self.aiflags & AI_LOST_SIGHT)
|
||||
// dprint("regained sight\n");
|
||||
M_MoveToGoal (self, dist);
|
||||
self->monsterinfo.aiflags &= ~AI_LOST_SIGHT;
|
||||
VectorCopy (self->enemy->s.origin, self->monsterinfo.last_sighting);
|
||||
|
@ -980,7 +969,6 @@ void ai_run (edict_t *self, float dist)
|
|||
{
|
||||
M_MoveToGoal (self, dist);
|
||||
self->monsterinfo.search_time = 0;
|
||||
// dprint("search timeout\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -993,7 +981,6 @@ void ai_run (edict_t *self, float dist)
|
|||
if (!(self->monsterinfo.aiflags & AI_LOST_SIGHT))
|
||||
{
|
||||
// just lost sight of the player, decide where to go first
|
||||
// dprint("lost sight of player, last seen at "); dprint(vtos(self.last_sighting)); dprint("\n");
|
||||
self->monsterinfo.aiflags |= (AI_LOST_SIGHT | AI_PURSUIT_LAST_SEEN);
|
||||
self->monsterinfo.aiflags &= ~(AI_PURSUE_NEXT | AI_PURSUE_TEMP);
|
||||
new = true;
|
||||
|
@ -1002,14 +989,12 @@ void ai_run (edict_t *self, float dist)
|
|||
if (self->monsterinfo.aiflags & AI_PURSUE_NEXT)
|
||||
{
|
||||
self->monsterinfo.aiflags &= ~AI_PURSUE_NEXT;
|
||||
// dprint("reached current goal: "); dprint(vtos(self.origin)); dprint(" "); dprint(vtos(self.last_sighting)); dprint(" "); dprint(ftos(vlen(self.origin - self.last_sighting))); dprint("\n");
|
||||
|
||||
// give ourself more time since we got this far
|
||||
self->monsterinfo.search_time = level.time + 5;
|
||||
|
||||
if (self->monsterinfo.aiflags & AI_PURSUE_TEMP)
|
||||
{
|
||||
// dprint("was temp goal; retrying original\n");
|
||||
self->monsterinfo.aiflags &= ~AI_PURSUE_TEMP;
|
||||
marker = NULL;
|
||||
VectorCopy (self->monsterinfo.saved_goal, self->monsterinfo.last_sighting);
|
||||
|
@ -1030,9 +1015,6 @@ void ai_run (edict_t *self, float dist)
|
|||
VectorCopy (marker->s.origin, self->monsterinfo.last_sighting);
|
||||
self->monsterinfo.trail_time = marker->timestamp;
|
||||
self->s.angles[YAW] = self->ideal_yaw = marker->s.angles[YAW];
|
||||
// dprint("heading is "); dprint(ftos(self.ideal_yaw)); dprint("\n");
|
||||
|
||||
// debug_drawline(self.origin, self.last_sighting, 52);
|
||||
new = true;
|
||||
}
|
||||
}
|
||||
|
@ -1049,8 +1031,6 @@ void ai_run (edict_t *self, float dist)
|
|||
|
||||
if (new)
|
||||
{
|
||||
// gi.dprintf("checking for course correction\n");
|
||||
|
||||
tr = gi.trace(self->s.origin, self->mins, self->maxs, self->monsterinfo.last_sighting, self, MASK_PLAYERSOLID);
|
||||
if (tr.fraction < 1)
|
||||
{
|
||||
|
@ -1078,7 +1058,6 @@ void ai_run (edict_t *self, float dist)
|
|||
{
|
||||
VectorSet(v, d2 * left * 0.5, -16, 0);
|
||||
G_ProjectSource (self->s.origin, v, v_forward, v_right, left_target);
|
||||
// gi.dprintf("incomplete path, go part way and adjust again\n");
|
||||
}
|
||||
VectorCopy (self->monsterinfo.last_sighting, self->monsterinfo.saved_goal);
|
||||
self->monsterinfo.aiflags |= AI_PURSUE_TEMP;
|
||||
|
@ -1086,8 +1065,6 @@ void ai_run (edict_t *self, float dist)
|
|||
VectorCopy (left_target, self->monsterinfo.last_sighting);
|
||||
VectorSubtract (self->goalentity->s.origin, self->s.origin, v);
|
||||
self->s.angles[YAW] = self->ideal_yaw = vectoyaw(v);
|
||||
// gi.dprintf("adjusted left\n");
|
||||
// debug_drawline(self.origin, self.last_sighting, 152);
|
||||
}
|
||||
else if (right >= center && right > left)
|
||||
{
|
||||
|
@ -1095,7 +1072,6 @@ void ai_run (edict_t *self, float dist)
|
|||
{
|
||||
VectorSet(v, d2 * right * 0.5, 16, 0);
|
||||
G_ProjectSource (self->s.origin, v, v_forward, v_right, right_target);
|
||||
// gi.dprintf("incomplete path, go part way and adjust again\n");
|
||||
}
|
||||
VectorCopy (self->monsterinfo.last_sighting, self->monsterinfo.saved_goal);
|
||||
self->monsterinfo.aiflags |= AI_PURSUE_TEMP;
|
||||
|
@ -1103,11 +1079,8 @@ void ai_run (edict_t *self, float dist)
|
|||
VectorCopy (right_target, self->monsterinfo.last_sighting);
|
||||
VectorSubtract (self->goalentity->s.origin, self->s.origin, v);
|
||||
self->s.angles[YAW] = self->ideal_yaw = vectoyaw(v);
|
||||
// gi.dprintf("adjusted right\n");
|
||||
// debug_drawline(self.origin, self.last_sighting, 152);
|
||||
}
|
||||
}
|
||||
// else gi.dprintf("course was fine\n");
|
||||
}
|
||||
|
||||
M_MoveToGoal (self, dist);
|
||||
|
@ -1117,3 +1090,4 @@ void ai_run (edict_t *self, float dist)
|
|||
if (self)
|
||||
self->goalentity = save;
|
||||
}
|
||||
|
||||
|
|
|
@ -155,3 +155,4 @@ void ChasePrev(edict_t *ent)
|
|||
ent->client->chase_target = e;
|
||||
ent->client->update_chase = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,6 @@ char *ClientTeam (edict_t *ent)
|
|||
return value;
|
||||
}
|
||||
|
||||
// if ((int)(dmflags->value) & DF_SKINTEAMS)
|
||||
return ++p;
|
||||
}
|
||||
|
||||
|
@ -1064,3 +1063,4 @@ void ClientCommand (edict_t *ent)
|
|||
else // anything that doesn't match a command will be a chat
|
||||
Cmd_Say_f (ent, false, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -98,7 +98,6 @@ void Killed (edict_t *targ, edict_t *inflictor, edict_t *attacker, int damage, v
|
|||
|
||||
if ((targ->svflags & SVF_MONSTER) && (targ->deadflag != DEAD_DEAD))
|
||||
{
|
||||
// targ->svflags |= SVF_DEADMONSTER; // now treat as a different content type
|
||||
if (!(targ->monsterinfo.aiflags & AI_GOOD_GUY))
|
||||
{
|
||||
level.killed_monsters++;
|
||||
|
@ -137,7 +136,6 @@ void SpawnDamage (int type, vec3_t origin, vec3_t normal, int damage)
|
|||
damage = 255;
|
||||
gi.WriteByte (svc_temp_entity);
|
||||
gi.WriteByte (type);
|
||||
// gi.WriteByte (damage);
|
||||
gi.WritePosition (origin);
|
||||
gi.WriteDir (normal);
|
||||
gi.multicast (origin, MULTICAST_PVS);
|
||||
|
@ -368,7 +366,6 @@ qboolean CheckTeamDamage (edict_t *targ, edict_t *attacker)
|
|||
//ZOID
|
||||
|
||||
//FIXME make the next line real and uncomment this block
|
||||
// if ((ability to damage a teammate == OFF) && (targ's team == attacker's team))
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -595,3 +592,4 @@ void T_RadiusDamage (edict_t *inflictor, edict_t *attacker, float damage, edict_
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -259,10 +259,6 @@ static edict_t *loc_findradius (edict_t *from, vec3_t org, float rad)
|
|||
{
|
||||
if (!from->inuse)
|
||||
continue;
|
||||
#if 0
|
||||
if (from->solid == SOLID_NOT)
|
||||
continue;
|
||||
#endif
|
||||
for (j=0 ; j<3 ; j++)
|
||||
eorg[j] = org[j] - (from->s.origin[j] + (from->mins[j] + from->maxs[j])*0.5);
|
||||
if (VectorLength(eorg) > rad)
|
||||
|
@ -441,7 +437,6 @@ void CTFAssignSkin(edict_t *ent, char *s)
|
|||
va("%s\\%s", ent->client->pers.netname, s) );
|
||||
break;
|
||||
}
|
||||
// gi.cprintf(ent, PRINT_HIGH, "You have been assigned to %s team.\n", ent->client->pers.netname);
|
||||
}
|
||||
|
||||
void CTFAssignTeam(gclient_t *who)
|
||||
|
@ -636,9 +631,7 @@ void CTFFragBonuses(edict_t *targ, edict_t *inflictor, edict_t *attacker)
|
|||
}
|
||||
|
||||
// flag and flag carrier area defense bonuses
|
||||
|
||||
// we have to find the flag and carrier entities
|
||||
|
||||
// find the flag
|
||||
switch (attacker->client->resp.ctf_team) {
|
||||
case CTF_TEAM1:
|
||||
|
@ -1343,46 +1336,15 @@ void CTFGrappleDrawCable(edict_t *self)
|
|||
if (distance < 64)
|
||||
return;
|
||||
|
||||
#if 0
|
||||
if (distance > 256)
|
||||
return;
|
||||
|
||||
// check for min/max pitch
|
||||
vectoangles (dir, angles);
|
||||
if (angles[0] < -180)
|
||||
angles[0] += 360;
|
||||
if (fabs(angles[0]) > 45)
|
||||
return;
|
||||
|
||||
trace_t tr; //!!
|
||||
|
||||
tr = gi.trace (start, NULL, NULL, self->s.origin, self, MASK_SHOT);
|
||||
if (tr.ent != self) {
|
||||
CTFResetGrapple(self);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// adjust start for beam origin being in middle of a segment
|
||||
// VectorMA (start, 8, f, start);
|
||||
|
||||
VectorCopy (self->s.origin, end);
|
||||
// adjust end z for end spot since the monster is currently dead
|
||||
// end[2] = self->absmin[2] + self->size[2] / 2;
|
||||
|
||||
gi.WriteByte (svc_temp_entity);
|
||||
#if 1 //def USE_GRAPPLE_CABLE
|
||||
gi.WriteByte (TE_GRAPPLE_CABLE);
|
||||
gi.WriteShort (self->owner - g_edicts);
|
||||
gi.WritePosition (self->owner->s.origin);
|
||||
gi.WritePosition (end);
|
||||
gi.WritePosition (offset);
|
||||
#else
|
||||
gi.WriteByte (TE_MEDIC_CABLE_ATTACK);
|
||||
gi.WriteShort (self - g_edicts);
|
||||
gi.WritePosition (end);
|
||||
gi.WritePosition (start);
|
||||
#endif
|
||||
gi.multicast (self->s.origin, MULTICAST_PVS);
|
||||
}
|
||||
|
||||
|
@ -1485,11 +1447,8 @@ void CTFFireGrapple (edict_t *self, vec3_t start, vec3_t dir, int damage, int sp
|
|||
VectorClear (grapple->mins);
|
||||
VectorClear (grapple->maxs);
|
||||
grapple->s.modelindex = gi.modelindex ("models/weapons/grapple/hook/tris.md2");
|
||||
// grapple->s.sound = gi.soundindex ("misc/lasfly.wav");
|
||||
grapple->owner = self;
|
||||
grapple->touch = CTFGrappleTouch;
|
||||
// grapple->nextthink = level.time + FRAMETIME;
|
||||
// grapple->think = CTFGrappleThink;
|
||||
grapple->dmg = damage;
|
||||
self->client->ctf_grapple = grapple;
|
||||
self->client->ctf_grapplestate = CTF_GRAPPLE_STATE_FLY; // we're firing, not on hook
|
||||
|
@ -1514,7 +1473,6 @@ void CTFGrappleFire (edict_t *ent, vec3_t g_offset, int damage, int effect)
|
|||
return; // it's already out
|
||||
|
||||
AngleVectors (ent->client->v_angle, forward, right, NULL);
|
||||
// VectorSet(offset, 24, 16, ent->viewheight-8+2);
|
||||
VectorSet(offset, 24, 8, ent->viewheight-8+2);
|
||||
VectorAdd (offset, g_offset, offset);
|
||||
P_ProjectSource (ent->client, ent->s.origin, offset, forward, right, start);
|
||||
|
@ -1527,15 +1485,6 @@ void CTFGrappleFire (edict_t *ent, vec3_t g_offset, int damage, int effect)
|
|||
|
||||
gi.sound (ent, CHAN_RELIABLE+CHAN_WEAPON, gi.soundindex("weapons/grapple/grfire.wav"), volume, ATTN_NORM, 0);
|
||||
CTFFireGrapple (ent, start, forward, damage, CTF_GRAPPLE_SPEED, effect);
|
||||
|
||||
#if 0
|
||||
// send muzzle flash
|
||||
gi.WriteByte (svc_muzzleflash);
|
||||
gi.WriteShort (ent-g_edicts);
|
||||
gi.WriteByte (MZ_BLASTER);
|
||||
gi.multicast (ent->s.origin, MULTICAST_PVS);
|
||||
#endif
|
||||
|
||||
PlayerNoise(ent, start, PNOISE_WEAPON);
|
||||
}
|
||||
|
||||
|
@ -1625,7 +1574,6 @@ void CTFTeam_f (edict_t *ent)
|
|||
return;
|
||||
}
|
||||
|
||||
////
|
||||
ent->svflags = 0;
|
||||
ent->flags &= ~FL_GODMODE;
|
||||
ent->client->resp.ctf_team = desired_team;
|
||||
|
@ -1731,33 +1679,13 @@ void CTFScoreboardMessage (edict_t *ent, edict_t *killer)
|
|||
if (i >= total[0] && i >= total[1])
|
||||
break; // we're done
|
||||
|
||||
#if 0 //ndef NEW_SCORE
|
||||
// set up y
|
||||
sprintf(entry, "yv %d ", 42 + i * 8);
|
||||
if (maxsize - len > strlen(entry)) {
|
||||
strcat(string, entry);
|
||||
len = strlen(string);
|
||||
}
|
||||
#else
|
||||
*entry = 0;
|
||||
#endif
|
||||
|
||||
// left side
|
||||
if (i < total[0]) {
|
||||
cl = &game.clients[sorted[0][i]];
|
||||
cl_ent = g_edicts + 1 + sorted[0][i];
|
||||
|
||||
#if 0 //ndef NEW_SCORE
|
||||
sprintf(entry+strlen(entry),
|
||||
"xv 0 %s \"%3d %3d %-12.12s\" ",
|
||||
(cl_ent == ent) ? "string2" : "string",
|
||||
cl->resp.score,
|
||||
(cl->ping > 999) ? 999 : cl->ping,
|
||||
cl->pers.netname);
|
||||
|
||||
if (cl_ent->client->pers.inventory[ITEM_INDEX(flag2_item)])
|
||||
strcat(entry, "xv 56 picn sbfctf2 ");
|
||||
#else
|
||||
sprintf(entry+strlen(entry),
|
||||
"ctf 0 %d %d %d %d ",
|
||||
42 + i * 8,
|
||||
|
@ -1768,7 +1696,6 @@ void CTFScoreboardMessage (edict_t *ent, edict_t *killer)
|
|||
if (cl_ent->client->pers.inventory[ITEM_INDEX(flag2_item)])
|
||||
sprintf(entry + strlen(entry), "xv 56 yv %d picn sbfctf2 ",
|
||||
42 + i * 8);
|
||||
#endif
|
||||
|
||||
if (maxsize - len > strlen(entry)) {
|
||||
strcat(string, entry);
|
||||
|
@ -1782,19 +1709,6 @@ void CTFScoreboardMessage (edict_t *ent, edict_t *killer)
|
|||
cl = &game.clients[sorted[1][i]];
|
||||
cl_ent = g_edicts + 1 + sorted[1][i];
|
||||
|
||||
#if 0 //ndef NEW_SCORE
|
||||
sprintf(entry+strlen(entry),
|
||||
"xv 160 %s \"%3d %3d %-12.12s\" ",
|
||||
(cl_ent == ent) ? "string2" : "string",
|
||||
cl->resp.score,
|
||||
(cl->ping > 999) ? 999 : cl->ping,
|
||||
cl->pers.netname);
|
||||
|
||||
if (cl_ent->client->pers.inventory[ITEM_INDEX(flag1_item)])
|
||||
strcat(entry, "xv 216 picn sbfctf1 ");
|
||||
|
||||
#else
|
||||
|
||||
sprintf(entry+strlen(entry),
|
||||
"ctf 160 %d %d %d %d ",
|
||||
42 + i * 8,
|
||||
|
@ -1805,7 +1719,6 @@ void CTFScoreboardMessage (edict_t *ent, edict_t *killer)
|
|||
if (cl_ent->client->pers.inventory[ITEM_INDEX(flag1_item)])
|
||||
sprintf(entry + strlen(entry), "xv 216 yv %d picn sbfctf1 ",
|
||||
42 + i * 8);
|
||||
#endif
|
||||
if (maxsize - len > strlen(entry)) {
|
||||
strcat(string, entry);
|
||||
len = strlen(string);
|
||||
|
@ -3539,7 +3452,6 @@ static void old_teleporter_touch (edict_t *self, edict_t *other, cplane_t *plane
|
|||
|
||||
VectorCopy (dest->s.origin, other->s.origin);
|
||||
VectorCopy (dest->s.origin, other->s.old_origin);
|
||||
// other->s.origin[2] += 10;
|
||||
|
||||
// clear the velocity and hold them in place briefly
|
||||
VectorClear (other->velocity);
|
||||
|
@ -3958,9 +3870,6 @@ void CTFOpenAdminMenu(edict_t *ent)
|
|||
}
|
||||
|
||||
|
||||
// if (ent->client->menu)
|
||||
// PMenu_Close(ent->client->menu);
|
||||
|
||||
PMenu_Open(ent, adminmenu, -1, sizeof(adminmenu) / sizeof(pmenu_t), NULL);
|
||||
}
|
||||
|
||||
|
@ -4064,22 +3973,6 @@ void CTFPlayerList(edict_t *ent)
|
|||
char text[1400];
|
||||
edict_t *e2;
|
||||
|
||||
#if 0
|
||||
*text = 0;
|
||||
if (ctfgame.match == MATCH_SETUP) {
|
||||
for (i = 1; i <= maxclients->value; i++) {
|
||||
e2 = g_edicts + i;
|
||||
if (!e2->inuse)
|
||||
continue;
|
||||
if (!e2->client->resp.ready && e2->client->resp.ctf_team != CTF_NOTEAM) {
|
||||
sprintf(st, "%s is not ready.\n", e2->client->pers.netname);
|
||||
if (strlen(text) + strlen(st) < sizeof(text) - 50)
|
||||
strcat(text, st);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// number, name, connect time, ping, score, admin
|
||||
|
||||
*text = 0;
|
||||
|
|
|
@ -646,8 +646,6 @@ void SP_func_rotating (edict_t *ent)
|
|||
if (!ent->dmg)
|
||||
ent->dmg = 2;
|
||||
|
||||
// ent->moveinfo.sound_middle = "doors/hydro1.wav";
|
||||
|
||||
ent->use = rotating_use;
|
||||
if (ent->dmg)
|
||||
ent->blocked = rotating_blocked;
|
||||
|
@ -1536,7 +1534,6 @@ void train_next (edict_t *self)
|
|||
again:
|
||||
if (!self->target)
|
||||
{
|
||||
// gi.dprintf ("train_next: no next target\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1701,7 +1698,6 @@ void trigger_elevator_use (edict_t *self, edict_t *other, edict_t *activator)
|
|||
|
||||
if (self->movetarget->nextthink)
|
||||
{
|
||||
// gi.dprintf("elevator busy\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -384,7 +384,6 @@ void Use_Breather (edict_t *ent, gitem_t *item)
|
|||
else
|
||||
ent->client->breather_framenum = level.framenum + 300;
|
||||
|
||||
// gi.sound(ent, CHAN_ITEM, gi.soundindex("items/damage.wav"), 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
//======================================================================
|
||||
|
@ -399,7 +398,6 @@ void Use_Envirosuit (edict_t *ent, gitem_t *item)
|
|||
else
|
||||
ent->client->enviro_framenum = level.framenum + 300;
|
||||
|
||||
// gi.sound(ent, CHAN_ITEM, gi.soundindex("items/damage.wav"), 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
//======================================================================
|
||||
|
@ -424,8 +422,6 @@ void Use_Silencer (edict_t *ent, gitem_t *item)
|
|||
ent->client->pers.inventory[ITEM_INDEX(item)]--;
|
||||
ValidateSelectedItem (ent);
|
||||
ent->client->silencer_shots += 30;
|
||||
|
||||
// gi.sound(ent, CHAN_ITEM, gi.soundindex("items/damage.wav"), 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
//======================================================================
|
||||
|
@ -2444,3 +2440,4 @@ void SetItemNames (void)
|
|||
power_screen_index = ITEM_INDEX(FindItem("Power Screen"));
|
||||
power_shield_index = ITEM_INDEX(FindItem("Power Shield"));
|
||||
}
|
||||
|
||||
|
|
|
@ -510,10 +510,10 @@ extern int meansOfDeath;
|
|||
|
||||
extern edict_t *g_edicts;
|
||||
|
||||
#define FOFS(x) (int)&(((edict_t *)0)->x)
|
||||
#define STOFS(x) (int)&(((spawn_temp_t *)0)->x)
|
||||
#define LLOFS(x) (int)&(((level_locals_t *)0)->x)
|
||||
#define CLOFS(x) (int)&(((gclient_t *)0)->x)
|
||||
#define FOFS(x) (size_t)&(((edict_t *)0)->x)
|
||||
#define STOFS(x) (size_t)&(((spawn_temp_t *)0)->x)
|
||||
#define LLOFS(x) (size_t)&(((level_locals_t *)0)->x)
|
||||
#define CLOFS(x) (size_t)&(((gclient_t *)0)->x)
|
||||
|
||||
#define random() ((rand () & 0x7fff) / ((float)0x7fff))
|
||||
#define crandom() (2.0 * (random() - 0.5))
|
||||
|
|
|
@ -510,9 +510,7 @@ static int robotron[4];
|
|||
void TH_viewthing(edict_t *ent)
|
||||
{
|
||||
ent->s.frame = (ent->s.frame + 1) % 7;
|
||||
// ent->s.frame = (ent->s.frame + 1) % 9;
|
||||
ent->nextthink = level.time + FRAMETIME;
|
||||
// return;
|
||||
|
||||
if (ent->spawnflags)
|
||||
{
|
||||
|
@ -533,7 +531,6 @@ void SP_viewthing(edict_t *ent)
|
|||
ent->s.renderfx = RF_FRAMELERP;
|
||||
VectorSet (ent->mins, -16, -16, -24);
|
||||
VectorSet (ent->maxs, 16, 16, 32);
|
||||
// ent->s.modelindex = gi.modelindex ("models/player_y/tris.md2");
|
||||
ent->s.modelindex = gi.modelindex ("models/objects/banner/tris.md2");
|
||||
gi.linkentity (ent);
|
||||
ent->nextthink = level.time + 0.5;
|
||||
|
@ -659,7 +656,6 @@ void SP_func_wall (edict_t *self)
|
|||
// it must be TRIGGER_SPAWN
|
||||
if (!(self->spawnflags & 1))
|
||||
{
|
||||
// gi.dprintf("func_wall missing TRIGGER_SPAWN\n");
|
||||
self->spawnflags |= 1;
|
||||
}
|
||||
|
||||
|
@ -1049,12 +1045,6 @@ void SP_misc_explobox (edict_t *self)
|
|||
|
||||
void misc_blackhole_use (edict_t *ent, edict_t *other, edict_t *activator)
|
||||
{
|
||||
/*
|
||||
gi.WriteByte (svc_temp_entity);
|
||||
gi.WriteByte (TE_BOSSTPORT);
|
||||
gi.WritePosition (ent->s.origin);
|
||||
gi.multicast (ent->s.origin, MULTICAST_PVS);
|
||||
*/
|
||||
G_FreeEdict (ent);
|
||||
}
|
||||
|
||||
|
@ -1901,7 +1891,6 @@ void SP_misc_teleporter_dest (edict_t *ent)
|
|||
gi.setmodel (ent, "models/objects/dmspot/tris.md2");
|
||||
ent->s.skinnum = 0;
|
||||
ent->solid = SOLID_BBOX;
|
||||
// ent->s.effects |= EF_FLIES;
|
||||
VectorSet (ent->mins, -32, -32, -24);
|
||||
VectorSet (ent->maxs, 32, 32, -16);
|
||||
gi.linkentity (ent);
|
||||
|
|
|
@ -166,10 +166,6 @@ void M_CheckGround (edict_t *ent)
|
|||
return;
|
||||
}
|
||||
|
||||
// ent->groundentity = trace.ent;
|
||||
// ent->groundentity_linkcount = trace.ent->linkcount;
|
||||
// if (!trace.startsolid && !trace.allsolid)
|
||||
// VectorCopy (trace.endpos, ent->s.origin);
|
||||
if (!trace.startsolid && !trace.allsolid)
|
||||
{
|
||||
VectorCopy (trace.endpos, ent->s.origin);
|
||||
|
@ -544,7 +540,6 @@ qboolean monster_start (edict_t *self)
|
|||
{
|
||||
self->spawnflags &= ~4;
|
||||
self->spawnflags |= 1;
|
||||
// gi.dprintf("fixed spawnflags on %s at %s\n", self->classname, vtos(self->s.origin));
|
||||
}
|
||||
|
||||
if (!(self->monsterinfo.aiflags & AI_GOOD_GUY))
|
||||
|
@ -739,3 +734,4 @@ void swimmonster_start (edict_t *self)
|
|||
self->think = swimmonster_start_go;
|
||||
monster_start (self);
|
||||
}
|
||||
|
||||
|
|
|
@ -289,7 +289,6 @@ int SV_FlyMove (edict_t *ent, float time, int mask)
|
|||
{ // go along the crease
|
||||
if (numplanes != 2)
|
||||
{
|
||||
// gi.dprintf ("clip velocity, numplanes == %i\n",numplanes);
|
||||
VectorCopy (vec3_origin, ent->velocity);
|
||||
return 7;
|
||||
}
|
||||
|
@ -571,7 +570,6 @@ void SV_Physics_Pusher (edict_t *ent)
|
|||
// make sure all team slaves can move before commiting
|
||||
// any moves or calling any think functions
|
||||
// if the move is blocked, all moved objects will be backed out
|
||||
//retry:
|
||||
pushed_p = pushed;
|
||||
for (part = ent ; part ; part=part->teamchain)
|
||||
{
|
||||
|
@ -602,11 +600,6 @@ void SV_Physics_Pusher (edict_t *ent)
|
|||
// otherwise, just stay in place until the obstacle is gone
|
||||
if (part->blocked)
|
||||
part->blocked (part, obstacle);
|
||||
#if 0
|
||||
// if the pushed entity went away and the pusher is still there
|
||||
if (!obstacle->inuse && part->inuse)
|
||||
goto retry;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -734,9 +727,6 @@ void SV_Physics_Toss (edict_t *ent)
|
|||
VectorCopy (vec3_origin, ent->avelocity);
|
||||
}
|
||||
}
|
||||
|
||||
// if (ent->touch)
|
||||
// ent->touch (ent, trace.ent, &trace.plane, trace.surface);
|
||||
}
|
||||
|
||||
// check for water transition
|
||||
|
@ -957,3 +947,4 @@ void G_RunEntity (edict_t *ent)
|
|||
gi.error ("SV_Physics: bad movetype %i", (int)ent->movetype);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -202,9 +202,6 @@ spawn_t spawns[] = {
|
|||
{"target_crosslevel_target", SP_target_crosslevel_target},
|
||||
{"target_laser", SP_target_laser},
|
||||
{"target_help", SP_target_help},
|
||||
#if 0 // remove monster code
|
||||
{"target_actor", SP_target_actor},
|
||||
#endif
|
||||
{"target_lightramp", SP_target_lightramp},
|
||||
{"target_earthquake", SP_target_earthquake},
|
||||
{"target_character", SP_target_character},
|
||||
|
@ -229,16 +226,9 @@ spawn_t spawns[] = {
|
|||
{"misc_ctf_small_banner", SP_misc_ctf_small_banner},
|
||||
//ZOID
|
||||
{"misc_satellite_dish", SP_misc_satellite_dish},
|
||||
#if 0 // remove monster code
|
||||
{"misc_actor", SP_misc_actor},
|
||||
#endif
|
||||
{"misc_gib_arm", SP_misc_gib_arm},
|
||||
{"misc_gib_leg", SP_misc_gib_leg},
|
||||
{"misc_gib_head", SP_misc_gib_head},
|
||||
#if 0 // remove monster code
|
||||
{"misc_insane", SP_misc_insane},
|
||||
#endif
|
||||
{"misc_deadsoldier", SP_misc_deadsoldier},
|
||||
{"misc_viper", SP_misc_viper},
|
||||
{"misc_viper_bomb", SP_misc_viper_bomb},
|
||||
{"misc_bigviper", SP_misc_bigviper},
|
||||
|
@ -254,37 +244,6 @@ spawn_t spawns[] = {
|
|||
{"misc_easterchick", SP_misc_easterchick},
|
||||
{"misc_easterchick2", SP_misc_easterchick2},
|
||||
|
||||
#if 0 // remove monster code
|
||||
{"monster_berserk", SP_monster_berserk},
|
||||
{"monster_gladiator", SP_monster_gladiator},
|
||||
{"monster_gunner", SP_monster_gunner},
|
||||
{"monster_infantry", SP_monster_infantry},
|
||||
{"monster_soldier_light", SP_monster_soldier_light},
|
||||
{"monster_soldier", SP_monster_soldier},
|
||||
{"monster_soldier_ss", SP_monster_soldier_ss},
|
||||
{"monster_tank", SP_monster_tank},
|
||||
{"monster_tank_commander", SP_monster_tank},
|
||||
{"monster_medic", SP_monster_medic},
|
||||
{"monster_flipper", SP_monster_flipper},
|
||||
{"monster_chick", SP_monster_chick},
|
||||
{"monster_parasite", SP_monster_parasite},
|
||||
{"monster_flyer", SP_monster_flyer},
|
||||
{"monster_brain", SP_monster_brain},
|
||||
{"monster_floater", SP_monster_floater},
|
||||
{"monster_hover", SP_monster_hover},
|
||||
{"monster_mutant", SP_monster_mutant},
|
||||
{"monster_supertank", SP_monster_supertank},
|
||||
{"monster_boss2", SP_monster_boss2},
|
||||
{"monster_boss3_stand", SP_monster_boss3_stand},
|
||||
{"monster_jorg", SP_monster_jorg},
|
||||
|
||||
{"monster_commander_body", SP_monster_commander_body},
|
||||
|
||||
{"turret_breach", SP_turret_breach},
|
||||
{"turret_base", SP_turret_base},
|
||||
{"turret_driver", SP_turret_driver},
|
||||
#endif
|
||||
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
@ -638,29 +597,6 @@ void SpawnEntities (char *mapname, char *entities, char *spawnpoint)
|
|||
|
||||
//===================================================================
|
||||
|
||||
#if 0
|
||||
// cursor positioning
|
||||
xl <value>
|
||||
xr <value>
|
||||
yb <value>
|
||||
yt <value>
|
||||
xv <value>
|
||||
yv <value>
|
||||
|
||||
// drawing
|
||||
statpic <name>
|
||||
pic <stat>
|
||||
num <fieldwidth> <stat>
|
||||
string <stat>
|
||||
|
||||
// control
|
||||
if <stat>
|
||||
ifeq <stat> <value>
|
||||
ifbit <stat> <value>
|
||||
endif
|
||||
|
||||
#endif
|
||||
|
||||
char *single_statusbar =
|
||||
"yb -24 "
|
||||
|
||||
|
|
|
@ -807,3 +807,4 @@ void SP_target_earthquake (edict_t *self)
|
|||
|
||||
self->noise_index = gi.soundindex ("world/quake.wav");
|
||||
}
|
||||
|
||||
|
|
|
@ -223,8 +223,6 @@ void G_UseTargets (edict_t *ent, edict_t *activator)
|
|||
}
|
||||
}
|
||||
|
||||
// gi.dprintf("TARGET: activating %s\n", ent->target);
|
||||
|
||||
//
|
||||
// fire targets
|
||||
//
|
||||
|
@ -457,7 +455,6 @@ void G_FreeEdict (edict_t *ed)
|
|||
|
||||
if ((ed - g_edicts) <= (maxclients->value + BODY_QUEUE_SIZE))
|
||||
{
|
||||
// gi.dprintf("tried to free special edict\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -568,3 +565,4 @@ qboolean KillBox (edict_t *ent)
|
|||
|
||||
return true; // all clear
|
||||
}
|
||||
|
||||
|
|
|
@ -695,7 +695,6 @@ void fire_rail (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int kick
|
|||
gi.WritePosition (start);
|
||||
gi.WritePosition (tr.endpos);
|
||||
gi.multicast (self->s.origin, MULTICAST_PHS);
|
||||
// gi.multicast (start, MULTICAST_PHS);
|
||||
if (water)
|
||||
{
|
||||
gi.WriteByte (svc_temp_entity);
|
||||
|
@ -919,3 +918,4 @@ void fire_bfg (edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, f
|
|||
|
||||
gi.linkentity (bfg);
|
||||
}
|
||||
|
||||
|
|
|
@ -240,3 +240,4 @@ typedef struct
|
|||
} game_export_t;
|
||||
|
||||
game_export_t *GetGameApi (game_import_t *import);
|
||||
|
||||
|
|
|
@ -554,3 +554,4 @@ qboolean M_walkmove (edict_t *ent, float yaw, float dist)
|
|||
|
||||
return SV_movestep(ent, move, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ static void SP_FixCoopSpots (edict_t *self)
|
|||
{
|
||||
if ((!self->targetname) || Q_stricmp(self->targetname, spot->targetname) != 0)
|
||||
{
|
||||
// gi.dprintf("FixCoopSpots changed %s at %s targetname from %s to %s\n", self->classname, vtos(self->s.origin), self->targetname, spot->targetname);
|
||||
self->targetname = spot->targetname;
|
||||
}
|
||||
return;
|
||||
|
@ -506,7 +505,6 @@ void player_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
|
|||
|
||||
self->maxs[2] = -8;
|
||||
|
||||
// self->solid = SOLID_NOT;
|
||||
self->svflags |= SVF_DEADMONSTER;
|
||||
|
||||
if (!self->deadflag)
|
||||
|
@ -1560,7 +1558,6 @@ void ClientThink (edict_t *ent, usercmd_t *ucmd)
|
|||
if (memcmp(&client->old_pmove, &pm.s, sizeof(pm.s)))
|
||||
{
|
||||
pm.snapinitial = true;
|
||||
// gi.dprintf ("pmove changed!\n");
|
||||
}
|
||||
|
||||
pm.cmd = *ucmd;
|
||||
|
@ -1739,3 +1736,4 @@ void ClientBeginServerFrame (edict_t *ent)
|
|||
|
||||
client->latched_buttons = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -254,3 +254,4 @@ void PMenu_Select(edict_t *ent)
|
|||
if (p->SelectFunc)
|
||||
p->SelectFunc(ent, hnd);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,3 +47,4 @@ void PMenu_Update(edict_t *ent);
|
|||
void PMenu_Next(edict_t *ent);
|
||||
void PMenu_Prev(edict_t *ent);
|
||||
void PMenu_Select(edict_t *ent);
|
||||
|
||||
|
|
|
@ -144,3 +144,4 @@ edict_t *PlayerTrail_LastSpot (void)
|
|||
{
|
||||
return trail[PREV(trail_head)];
|
||||
}
|
||||
|
||||
|
|
|
@ -311,7 +311,6 @@ void SV_CalcViewOffset (edict_t *ent)
|
|||
bob = bobfracsin * xyspeed * bob_up->value;
|
||||
if (bob > 6)
|
||||
bob = 6;
|
||||
//gi.DebugGraph (bob *2, 255);
|
||||
v[2] += bob;
|
||||
|
||||
// add kick offset
|
||||
|
@ -377,7 +376,6 @@ void SV_CalcGunOffset (edict_t *ent)
|
|||
|
||||
// gun height
|
||||
VectorClear (ent->client->ps.gunoffset);
|
||||
// ent->ps->gunorigin[2] += bob;
|
||||
|
||||
// gun_x / gun_y / gun_z are development tools
|
||||
for (i=0 ; i<3 ; i++)
|
||||
|
@ -783,7 +781,6 @@ void G_SetClientEffects (edict_t *ent)
|
|||
{
|
||||
remaining = ent->client->quad_framenum - level.framenum;
|
||||
if (remaining > 30 || (remaining & 4) )
|
||||
// ent->s.effects |= EF_QUAD;
|
||||
CTFSetPowerUpEffect(ent, EF_QUAD);
|
||||
}
|
||||
|
||||
|
@ -791,7 +788,6 @@ void G_SetClientEffects (edict_t *ent)
|
|||
{
|
||||
remaining = ent->client->invincible_framenum - level.framenum;
|
||||
if (remaining > 30 || (remaining & 4) )
|
||||
// ent->s.effects |= EF_PENT;
|
||||
CTFSetPowerUpEffect(ent, EF_PENT);
|
||||
}
|
||||
|
||||
|
|
|
@ -1463,3 +1463,4 @@ void Weapon_BFG (edict_t *ent)
|
|||
|
||||
|
||||
//======================================================================
|
||||
|
||||
|
|
Loading…
Reference in a new issue