]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/vehicles/unit/spiderbot.qc
Allow to display tooltips in XonoticRegisteredSettingsList, add tooltip for "Models"
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / vehicles / unit / spiderbot.qc
index de3cdbb7afa1b0b6931f236b70d9dc7a538c20c8..973e1e5944741ee2353769495ad995ed0febd7d1 100644 (file)
@@ -1,9 +1,10 @@
 #ifndef VEHICLE_SPIDERBOT
 #define VEHICLE_SPIDERBOT
+#ifndef MENUQC
 int v_spiderbot(int);
+#endif
 REGISTER_VEHICLE_SIMPLE(
 /* VEH_##id   */ SPIDERBOT,
-/* function   */ v_spiderbot,
 /* spawnflags */ VHF_DMGSHAKE,
 /* mins,maxs  */ '-75 -75 10', '75 75 125',
 /* model         */ "models/vehicles/spiderbot.dpm",
@@ -12,7 +13,12 @@ REGISTER_VEHICLE_SIMPLE(
 /* tags                  */ "tag_head", "tag_hud", "",
 /* netname       */ "spiderbot",
 /* fullname   */ _("Spiderbot")
-);
+) {
+    this.m_icon = "vehicle_spider";
+#ifndef MENUQC
+    this.vehicle_func = v_spiderbot;
+#endif
+}
 #endif
 
 #ifdef IMPLEMENTATION
@@ -254,7 +260,7 @@ void spiderbot_rocket_do()
        if(self.wait != -10)
        if(!self.owner.BUTTON_ATCK2)
                return;
-               
+
        if(forbidWeaponUse(self.owner))
                return;
 
