X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fvehicles%2Fsv_vehicles.qc;h=e8ab69a30bf38b1e50807b2636ed8b065c7a0a5f;hb=d492869ab1f18e05121529b7bcffcb637d13994c;hp=75d2f4635889e0d78b04229fff77ad0a5794ccf3;hpb=3bbcff2475d1b2efc1314a358bf60c6fba6e4be6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/vehicles/sv_vehicles.qc b/qcsrc/common/vehicles/sv_vehicles.qc index 75d2f4635..e8ab69a30 100644 --- a/qcsrc/common/vehicles/sv_vehicles.qc +++ b/qcsrc/common/vehicles/sv_vehicles.qc @@ -541,7 +541,7 @@ void vehicle_use(entity this, entity actor, entity trigger) else this.active = ACTIVE_ACTIVE; - if(this.active == ACTIVE_ACTIVE && !IS_DEAD(this) && !gameover) + if(this.active == ACTIVE_ACTIVE && !IS_DEAD(this) && !game_stopped) { LOG_DEBUG("Respawning vehicle: ", this.netname); if(this.effects & EF_NODRAW) @@ -737,9 +737,10 @@ void vehicles_impact(entity this, float _minspeed, float _speedfac, float _maxpa } // vehicle enter/exit handling -vector vehicles_findgoodexit(entity this, vector prefer_spot) +vector vehicles_findgoodexit(entity this, entity player, vector prefer_spot) { - tracebox(this.origin + '0 0 32', STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), prefer_spot, MOVE_NORMAL, this.owner); + // TODO: we actually want the player's size here + tracebox(this.origin + '0 0 32', PL_MIN_CONST, PL_MAX_CONST, prefer_spot, MOVE_NORMAL, player); if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid) return prefer_spot; @@ -751,7 +752,7 @@ vector vehicles_findgoodexit(entity this, vector prefer_spot) v = randomvec(); v_z = 0; v = v2 + normalize(v) * mysize; - tracebox(v2, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), v, MOVE_NORMAL, this.owner); + tracebox(v2, PL_MIN_CONST, PL_MAX_CONST, v, MOVE_NORMAL, player); if(trace_fraction == 1.0 && !trace_startsolid && !trace_allsolid) return v; } @@ -793,7 +794,7 @@ void vehicles_exit(entity vehic, bool eject) WriteAngle(MSG_ONE, 0); } - setsize(player, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL)); + setsize(player, STAT(PL_MIN,player), STAT(PL_MAX, player)); player.takedamage = DAMAGE_AIM; player.solid = SOLID_SLIDEBOX; @@ -803,7 +804,7 @@ void vehicles_exit(entity vehic, bool eject) player.alpha = 1; player.PlayerPhysplug = func_null; player.vehicle = NULL; - player.view_ofs = STAT(PL_VIEW_OFS, NULL); + player.view_ofs = STAT(PL_VIEW_OFS, player); player.event_damage = PlayerDamage; player.hud = HUD_NORMAL; for(int slot = 0; slot < MAX_WEAPONSLOTS; ++ slot) @@ -905,7 +906,7 @@ bool vehicle_impulse(entity this, int imp) void vehicles_enter(entity pl, entity veh) { - // Remove this when bots know how to use vehicles + // Remove this when bots know how to use vehicles if((IS_BOT_CLIENT(pl) && !autocvar_g_vehicles_allow_bots)) return; @@ -964,8 +965,8 @@ void vehicles_enter(entity pl, entity veh) veh.vehicle_hudmodel.viewmodelforclient = pl; pl.crouch = false; - pl.view_ofs = STAT(PL_VIEW_OFS, NULL); - setsize (pl, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL)); + pl.view_ofs = STAT(PL_VIEW_OFS, pl); + setsize (pl, STAT(PL_MIN, pl), STAT(PL_MAX, pl)); veh.event_damage = vehicles_damage; veh.nextthink = 0; @@ -1185,6 +1186,7 @@ bool vehicle_initialize(entity this, Vehicle info, bool nodrop) this.iscreature = true; this.teleportable = false; // no teleporting for vehicles, too buggy this.damagedbycontents = true; + IL_PUSH(g_damagedbycontents, this); this.vehicleid = info.vehicleid; this.PlayerPhysplug = info.PlayerPhysplug; this.event_damage = func_null; @@ -1242,7 +1244,7 @@ bool vehicle_initialize(entity this, Vehicle info, bool nodrop) else this.nextthink = time + game_starttime; - if(!MUTATOR_CALLHOOK(VehicleInit, this)) + if(MUTATOR_CALLHOOK(VehicleInit, this)) return false; return true;