void UpdateAuxiliaryXhair(entity own, vector loc, vector clr, float axh_id)
{
- if (clienttype(own) != CLIENTTYPE_REAL)
+ if not(IS_REAL_CLIENT(own))
return;
entity axh;
**/
void CSQCVehicleSetup(entity own, float vehicle_id)
{
- if (clienttype(own) != CLIENTTYPE_REAL)
+ if not(IS_REAL_CLIENT(own))
return;
msg_entity = own;
if(self.health < 1)
{
self.takedamage = DAMAGE_NO;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.think = self.use;
self.nextthink = time;
}
PROJECTILE_TOUCH;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, self.shot_dmg, 0, self.shot_radius, self, self.shot_force, self.totalfrags, other);
remove (self);
// Better way of determening whats crushable needed! (fl_crushable?)
float vehicles_crushable(entity e)
{
- if(e.classname == "player")
+ if(IS_PLAYER(e))
return TRUE;
- if(e.classname == "monster_zombie")
- return TRUE;
+ if(e.flags & FL_MONSTER)
+ return TRUE; // more bitflags for everyone!
return FALSE;
}
if(vehicles_crushable(other))
{
if(vlen(self.velocity) != 0)
- Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_VHCRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force);
+ Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_VH_CRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force);
return; // Dont do selfdamage when hitting "soft targets".
}
return;
}
- if(other.classname != "player")
+ if not(IS_PLAYER(other))
return;
if(other.deadflag != DEAD_NO)
{
// Remove this when bots know how to use vehicles
- if (clienttype(other) == CLIENTTYPE_BOT)
+ if (IS_BOT_CLIENT(other))
if (autocvar_g_vehicles_allow_bots)
dprint("Bot enters vehicle\n"); // This is where we need to disconnect (some, all?) normal bot AI and hand over to vehicle's _aiframe()
else
self.owner.movetype = MOVETYPE_NOCLIP;
self.owner.alpha = -1;
self.owner.vehicle = self;
- self.owner.event_damage = SUB_Null;
+ self.owner.event_damage = func_null;
self.owner.view_ofs = '0 0 0';
self.colormap = self.owner.colormap;
if(self.tur_head)
self.team = self.owner.team;
self.flags -= FL_NOTARGET;
- if (clienttype(other) == CLIENTTYPE_REAL)
+ if (IS_REAL_CLIENT(other))
{
msg_entity = other;
WriteByte (MSG_ONE, SVC_SETVIEWPORT);
}
vehicles_exit_running = TRUE;
- if(self.flags & FL_CLIENT)
+ if(IS_CLIENT(self))
{
_vehicle = self.vehicle;
if (_player)
{
- if (clienttype(_player) == CLIENTTYPE_REAL)
+ if (IS_REAL_CLIENT(_player))
{
msg_entity = _player;
WriteByte (MSG_ONE, SVC_SETVIEWPORT);
_player.movetype = MOVETYPE_WALK;
_player.effects &~= EF_NODRAW;
_player.alpha = 1;
- _player.PlayerPhysplug = SUB_Null;
+ _player.PlayerPhysplug = func_null;
_player.vehicle = world;
_player.view_ofs = PL_VIEW_OFS;
_player.event_damage = PlayerDamage;
}
if(teamplay && self.team)
- rgb = TeamColor(self.team);
+ rgb = Team_ColorRGB(self.team);
else
rgb = '1 1 1';
WaypointSprite_Spawn("vehicle", 0, 0, self, '0 0 64', world, 0, self, waypointsprite_attached, TRUE, RADARICON_POWERUP, rgb);
self.vehicle_exit = exitfunc;
self.vehicle_enter = enterproc;
self.PlayerPhysplug = physproc;
- self.event_damage = vehicles_damage;
+ self.event_damage = func_null;
self.touch = vehicles_touch;
self.think = vehicles_spawn;
self.nextthink = time;
self.vehicle_respawntime = _respawntime;
self.vehicle_spawn = spawnproc;
self.effects = EF_NODRAW;
- if(g_assault || !autocvar_g_vehicles_delayspawn)
+ if(!autocvar_g_vehicles_delayspawn)
self.nextthink = time + 0.5;
else
self.nextthink = time + _respawntime + (random() * autocvar_g_vehicles_delayspawn_jitter);
self.pos1 = self.origin;
self.pos2 = self.angles;
self.tur_head.team = self.team;
+
+ if(MUTATOR_CALLHOOK(VehicleSpawn))
+ return FALSE;
return TRUE;
}