#ifndef VEHICLE_BUMBLEBEE
#define VEHICLE_BUMBLEBEE
#include "bumblebee.qh"
+#ifndef MENUQC
int v_bumblebee(int);
+#endif
REGISTER_VEHICLE_SIMPLE(
/* VEH_##id */ BUMBLEBEE,
-/* function */ v_bumblebee,
/* spawnflags */ VHF_DMGSHAKE,
/* mins,maxs */ '-245 -130 -130', '230 130 130',
/* model */ "models/vehicles/bumblebee_body.dpm",
/* fullname */ _("Bumblebee")
) {
this.m_icon = "vehicle_bumble";
+#ifndef MENUQC
+ this.vehicle_func = v_bumblebee;
+#endif
}
#endif
{
entity pilot, vehic;
vector newvel;
-
+
if(intermission_running)
{
self.vehicle.velocity = '0 0 0';
self.think = vehicles_think;
self.nextthink = time;
-
+
CSQCMODEL_AUTOUPDATE();
}
self.think = bumblebee_land;
self.nextthink = time;
}
-
+
self.movetype = MOVETYPE_TOSS;
if(!self.owner)
{
if(autocvar_g_vehicle_bumblebee_bouncepain)
vehicles_impact(autocvar_g_vehicle_bumblebee_bouncepain_x, autocvar_g_vehicle_bumblebee_bouncepain_y, autocvar_g_vehicle_bumblebee_bouncepain_z);
-
+
return true;
}
case VR_ENTER:
{
self.angles_z *= 0.8;
self.angles_x *= 0.8;
-
+
self.nextthink = time;
-
+
if(!self.owner)
{
- entity oldself = self;
+ entity oldself = self;
if(self.gunner1)
{
self = self.gunner1;
other = oldother;
return true;
}
-
+
if(self.gunner2)
{
self = self.gunner2;
self.touch();
other = oldother;
return true;
- }
+ }
}
-
+
return true;
}
case VR_DEATH:
// Hide beam
if(self.gun3.enemy || !wasfreed(self.gun3.enemy))
self.gun3.enemy.effects |= EF_NODRAW;
-
+
if(self.gunner1)
{
self = self.gunner1;
_body.touch = bumblebee_blowup;
else
_body.touch = func_null;
-
+
_body.think = bumblebee_diethink;
_body.nextthink = time;
_body.wait = time + 2 + (random() * 8);
_body.angles = self.angles;
Send_Effect("explosion_medium", findbetterlocation(self.origin, 16), '0 0 0', 1);
-
+
self.health = 0;
self.event_damage = func_null;
self.solid = SOLID_NOT;
setorigin(self.gun2.vehicle_viewport, '-85 0 50');
self.scale = 1.5;
-
+
// Raygun beam
if(self.gun3.enemy == world)
- {
+ {
self.gun3.enemy = spawn();
Net_LinkEntity(self.gun3.enemy, true, 0, bumble_raygun_send);
- self.gun3.enemy.SendFlags = BRG_SETUP;
- self.gun3.enemy.cnt = autocvar_g_vehicle_bumblebee_raygun;
+ self.gun3.enemy.SendFlags = BRG_SETUP;
+ self.gun3.enemy.cnt = autocvar_g_vehicle_bumblebee_raygun;
self.gun3.enemy.effects = EF_NODRAW | EF_LOWPRECISION;
}
}
self.solid = SOLID_BBOX;
self.movetype = MOVETYPE_TOSS;
self.damageforcescale = 0.025;
-
+
self.PlayerPhysplug = bumblebee_pilot_frame;
-
+
setorigin(self, self.origin + '0 0 25');
return true;
}
if(autocvar_g_vehicle_bumblebee_health_regen)
self.vehicle_flags |= VHF_HEALTHREGEN;
-
+
self.vehicle_exit = bumblebee_exit;
self.respawntime = autocvar_g_vehicle_bumblebee_respawntime;
self.vehicle_health = autocvar_g_vehicle_bumblebee_health;
self.max_health = self.vehicle_health;
self.vehicle_shield = autocvar_g_vehicle_bumblebee_shield;
-
+
return true;
}
case VR_PRECACHE: