X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fvehicles%2Fvehicles.qc;h=40c90943e7d4d0b65d128aee672b8f12f1b66d20;hb=c1fc567698f48fbfa3866c7a93406edad4823a1f;hp=861f8ee4e8ff39c2f68621e52973a31e9a2ffdea;hpb=fbf83f546eb4266e347f7cb51cdcf6f07444c851;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 861f8ee4e..40c90943e 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -46,7 +46,7 @@ float SendAuxiliaryXhair(entity to, float sf) 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; @@ -101,7 +101,7 @@ void SendAuxiliaryXhair2(entity own, vector loc, vector clr, float axh_id) **/ void CSQCVehicleSetup(entity own, float vehicle_id) { - if (clienttype(own) != CLIENTTYPE_REAL) + if not(IS_REAL_CLIENT(own)) return; msg_entity = own; @@ -377,7 +377,7 @@ void vehicles_projectile_damage(entity inflictor, entity attacker, float damage, 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; } @@ -396,7 +396,7 @@ void vehicles_projectile_explode() 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); @@ -503,11 +503,11 @@ void vehicles_spawn() // 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; } @@ -544,7 +544,7 @@ void vehicles_touch() 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". } @@ -556,7 +556,7 @@ void vehicles_touch() return; } - if(other.classname != "player") + if not(IS_PLAYER(other)) return; if(other.deadflag != DEAD_NO) @@ -572,7 +572,7 @@ void vehicles_enter() { // 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 @@ -610,7 +610,7 @@ void vehicles_enter() 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) @@ -634,7 +634,7 @@ void vehicles_enter() 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); @@ -740,7 +740,7 @@ void vehicles_exit(float eject) } vehicles_exit_running = TRUE; - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { _vehicle = self.vehicle; @@ -761,7 +761,7 @@ void vehicles_exit(float eject) if (_player) { - if (clienttype(_player) == CLIENTTYPE_REAL) + if (IS_REAL_CLIENT(_player)) { msg_entity = _player; WriteByte (MSG_ONE, SVC_SETVIEWPORT); @@ -780,7 +780,7 @@ void vehicles_exit(float eject) _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; @@ -1008,7 +1008,7 @@ void vehicles_showwp_goaway() void vehicles_showwp() { - entity oldself; + entity oldself = world; vector rgb; if(self.cnt) @@ -1079,11 +1079,11 @@ void vehicles_setreturn() void vehicles_reset_colors() { entity e; - float _effects, _colormap; + float _effects = 0, _colormap; vector _glowmod, _colormod; if(autocvar_g_nodepthtestplayers) - _effects = EF_NODEPTHTEST; + _effects |= EF_NODEPTHTEST; if(autocvar_g_fullbrightplayers) _effects |= EF_FULLBRIGHT; @@ -1268,14 +1268,14 @@ float vehicle_initialize(string net_name, 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); @@ -1315,6 +1315,9 @@ float vehicle_initialize(string net_name, self.pos1 = self.origin; self.pos2 = self.angles; self.tur_head.team = self.team; + + if(MUTATOR_CALLHOOK(VehicleSpawn)) + return FALSE; return TRUE; }