mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-20 02:42:42 +00:00
Merge branch 'fields' into rearrangecalls
This commit is contained in:
commit
72d77e0428
36 changed files with 239 additions and 60 deletions
|
@ -2092,6 +2092,78 @@ CL_ClearEffects(void)
|
||||||
CL_ClearLightStyles();
|
CL_ClearLightStyles();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CL_FlameEffects(vec3_t origin)
|
||||||
|
{
|
||||||
|
int n, count;
|
||||||
|
|
||||||
|
count = rand() & 0xF;
|
||||||
|
|
||||||
|
for(n = 0; n < count; n++)
|
||||||
|
{
|
||||||
|
cparticle_t *p;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
if (!free_particles)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = free_particles;
|
||||||
|
free_particles = p->next;
|
||||||
|
p->next = active_particles;
|
||||||
|
active_particles = p;
|
||||||
|
|
||||||
|
VectorClear(p->accel);
|
||||||
|
p->time = cl.time;
|
||||||
|
|
||||||
|
p->alpha = 1.0;
|
||||||
|
p->alphavel = -1.0 / (1 + frandk() * 0.2);
|
||||||
|
p->color = CL_CombineColors(0xff0b0700, 0xff47477b,
|
||||||
|
(float)(randk() & 15) / 15.0);
|
||||||
|
|
||||||
|
for (j = 0; j < 3; j++)
|
||||||
|
{
|
||||||
|
p->org[j] = origin[j] + crandk() * 5;
|
||||||
|
p->vel[j] = crandk() * 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
p->vel[2] = crandk() * -10;
|
||||||
|
p->accel[2] = -PARTICLE_GRAVITY;
|
||||||
|
}
|
||||||
|
|
||||||
|
count = rand() & 0x7;
|
||||||
|
|
||||||
|
for (n = 0; n < count; n++)
|
||||||
|
{
|
||||||
|
cparticle_t *p;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
if (!free_particles)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = free_particles;
|
||||||
|
free_particles = p->next;
|
||||||
|
p->next = active_particles;
|
||||||
|
active_particles = p;
|
||||||
|
VectorClear(p->accel);
|
||||||
|
|
||||||
|
p->time = cl.time;
|
||||||
|
|
||||||
|
p->alpha = 1.0;
|
||||||
|
p->alphavel = -1.0 / (1 + frandk() * 0.5);
|
||||||
|
p->color = CL_CombineColors(0xff000000, 0xff2f2f2f,
|
||||||
|
(float)(randk() & 15) / 15.0);
|
||||||
|
for (j=0 ; j<3 ; j++)
|
||||||
|
{
|
||||||
|
p->org[j] = origin[j] + crandk() * 3;
|
||||||
|
}
|
||||||
|
p->vel[2] = 20 + crandk() * 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CL_Flashlight(int ent, vec3_t pos)
|
CL_Flashlight(int ent, vec3_t pos)
|
||||||
{
|
{
|
||||||
|
|
|
@ -664,7 +664,7 @@ static unsigned int splash_color[] = {
|
||||||
void
|
void
|
||||||
CL_ParseTEnt(void)
|
CL_ParseTEnt(void)
|
||||||
{
|
{
|
||||||
int type;
|
temp_event_t type;
|
||||||
vec3_t pos, pos2, dir;
|
vec3_t pos, pos2, dir;
|
||||||
explosion_t *ex;
|
explosion_t *ex;
|
||||||
int cnt;
|
int cnt;
|
||||||
|
@ -864,6 +864,7 @@ CL_ParseTEnt(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TE_RAILTRAIL: /* railgun effect */
|
case TE_RAILTRAIL: /* railgun effect */
|
||||||
|
case TE_RAILTRAIL2:
|
||||||
MSG_ReadPos(&net_message, pos);
|
MSG_ReadPos(&net_message, pos);
|
||||||
MSG_ReadPos(&net_message, pos2);
|
MSG_ReadPos(&net_message, pos2);
|
||||||
CL_RailTrail(pos, pos2);
|
CL_RailTrail(pos, pos2);
|
||||||
|
@ -1124,6 +1125,11 @@ CL_ParseTEnt(void)
|
||||||
S_StartSound(pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
|
S_StartSound(pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TE_FLAME:
|
||||||
|
MSG_ReadPos(&net_message, pos);
|
||||||
|
CL_FlameEffects(pos);
|
||||||
|
break;
|
||||||
|
|
||||||
case TE_LIGHTNING:
|
case TE_LIGHTNING:
|
||||||
ent = CL_ParseLightning(cl_mod_lightning);
|
ent = CL_ParseLightning(cl_mod_lightning);
|
||||||
S_StartSound(NULL, ent, CHAN_WEAPON, cl_sfx_lightning,
|
S_StartSound(NULL, ent, CHAN_WEAPON, cl_sfx_lightning,
|
||||||
|
@ -1261,7 +1267,7 @@ CL_ParseTEnt(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Com_Error(ERR_DROP, "CL_ParseTEnt: bad type");
|
Com_Error(ERR_DROP, "%s: bad type", __func__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -405,7 +405,7 @@ void CL_SmokeTrail (vec3_t start, vec3_t end, unsigned int basecolor, unsigned i
|
||||||
int spacing);
|
int spacing);
|
||||||
void CL_Flashlight (int ent, vec3_t pos);
|
void CL_Flashlight (int ent, vec3_t pos);
|
||||||
void CL_ForceWall (vec3_t start, vec3_t end, int color);
|
void CL_ForceWall (vec3_t start, vec3_t end, int color);
|
||||||
void CL_FlameEffects (centity_t *ent, vec3_t origin);
|
void CL_FlameEffects (vec3_t origin);
|
||||||
void CL_GenericParticleEffect (vec3_t org, vec3_t dir, unsigned int basecolor, unsigned int finalcolor,
|
void CL_GenericParticleEffect (vec3_t org, vec3_t dir, unsigned int basecolor, unsigned int finalcolor,
|
||||||
int count, int numcolors, int dirspread, float alphavel);
|
int count, int numcolors, int dirspread, float alphavel);
|
||||||
void CL_BubbleTrail2 (vec3_t start, vec3_t end, int dist);
|
void CL_BubbleTrail2 (vec3_t start, vec3_t end, int dist);
|
||||||
|
|
|
@ -1318,7 +1318,7 @@ plat2_blocked(edict_t *self, edict_t *other)
|
||||||
|
|
||||||
void
|
void
|
||||||
Use_Plat2(edict_t *ent, edict_t *other /* unused */,
|
Use_Plat2(edict_t *ent, edict_t *other /* unused */,
|
||||||
edict_t *activator)
|
edict_t *activator)
|
||||||
{
|
{
|
||||||
edict_t *trigger;
|
edict_t *trigger;
|
||||||
int i;
|
int i;
|
||||||
|
@ -1358,7 +1358,7 @@ Use_Plat2(edict_t *ent, edict_t *other /* unused */,
|
||||||
|
|
||||||
void
|
void
|
||||||
plat2_activate(edict_t *ent, edict_t *other /* unused */,
|
plat2_activate(edict_t *ent, edict_t *other /* unused */,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
edict_t *trigger;
|
edict_t *trigger;
|
||||||
|
|
||||||
|
@ -1607,7 +1607,7 @@ rotating_blocked(edict_t *self, edict_t *other)
|
||||||
|
|
||||||
void
|
void
|
||||||
rotating_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
rotating_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
csurface_t *surf /* unused */)
|
csurface_t *surf /* unused */)
|
||||||
{
|
{
|
||||||
if (!self || !other)
|
if (!self || !other)
|
||||||
{
|
{
|
||||||
|
@ -1623,7 +1623,7 @@ rotating_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
|
|
||||||
void
|
void
|
||||||
rotating_use(edict_t *self, edict_t *other /* unused */,
|
rotating_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
@ -1884,7 +1884,7 @@ button_use(edict_t *self, edict_t *other /* unused */, edict_t *activator)
|
||||||
|
|
||||||
void
|
void
|
||||||
button_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
button_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
csurface_t *surf /* unused */)
|
csurface_t *surf /* unused */)
|
||||||
{
|
{
|
||||||
if (!self || !other)
|
if (!self || !other)
|
||||||
{
|
{
|
||||||
|
@ -2375,7 +2375,7 @@ door_use(edict_t *self, edict_t *other /* unused */, edict_t *activator)
|
||||||
|
|
||||||
void
|
void
|
||||||
Touch_DoorTrigger(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
Touch_DoorTrigger(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
csurface_t *surf /* unused */)
|
csurface_t *surf /* unused */)
|
||||||
{
|
{
|
||||||
if (!self || !other)
|
if (!self || !other)
|
||||||
{
|
{
|
||||||
|
@ -2759,7 +2759,7 @@ SP_func_door(edict_t *ent)
|
||||||
|
|
||||||
void
|
void
|
||||||
Door_Activate(edict_t *self, edict_t *other /* unused */,
|
Door_Activate(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
@ -3475,7 +3475,7 @@ func_train_find(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
train_use(edict_t *self, edict_t *other /* unused */,
|
train_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator)
|
edict_t *activator)
|
||||||
{
|
{
|
||||||
if (!self || !activator)
|
if (!self || !activator)
|
||||||
{
|
{
|
||||||
|
@ -3573,7 +3573,7 @@ SP_func_train(edict_t *self)
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
trigger_elevator_use(edict_t *self, edict_t *other,
|
trigger_elevator_use(edict_t *self, edict_t *other,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
edict_t *target;
|
edict_t *target;
|
||||||
|
|
||||||
|
@ -3753,7 +3753,7 @@ SP_func_timer(edict_t *self)
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
func_conveyor_use(edict_t *self, edict_t *other /* unused */,
|
func_conveyor_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
@ -3820,7 +3820,7 @@ SP_func_conveyor(edict_t *self)
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
door_secret_use(edict_t *self, edict_t *other /* unused */,
|
door_secret_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator /*unused */)
|
edict_t *activator /*unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
@ -4164,7 +4164,7 @@ rotating_light_killed(edict_t *self, edict_t *inflictor /* unused */,
|
||||||
|
|
||||||
void
|
void
|
||||||
rotating_light_use(edict_t *self, edict_t *other /* unused */,
|
rotating_light_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1698,7 +1698,7 @@ Touch_Item(edict_t *ent, edict_t *other, cplane_t *plane /* unused */, csurface_
|
||||||
other->client->ps.stats[STAT_PICKUP_ICON] =
|
other->client->ps.stats[STAT_PICKUP_ICON] =
|
||||||
gi.imageindex(ent->item->icon);
|
gi.imageindex(ent->item->icon);
|
||||||
other->client->ps.stats[STAT_PICKUP_STRING] =
|
other->client->ps.stats[STAT_PICKUP_STRING] =
|
||||||
CS_ITEMS + ITEM_INDEX(ent->item);
|
CS_ITEMS + ITEM_INDEX(ent->item);
|
||||||
other->client->pickup_msg_time = level.time + 3.0;
|
other->client->pickup_msg_time = level.time + 3.0;
|
||||||
|
|
||||||
/* change selected item */
|
/* change selected item */
|
||||||
|
@ -1706,7 +1706,7 @@ Touch_Item(edict_t *ent, edict_t *other, cplane_t *plane /* unused */, csurface_
|
||||||
{
|
{
|
||||||
other->client->pers.selected_item =
|
other->client->pers.selected_item =
|
||||||
other->client->ps.stats[STAT_SELECTED_ITEM] =
|
other->client->ps.stats[STAT_SELECTED_ITEM] =
|
||||||
ITEM_INDEX(ent->item);
|
ITEM_INDEX(ent->item);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ent->item->pickup == Pickup_Health)
|
if (ent->item->pickup == Pickup_Health)
|
||||||
|
|
|
@ -3273,3 +3273,84 @@ SP_misc_nuke_core(edict_t *ent)
|
||||||
|
|
||||||
ent->use = misc_nuke_core_use;
|
ent->use = misc_nuke_core_use;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* QUAKED misc_flare (1.0 1.0 0.0) (-32 -32 -32) (32 32 32) RED GREEN BLUE LOCK_ANGLE
|
||||||
|
* Creates a flare seen in the N64 version.
|
||||||
|
*/
|
||||||
|
#define SPAWNFLAG_FLARE_RED 1
|
||||||
|
#define SPAWNFLAG_FLARE_GREEN 2
|
||||||
|
#define SPAWNFLAG_FLARE_BLUE 4
|
||||||
|
#define SPAWNFLAG_FLARE_LOCK_ANGLE 8
|
||||||
|
|
||||||
|
/* TODO: implement FX_FLARE */
|
||||||
|
#define RF_FLARE EF_BLUEHYPERBLASTER
|
||||||
|
#define RF_FLARE_LOCK_ANGLE 0
|
||||||
|
|
||||||
|
void
|
||||||
|
misc_flare_use(edict_t *ent, edict_t *other, edict_t *activator)
|
||||||
|
{
|
||||||
|
ent->svflags ^= SVF_NOCLIENT;
|
||||||
|
gi.linkentity(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
SP_misc_flare(edict_t* ent)
|
||||||
|
{
|
||||||
|
ent->s.modelindex = 0;
|
||||||
|
ent->s.renderfx = RF_FLARE;
|
||||||
|
ent->solid = SOLID_NOT;
|
||||||
|
/*
|
||||||
|
* TODO: Add scale field
|
||||||
|
* ent->s.scale = st.radius;
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (ent->spawnflags & SPAWNFLAG_FLARE_RED)
|
||||||
|
{
|
||||||
|
ent->s.renderfx |= RF_SHELL_RED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ent->spawnflags & SPAWNFLAG_FLARE_GREEN)
|
||||||
|
{
|
||||||
|
ent->s.renderfx |= RF_SHELL_GREEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ent->spawnflags & SPAWNFLAG_FLARE_BLUE)
|
||||||
|
{
|
||||||
|
ent->s.renderfx |= RF_SHELL_BLUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ent->spawnflags & SPAWNFLAG_FLARE_LOCK_ANGLE)
|
||||||
|
{
|
||||||
|
ent->s.renderfx |= RF_FLARE_LOCK_ANGLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (st.image && *st.image)
|
||||||
|
{
|
||||||
|
ent->s.renderfx |= RF_CUSTOMSKIN;
|
||||||
|
ent->s.frame = gi.imageindex(st.image);
|
||||||
|
}
|
||||||
|
|
||||||
|
VectorSet(ent->mins, -32, -32, -32);
|
||||||
|
VectorSet(ent->maxs, 32, 32, 32);
|
||||||
|
|
||||||
|
ent->s.modelindex2 = st.fade_start_dist;
|
||||||
|
ent->s.modelindex3 = st.fade_end_dist;
|
||||||
|
|
||||||
|
if (ent->targetname)
|
||||||
|
{
|
||||||
|
ent->use = misc_flare_use;
|
||||||
|
}
|
||||||
|
|
||||||
|
gi.linkentity(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* QUAKED misc_model (1 0 0) (-8 -8 -8) (8 8 8)
|
||||||
|
*/
|
||||||
|
void SP_misc_model(edict_t *ent)
|
||||||
|
{
|
||||||
|
gi.setmodel(ent, ent->model);
|
||||||
|
gi.linkentity(ent);
|
||||||
|
}
|
||||||
|
|
|
@ -382,7 +382,7 @@ force_wall_think(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
force_wall_use(edict_t *self, edict_t *other /* activator */,
|
force_wall_use(edict_t *self, edict_t *other /* activator */,
|
||||||
edict_t *activator /* activator */)
|
edict_t *activator /* activator */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -868,7 +868,7 @@ Nuke_Think(edict_t *ent)
|
||||||
|
|
||||||
void
|
void
|
||||||
nuke_bounce(edict_t *ent, edict_t *other /* unused */, cplane_t *plane /* unused */,
|
nuke_bounce(edict_t *ent, edict_t *other /* unused */, cplane_t *plane /* unused */,
|
||||||
csurface_t *surf /* unused */)
|
csurface_t *surf /* unused */)
|
||||||
{
|
{
|
||||||
if (!ent)
|
if (!ent)
|
||||||
{
|
{
|
||||||
|
|
|
@ -123,12 +123,26 @@ DynamicSpawnUpdate(edict_t *self, dynamicentity_t *data)
|
||||||
) / 3;
|
) / 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
dynamicspawn_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
|
csurface_t *surf /* unused */)
|
||||||
|
{
|
||||||
|
if (!self || !other || !self->message || !self->message[0])
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gi.centerprintf(other, "Entity description: %s", self->message);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
DynamicSpawn(edict_t *self)
|
DynamicSpawn(edict_t *self, dynamicentity_t *data)
|
||||||
{
|
{
|
||||||
/* All other properties could be updated in DynamicSpawnUpdate */
|
/* All other properties could be updated in DynamicSpawnUpdate */
|
||||||
self->movetype = MOVETYPE_NONE;
|
self->movetype = MOVETYPE_NONE;
|
||||||
self->solid = SOLID_BBOX;
|
self->solid = SOLID_BBOX;
|
||||||
|
self->message = data->description;
|
||||||
|
self->touch = dynamicspawn_touch;
|
||||||
|
|
||||||
gi.linkentity(self);
|
gi.linkentity(self);
|
||||||
}
|
}
|
||||||
|
@ -279,7 +293,7 @@ ED_CallSpawn(edict_t *ent)
|
||||||
if (dyn_id >= 0 && dynamicentities[dyn_id].model_path[0])
|
if (dyn_id >= 0 && dynamicentities[dyn_id].model_path[0])
|
||||||
{
|
{
|
||||||
/* spawn only if know model */
|
/* spawn only if know model */
|
||||||
DynamicSpawn(ent);
|
DynamicSpawn(ent, &dynamicentities[dyn_id]);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -299,7 +313,7 @@ ED_CallSpawn(edict_t *ent)
|
||||||
if (gi.FS_LoadFile(self.model_path, NULL) > 4)
|
if (gi.FS_LoadFile(self.model_path, NULL) > 4)
|
||||||
{
|
{
|
||||||
DynamicSpawnUpdate(ent, &self);
|
DynamicSpawnUpdate(ent, &self);
|
||||||
DynamicSpawn(ent);
|
DynamicSpawn(ent, &self);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -372,8 +386,6 @@ ED_ParseColorField(const char *value)
|
||||||
is_float = false;
|
is_float = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf(">%f<\n", v[i]);
|
|
||||||
|
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
@ -783,14 +795,14 @@ SpawnEntities(const char *mapname, char *entities, const char *spawnpoint)
|
||||||
|
|
||||||
if (!Q_stricmp(level.mapname, "rhangar2") &&
|
if (!Q_stricmp(level.mapname, "rhangar2") &&
|
||||||
!Q_stricmp(ent->classname, "trigger_always") &&
|
!Q_stricmp(ent->classname, "trigger_always") &&
|
||||||
ent->target && !Q_stricmp(ent->target, "t265"))
|
ent->target && !Q_stricmp(ent->target, "t265"))
|
||||||
{
|
{
|
||||||
ent->spawnflags |= SPAWNFLAG_NOT_COOP;
|
ent->spawnflags |= SPAWNFLAG_NOT_COOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Q_stricmp(level.mapname, "rhangar2") &&
|
if (!Q_stricmp(level.mapname, "rhangar2") &&
|
||||||
!Q_stricmp(ent->classname, "func_wall") &&
|
!Q_stricmp(ent->classname, "func_wall") &&
|
||||||
!Q_stricmp(ent->model, "*15"))
|
!Q_stricmp(ent->model, "*15"))
|
||||||
{
|
{
|
||||||
ent->spawnflags |= SPAWNFLAG_NOT_COOP;
|
ent->spawnflags |= SPAWNFLAG_NOT_COOP;
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,7 +145,7 @@ Use_Multi(edict_t *ent, edict_t *other /* unused */, edict_t *activator)
|
||||||
|
|
||||||
void
|
void
|
||||||
Touch_Multi(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
Touch_Multi(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
csurface_t *surf /* unused */)
|
csurface_t *surf /* unused */)
|
||||||
{
|
{
|
||||||
if (!self || !other)
|
if (!self || !other)
|
||||||
{
|
{
|
||||||
|
@ -207,7 +207,7 @@ Touch_Multi(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
trigger_enable(edict_t *self, edict_t *other /* unused */,
|
trigger_enable(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator /* unused */)
|
edict_t *activator /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
@ -320,7 +320,7 @@ SP_trigger_once(edict_t *ent)
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
trigger_relay_use(edict_t *self, edict_t *other /* unused */,
|
trigger_relay_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator)
|
edict_t *activator)
|
||||||
{
|
{
|
||||||
if (!self || !activator)
|
if (!self || !activator)
|
||||||
{
|
{
|
||||||
|
@ -519,7 +519,7 @@ SP_trigger_key(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
trigger_counter_use(edict_t *self, edict_t *other /* unused */,
|
trigger_counter_use(edict_t *self, edict_t *other /* unused */,
|
||||||
edict_t *activator)
|
edict_t *activator)
|
||||||
{
|
{
|
||||||
if (!self || !activator)
|
if (!self || !activator)
|
||||||
{
|
{
|
||||||
|
@ -846,7 +846,7 @@ hurt_use(edict_t *self, edict_t *other /* unused */,
|
||||||
|
|
||||||
self->solid = SOLID_TRIGGER;
|
self->solid = SOLID_TRIGGER;
|
||||||
num = gi.BoxEdicts(self->absmin, self->absmax,
|
num = gi.BoxEdicts(self->absmin, self->absmax,
|
||||||
touch, MAX_EDICTS, AREA_SOLID);
|
touch, MAX_EDICTS, AREA_SOLID);
|
||||||
|
|
||||||
/* Check for idle monsters in
|
/* Check for idle monsters in
|
||||||
trigger hurt */
|
trigger hurt */
|
||||||
|
|
|
@ -1629,7 +1629,7 @@ Trap_Think(edict_t *ent)
|
||||||
if (ent->wait == 64)
|
if (ent->wait == 64)
|
||||||
{
|
{
|
||||||
gi.sound(ent, CHAN_VOICE, gi.soundindex("weapons/trapdown.wav"),
|
gi.sound(ent, CHAN_VOICE, gi.soundindex("weapons/trapdown.wav"),
|
||||||
1, ATTN_IDLE, 0);
|
1, ATTN_IDLE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
ent->wait -= 2;
|
ent->wait -= 2;
|
||||||
|
|
|
@ -676,7 +676,7 @@ boss2_reattack_mg(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
boss2_pain(edict_t *self, edict_t *other /* unused */,
|
boss2_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -556,7 +556,7 @@ jorg_attack1(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
jorg_pain(edict_t *self, edict_t *other /* unused */,
|
jorg_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -568,7 +568,7 @@ boss5_reattack1(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
boss5_pain(edict_t *self, edict_t *other /* unused */,
|
boss5_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
@ -833,7 +833,7 @@ BossExplode2(edict_t *self)
|
||||||
void
|
void
|
||||||
boss5_die(edict_t *self, edict_t *inflictor /* unused */,
|
boss5_die(edict_t *self, edict_t *inflictor /* unused */,
|
||||||
edict_t *attacker /* unused */, int damage /* unused */,
|
edict_t *attacker /* unused */, int damage /* unused */,
|
||||||
vec3_t point /* unused */)
|
vec3_t point /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -805,7 +805,7 @@ brain_laserbeam(edict_t *self)
|
||||||
if (random() > 0.8)
|
if (random() > 0.8)
|
||||||
{
|
{
|
||||||
gi.sound(self, CHAN_AUTO, gi.soundindex("misc/lasfly.wav"),
|
gi.sound(self, CHAN_AUTO, gi.soundindex("misc/lasfly.wav"),
|
||||||
1, ATTN_STATIC, 0);
|
1, ATTN_STATIC, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check for max distance */
|
/* check for max distance */
|
||||||
|
@ -1078,7 +1078,7 @@ brain_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker /* u
|
||||||
if (self->health <= self->gib_health)
|
if (self->health <= self->gib_health)
|
||||||
{
|
{
|
||||||
gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"),
|
gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"),
|
||||||
1, ATTN_NORM, 0);
|
1, ATTN_NORM, 0);
|
||||||
|
|
||||||
for (n = 0; n < 2; n++)
|
for (n = 0; n < 2; n++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -379,7 +379,7 @@ mmove_t chick_move_pain3 =
|
||||||
|
|
||||||
void
|
void
|
||||||
chick_pain(edict_t *self, edict_t *other /* unused */,
|
chick_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
float r;
|
float r;
|
||||||
|
|
||||||
|
|
|
@ -1174,7 +1174,7 @@ fixbot_fire_laser(edict_t *self)
|
||||||
}
|
}
|
||||||
|
|
||||||
gi.sound(self, CHAN_AUTO, gi.soundindex("misc/lasfly.wav"),
|
gi.sound(self, CHAN_AUTO, gi.soundindex("misc/lasfly.wav"),
|
||||||
1, ATTN_STATIC, 0);
|
1, ATTN_STATIC, 0);
|
||||||
|
|
||||||
VectorCopy(self->s.origin, start);
|
VectorCopy(self->s.origin, start);
|
||||||
VectorCopy(self->enemy->s.origin, end);
|
VectorCopy(self->enemy->s.origin, end);
|
||||||
|
@ -1576,7 +1576,7 @@ fixbot_attack(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
fixbot_pain(edict_t *self, edict_t *other /* unused */,
|
fixbot_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage /* unused */)
|
float kick /* unused */, int damage /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -768,7 +768,7 @@ floater_melee(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
floater_pain(edict_t *self, edict_t *other /* unused */,
|
floater_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
|
|
@ -934,7 +934,7 @@ flyer_check_melee(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
flyer_pain(edict_t *self, edict_t *other /* unused */,
|
flyer_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
|
|
@ -459,7 +459,7 @@ mmove_t gladb_move_death = {
|
||||||
|
|
||||||
void
|
void
|
||||||
gladb_die(edict_t *self, edict_t *inflictor /* unused */,
|
gladb_die(edict_t *self, edict_t *inflictor /* unused */,
|
||||||
edict_t *attacker /* unused */, int damage /*unused */,
|
edict_t *attacker /* unused */, int damage /*unused */,
|
||||||
vec3_t point)
|
vec3_t point)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
|
@ -486,7 +486,7 @@ mmove_t gladiator_move_death =
|
||||||
|
|
||||||
void
|
void
|
||||||
gladiator_die(edict_t *self, edict_t *inflictor /* unused */,
|
gladiator_die(edict_t *self, edict_t *inflictor /* unused */,
|
||||||
edict_t *attacker /* unused */, int damage /*unused */,
|
edict_t *attacker /* unused */, int damage /*unused */,
|
||||||
vec3_t point)
|
vec3_t point)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
|
@ -413,7 +413,7 @@ mmove_t gunner_move_pain1 =
|
||||||
|
|
||||||
void
|
void
|
||||||
gunner_pain(edict_t *self, edict_t *other /* unused */,
|
gunner_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -303,7 +303,7 @@ mmove_t infantry_move_pain2 =
|
||||||
|
|
||||||
void
|
void
|
||||||
infantry_pain(edict_t *self, edict_t *other /* unused */,
|
infantry_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -700,7 +700,7 @@ insane_run(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
insane_pain(edict_t *self, edict_t *other /* unused */,
|
insane_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
int l, r;
|
int l, r;
|
||||||
|
|
||||||
|
|
|
@ -674,7 +674,7 @@ SV_StepDirection(edict_t *ent, float yaw, float dist)
|
||||||
{
|
{
|
||||||
if ((delta > 45) && (delta < 315))
|
if ((delta > 45) && (delta < 315))
|
||||||
{
|
{
|
||||||
/* not turned far enough, so don't take the step */
|
/* not turned far enough, so don't take the step */
|
||||||
VectorCopy(oldorigin, ent->s.origin);
|
VectorCopy(oldorigin, ent->s.origin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -443,7 +443,7 @@ mmove_t parasite_move_pain1 =
|
||||||
|
|
||||||
void
|
void
|
||||||
parasite_pain(edict_t *self, edict_t *other /* unused */,
|
parasite_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage /* unused */)
|
float kick /* unused */, int damage /* unused */)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2526,7 +2526,7 @@ mmove_t soldierh_move_pain4 = {
|
||||||
|
|
||||||
void
|
void
|
||||||
soldierh_pain(edict_t *self, edict_t *other /* unused */,
|
soldierh_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage /* unused */)
|
float kick /* unused */, int damage /* unused */)
|
||||||
{
|
{
|
||||||
float r;
|
float r;
|
||||||
int n;
|
int n;
|
||||||
|
|
|
@ -584,7 +584,7 @@ supertank_reattack1(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
supertank_pain(edict_t *self, edict_t *other /* unused */,
|
supertank_pain(edict_t *self, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage)
|
float kick /* unused */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -372,7 +372,7 @@ mmove_t tank_move_pain3 =
|
||||||
|
|
||||||
void
|
void
|
||||||
tank_pain(edict_t *self, edict_t *other /* other */,
|
tank_pain(edict_t *self, edict_t *other /* other */,
|
||||||
float kick /* other */, int damage)
|
float kick /* other */, int damage)
|
||||||
{
|
{
|
||||||
if (!self)
|
if (!self)
|
||||||
{
|
{
|
||||||
|
|
|
@ -434,7 +434,7 @@ SP_info_player_intermission(edict_t *self)
|
||||||
|
|
||||||
void
|
void
|
||||||
player_pain(edict_t *self /* unused */, edict_t *other /* unused */,
|
player_pain(edict_t *self /* unused */, edict_t *other /* unused */,
|
||||||
float kick /* unused */, int damage /* unused */)
|
float kick /* unused */, int damage /* unused */)
|
||||||
{
|
{
|
||||||
/* Player pain is handled at the end
|
/* Player pain is handled at the end
|
||||||
* of the frame in P_DamageFeedback.
|
* of the frame in P_DamageFeedback.
|
||||||
|
@ -506,7 +506,7 @@ IsNeutral(edict_t *ent)
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientObituary(edict_t *self, edict_t *inflictor /* unused */,
|
ClientObituary(edict_t *self, edict_t *inflictor /* unused */,
|
||||||
edict_t *attacker)
|
edict_t *attacker)
|
||||||
{
|
{
|
||||||
int mod;
|
int mod;
|
||||||
char *message;
|
char *message;
|
||||||
|
@ -1869,7 +1869,7 @@ InitBodyQue(void)
|
||||||
|
|
||||||
void
|
void
|
||||||
body_die(edict_t *self, edict_t *inflictor /* unused */,
|
body_die(edict_t *self, edict_t *inflictor /* unused */,
|
||||||
edict_t *attacker /* unused */, int damage,
|
edict_t *attacker /* unused */, int damage,
|
||||||
vec3_t point /* unused */)
|
vec3_t point /* unused */)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
|
@ -549,7 +549,7 @@ G_SetStats(edict_t *ent)
|
||||||
{
|
{
|
||||||
ent->client->ps.stats[STAT_TIMER_ICON] = gi.imageindex("p_quadfire");
|
ent->client->ps.stats[STAT_TIMER_ICON] = gi.imageindex("p_quadfire");
|
||||||
ent->client->ps.stats[STAT_TIMER] = (ent->client->quadfire_framenum
|
ent->client->ps.stats[STAT_TIMER] = (ent->client->quadfire_framenum
|
||||||
- level.framenum) / 10;
|
- level.framenum) / 10;
|
||||||
}
|
}
|
||||||
else if (ent->client->invincible_framenum > level.framenum)
|
else if (ent->client->invincible_framenum > level.framenum)
|
||||||
{
|
{
|
||||||
|
|
|
@ -3381,7 +3381,7 @@ weapon_trap_fire(edict_t *ent, qboolean held)
|
||||||
|
|
||||||
timer = ent->client->grenade_time - level.time;
|
timer = ent->client->grenade_time - level.time;
|
||||||
speed = GRENADE_MINSPEED + (GRENADE_TIMER - timer) *
|
speed = GRENADE_MINSPEED + (GRENADE_TIMER - timer) *
|
||||||
((GRENADE_MAXSPEED - GRENADE_MINSPEED) / GRENADE_TIMER);
|
((GRENADE_MAXSPEED - GRENADE_MINSPEED) / GRENADE_TIMER);
|
||||||
fire_trap(ent, start, forward, damage, speed, timer, radius, held);
|
fire_trap(ent, start, forward, damage, speed, timer, radius, held);
|
||||||
|
|
||||||
ent->client->pers.inventory[ent->client->ammo_index]--;
|
ent->client->pers.inventory[ent->client->ammo_index]--;
|
||||||
|
@ -3427,7 +3427,7 @@ Weapon_Trap(edict_t *ent)
|
||||||
if (level.time >= ent->pain_debounce_time)
|
if (level.time >= ent->pain_debounce_time)
|
||||||
{
|
{
|
||||||
gi.sound(ent, CHAN_VOICE, gi.soundindex("weapons/noammo.wav"),
|
gi.sound(ent, CHAN_VOICE, gi.soundindex("weapons/noammo.wav"),
|
||||||
1, ATTN_NORM, 0);
|
1, ATTN_NORM, 0);
|
||||||
ent->pain_debounce_time = level.time + 1;
|
ent->pain_debounce_time = level.time + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3461,7 +3461,7 @@ Weapon_Trap(edict_t *ent)
|
||||||
if (ent->client->ps.gunframe == 5)
|
if (ent->client->ps.gunframe == 5)
|
||||||
{
|
{
|
||||||
gi.sound(ent, CHAN_WEAPON, gi.soundindex("weapons/trapcock.wav"),
|
gi.sound(ent, CHAN_WEAPON, gi.soundindex("weapons/trapcock.wav"),
|
||||||
1, ATTN_NORM, 0);
|
1, ATTN_NORM, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ent->client->ps.gunframe == 11)
|
if (ent->client->ps.gunframe == 11)
|
||||||
|
|
|
@ -617,6 +617,7 @@ extern void drawbbox ( edict_t * self ) ;
|
||||||
extern void drop_make_touchable ( edict_t * ent ) ;
|
extern void drop_make_touchable ( edict_t * ent ) ;
|
||||||
extern void drop_temp_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
|
extern void drop_temp_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
|
||||||
extern void droptofloor ( edict_t * ent ) ;
|
extern void droptofloor ( edict_t * ent ) ;
|
||||||
|
extern void dynamicspawn_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */, csurface_t *surf /* unused */);
|
||||||
extern void enfbolt_touch ( edict_t * self , edict_t * other , cplane_t * plane, csurface_t *surf);
|
extern void enfbolt_touch ( edict_t * self , edict_t * other , cplane_t * plane, csurface_t *surf);
|
||||||
extern void enforcer_attack ( edict_t * self ) ;
|
extern void enforcer_attack ( edict_t * self ) ;
|
||||||
extern void enforcer_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
|
extern void enforcer_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
|
||||||
|
@ -1026,6 +1027,7 @@ extern void misc_easterchick2_think ( edict_t * self ) ;
|
||||||
extern void misc_easterchick_think ( edict_t * self ) ;
|
extern void misc_easterchick_think ( edict_t * self ) ;
|
||||||
extern void misc_eastertank_think ( edict_t * self ) ;
|
extern void misc_eastertank_think ( edict_t * self ) ;
|
||||||
extern void misc_nuke_core_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
extern void misc_nuke_core_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
||||||
|
extern void misc_flare_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
||||||
extern void misc_satellite_dish_think ( edict_t * self ) ;
|
extern void misc_satellite_dish_think ( edict_t * self ) ;
|
||||||
extern void misc_satellite_dish_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
extern void misc_satellite_dish_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
||||||
extern void misc_strogg_ship_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
extern void misc_strogg_ship_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
|
||||||
|
|
|
@ -579,6 +579,7 @@
|
||||||
{"drop_make_touchable", (byte *)drop_make_touchable},
|
{"drop_make_touchable", (byte *)drop_make_touchable},
|
||||||
{"drop_temp_touch", (byte *)drop_temp_touch},
|
{"drop_temp_touch", (byte *)drop_temp_touch},
|
||||||
{"droptofloor", (byte *)droptofloor},
|
{"droptofloor", (byte *)droptofloor},
|
||||||
|
{"dynamicspawn_touch", (byte *)dynamicspawn_touch},
|
||||||
{"enfbolt_touch", (byte *)enfbolt_touch},
|
{"enfbolt_touch", (byte *)enfbolt_touch},
|
||||||
{"enforcer_attack", (byte *)enforcer_attack},
|
{"enforcer_attack", (byte *)enforcer_attack},
|
||||||
{"enforcer_die", (byte *)enforcer_die},
|
{"enforcer_die", (byte *)enforcer_die},
|
||||||
|
@ -1004,6 +1005,7 @@
|
||||||
{"misc_easterchick_think", (byte *)misc_easterchick_think},
|
{"misc_easterchick_think", (byte *)misc_easterchick_think},
|
||||||
{"misc_eastertank_think", (byte *)misc_eastertank_think},
|
{"misc_eastertank_think", (byte *)misc_eastertank_think},
|
||||||
{"misc_nuke_core_use", (byte *)misc_nuke_core_use},
|
{"misc_nuke_core_use", (byte *)misc_nuke_core_use},
|
||||||
|
{"misc_flare_use", (byte *)misc_flare_use},
|
||||||
{"misc_satellite_dish_think", (byte *)misc_satellite_dish_think},
|
{"misc_satellite_dish_think", (byte *)misc_satellite_dish_think},
|
||||||
{"misc_satellite_dish_use", (byte *)misc_satellite_dish_use},
|
{"misc_satellite_dish_use", (byte *)misc_satellite_dish_use},
|
||||||
{"misc_strogg_ship_use", (byte *)misc_strogg_ship_use},
|
{"misc_strogg_ship_use", (byte *)misc_strogg_ship_use},
|
||||||
|
|
|
@ -89,6 +89,8 @@ extern void SP_misc_gib_leg ( edict_t * ent ) ;
|
||||||
extern void SP_misc_insane(edict_t * self);
|
extern void SP_misc_insane(edict_t * self);
|
||||||
extern void SP_misc_nuke ( edict_t * ent ) ;
|
extern void SP_misc_nuke ( edict_t * ent ) ;
|
||||||
extern void SP_misc_nuke_core ( edict_t * ent ) ;
|
extern void SP_misc_nuke_core ( edict_t * ent ) ;
|
||||||
|
extern void SP_misc_flare ( edict_t * ent ) ;
|
||||||
|
extern void SP_misc_model ( edict_t * ent ) ;
|
||||||
extern void SP_misc_satellite_dish ( edict_t * ent ) ;
|
extern void SP_misc_satellite_dish ( edict_t * ent ) ;
|
||||||
extern void SP_misc_strogg_ship ( edict_t * ent ) ;
|
extern void SP_misc_strogg_ship ( edict_t * ent ) ;
|
||||||
extern void SP_misc_teleporter ( edict_t * ent ) ;
|
extern void SP_misc_teleporter ( edict_t * ent ) ;
|
||||||
|
|
|
@ -94,6 +94,8 @@
|
||||||
{"misc_insane", SP_misc_insane},
|
{"misc_insane", SP_misc_insane},
|
||||||
{"misc_nuke", SP_misc_nuke},
|
{"misc_nuke", SP_misc_nuke},
|
||||||
{"misc_nuke_core", SP_misc_nuke_core},
|
{"misc_nuke_core", SP_misc_nuke_core},
|
||||||
|
{"misc_flare", SP_misc_flare},
|
||||||
|
{"misc_model", SP_misc_model},
|
||||||
{"misc_satellite_dish", SP_misc_satellite_dish},
|
{"misc_satellite_dish", SP_misc_satellite_dish},
|
||||||
{"misc_strogg_ship", SP_misc_strogg_ship},
|
{"misc_strogg_ship", SP_misc_strogg_ship},
|
||||||
{"misc_teleporter", SP_misc_teleporter},
|
{"misc_teleporter", SP_misc_teleporter},
|
||||||
|
|
Loading…
Reference in a new issue