@@ -263,7 +269,7 @@ void spiderbot_rocket_do()
        switch(self.vehicle_weapon2mode)
        {
                case SBRM_VOLLY:
-                       rocket = vehicles_projectile("spiderbot_rocket_launch", "weapons/rocket_fire.wav",
+                       rocket = vehicles_projectile(EFFECT_SPIDERBOT_ROCKETLAUNCH.eent_eff_name, W_Sound("rocket_fire"),
                                                                   v, normalize(randomvec() * autocvar_g_vehicle_spiderbot_rocket_spread + v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
                                                                   autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
                                                                   DEATH_VH_SPID_ROCKET, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, true, self.owner);
@@ -277,7 +283,7 @@ void spiderbot_rocket_do()
                                self.wait = -10;
                        break;
                case SBRM_GUIDE:
-                       rocket = vehicles_projectile("spiderbot_rocket_launch", "weapons/rocket_fire.wav",
+                       rocket = vehicles_projectile(EFFECT_SPIDERBOT_ROCKETLAUNCH.eent_eff_name, W_Sound("rocket_fire"),
                                                                   v, normalize(v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
                                                                   autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
                                                                   DEATH_VH_SPID_ROCKET, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, false, self.owner);
@@ -289,7 +295,7 @@ void spiderbot_rocket_do()
 
                break;
                case SBRM_ARTILLERY:
-                       rocket = vehicles_projectile("spiderbot_rocket_launch", "weapons/rocket_fire.wav",
+                       rocket = vehicles_projectile(EFFECT_SPIDERBOT_ROCKETLAUNCH.eent_eff_name, W_Sound("rocket_fire"),
                                                                   v, normalize(v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
                                                                   autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
                                                                   DEATH_VH_SPID_ROCKET, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, true, self.owner);
@@ -552,9 +558,9 @@ float spiderbot_frame()
                        fireBullet(v, v_forward, autocvar_g_vehicle_spiderbot_minigun_spread, autocvar_g_vehicle_spiderbot_minigun_solidpenetration,
                                 autocvar_g_vehicle_spiderbot_minigun_damage, autocvar_g_vehicle_spiderbot_minigun_force, DEATH_VH_SPID_MINIGUN, 0);
 
-                       sound (gun, CH_WEAPON_A, "weapons/uzi_fire.wav", VOL_BASE, ATTEN_NORM);
-                       //trailparticles(self, particleeffectnum("spiderbot_minigun_trail"), v, trace_endpos);
-                       pointparticles(particleeffectnum("spiderbot_minigun_muzzleflash"), v, v_forward * 2500, 1);
+                       sound (gun, CH_WEAPON_A, W_Sound("uzi_fire"), VOL_BASE, ATTEN_NORM);
+                       //trailparticles(self, _particleeffectnum("spiderbot_minigun_trail"), v, trace_endpos);
+                       pointparticles(particleeffectnum(EFFECT_SPIDERBOT_MINIGUN_MUZZLEFLASH), v, v_forward * 2500, 1);
 
                        self = spider;
 
@@ -672,8 +678,8 @@ void spiderbot_headfade()
        {
                if(self.alpha > 0.1)
                {
-                       sound (self, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTEN_NORM);
-                       Send_Effect("explosion_big", self.origin + '0 0 100', '0 0 0', 1);
+                       sound (self, CH_SHOTS, W_Sound("rocket_impact"), VOL_BASE, ATTEN_NORM);
+                       Send_Effect(EFFECT_EXPLOSION_BIG, self.origin + '0 0 100', '0 0 0', 1);
                }
                remove(self);
        }
@@ -685,8 +691,8 @@ void spiderbot_blowup()
        {
                if(random() < 0.1)
                {
-                       sound (self, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTEN_NORM);
-                       Send_Effect("explosion_small", randomvec() * 80 + (self.origin + '0 0 100'), '0 0 0', 1);
+                       sound (self, CH_SHOTS, W_Sound("rocket_impact"), VOL_BASE, ATTEN_NORM);
+                       Send_Effect(EFFECT_EXPLOSION_SMALL, randomvec() * 80 + (self.origin + '0 0 100'), '0 0 0', 1);
                }
                self.nextthink = time + 0.1;
                return;
@@ -808,7 +814,7 @@ bool spiderbot_impulse(int _imp)
 void spawnfunc_vehicle_spiderbot()
 {
        if(!autocvar_g_vehicle_spiderbot) { remove(self); return; }
-       if(!vehicle_initialize(VEH_SPIDERBOT.vehicleid, false)) { remove(self); return; }
+       if(!vehicle_initialize(VEH_SPIDERBOT, false)) { remove(self); return; }
 }
 
 float v_spiderbot(float req)
@@ -819,7 +825,7 @@ float v_spiderbot(float req)
                {
                        if(autocvar_g_vehicle_spiderbot_bouncepain)
                                vehicles_impact(autocvar_g_vehicle_spiderbot_bouncepain_x, autocvar_g_vehicle_spiderbot_bouncepain_y, autocvar_g_vehicle_spiderbot_bouncepain_z);
-               
+
                        return true;
                }
                case VR_ENTER:
@@ -835,14 +841,14 @@ float v_spiderbot(float req)
                                setattachment(self.owner.flagcarried, self.tur_head, "");
                                setorigin(self.owner.flagcarried, '-20 0 120');
                        }
-               
+
                        return true;
                }
                case VR_THINK:
                {
                        if(self.flags & FL_ONGROUND)
                                movelib_beak_simple(autocvar_g_vehicle_spiderbot_speed_stop);
-                       
+
                        return true;
                }
                case VR_DEATH:
@@ -860,7 +866,7 @@ float v_spiderbot(float req)
                        self.colormod                   = self.tur_head.colormod = '-1 -1 -1';
                        self.frame                              = 10;
                        self.movetype                   = MOVETYPE_TOSS;
-                       
+
                        CSQCModel_UnlinkEntity(); // networking the death scene would be a nightmare
 
                        return true;
@@ -893,7 +899,7 @@ float v_spiderbot(float req)
                        self.damageforcescale = 0.03;
                        self.vehicle_health = autocvar_g_vehicle_spiderbot_health;
                        self.vehicle_shield = autocvar_g_vehicle_spiderbot_shield;
-                       
+
                        self.PlayerPhysplug = spiderbot_frame;
 
                        return true;
@@ -926,8 +932,8 @@ float v_spiderbot(float req)
                        precache_model ("models/vehicles/spiderbot_cockpit.dpm");
                        precache_model ( "models/uziflash.md3");
 
-                       precache_sound ("weapons/uzi_fire.wav" );
-                       precache_sound ("weapons/rocket_impact.wav");
+                       precache_sound (W_Sound("uzi_fire") );
+                       precache_sound (W_Sound("rocket_impact"));
 
                        precache_sound ("vehicles/spiderbot_die.wav");
                        precache_sound ("vehicles/spiderbot_idle.wav");
@@ -963,7 +969,7 @@ float v_spiderbot(float req)
                                default:             crosshair = vCROSS_BURST;
                        }
 
-                       Vehicles_drawHUD("vehicle_spider", "vehicle_spider_weapon1", "vehicle_spider_weapon2",
+                       Vehicles_drawHUD(VEH_SPIDERBOT.m_icon, "vehicle_spider_weapon1", "vehicle_spider_weapon2",
                                                         "vehicle_icon_ammo1", autocvar_hud_progressbar_vehicles_ammo1_color,
                                                         "vehicle_icon_ammo2", autocvar_hud_progressbar_vehicles_ammo2_color,
                                                         crosshair);
@@ -973,7 +979,7 @@ float v_spiderbot(float req)
                {
                        AuxiliaryXhair[0].axh_image = vCROSS_HINT; // Minigun1
                        AuxiliaryXhair[1].axh_image = vCROSS_HINT; // Minigun2
-               
+
                        return true;
                }
                case VR_PRECACHE: