_out = autocvar_g_vehicle_bumblebee_cannon_turnlimit_in;
setorigin(this, vehic.origin + v_up * -16 + v_forward * -16 + v_right * -128);
}
+ this.oldorigin = this.origin; // negate fall damage
crosshair_trace(this);
vector _ct = trace_endpos;
player.event_damage = PlayerDamage;
player.hud = HUD_NORMAL;
player.teleportable = TELEPORT_NORMAL;
- PS(player).m_switchweapon = gunner.m_switchweapon;
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ player.(weaponentity).m_switchweapon = gunner.(weaponentity).m_switchweapon;
+ delete(gunner.(weaponentity));
+ }
player.vehicle_enter_delay = time + 2;
fixedmakevectors(vehic.angles);
player.vehicle_energy = vehic.vehicle_energy;
UNSET_ONGROUND(player);
- RemoveGrapplingHook(player);
+ RemoveGrapplingHooks(player);
- gunner.m_switchweapon = PS(player).m_switchweapon;
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+
+ gunner.(weaponentity) = new(temp_wepent);
+ gunner.(weaponentity).m_switchweapon = player.(weaponentity).m_switchweapon;
+ }
gunner.vehicle_exit = bumblebee_gunner_exit;
gunner.vehicle_hudmodel.viewmodelforclient = player;
entity vehic = this.vehicle;
return = true;
- if(gameover)
+ if(game_stopped)
{
vehic.solid = SOLID_NOT;
vehic.takedamage = DAMAGE_NO;
makevectors(vehic.angles);
vehic.angles_x *= -1;
setorigin(this, vehic.origin + v_up * 48 + v_forward * 160);
+ this.oldorigin = this.origin; // negate fall damage
PHYS_INPUT_BUTTON_ATCK(this) = PHYS_INPUT_BUTTON_ATCK2(this) = PHYS_INPUT_BUTTON_CROUCH(this) = false;
}
else
spot = this.origin + v_up * 128 - v_forward * 300;
- spot = vehicles_findgoodexit(this, spot);
+ spot = vehicles_findgoodexit(this, this.owner, spot);
// Hide beam
if(this.gun3.enemy || !wasfreed(this.gun3.enemy))