_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;
// Pitch
ftmp = 0;
- if(this.movement.x > 0 && vang.x < autocvar_g_vehicle_bumblebee_pitchlimit)
+ if(CS(this).movement.x > 0 && vang.x < autocvar_g_vehicle_bumblebee_pitchlimit)
ftmp = 4;
- else if(this.movement.x < 0 && vang.x > -autocvar_g_vehicle_bumblebee_pitchlimit)
+ else if(CS(this).movement.x < 0 && vang.x > -autocvar_g_vehicle_bumblebee_pitchlimit)
ftmp = -8;
newvel.x = bound(-autocvar_g_vehicle_bumblebee_pitchlimit, newvel.x , autocvar_g_vehicle_bumblebee_pitchlimit);
makevectors('0 1 0' * vehic.angles.y);
newvel = vehic.velocity * -autocvar_g_vehicle_bumblebee_friction;
- if(this.movement.x != 0)
+ if(CS(this).movement.x != 0)
{
- if(this.movement.x > 0)
+ if(CS(this).movement.x > 0)
newvel += v_forward * autocvar_g_vehicle_bumblebee_speed_forward;
- else if(this.movement.x < 0)
+ else if(CS(this).movement.x < 0)
newvel -= v_forward * autocvar_g_vehicle_bumblebee_speed_forward;
}
- if(this.movement.y != 0)
+ if(CS(this).movement.y != 0)
{
- if(this.movement.y < 0)
+ if(CS(this).movement.y < 0)
newvel -= v_right * autocvar_g_vehicle_bumblebee_speed_strafe;
- else if(this.movement.y > 0)
+ else if(CS(this).movement.y > 0)
newvel += v_right * autocvar_g_vehicle_bumblebee_speed_strafe;
ftmp = newvel * v_right;
ftmp *= dt * 0.1;
newvel += v_up * autocvar_g_vehicle_bumblebee_speed_up;
vehic.velocity += newvel * dt;
- this.velocity = this.movement = vehic.velocity;
+ this.velocity = CS(this).movement = vehic.velocity;
if(autocvar_g_vehicle_bumblebee_healgun_locktime)
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))