From: Mario Date: Mon, 27 Jul 2015 17:01:23 +0000 (+1000) Subject: Remove some leftovers from merge X-Git-Tag: xonotic-v0.8.2~2059^2~2 X-Git-Url: http://de.git.xonotic.org/?a=commitdiff_plain;ds=sidebyside;h=ad415a3b4e5ec559b143c81080dd705875533449;hp=-c;p=xonotic%2Fxonotic-data.pk3dir.git Remove some leftovers from merge --- ad415a3b4e5ec559b143c81080dd705875533449 diff --git a/qcsrc/client/vehicles/all.qc b/qcsrc/client/vehicles/all.qc deleted file mode 100644 index ba92d7c31..000000000 --- a/qcsrc/client/vehicles/all.qc +++ /dev/null @@ -1,1054 +0,0 @@ -#include "all.qh" -#include "../_all.qh" - -#include "../../common/movetypes/movetypes.qh" -#include "../prandom.qh" -#include "../scoreboard.qh" -#include "../t_items.qh" - -#include "../../common/buffs.qh" -#include "../../common/constants.qh" -#include "../../common/movetypes/movetypes.qh" -#include "../../common/stats.qh" -#include "../../common/util.qh" - -#include "../../csqcmodellib/cl_model.qh" - -.float cnt; - -const string hud_bg = "gfx/vehicles/frame.tga"; -const string hud_sh = "gfx/vehicles/vh-shield.tga"; - -const string hud_hp_bar = "gfx/vehicles/bar_up_left.tga"; -const string hud_hp_ico = "gfx/vehicles/health.tga"; -const string hud_sh_bar = "gfx/vehicles/bar_dwn_left.tga"; -const string hud_sh_ico = "gfx/vehicles/shield.tga"; - -const string hud_ammo1_bar = "gfx/vehicles/bar_up_right.tga"; -const string hud_ammo1_ico = "gfx/vehicles/bullets.tga"; -const string hud_ammo2_bar = "gfx/vehicles/bar_dwn_right.tga"; -const string hud_ammo2_ico = "gfx/vehicles/rocket.tga"; -const string hud_energy = "gfx/vehicles/energy.tga"; - -const int SBRM_FIRST = 1; -const int SBRM_VOLLY = 1; -const int SBRM_GUIDE = 2; -const int SBRM_ARTILLERY = 3; -const int SBRM_LAST = 3; - -const int RSM_FIRST = 1; -const int RSM_BOMB = 1; -const int RSM_FLARE = 2; -const int RSM_LAST = 2; - -entity dropmark; -float autocvar_cl_vehicles_hudscale = 0.5; -float autocvar_cl_vehicles_hudalpha = 0.75; - -const string raptor_ico = "gfx/vehicles/raptor.tga"; -const string raptor_gun = "gfx/vehicles/raptor_guns.tga"; -const string raptor_bomb = "gfx/vehicles/raptor_bombs.tga"; -const string raptor_drop = "gfx/vehicles/axh-dropcross.tga"; -string raptor_xhair; - - - -const int MAX_AXH = 4; -entity AuxiliaryXhairs[MAX_AXH]; - -entityclass(AuxiliaryXhair); -class(AuxiliaryXhair) .string axh_image; -class(AuxiliaryXhair) .float axh_fadetime; -class(AuxiliaryXhair) .float axh_drawflag; -class(AuxiliaryXhair) .float axh_scale; - -const string bumb_ico = "gfx/vehicles/bumb.tga"; -const string bumb_lgun = "gfx/vehicles/bumb_lgun.tga"; -const string bumb_rgun = "gfx/vehicles/bumb_rgun.tga"; - -const string bumb_gun_ico = "gfx/vehicles/bumb_side.tga"; -const string bumb_gun_gun = "gfx/vehicles/bumb_side_gun.tga"; - -const string spider_ico = "gfx/vehicles/sbot.tga"; -const string spider_rkt = "gfx/vehicles/sbot_rpods.tga"; -const string spider_mgun = "gfx/vehicles/sbot_mguns.tga"; -string spider_xhair; // = "gfx/vehicles/axh-special1.tga"; - -const string waki_ico = "gfx/vehicles/waki.tga"; -const string waki_eng = "gfx/vehicles/waki_e.tga"; -const string waki_gun = "gfx/vehicles/waki_guns.tga"; -const string waki_rkt = "gfx/vehicles/waki_rockets.tga"; -const string waki_xhair = "gfx/vehicles/axh-special1.tga"; - -float alarm1time; -float alarm2time; -int weapon2mode; - -void AuxiliaryXhair_Draw2D() -{ - vector loc, psize; - - psize = self.axh_scale * draw_getimagesize(self.axh_image); - loc = project_3d_to_2d(self.move_origin) - 0.5 * psize; - if (!(loc.z < 0 || loc.x < 0 || loc.y < 0 || loc.x > vid_conwidth || loc.y > vid_conheight)) - { - loc.z = 0; - psize.z = 0; - drawpic(loc, self.axh_image, psize, self.colormod, self.alpha, self.axh_drawflag); - } - - if(time - self.cnt > self.axh_fadetime) - self.draw2d = func_null; -} - -void Net_AuXair2(bool bIsNew) -{ - int axh_id = bound(0, ReadByte(), MAX_AXH); - entity axh = AuxiliaryXhairs[axh_id]; - - if(axh == world || wasfreed(axh)) // MADNESS? THIS IS QQQQCCCCCCCCC (wasfreed, why do you exsist?) - { - axh = spawn(); - axh.draw2d = func_null; - axh.drawmask = MASK_NORMAL; - axh.axh_drawflag = DRAWFLAG_ADDITIVE; - axh.axh_fadetime = 0.1; - axh.axh_image = "gfx/vehicles/axh-ring.tga"; - axh.axh_scale = 1; - axh.alpha = 1; - AuxiliaryXhairs[axh_id] = axh; - } - - axh.move_origin_x = ReadCoord(); - axh.move_origin_y = ReadCoord(); - axh.move_origin_z = ReadCoord(); - axh.colormod_x = ReadByte() / 255; - axh.colormod_y = ReadByte() / 255; - axh.colormod_z = ReadByte() / 255; - axh.cnt = time; - axh.draw2d = AuxiliaryXhair_Draw2D; -} - -void Net_VehicleSetup() -{ - int hud_id = ReadByte(); - - // Weapon update? - if(hud_id > HUD_VEHICLE_LAST) - { - weapon2mode = hud_id - HUD_VEHICLE_LAST; - return; - } - - // hud_id == 0 means we exited a vehicle, so stop alarm sound/s - if(hud_id == 0) - { - sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - return; - } - - hud_id = bound(HUD_VEHICLE_FIRST, hud_id, HUD_VEHICLE_LAST); - - // Init auxiliary crosshairs - int i; - for(i = 0; i < MAX_AXH; ++i) - { - entity axh = AuxiliaryXhairs[i]; - if(axh != world && !wasfreed(axh)) // MADNESS? THIS IS QQQQCCCCCCCCC (wasfreed, why do you exsist?) - remove(axh); - - axh = spawn(); - axh.draw2d = func_null; - axh.drawmask = MASK_NORMAL; - axh.axh_drawflag = DRAWFLAG_NORMAL; - axh.axh_fadetime = 0.1; - axh.axh_image = "gfx/vehicles/axh-ring.tga"; - axh.axh_scale = 1; - axh.alpha = 1; - AuxiliaryXhairs[i] = axh; - } - - switch(hud_id) - { - case HUD_SPIDERBOT: - // Minigun1 - AuxiliaryXhairs[0].axh_image = "gfx/vehicles/axh-ring.tga"; - AuxiliaryXhairs[0].axh_scale = 0.25; - // Minigun2 - AuxiliaryXhairs[1].axh_image = "gfx/vehicles/axh-ring.tga"; - AuxiliaryXhairs[1].axh_scale = 0.25; - // Rocket - AuxiliaryXhairs[2].axh_image = "gfx/vehicles/axh-special1.tga"; - AuxiliaryXhairs[2].axh_scale = 0.5; - break; - - case HUD_WAKIZASHI: - AuxiliaryXhairs[0].axh_image = "gfx/vehicles/axh-bracket.tga"; - AuxiliaryXhairs[0].axh_scale = 0.25; - break; - - case HUD_RAPTOR: - AuxiliaryXhairs[0].axh_image = "gfx/vehicles/axh-special2.tga"; - AuxiliaryXhairs[0].axh_scale = 0.5; - //AuxiliaryXhair[0].alpha = 0.5; - - AuxiliaryXhairs[1].axh_image = "gfx/vehicles/axh-bracket.tga"; - AuxiliaryXhairs[1].axh_scale = 0.25; - //AuxiliaryXhair[1].alpha = 0.75; - //AuxiliaryXhair[1].axh_drawflag = DRAWFLAG_NORMAL; - break; - - case HUD_BUMBLEBEE: - // Raygun-locked - AuxiliaryXhairs[0].axh_image = "gfx/vehicles/axh-bracket.tga"; - AuxiliaryXhairs[0].axh_scale = 0.5; - - // Gunner1 - AuxiliaryXhairs[1].axh_image = "gfx/vehicles/axh-target.tga"; - AuxiliaryXhairs[1].axh_scale = 0.75; - - // Gunner2 - AuxiliaryXhairs[2].axh_image = "gfx/vehicles/axh-target.tga"; - AuxiliaryXhairs[2].axh_scale = 0.75; - break; - case HUD_BUMBLEBEE_GUN: - // Plasma cannons - AuxiliaryXhairs[0].axh_image = "gfx/vehicles/axh-bracket.tga"; - AuxiliaryXhairs[0].axh_scale = 0.25; - // Raygun - AuxiliaryXhairs[1].axh_image = "gfx/vehicles/axh-bracket.tga"; - AuxiliaryXhairs[1].axh_scale = 0.25; - break; - } -} -#define HUD_GETSTATS \ - int vh_health = getstati(STAT_VEHICLESTAT_HEALTH); \ - float shield = getstati(STAT_VEHICLESTAT_SHIELD); \ - noref int energy = getstati(STAT_VEHICLESTAT_ENERGY); \ - noref float ammo1 = getstati(STAT_VEHICLESTAT_AMMO1); \ - noref float reload1 = getstati(STAT_VEHICLESTAT_RELOAD1); \ - noref int ammo2 = getstati(STAT_VEHICLESTAT_AMMO2); \ - noref int reload2 = getstati(STAT_VEHICLESTAT_RELOAD2); - -void CSQC_BUMBLE_HUD() -{ -/* - drawpic(hudloc, waki_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_b, picsize, '0 1 0' * health + '1 0 0' * (1 - health), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_r, picsize, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_e, picsize, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); -*/ - if(autocvar_r_letterbox) - return; - - vector picsize, hudloc = '0 0 0', pic2size, picloc; - - // Fetch health & ammo stats - HUD_GETSTATS - - picsize = draw_getimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; - hudloc.y = vid_conheight - picsize.y; - hudloc.x = vid_conwidth * 0.5 - picsize.x * 0.5; - - drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); - - shield *= 0.01; - vh_health *= 0.01; - energy *= 0.01; - reload1 *= 0.01; - - pic2size = draw_getimagesize(bumb_ico) * (autocvar_cl_vehicles_hudscale * 0.8); - picloc = picsize * 0.5 - pic2size * 0.5; - - if(vh_health < 0.25) - drawpic(hudloc + picloc, bumb_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, bumb_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); - - drawpic(hudloc + picloc, bumb_lgun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, bumb_lgun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); - -// Health bar - picsize = draw_getimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; - picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; - if(vh_health < 0.25) - { - if(alarm1time < time) - { - alarm1time = time + 2; - sound(self, CH_PAIN_SINGLE, "vehicles/alarm.wav", VOL_BASEVOICE, ATTEN_NONE); - } - - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm1time) - { - sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm1time = 0; - } - } - -// Shield bar - picsize = draw_getimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - shield)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; - picsize = draw_getimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; - if(shield < 0.25) - { - if(alarm2time < time) - { - alarm2time = time + 1; - sound(self, CH_TRIGGER_SINGLE, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTEN_NONE); - } - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm2time) - { - sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm2time = 0; - } - } - - ammo1 *= 0.01; - ammo2 *= 0.01; - -// Gunner1 bar - picsize = draw_getimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, picloc.y, picsize.x * ammo1, vid_conheight); - drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); - -// Right gunner slot occupied? - if(!AuxiliaryXhairs[1].draw2d) - { - shield = (picsize.x * 0.5) - (0.5 * stringwidth(_("No right gunner!"), false, '1 0 0' * picsize.y + '0 1 0' * picsize.y)); - drawfill(hudloc + picloc - '0.2 0.2 0', picsize + '0.4 0.4 0', '0.25 0.25 0.25', 0.75, DRAWFLAG_NORMAL); - drawstring(hudloc + picloc + '1 0 0' * shield, _("No right gunner!"), '1 0 0' * picsize.y + '0 1 0' * picsize.y, '1 0 0' + '0 1 1' * sin(time * 10), 1, DRAWFLAG_NORMAL); - } - -// .. and icon - picsize = 1.5 * draw_getimagesize(hud_energy) * autocvar_cl_vehicles_hudscale; - picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; - if(ammo1 < 0.2) - drawpic(hudloc + picloc, hud_energy, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_energy, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - -// Gunner2 bar - picsize = draw_getimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, picloc.y, picsize.x * ammo2, vid_conheight); - drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// Left gunner slot occupied? - if(!AuxiliaryXhairs[2].draw2d) - { - shield = (picsize.x * 0.5) - (0.5 * stringwidth(_("No left gunner!"), false, '1 0 0' * picsize.y + '0 1 0' * picsize.y)); - drawfill(hudloc + picloc - '0.2 0.2 0', picsize + '0.4 0.4 0', '0.25 0.25 0.25', 0.75, DRAWFLAG_NORMAL); - drawstring(hudloc + picloc + '1 0 0' * shield, _("No left gunner!"), '1 0 0' * picsize.y + '0 1 0' * picsize.y, '1 0 0' + '0 1 1' * sin(time * 10), 1, DRAWFLAG_NORMAL); - } - -// .. and icon - picsize = 1.5 * draw_getimagesize(hud_energy) * autocvar_cl_vehicles_hudscale; - picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; - if(ammo2 < 0.2) - drawpic(hudloc + picloc, hud_energy, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_energy, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - if (scoreboard_showscores) - HUD_DrawScoreboard(); - else - { - picsize = draw_getimagesize(waki_xhair); - picsize.x *= 0.5; - picsize.y *= 0.5; - drawpic('0.5 0 0' * (vid_conwidth - picsize.x) + '0 0.5 0' * (vid_conheight - picsize.y), waki_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - } - -} - -void CSQC_BUMBLE_GUN_HUD() -{ - - if(autocvar_r_letterbox) - return; - - vector picsize, hudloc = '0 0 0', pic2size, picloc; - - // Fetch health & ammo stats - HUD_GETSTATS - - picsize = draw_getimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; - hudloc.y = vid_conheight - picsize.y; - hudloc.x = vid_conwidth * 0.5 - picsize.x * 0.5; - - drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); - - shield *= 0.01; - vh_health *= 0.01; - energy *= 0.01; - reload1 *= 0.01; - - pic2size = draw_getimagesize(bumb_gun_ico) * (autocvar_cl_vehicles_hudscale * 0.8); - picloc = picsize * 0.5 - pic2size * 0.5; - - if(vh_health < 0.25) - drawpic(hudloc + picloc, bumb_gun_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, bumb_gun_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); - - drawpic(hudloc + picloc, bumb_gun_gun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); - -// Health bar - picsize = draw_getimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; - picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; - if(vh_health < 0.25) - { - if(alarm1time < time) - { - alarm1time = time + 2; - sound(self, CH_PAIN_SINGLE, "vehicles/alarm.wav", VOL_BASEVOICE, ATTEN_NONE); - } - - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm1time) - { - sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm1time = 0; - } - } - -// Shield bar - picsize = draw_getimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - shield)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; - picsize = draw_getimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; - if(shield < 0.25) - { - if(alarm2time < time) - { - alarm2time = time + 1; - sound(self, CH_TRIGGER_SINGLE, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTEN_NONE); - } - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm2time) - { - sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm2time = 0; - } - } - -// Gun bar - picsize = draw_getimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, picloc.y, picsize.x * energy, vid_conheight); - drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); - -// .. and icon - picsize = 1.5 * draw_getimagesize(hud_energy) * autocvar_cl_vehicles_hudscale; - picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; - if(energy < 0.2) - drawpic(hudloc + picloc, hud_energy, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_energy, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - if (scoreboard_showscores) - HUD_DrawScoreboard(); - /* - else - { - picsize = draw_getimagesize(waki_xhair); - picsize_x *= 0.5; - picsize_y *= 0.5; - - - drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), waki_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - } - */ -} - - - -void CSQC_SPIDER_HUD() -{ - if(autocvar_r_letterbox) - return; - - vector picsize, hudloc = '0 0 0', pic2size, picloc; - int i; - - // Fetch health & ammo stats - HUD_GETSTATS - - picsize = draw_getimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; - hudloc.y = vid_conheight - picsize.y; - hudloc.x = vid_conwidth * 0.5 - picsize.x * 0.5; - - drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); - - ammo1 *= 0.01; - shield *= 0.01; - vh_health *= 0.01; - reload2 *= 0.01; - - pic2size = draw_getimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); - picloc = picsize * 0.5 - pic2size * 0.5; - if(vh_health < 0.25) - drawpic(hudloc + picloc, spider_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, spider_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, spider_rkt, pic2size, '1 1 1' * reload2 + '1 0 0' * (1 - reload2), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, spider_mgun, pic2size, '1 1 1' * ammo1 + '1 0 0' * (1 - ammo1), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); - -// Health bar - picsize = draw_getimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; - picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; - if(vh_health < 0.25) - { - if(alarm1time < time) - { - alarm1time = time + 2; - sound(self, CH_PAIN_SINGLE, "vehicles/alarm.wav", VOL_BASEVOICE, ATTEN_NONE); - } - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm1time) - { - sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm1time = 0; - } - } -// Shield bar - picsize = draw_getimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - shield)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; - picsize = draw_getimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; - if(shield < 0.25) - { - if(alarm2time < time) - { - alarm2time = time + 1; - sound(self, CH_TRIGGER_SINGLE, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTEN_NONE); - } - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm2time) - { - sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm2time = 0; - } - } - -// Minigun bar - picsize = draw_getimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, picloc.y, picsize.x * ammo1, vid_conheight); - drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; - picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; - if(ammo1 < 0.2) - drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - -// Rocket ammo bar - picsize = draw_getimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; - ammo1 = picsize.x / 8; - picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, hudloc.y + picloc.y, picsize.x * reload2, vid_conheight); - drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); - -// .. and icons - pic2size = 0.35 * draw_getimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; - picloc.x -= pic2size.x; - picloc.y += pic2size.y * 2.25; - if(ammo2 == 9) - { - for(i = 1; i < 9; ++i) - { - picloc.x += ammo1; - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, ((8 * reload2 <= i) ? '0 0 0' : '1 1 1'), 0.75, DRAWFLAG_NORMAL); - } - } - else - { - for(i = 1; i < 9; ++i) - { - picloc.x += ammo1; - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, ((i >= ammo2) ? '1 1 1' : '0 0 0'), 0.75, DRAWFLAG_NORMAL); - } - } - pic2size = draw_getimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; - picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; - if(ammo2 == 9) - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); - - if (scoreboard_showscores) - HUD_DrawScoreboard(); - else - { - switch(weapon2mode) - { - case SBRM_VOLLY: - spider_xhair = "gfx/vehicles/axh-bracket.tga"; - break; - case SBRM_GUIDE: - spider_xhair = "gfx/vehicles/axh-cross.tga"; - break; - case SBRM_ARTILLERY: - spider_xhair = "gfx/vehicles/axh-tag.tga"; - break; - default: - spider_xhair= "gfx/vehicles/axh-tag.tga"; - } - - picsize = draw_getimagesize(spider_xhair); - picsize.x *= autocvar_cl_vehicle_spiderbot_cross_size; - picsize.y *= autocvar_cl_vehicle_spiderbot_cross_size; - - drawpic('0.5 0 0' * (vid_conwidth - picsize.x) + '0 0.5 0' * (vid_conheight - picsize.y), spider_xhair, picsize, '1 1 1', autocvar_cl_vehicle_spiderbot_cross_alpha, DRAWFLAG_ADDITIVE); - } -} - -void CSQC_RAPTOR_HUD() -{ - if(autocvar_r_letterbox) - return; - - vector picsize, hudloc = '0 0 0', pic2size, picloc; - - // Fetch health & ammo stats - HUD_GETSTATS - - picsize = draw_getimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; - hudloc.y = vid_conheight - picsize.y; - hudloc.x = vid_conwidth * 0.5 - picsize.x * 0.5; - - drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); - - ammo1 *= 0.01; - ammo2 *= 0.01; - shield *= 0.01; - vh_health *= 0.01; - energy *= 0.01; - reload1 = reload2 * 0.01; - //reload2 *= 0.01; - - pic2size = draw_getimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); - picloc = picsize * 0.5 - pic2size * 0.5; - if(vh_health < 0.25) - drawpic(hudloc + picloc, raptor_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, raptor_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, raptor_bomb, pic2size, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, raptor_gun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); - -// Health bar - picsize = draw_getimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; - picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; - if(vh_health < 0.25) - { - if(alarm1time < time) - { - alarm1time = time + 2; - sound(self, CH_PAIN_SINGLE, "vehicles/alarm.wav", VOL_BASEVOICE, ATTEN_NONE); - } - - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm1time) - { - sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm1time = 0; - } - } - -// Shield bar - picsize = draw_getimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - shield)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; - picsize = draw_getimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; - if(shield < 0.25) - { - if(alarm2time < time) - { - alarm2time = time + 1; - sound(self, CH_TRIGGER_SINGLE, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTEN_NONE); - } - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm2time) - { - sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm2time = 0; - } - } - -// Gun bar - picsize = draw_getimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, picloc.y, picsize.x * energy, vid_conheight); - drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; - picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; - if(energy < 0.2) - drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - -// Bomb bar - picsize = draw_getimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, hudloc.y + picloc.y, picsize.x * reload1, vid_conheight); - drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - pic2size = draw_getimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; - picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; - if(reload1 != 1) - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); - - if(weapon2mode == RSM_FLARE) - { - raptor_xhair = "gfx/vehicles/axh-bracket.tga"; - } - else - { - raptor_xhair = "gfx/vehicles/axh-ring.tga"; - - // Bombing crosshair - if(!dropmark) - { - dropmark = spawn(); - dropmark.owner = self; - dropmark.gravity = 1; - } - - if(reload2 == 100) - { - vector where; - - setorigin(dropmark, pmove_org); - dropmark.velocity = pmove_vel; - tracetoss(dropmark, self); - - where = project_3d_to_2d(trace_endpos); - - setorigin(dropmark, trace_endpos); - picsize = draw_getimagesize(raptor_drop) * 0.2; - - if (!(where.z < 0 || where.x < 0 || where.y < 0 || where.x > vid_conwidth || where.y > vid_conheight)) - { - where.x -= picsize.x * 0.5; - where.y -= picsize.y * 0.5; - where.z = 0; - drawpic(where, raptor_drop, picsize, '0 2 0', 1, DRAWFLAG_ADDITIVE); - } - dropmark.cnt = time + 5; - } - else - { - vector where; - if(dropmark.cnt > time) - { - where = project_3d_to_2d(dropmark.origin); - picsize = draw_getimagesize(raptor_drop) * 0.25; - - if (!(where.z < 0 || where.x < 0 || where.y < 0 || where.x > vid_conwidth || where.y > vid_conheight)) - { - where.x -= picsize.x * 0.5; - where.y -= picsize.y * 0.5; - where.z = 0; - drawpic(where, raptor_drop, picsize, '2 0 0', 1, DRAWFLAG_ADDITIVE); - } - } - } - } - - if (scoreboard_showscores) - HUD_DrawScoreboard(); - else - { - picsize = draw_getimagesize(raptor_xhair); - picsize.x *= 0.5; - picsize.y *= 0.5; - - drawpic('0.5 0 0' * (vid_conwidth - picsize.x) + '0 0.5 0' * (vid_conheight - picsize.y), raptor_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - } -} - -void CSQC_WAKIZASHI_HUD() -{ -/* - drawpic(hudloc, waki_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_b, picsize, '0 1 0' * health + '1 0 0' * (1 - health), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_r, picsize, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_e, picsize, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); -*/ - if(autocvar_r_letterbox) - return; - - vector picsize, hudloc = '0 0 0', pic2size, picloc; - - // Fetch health & ammo stats - HUD_GETSTATS - - picsize = draw_getimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; - hudloc.y = vid_conheight - picsize.y; - hudloc.x = vid_conwidth * 0.5 - picsize.x * 0.5; - - drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); - - shield *= 0.01; - vh_health *= 0.01; - energy *= 0.01; - reload1 *= 0.01; - - pic2size = draw_getimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); - picloc = picsize * 0.5 - pic2size * 0.5; - if(vh_health < 0.25) - drawpic(hudloc + picloc, waki_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, waki_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, waki_eng, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, waki_gun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, waki_rkt, pic2size, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); - drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); - -// Health bar - picsize = draw_getimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; - picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; - if(vh_health < 0.25) - { - if(alarm1time < time) - { - alarm1time = time + 2; - sound(self, CH_PAIN_SINGLE, "vehicles/alarm.wav", VOL_BASEVOICE, ATTEN_NONE); - } - - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm1time) - { - sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm1time = 0; - } - } - - -// Shield bar - picsize = draw_getimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; - picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x + (picsize.x * (1 - shield)), 0, vid_conwidth, vid_conheight); - drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; - picsize = draw_getimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; - if(shield < 0.25) - { - if(alarm2time < time) - { - alarm2time = time + 1; - sound(self, CH_TRIGGER_SINGLE, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTEN_NONE); - } - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - } - else - { - drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - if(alarm2time) - { - sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTEN_NONE); - alarm2time = 0; - } - } - -// Gun bar - picsize = draw_getimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, picloc.y, picsize.x * energy, vid_conheight); - drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - picsize = draw_getimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; - picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; - if(energy < 0.2) - drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - -// Bomb bar - picsize = draw_getimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; - picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; - drawsetcliparea(hudloc.x + picloc.x, hudloc.y + picloc.y, picsize.x * reload1, vid_conheight); - drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawresetcliparea(); -// .. and icon - pic2size = draw_getimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; - picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; - if(reload1 != 1) - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); - else - drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); - - if (scoreboard_showscores) - HUD_DrawScoreboard(); - else - { - picsize = draw_getimagesize(waki_xhair); - picsize.x *= 0.5; - picsize.y *= 0.5; - - - drawpic('0.5 0 0' * (vid_conwidth - picsize.x) + '0 0.5 0' * (vid_conheight - picsize.y), waki_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - } -} - -void Vehicles_Precache() -{ - precache_model("models/vehicles/bomblet.md3"); - precache_model("models/vehicles/clusterbomb.md3"); - precache_model("models/vehicles/clusterbomb_fragment.md3"); - precache_model("models/vehicles/rocket01.md3"); - precache_model("models/vehicles/rocket02.md3"); - - precache_sound ("vehicles/alarm.wav"); - precache_sound ("vehicles/alarm_shield.wav"); -} - -void RaptorCBShellfragDraw() -{ - if(wasfreed(self)) - return; - - Movetype_Physics_MatchTicrate(autocvar_cl_gibs_ticrate, autocvar_cl_gibs_sloppy); - self.move_avelocity += randomvec() * 15; - self.renderflags = 0; - - if(self.cnt < time) - self.alpha = bound(0, self.nextthink - time, 1); - - if(self.alpha < ALPHA_MIN_VISIBLE) - remove(self); -} - -void RaptorCBShellfragToss(vector _org, vector _vel, vector _ang) -{ - entity sfrag; - - sfrag = spawn(); - setmodel(sfrag, "models/vehicles/clusterbomb_fragment.md3"); - setorigin(sfrag, _org); - - sfrag.move_movetype = MOVETYPE_BOUNCE; - sfrag.gravity = 0.15; - sfrag.solid = SOLID_CORPSE; - - sfrag.draw = RaptorCBShellfragDraw; - - sfrag.move_origin = sfrag.origin = _org; - sfrag.move_velocity = _vel; - sfrag.move_avelocity = prandomvec() * vlen(sfrag.move_velocity); - sfrag.angles = self.move_angles = _ang; - - sfrag.move_time = time; - sfrag.damageforcescale = 4; - - sfrag.nextthink = time + 3; - sfrag.cnt = time + 2; - sfrag.alpha = 1; - sfrag.drawmask = MASK_NORMAL; -} diff --git a/qcsrc/client/vehicles/bumblebee.qc b/qcsrc/client/vehicles/bumblebee.qc deleted file mode 100644 index 1304d3a2e..000000000 --- a/qcsrc/client/vehicles/bumblebee.qc +++ /dev/null @@ -1,12 +0,0 @@ -#include "../damage.qh" -#include "../defs.qh" -#include "../gibs.qh" -#include "../hook.qh" -#include "../main.qh" -#include "../wall.qh" - -#include "../weapons/projectile.qh" - -#include "../../common/movetypes/movetypes.qh" - -#include "../../server/vehicles/bumblebee.qc" diff --git a/qcsrc/server/vehicles/racer.qc b/qcsrc/server/vehicles/racer.qc deleted file mode 100644 index 8cecdfa84..000000000 --- a/qcsrc/server/vehicles/racer.qc +++ /dev/null @@ -1,687 +0,0 @@ -#include "vehicle.qh" -#include "racer.qh" - -#ifdef SVQC -#include "../../common/triggers/trigger/impulse.qh" - -void racer_exit(float eject); -void racer_enter(); - -// Auto cvars -float autocvar_g_vehicle_racer; - -float autocvar_g_vehicle_racer_speed_afterburn; -float autocvar_g_vehicle_racer_afterburn_cost; - -float autocvar_g_vehicle_racer_anglestabilizer; -float autocvar_g_vehicle_racer_downforce; - -float autocvar_g_vehicle_racer_speed_forward; -float autocvar_g_vehicle_racer_speed_strafe; -float autocvar_g_vehicle_racer_springlength; -float autocvar_g_vehicle_racer_upforcedamper; -float autocvar_g_vehicle_racer_friction; - -float autocvar_g_vehicle_racer_hovertype; -float autocvar_g_vehicle_racer_hoverpower; - -float autocvar_g_vehicle_racer_turnroll; -float autocvar_g_vehicle_racer_turnspeed; -float autocvar_g_vehicle_racer_pitchspeed; - -float autocvar_g_vehicle_racer_energy; -float autocvar_g_vehicle_racer_energy_regen; -float autocvar_g_vehicle_racer_energy_regen_pause; - -float autocvar_g_vehicle_racer_health; -float autocvar_g_vehicle_racer_health_regen; -float autocvar_g_vehicle_racer_health_regen_pause; - -float autocvar_g_vehicle_racer_shield; -float autocvar_g_vehicle_racer_shield_regen; -float autocvar_g_vehicle_racer_shield_regen_pause; - -float autocvar_g_vehicle_racer_cannon_cost; -float autocvar_g_vehicle_racer_cannon_damage; -float autocvar_g_vehicle_racer_cannon_radius; -float autocvar_g_vehicle_racer_cannon_refire; -float autocvar_g_vehicle_racer_cannon_speed; -float autocvar_g_vehicle_racer_cannon_spread; -float autocvar_g_vehicle_racer_cannon_force; - -float autocvar_g_vehicle_racer_rocket_accel; -float autocvar_g_vehicle_racer_rocket_damage; -float autocvar_g_vehicle_racer_rocket_radius; -float autocvar_g_vehicle_racer_rocket_force; -float autocvar_g_vehicle_racer_rocket_refire; -float autocvar_g_vehicle_racer_rocket_speed; -float autocvar_g_vehicle_racer_rocket_turnrate; - -float autocvar_g_vehicle_racer_rocket_locktarget; -float autocvar_g_vehicle_racer_rocket_locking_time; -float autocvar_g_vehicle_racer_rocket_locking_releasetime; -float autocvar_g_vehicle_racer_rocket_locked_time; -float autocvar_g_vehicle_racer_rocket_locked_maxangle; -float autocvar_g_vehicle_racer_rocket_climbspeed; - -float autocvar_g_vehicle_racer_respawntime; - -float autocvar_g_vehicle_racer_blowup_radius; -float autocvar_g_vehicle_racer_blowup_coredamage; -float autocvar_g_vehicle_racer_blowup_edgedamage; -float autocvar_g_vehicle_racer_blowup_forceintensity; - -float autocvar_g_vehicle_racer_bouncefactor; -float autocvar_g_vehicle_racer_bouncestop; -vector autocvar_g_vehicle_racer_bouncepain; - -var vector racer_force_from_tag(string tag_name, float spring_length, float max_power); - -void racer_align4point(float _delta) -{ - vector push_vector; - float fl_push, fr_push, bl_push, br_push; - - push_vector = racer_force_from_tag("tag_engine_fr", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); - fr_push = force_fromtag_normpower; - //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier); - - push_vector += racer_force_from_tag("tag_engine_fl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); - fl_push = force_fromtag_normpower; - //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier); - - push_vector += racer_force_from_tag("tag_engine_br", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); - br_push = force_fromtag_normpower; - //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier); - - push_vector += racer_force_from_tag("tag_engine_bl", autocvar_g_vehicle_racer_springlength, autocvar_g_vehicle_racer_hoverpower); - bl_push = force_fromtag_normpower; - //vehicles_sweap_collision(force_fromtag_origin, self.velocity, _delta, v_add, autocvar_g_vehicle_racer_collision_multiplier); - - self.velocity += push_vector * _delta; - - // Anti ocilation - if(self.velocity.z > 0) - self.velocity_z *= 1 - autocvar_g_vehicle_racer_upforcedamper * _delta; - - push_vector.x = (fl_push - bl_push); - push_vector_x += (fr_push - br_push); - push_vector_x *= 360; - - push_vector.z = (fr_push - fl_push); - push_vector_z += (br_push - bl_push); - push_vector_z *= 360; - - // Apply angle diffrance - self.angles_z += push_vector.z * _delta; - self.angles_x += push_vector.x * _delta; - - // Apply stabilizer - self.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * _delta); - self.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * _delta); -} - -void racer_fire_cannon(string tagname) -{ - vector v; - entity bolt; - - v = gettaginfo(self, gettagindex(self, tagname)); - bolt = vehicles_projectile("wakizashi_gun_muzzleflash", "weapons/lasergun_fire.wav", - v, normalize(v_forward + randomvec() * autocvar_g_vehicle_racer_cannon_spread) * autocvar_g_vehicle_racer_cannon_speed, - autocvar_g_vehicle_racer_cannon_damage, autocvar_g_vehicle_racer_cannon_radius, autocvar_g_vehicle_racer_cannon_force, 0, - DEATH_VH_WAKI_GUN, PROJECTILE_WAKICANNON, 0, true, true, self.owner); - - // Fix z-aim (for chase mode) - v = normalize(trace_endpos - bolt.origin); - v_forward.z = v.z * 0.5; - bolt.velocity = v_forward * autocvar_g_vehicle_racer_cannon_speed; -} - -void racer_rocket_groundhugger() -{ - vector olddir, newdir; - float oldvel, newvel; - - self.nextthink = time; - - if(self.owner.deadflag != DEAD_NO || self.cnt < time) - { - self.use(); - return; - } - - if (!self.realowner.vehicle) - { - UpdateCSQCProjectile(self); - return; - } - - olddir = normalize(self.velocity); - oldvel = vlen(self.velocity); - newvel = oldvel + self.lip; - - tracebox(self.origin, self.mins, self.maxs, self.origin + olddir * 64, MOVE_WORLDONLY,self); - if(trace_fraction <= 0.5) - { - // Hitting somethign soon, just speed ahead - self.velocity = olddir * newvel; - UpdateCSQCProjectile(self); - return; - } - - traceline(trace_endpos, trace_endpos - '0 0 64', MOVE_NORMAL, self); - if(trace_fraction != 1.0) - { - newdir = normalize(trace_endpos + '0 0 64' - self.origin) * autocvar_g_vehicle_racer_rocket_turnrate; - self.velocity = normalize(olddir + newdir) * newvel; - } - else - { - self.velocity = olddir * newvel; - self.velocity_z -= 1600 * sys_frametime; // 2x grav looks better for this one - } - - UpdateCSQCProjectile(self); - return; -} - -void racer_rocket_tracker() -{ - vector olddir, newdir; - float oldvel, newvel; - - self.nextthink = time; - - if (self.owner.deadflag != DEAD_NO || self.cnt < time) - { - self.use(); - return; - } - - if (!self.realowner.vehicle) - { - UpdateCSQCProjectile(self); - return; - } - - olddir = normalize(self.velocity); - oldvel = vlen(self.velocity); - newvel = oldvel + self.lip; - makevectors(vectoangles(olddir)); - - float time_to_impact = min(vlen(self.enemy.origin - self.origin) / vlen(self.velocity), 1); - vector predicted_origin = self.enemy.origin + self.enemy.velocity * time_to_impact; - - traceline(self.origin, self.origin + v_forward * 64 - '0 0 32', MOVE_NORMAL, self); - newdir = normalize(predicted_origin - self.origin); - - //vector - float height_diff = predicted_origin.z - self.origin.z; - - if(vlen(newdir - v_forward) > autocvar_g_vehicle_racer_rocket_locked_maxangle) - { - //bprint("Target lost!\n"); - //dprint("OF:", ftos(vlen(newdir - v_forward)), "\n"); - self.think = racer_rocket_groundhugger; - return; - } - - if(trace_fraction != 1.0 && trace_ent != self.enemy) - newdir.z += 16 * sys_frametime; - - self.velocity = normalize(olddir + newdir * autocvar_g_vehicle_racer_rocket_turnrate) * newvel; - self.velocity_z -= 800 * sys_frametime; - self.velocity_z += max(height_diff, autocvar_g_vehicle_racer_rocket_climbspeed) * sys_frametime ; - - UpdateCSQCProjectile(self); - return; -} - -void racer_fire_rocket(string tagname, entity trg) -{ - vector v = gettaginfo(self, gettagindex(self, tagname)); - entity rocket = vehicles_projectile("wakizashi_rocket_launch", "weapons/rocket_fire.wav", - v, v_forward * autocvar_g_vehicle_racer_rocket_speed, - autocvar_g_vehicle_racer_rocket_damage, autocvar_g_vehicle_racer_rocket_radius, autocvar_g_vehicle_racer_rocket_force, 3, - DEATH_VH_WAKI_ROCKET, PROJECTILE_WAKIROCKET, 20, false, false, self.owner); - - rocket.lip = autocvar_g_vehicle_racer_rocket_accel * sys_frametime; - rocket.wait = autocvar_g_vehicle_racer_rocket_turnrate; - rocket.nextthink = time; - rocket.enemy = trg; - rocket.cnt = time + 15; - - if(trg) - rocket.think = racer_rocket_tracker; - else - rocket.think = racer_rocket_groundhugger; -} - -float racer_frame() -{ - entity player, racer; - vector df; - float ftmp; - - if(intermission_running) - return 1; - - player = self; - racer = self.vehicle; - self = racer; - - player.BUTTON_ZOOM = player.BUTTON_CROUCH = 0; - - vehicles_painframe(); - - if(racer.deadflag != DEAD_NO) - { - self = player; - player.BUTTON_ATCK = player.BUTTON_ATCK2 = 0; - return 1; - } - - racer_align4point(frametime); - - crosshair_trace(player); - - racer.angles_x *= -1; - - // Yaw - ftmp = autocvar_g_vehicle_racer_turnspeed * frametime; - ftmp = bound(-ftmp, shortangle_f(player.v_angle.y - racer.angles.y, racer.angles.y), ftmp); - racer.angles_y = anglemods(racer.angles.y + ftmp); - - // Roll - racer.angles_z += -ftmp * autocvar_g_vehicle_racer_turnroll * frametime; - - // Pitch - ftmp = autocvar_g_vehicle_racer_pitchspeed * frametime; - ftmp = bound(-ftmp, shortangle_f(player.v_angle.x - racer.angles.x, racer.angles.x), ftmp); - racer.angles_x = bound(-30, anglemods(racer.angles.x + ftmp), 30); - - makevectors(racer.angles); - racer.angles_x *= -1; - - //ftmp = racer.velocity_z; - df = racer.velocity * -autocvar_g_vehicle_racer_friction; - //racer.velocity_z = ftmp; - - if(vlen(player.movement) != 0) - { - if(player.movement_x) - df += v_forward * ((player.movement.x > 0) ? autocvar_g_vehicle_racer_speed_forward : -autocvar_g_vehicle_racer_speed_forward); - - if(player.movement_y) - df += v_right * ((player.movement.y > 0) ? autocvar_g_vehicle_racer_speed_strafe : -autocvar_g_vehicle_racer_speed_strafe); - - if(self.sound_nexttime < time || self.sounds != 1) - { - self.sounds = 1; - self.sound_nexttime = time + 10.922667; //soundlength("vehicles/racer_move.wav"); - sound (self, CH_TRIGGER_SINGLE, "vehicles/racer_move.wav", VOL_VEHICLEENGINE, ATTEN_NORM); - } - } - else - { - if(self.sound_nexttime < time || self.sounds != 0) - { - self.sounds = 0; - self.sound_nexttime = time + 11.888604; //soundlength("vehicles/racer_idle.wav"); - sound (self, CH_TRIGGER_SINGLE, "vehicles/racer_idle.wav", VOL_VEHICLEENGINE, ATTEN_NORM); - } - } - - // Afterburn - if (player.BUTTON_JUMP && racer.vehicle_energy >= (autocvar_g_vehicle_racer_afterburn_cost * frametime)) - { - if(time - racer.wait > 0.2) - pointparticles(particleeffectnum("wakizashi_booster_smoke"), self.origin - v_forward * 32, v_forward * vlen(self.velocity), 1); - - racer.wait = time; - racer.vehicle_energy -= autocvar_g_vehicle_racer_afterburn_cost * frametime; - df += (v_forward * autocvar_g_vehicle_racer_speed_afterburn); - - if(racer.invincible_finished < time) - { - traceline(racer.origin, racer.origin - '0 0 256', MOVE_NORMAL, self); - if(trace_fraction != 1.0) - pointparticles(particleeffectnum("smoke_small"), trace_endpos, '0 0 0', 1); - - racer.invincible_finished = time + 0.1 + (random() * 0.1); - } - - if(racer.strength_finished < time) - { - racer.strength_finished = time + 10.922667; //soundlength("vehicles/racer_boost.wav"); - sound (racer.tur_head, CH_TRIGGER_SINGLE, "vehicles/racer_boost.wav", VOL_VEHICLEENGINE, ATTEN_NORM); - } - } - else - { - racer.strength_finished = 0; - sound (racer.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTEN_NORM); - } - - df -= v_up * (vlen(racer.velocity) * autocvar_g_vehicle_racer_downforce); - player.movement = racer.velocity += df * frametime; - - if(player.BUTTON_ATCK) - if(time > racer.attack_finished_single) - if(racer.vehicle_energy >= autocvar_g_vehicle_racer_cannon_cost) - { - racer.vehicle_energy -= autocvar_g_vehicle_racer_cannon_cost; - racer.wait = time; - - crosshair_trace(player); - if(racer.cnt) - { - racer_fire_cannon("tag_fire1"); - racer.cnt = 0; - } - else - { - racer_fire_cannon("tag_fire2"); - racer.cnt = 1; - } - racer.attack_finished_single = time + autocvar_g_vehicle_racer_cannon_refire; - } - - if(autocvar_g_vehicle_racer_rocket_locktarget) - { - vehicles_locktarget((1 / autocvar_g_vehicle_racer_rocket_locking_time) * frametime, - (1 / autocvar_g_vehicle_racer_rocket_locking_releasetime) * frametime, - autocvar_g_vehicle_racer_rocket_locked_time); - - if(self.lock_target) - { - if(racer.lock_strength == 1) - UpdateAuxiliaryXhair(player, real_origin(self.lock_target), '1 0 0', 0); - else if(self.lock_strength > 0.5) - UpdateAuxiliaryXhair(player, real_origin(self.lock_target), '0 1 0', 0); - else if(self.lock_strength < 0.5) - UpdateAuxiliaryXhair(player, real_origin(self.lock_target), '0 0 1', 0); - } - } - - if(time > racer.delay) - if(player.BUTTON_ATCK2) - { - racer.misc_bulletcounter += 1; - racer.delay = time + 0.3; - - if(racer.misc_bulletcounter == 1) - racer_fire_rocket("tag_rocket_r", (racer.lock_strength == 1 && racer.lock_target) ? racer.lock_target : world); - else if(racer.misc_bulletcounter == 2) - { - racer_fire_rocket("tag_rocket_l", (racer.lock_strength == 1 && racer.lock_target) ? racer.lock_target : world); - racer.lock_strength = 0; - racer.lock_target = world; - racer.misc_bulletcounter = 0; - - racer.delay = time + autocvar_g_vehicle_racer_rocket_refire; - racer.lip = time; - } - } - player.vehicle_reload1 = bound(0, 100 * ((time - racer.lip) / (racer.delay - racer.lip)), 100); - - if(racer.vehicle_flags & VHF_SHIELDREGEN) - vehicles_regen(racer.dmg_time, vehicle_shield, autocvar_g_vehicle_racer_shield, autocvar_g_vehicle_racer_shield_regen_pause, autocvar_g_vehicle_racer_shield_regen, frametime, true); - - if(racer.vehicle_flags & VHF_HEALTHREGEN) - vehicles_regen(racer.dmg_time, vehicle_health, autocvar_g_vehicle_racer_health, autocvar_g_vehicle_racer_health_regen_pause, autocvar_g_vehicle_racer_health_regen, frametime, false); - - if(racer.vehicle_flags & VHF_ENERGYREGEN) - vehicles_regen(racer.wait, vehicle_energy, autocvar_g_vehicle_racer_energy, autocvar_g_vehicle_racer_energy_regen_pause, autocvar_g_vehicle_racer_energy_regen, frametime, false); - - - VEHICLE_UPDATE_PLAYER(player, health, racer); - VEHICLE_UPDATE_PLAYER(player, energy, racer); - - if(racer.vehicle_flags & VHF_HASSHIELD) - VEHICLE_UPDATE_PLAYER(player, shield, racer); - - player.BUTTON_ATCK = player.BUTTON_ATCK2 = 0; - setorigin(player,racer.origin + '0 0 32'); - player.velocity = racer.velocity; - - self = player; - return 1; -} - -.float lastpushtime; - -void racer_think() -{ - self.nextthink = time; - - float pushdeltatime = time - self.lastpushtime; - if (pushdeltatime > 0.15) pushdeltatime = 0; - self.lastpushtime = time; - if(!pushdeltatime) return; - - tracebox(self.origin, self.mins, self.maxs, self.origin - ('0 0 1' * autocvar_g_vehicle_racer_springlength), MOVE_NORMAL, self); - - vector df = self.velocity * -autocvar_g_vehicle_racer_friction; - df.z += (1 - trace_fraction) * autocvar_g_vehicle_racer_hoverpower + sin(time * 2) * (autocvar_g_vehicle_racer_springlength * 2); - - self.velocity += df * pushdeltatime; - if(self.velocity.z > 0) - self.velocity_z *= 1 - autocvar_g_vehicle_racer_upforcedamper * pushdeltatime; - - self.angles_x *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * pushdeltatime); - self.angles_z *= 1 - (autocvar_g_vehicle_racer_anglestabilizer * pushdeltatime); -} - -void racer_enter() -{ - self.movetype = MOVETYPE_BOUNCE; - self.owner.vehicle_health = (self.vehicle_health / autocvar_g_vehicle_racer_health) * 100; - self.owner.vehicle_shield = (self.vehicle_shield / autocvar_g_vehicle_racer_shield) * 100; - - if(self.owner.flagcarried) - setorigin(self.owner.flagcarried, '-190 0 96'); - - //targetdrone_spawn(self.origin + '0 0 512' + randomvec() * 256, 1); -} - -void racer_exit(float eject) -{ - vector spot; - - self.think = racer_think; - self.nextthink = time; - self.movetype = MOVETYPE_BOUNCE; - sound (self.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTEN_NORM); - - if (!self.owner) - return; - - makevectors(self.angles); - if(eject) - { - spot = self.origin + v_forward * 100 + '0 0 64'; - spot = vehicles_findgoodexit(spot); - setorigin(self.owner , spot); - self.owner.velocity = (v_up + v_forward * 0.25) * 750; - self.owner.oldvelocity = self.owner.velocity; - } - else - { - if(vlen(self.velocity) > 2 * autocvar_sv_maxairspeed) - { - self.owner.velocity = normalize(self.velocity) * autocvar_sv_maxairspeed * 2; - self.owner.velocity_z += 200; - spot = self.origin + v_forward * 32 + '0 0 32'; - spot = vehicles_findgoodexit(spot); - } - else - { - self.owner.velocity = self.velocity * 0.5; - self.owner.velocity_z += 10; - spot = self.origin - v_forward * 200 + '0 0 32'; - spot = vehicles_findgoodexit(spot); - } - self.owner.oldvelocity = self.owner.velocity; - setorigin(self.owner , spot); - } - antilag_clear(self.owner); - self.owner = world; -} - -void racer_impact() -{ - if(autocvar_g_vehicle_racer_bouncepain.x) - vehicles_impact(autocvar_g_vehicle_racer_bouncepain.x, autocvar_g_vehicle_racer_bouncepain.y, autocvar_g_vehicle_racer_bouncepain.z); -} - -void racer_blowup() -{ - self.deadflag = DEAD_DEAD; - self.vehicle_exit(VHEF_NORMAL); - - RadiusDamage (self, self.enemy, autocvar_g_vehicle_racer_blowup_coredamage, - autocvar_g_vehicle_racer_blowup_edgedamage, - autocvar_g_vehicle_racer_blowup_radius, world, world, - autocvar_g_vehicle_racer_blowup_forceintensity, - DEATH_VH_WAKI_DEATH, world); - - self.alpha = -1; - self.movetype = MOVETYPE_NONE; - self.effects = EF_NODRAW; - self.colormod = '0 0 0'; - self.avelocity = '0 0 0'; - self.velocity = '0 0 0'; - - setorigin(self, self.pos1); - self.touch = func_null; - self.nextthink = 0; -} - -void racer_deadtouch() -{ - self.avelocity_x *= 0.7; - self.cnt -= 1; - if(self.cnt <= 0) - racer_blowup(); -} - -void racer_die() -{ - self.health = 0; - self.event_damage = func_null; - self.solid = SOLID_CORPSE; - self.takedamage = DAMAGE_NO; - self.deadflag = DEAD_DYING; - self.movetype = MOVETYPE_BOUNCE; - self.wait = time; - self.cnt = 1 + random() * 2; - self.touch = racer_deadtouch; - - pointparticles(particleeffectnum("explosion_medium"), self.origin, '0 0 0', 1); - - if(random() < 0.5) - self.avelocity_z = 32; - else - self.avelocity_z = -32; - - self.avelocity_x = -vlen(self.velocity) * 0.2; - self.velocity += '0 0 700'; - self.colormod = '-0.5 -0.5 -0.5'; - - self.think = racer_blowup; - self.nextthink = 2 + time + random() * 3; -} -void racer_spawn(float _spawnflag) -{ - if(self.scale != 0.5) - { - if(autocvar_g_vehicle_racer_hovertype != 0) - racer_force_from_tag = vehicles_force_fromtag_maglev; - else - racer_force_from_tag = vehicles_force_fromtag_hover; - - // FIXME: this be hakkz, fix the models insted (scale body, add tag_viewport to the hudmodel). - self.scale = 0.5; - setattachment(self.vehicle_hudmodel, self, ""); - setattachment(self.vehicle_viewport, self, "tag_viewport"); - - self.mass = 900; - } - - self.think = racer_think; - self.nextthink = time; - self.vehicle_health = autocvar_g_vehicle_racer_health; - self.vehicle_shield = autocvar_g_vehicle_racer_shield; - - self.movetype = MOVETYPE_TOSS; - self.solid = SOLID_SLIDEBOX; - self.delay = time; - self.scale = 0.5; - - setsize(self, RACER_MIN * 0.5, RACER_MAX * 0.5); - self.bouncefactor = autocvar_g_vehicle_racer_bouncefactor; - self.bouncestop = autocvar_g_vehicle_racer_bouncestop; - self.vehicle_impact = racer_impact; - self.damageforcescale = 0.5; - //self.destvec = autocvar_g_vehicle_racer_bouncepain; -} - -void spawnfunc_vehicle_racer() -{ - if(!autocvar_g_vehicle_racer) - { - remove(self); - return; - } - - self.vehicle_flags |= VHF_DMGSHAKE; - self.vehicle_flags |= VHF_DMGROLL; - - precache_sound ("weapons/lasergun_fire.wav"); - precache_sound ("weapons/rocket_fire.wav"); - - precache_sound ("vehicles/racer_idle.wav"); - precache_sound ("vehicles/racer_move.wav"); - precache_sound ("vehicles/racer_boost.wav"); - - precache_model ("models/vhshield.md3"); - precache_model ("models/vehicles/wakizashi.dpm"); - precache_model ("models/vehicles/wakizashi_cockpit.dpm"); - - if(autocvar_g_vehicle_racer_energy) - if(autocvar_g_vehicle_racer_energy_regen) - self.vehicle_flags |= VHF_ENERGYREGEN; - - if(autocvar_g_vehicle_racer_shield) - self.vehicle_flags |= VHF_HASSHIELD; - - if(autocvar_g_vehicle_racer_shield_regen) - self.vehicle_flags |= VHF_SHIELDREGEN; - - if(autocvar_g_vehicle_racer_health_regen) - self.vehicle_flags |= VHF_HEALTHREGEN; - - if(!vehicle_initialize( - "Wakizashi", - "models/vehicles/wakizashi.dpm", - "null", // we need this so tur_head is networked and usable for sounds - "models/vehicles/wakizashi_cockpit.dpm", - "", "", "tag_viewport", - HUD_WAKIZASHI, - 0.5 * RACER_MIN, 0.5 * RACER_MAX, - false, - racer_spawn, autocvar_g_vehicle_racer_respawntime, - racer_frame, - racer_enter, racer_exit, - racer_die, racer_think, - true, - autocvar_g_vehicle_racer_health, - autocvar_g_vehicle_racer_shield)) - { - remove(self); - return; - } -} -#endif // SVQC diff --git a/qcsrc/server/vehicles/vehicle.qh b/qcsrc/server/vehicles/vehicle.qh deleted file mode 100644 index 59d9ef76d..000000000 --- a/qcsrc/server/vehicles/vehicle.qh +++ /dev/null @@ -1,196 +0,0 @@ -#ifndef VEHICLE_H -#define VEHICLE_H - -#include "../_all.qh" - -#include "../antilag.qh" -#include "../cl_player.qh" -#include "../g_damage.qh" -#include "../g_hook.qh" -#include "../movelib.qh" - -#include "../bot/bot.qh" - -#include "../command/common.qh" - -#include "../tturrets/include/turrets_early.qh" - -#include "../weapons/tracing.qh" - -#include "../../common/deathtypes.qh" -#include "../../common/stats.qh" - -#include "../../warpzonelib/anglestransform.qh" -#include "../../warpzonelib/server.qh" - -entity vehicles_projectile(string _mzlfx, string _mzlsound, - vector _org, vector _vel, - float _dmg, float _radi, float _force, float _size, - float _deahtype, float _projtype, float _health, - float _cull, float _clianim, entity _owner); - -vector vehicles_findgoodexit(vector prefer_spot); - - - -/** vehicles_locktarget - - Generic target locking. - - Figure out if what target is "locked" (if any), for missile tracking as such. - - after calling, "if(self.lock_target != world && self.lock_strength == 1)" mean - you have a locked in target. - - Exspects a crosshair_trace() or equivalent to be - dont before calling. - -**/ -.entity lock_target; -.float lock_strength; -.float lock_time; -.float lock_soundtime; - -void UpdateAuxiliaryXhair(entity own, vector loc, vector clr, int axh_id); - -vector vehicle_aimturret(entity _vehic, vector _target, entity _turrret, string _tagname, - float _pichlimit_min, float _pichlimit_max, - float _rotlimit_min, float _rotlimit_max, float _aimspeed); - -#define VEHICLE_UPDATE_PLAYER(ply,fld,vhname) \ -ply.vehicle_##fld = (self.vehicle_##fld / autocvar_g_vehicle_##vhname##_##fld) * 100 - -void CSQCVehicleSetup(entity own, float vehicle_id); - -.float() PlayerPhysplug; - -float autocvar_g_vehicles_allow_bots = 0; - -void vehicles_touch(); - -void vehicles_regen(float timer, .float regen_field, float field_max, float rpause, float regen, float delta_time, float _healthscale); - -float shortangle_f(float ang1, float ang2); -float anglemods(float v); - -entity vehicle_tossgib(entity _template, vector _vel, string _tag, float _burn, float _explode, float _maxtime, vector _rot); - -void vehicles_impact(float _minspeed, float _speedfac, float _maxpain); - -void shieldhit_think(); - -float vehicle_addplayerslot( entity _owner, - entity _slot, - float _hud, - string _hud_model, - float() _framefunc, - void(float) _exitfunc); - -.void() vehicle_impact; - -float vehicle_initialize(string net_name, - string bodymodel, - string topmodel, - string hudmodel, - string toptag, - string hudtag, - string viewtag, - float vhud, - vector min_s, - vector max_s, - float nodrop, - void(float _spawnflag) spawnproc, - float _respawntime, - float() physproc, - void() enterproc, - void(float extflag) exitfunc, - void() dieproc, - void() thinkproc, - float use_csqc, - float _max_health, - float _max_shield); - -float force_fromtag_normpower; - -void vehicles_painframe(); - -void vehicles_locktarget(float incr, float decr, float _lock_time); - -vector vehicles_force_fromtag_maglev(string tag_name, float spring_length, float max_power); - -vector vehicles_force_fromtag_hover(string tag_name, float spring_length, float max_power); - -void vehicles_projectile_explode(); - -#if VEHICLES_ENABLED - -.int vehicle_flags; -const int VHF_ISVEHICLE = 2; /// Indicates vehicle -const int VHF_HASSHIELD = 4; /// Vehicle has shileding -const int VHF_SHIELDREGEN = 8; /// Vehicles shield regenerates -const int VHF_HEALTHREGEN = 16; /// Vehicles health regenerates -const int VHF_ENERGYREGEN = 32; /// Vehicles energy regenerates -const int VHF_DEATHEJECT = 64; /// Vehicle ejects pilot upon fatal damage -const int VHF_MOVE_GROUND = 128; /// Vehicle moves on gound -const int VHF_MOVE_HOVER = 256; /// Vehicle hover close to gound -const int VHF_MOVE_FLY = 512; /// Vehicle is airborn -const int VHF_DMGSHAKE = 1024; /// Add random velocity each frame if health < 50% -const int VHF_DMGROLL = 2048; /// Add random angles each frame if health < 50% -const int VHF_DMGHEADROLL = 4096; /// Add random head angles each frame if health < 50% -const int VHF_MULTISLOT = 8192; /// Vehicle has multiple player slots -const int VHF_PLAYERSLOT = 16384; /// This ent is a player slot on a multi-person vehicle - -.entity gun1; -.entity gun2; -.entity gun3; -.entity vehicle_shieldent; /// Entity to disply the shild effect on damage -.entity vehicle; -.entity vehicle_viewport; -.entity vehicle_hudmodel; -.entity vehicle_controller; - -.entity gunner1; -.entity gunner2; - -.float vehicle_health; /// If self is player this is 0..100 indicating precentage of health left on vehicle. If self is vehile, this is the real health value. -.float vehicle_energy; /// If self is player this is 0..100 indicating precentage of energy left on vehicle. If self is vehile, this is the real energy value. -.float vehicle_shield; /// If self is player this is 0..100 indicating precentage of shield left on vehicle. If self is vehile, this is the real shield value. - -.float vehicle_ammo1; /// If self is player this field's use depends on the individual vehile. If self is vehile, this is the real ammo1 value. -.float vehicle_reload1; /// If self is player this field's use depends on the individual vehile. If self is vehile, this is the real reload1 value. -.float vehicle_ammo2; /// If self is player this field's use depends on the individual vehile. If self is vehile, this is the real ammo2 value. -.float vehicle_reload2; /// If self is player this field's use depends on the individual vehile. If self is vehile, this is the real reload2 value. - -.float sound_nexttime; -const float VOL_VEHICLEENGINE = 1; - -.float hud; -.float dmg_time; -.float vehicle_respawntime; -//.void() vehicle_spawn; - -void vehicles_exit(float eject); -.void(float exit_flags) vehicle_exit; -const float VHEF_NORMAL = 0; /// User pressed exit key -const float VHEF_EJECT = 1; /// User pressed exit key 3 times fast (not implemented) or vehile is dying -const float VHEF_RELESE = 2; /// Release ownership, client possibly allready dissconnected / went spec / changed team / used "kill" (not implemented) - -const float SVC_SETVIEWPORT = 5; // Net.Protocol 0x05 -const float SVC_SETVIEWANGLES = 10; // Net.Protocol 0x0A -const float SVC_UPDATEENTITY = 128; // Net.Protocol 0x80 - -.void() vehicle_enter; /// Vehicles custom funciton to be executed when owner exit it -.void() vehicle_die; /// Vehicles custom function to be executed when vehile die -const float VHSF_NORMAL = 0; -const float VHSF_FACTORY = 2; -.void(float _spawnflag) vehicle_spawn; /// Vehicles custom fucntion to be efecuted when vehicle (re)spawns -.float(float _imp) vehicles_impulse; -.float vehicle_weapon2mode; - -#if VEHICLES_USE_ODE -void(entity e, float physics_enabled) physics_enable = #540; // enable or disable physics on object -void(entity e, vector force, vector force_pos) physics_addforce = #541; // apply a force from certain origin, length of force vector is power of force -void(entity e, vector torque) physics_addtorque = #542; // add relative torque -#endif // VEHICLES_USE_ODE -#endif // VEHICLES_ENABLED -#endif