Merge branch 'fields' into rearrangecalls

This commit is contained in:
Denis Pauk 2024-10-20 15:09:44 +03:00
commit 72d77e0428
36 changed files with 239 additions and 60 deletions

View file

@ -2092,6 +2092,78 @@ CL_ClearEffects(void)
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
CL_Flashlight(int ent, vec3_t pos)
{

View file

@ -664,7 +664,7 @@ static unsigned int splash_color[] = {
void
CL_ParseTEnt(void)
{
int type;
temp_event_t type;
vec3_t pos, pos2, dir;
explosion_t *ex;
int cnt;
@ -864,6 +864,7 @@ CL_ParseTEnt(void)
break;
case TE_RAILTRAIL: /* railgun effect */
case TE_RAILTRAIL2:
MSG_ReadPos(&net_message, pos);
MSG_ReadPos(&net_message, pos2);
CL_RailTrail(pos, pos2);
@ -1124,6 +1125,11 @@ CL_ParseTEnt(void)
S_StartSound(pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
break;
case TE_FLAME:
MSG_ReadPos(&net_message, pos);
CL_FlameEffects(pos);
break;
case TE_LIGHTNING:
ent = CL_ParseLightning(cl_mod_lightning);
S_StartSound(NULL, ent, CHAN_WEAPON, cl_sfx_lightning,
@ -1261,7 +1267,7 @@ CL_ParseTEnt(void)
break;
default:
Com_Error(ERR_DROP, "CL_ParseTEnt: bad type");
Com_Error(ERR_DROP, "%s: bad type", __func__);
}
}

View file

@ -405,7 +405,7 @@ void CL_SmokeTrail (vec3_t start, vec3_t end, unsigned int basecolor, unsigned i
int spacing);
void CL_Flashlight (int ent, vec3_t pos);
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,
int count, int numcolors, int dirspread, float alphavel);
void CL_BubbleTrail2 (vec3_t start, vec3_t end, int dist);

View file

@ -1318,7 +1318,7 @@ plat2_blocked(edict_t *self, edict_t *other)
void
Use_Plat2(edict_t *ent, edict_t *other /* unused */,
edict_t *activator)
edict_t *activator)
{
edict_t *trigger;
int i;
@ -1358,7 +1358,7 @@ Use_Plat2(edict_t *ent, edict_t *other /* unused */,
void
plat2_activate(edict_t *ent, edict_t *other /* unused */,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
edict_t *trigger;
@ -1607,7 +1607,7 @@ rotating_blocked(edict_t *self, edict_t *other)
void
rotating_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
csurface_t *surf /* unused */)
csurface_t *surf /* unused */)
{
if (!self || !other)
{
@ -1623,7 +1623,7 @@ rotating_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
void
rotating_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
if (!self)
{
@ -1884,7 +1884,7 @@ button_use(edict_t *self, edict_t *other /* unused */, edict_t *activator)
void
button_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
csurface_t *surf /* unused */)
csurface_t *surf /* unused */)
{
if (!self || !other)
{
@ -2375,7 +2375,7 @@ door_use(edict_t *self, edict_t *other /* unused */, edict_t *activator)
void
Touch_DoorTrigger(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
csurface_t *surf /* unused */)
csurface_t *surf /* unused */)
{
if (!self || !other)
{
@ -2759,7 +2759,7 @@ SP_func_door(edict_t *ent)
void
Door_Activate(edict_t *self, edict_t *other /* unused */,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
if (!self)
{
@ -3475,7 +3475,7 @@ func_train_find(edict_t *self)
void
train_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator)
edict_t *activator)
{
if (!self || !activator)
{
@ -3573,7 +3573,7 @@ SP_func_train(edict_t *self)
*/
void
trigger_elevator_use(edict_t *self, edict_t *other,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
edict_t *target;
@ -3753,7 +3753,7 @@ SP_func_timer(edict_t *self)
*/
void
func_conveyor_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
if (!self)
{
@ -3820,7 +3820,7 @@ SP_func_conveyor(edict_t *self)
*/
void
door_secret_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator /*unused */)
edict_t *activator /*unused */)
{
if (!self)
{
@ -4164,7 +4164,7 @@ rotating_light_killed(edict_t *self, edict_t *inflictor /* unused */,
void
rotating_light_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
if (!self)
{

View file

@ -1698,7 +1698,7 @@ Touch_Item(edict_t *ent, edict_t *other, cplane_t *plane /* unused */, csurface_
other->client->ps.stats[STAT_PICKUP_ICON] =
gi.imageindex(ent->item->icon);
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;
/* 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->ps.stats[STAT_SELECTED_ITEM] =
ITEM_INDEX(ent->item);
ITEM_INDEX(ent->item);
}
if (ent->item->pickup == Pickup_Health)

View file

@ -3273,3 +3273,84 @@ SP_misc_nuke_core(edict_t *ent)
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);
}

View file

@ -382,7 +382,7 @@ force_wall_think(edict_t *self)
void
force_wall_use(edict_t *self, edict_t *other /* activator */,
edict_t *activator /* activator */)
edict_t *activator /* activator */)
{
if (!self)
{

View file

@ -868,7 +868,7 @@ Nuke_Think(edict_t *ent)
void
nuke_bounce(edict_t *ent, edict_t *other /* unused */, cplane_t *plane /* unused */,
csurface_t *surf /* unused */)
csurface_t *surf /* unused */)
{
if (!ent)
{

View file

@ -123,12 +123,26 @@ DynamicSpawnUpdate(edict_t *self, dynamicentity_t *data)
) / 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
DynamicSpawn(edict_t *self)
DynamicSpawn(edict_t *self, dynamicentity_t *data)
{
/* All other properties could be updated in DynamicSpawnUpdate */
self->movetype = MOVETYPE_NONE;
self->solid = SOLID_BBOX;
self->message = data->description;
self->touch = dynamicspawn_touch;
gi.linkentity(self);
}
@ -279,7 +293,7 @@ ED_CallSpawn(edict_t *ent)
if (dyn_id >= 0 && dynamicentities[dyn_id].model_path[0])
{
/* spawn only if know model */
DynamicSpawn(ent);
DynamicSpawn(ent, &dynamicentities[dyn_id]);
return;
}
@ -299,7 +313,7 @@ ED_CallSpawn(edict_t *ent)
if (gi.FS_LoadFile(self.model_path, NULL) > 4)
{
DynamicSpawnUpdate(ent, &self);
DynamicSpawn(ent);
DynamicSpawn(ent, &self);
return;
}
}
@ -372,8 +386,6 @@ ED_ParseColorField(const char *value)
is_float = false;
}
printf(">%f<\n", v[i]);
if (!tmp)
{
break;
@ -783,14 +795,14 @@ SpawnEntities(const char *mapname, char *entities, const char *spawnpoint)
if (!Q_stricmp(level.mapname, "rhangar2") &&
!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;
}
if (!Q_stricmp(level.mapname, "rhangar2") &&
!Q_stricmp(ent->classname, "func_wall") &&
!Q_stricmp(ent->model, "*15"))
!Q_stricmp(ent->model, "*15"))
{
ent->spawnflags |= SPAWNFLAG_NOT_COOP;
}

View file

@ -145,7 +145,7 @@ Use_Multi(edict_t *ent, edict_t *other /* unused */, edict_t *activator)
void
Touch_Multi(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
csurface_t *surf /* unused */)
csurface_t *surf /* unused */)
{
if (!self || !other)
{
@ -207,7 +207,7 @@ Touch_Multi(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
*/
void
trigger_enable(edict_t *self, edict_t *other /* unused */,
edict_t *activator /* unused */)
edict_t *activator /* unused */)
{
if (!self)
{
@ -320,7 +320,7 @@ SP_trigger_once(edict_t *ent)
*/
void
trigger_relay_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator)
edict_t *activator)
{
if (!self || !activator)
{
@ -519,7 +519,7 @@ SP_trigger_key(edict_t *self)
void
trigger_counter_use(edict_t *self, edict_t *other /* unused */,
edict_t *activator)
edict_t *activator)
{
if (!self || !activator)
{
@ -846,7 +846,7 @@ hurt_use(edict_t *self, edict_t *other /* unused */,
self->solid = SOLID_TRIGGER;
num = gi.BoxEdicts(self->absmin, self->absmax,
touch, MAX_EDICTS, AREA_SOLID);
touch, MAX_EDICTS, AREA_SOLID);
/* Check for idle monsters in
trigger hurt */

View file

@ -1629,7 +1629,7 @@ Trap_Think(edict_t *ent)
if (ent->wait == 64)
{
gi.sound(ent, CHAN_VOICE, gi.soundindex("weapons/trapdown.wav"),
1, ATTN_IDLE, 0);
1, ATTN_IDLE, 0);
}
ent->wait -= 2;

View file

@ -676,7 +676,7 @@ boss2_reattack_mg(edict_t *self)
void
boss2_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
if (!self)
{

View file

@ -556,7 +556,7 @@ jorg_attack1(edict_t *self)
void
jorg_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
if (!self)
{

View file

@ -568,7 +568,7 @@ boss5_reattack1(edict_t *self)
void
boss5_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
if (!self)
{
@ -833,7 +833,7 @@ BossExplode2(edict_t *self)
void
boss5_die(edict_t *self, edict_t *inflictor /* unused */,
edict_t *attacker /* unused */, int damage /* unused */,
vec3_t point /* unused */)
vec3_t point /* unused */)
{
if (!self)
{

View file

@ -805,7 +805,7 @@ brain_laserbeam(edict_t *self)
if (random() > 0.8)
{
gi.sound(self, CHAN_AUTO, gi.soundindex("misc/lasfly.wav"),
1, ATTN_STATIC, 0);
1, ATTN_STATIC, 0);
}
/* 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)
{
gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"),
1, ATTN_NORM, 0);
1, ATTN_NORM, 0);
for (n = 0; n < 2; n++)
{

View file

@ -379,7 +379,7 @@ mmove_t chick_move_pain3 =
void
chick_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
float r;

View file

@ -1174,7 +1174,7 @@ fixbot_fire_laser(edict_t *self)
}
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->enemy->s.origin, end);
@ -1576,7 +1576,7 @@ fixbot_attack(edict_t *self)
void
fixbot_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage /* unused */)
float kick /* unused */, int damage /* unused */)
{
if (!self)
{

View file

@ -768,7 +768,7 @@ floater_melee(edict_t *self)
void
floater_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
int n;

View file

@ -934,7 +934,7 @@ flyer_check_melee(edict_t *self)
void
flyer_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
int n;

View file

@ -459,7 +459,7 @@ mmove_t gladb_move_death = {
void
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)
{
int n;

View file

@ -486,7 +486,7 @@ mmove_t gladiator_move_death =
void
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)
{
int n;

View file

@ -413,7 +413,7 @@ mmove_t gunner_move_pain1 =
void
gunner_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
if (!self)
{

View file

@ -303,7 +303,7 @@ mmove_t infantry_move_pain2 =
void
infantry_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
if (!self)
{

View file

@ -700,7 +700,7 @@ insane_run(edict_t *self)
void
insane_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
int l, r;

View file

@ -674,7 +674,7 @@ SV_StepDirection(edict_t *ent, float yaw, float dist)
{
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);
}
}

View file

@ -443,7 +443,7 @@ mmove_t parasite_move_pain1 =
void
parasite_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage /* unused */)
float kick /* unused */, int damage /* unused */)
{
if (!self)
{

View file

@ -2526,7 +2526,7 @@ mmove_t soldierh_move_pain4 = {
void
soldierh_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage /* unused */)
float kick /* unused */, int damage /* unused */)
{
float r;
int n;

View file

@ -584,7 +584,7 @@ supertank_reattack1(edict_t *self)
void
supertank_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
float kick /* unused */, int damage)
{
if (!self)
{

View file

@ -372,7 +372,7 @@ mmove_t tank_move_pain3 =
void
tank_pain(edict_t *self, edict_t *other /* other */,
float kick /* other */, int damage)
float kick /* other */, int damage)
{
if (!self)
{

View file

@ -434,7 +434,7 @@ SP_info_player_intermission(edict_t *self)
void
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
* of the frame in P_DamageFeedback.
@ -506,7 +506,7 @@ IsNeutral(edict_t *ent)
void
ClientObituary(edict_t *self, edict_t *inflictor /* unused */,
edict_t *attacker)
edict_t *attacker)
{
int mod;
char *message;
@ -1869,7 +1869,7 @@ InitBodyQue(void)
void
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 */)
{
int n;

View file

@ -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] = (ent->client->quadfire_framenum
- level.framenum) / 10;
- level.framenum) / 10;
}
else if (ent->client->invincible_framenum > level.framenum)
{

View file

@ -3381,7 +3381,7 @@ weapon_trap_fire(edict_t *ent, qboolean held)
timer = ent->client->grenade_time - level.time;
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);
ent->client->pers.inventory[ent->client->ammo_index]--;
@ -3427,7 +3427,7 @@ Weapon_Trap(edict_t *ent)
if (level.time >= ent->pain_debounce_time)
{
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;
}
@ -3461,7 +3461,7 @@ Weapon_Trap(edict_t *ent)
if (ent->client->ps.gunframe == 5)
{
gi.sound(ent, CHAN_WEAPON, gi.soundindex("weapons/trapcock.wav"),
1, ATTN_NORM, 0);
1, ATTN_NORM, 0);
}
if (ent->client->ps.gunframe == 11)

View file

@ -617,6 +617,7 @@ extern void drawbbox ( edict_t * self ) ;
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 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 enforcer_attack ( edict_t * self ) ;
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_eastertank_think ( edict_t * self ) ;
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_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 ) ;

View file

@ -579,6 +579,7 @@
{"drop_make_touchable", (byte *)drop_make_touchable},
{"drop_temp_touch", (byte *)drop_temp_touch},
{"droptofloor", (byte *)droptofloor},
{"dynamicspawn_touch", (byte *)dynamicspawn_touch},
{"enfbolt_touch", (byte *)enfbolt_touch},
{"enforcer_attack", (byte *)enforcer_attack},
{"enforcer_die", (byte *)enforcer_die},
@ -1004,6 +1005,7 @@
{"misc_easterchick_think", (byte *)misc_easterchick_think},
{"misc_eastertank_think", (byte *)misc_eastertank_think},
{"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_use", (byte *)misc_satellite_dish_use},
{"misc_strogg_ship_use", (byte *)misc_strogg_ship_use},

View file

@ -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_nuke ( 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_strogg_ship ( edict_t * ent ) ;
extern void SP_misc_teleporter ( edict_t * ent ) ;

View file

@ -94,6 +94,8 @@
{"misc_insane", SP_misc_insane},
{"misc_nuke", SP_misc_nuke},
{"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_strogg_ship", SP_misc_strogg_ship},
{"misc_teleporter", SP_misc_teleporter},