]> git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/server/miscfunctions.qc
Implement an entity which can send a portrait over to the client. Currently just...
[voretournament/voretournament.git] / data / qcsrc / server / miscfunctions.qc
index 93e162b1d5e2bf23361756b2741ae3dc59777d7c..84f68f7179dcd6ed7ab95b8632f88c11027c85c6 100644 (file)
@@ -596,6 +596,7 @@ void GetCvars(float f)
        GetCvars_handleFloat(s, f, cvar_cl_shownames, "cl_shownames");\r
        GetCvars_handleString(s, f, cvar_g_voretournamentversion, "g_voretournamentversion");\r
        GetCvars_handleFloat(s, f, cvar_cl_handicap, "cl_handicap");\r
+       GetCvars_handleFloat(s, f, cvar_cl_clippedspectating, "cl_clippedspectating");\r
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriority, "cl_weaponpriority", W_FixWeaponOrder_ForceComplete);\r
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[0], "cl_weaponpriority0", W_FixWeaponOrder_AllowIncomplete);\r
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[1], "cl_weaponpriority1", W_FixWeaponOrder_AllowIncomplete);\r
@@ -616,7 +617,8 @@ void GetCvars(float f)
        GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_receive, "cl_accuracy_data_receive");\r
        GetCvars_handleFloat(s, f, cvar_chase_active, "chase_active");\r
        GetCvars_handleFloat(s, f, cvar_cl_vore_stomachmodel, "cl_vore_stomachmodel");\r
-       GetCvars_handleFloat(s, f, cvar_cl_vore_cameraspeed, "cl_vore_cameraspeed");\r
+       GetCvars_handleFloat(s, f, cvar_cl_vore_swallowmodel, "cl_vore_swallowmodel");\r
+       GetCvars_handleFloat(s, f, cvar_cl_vore_autodigest, "cl_vore_autodigest");\r
 \r
        self.cvar_cl_accuracy_data_share = boolean(self.cvar_cl_accuracy_data_share);\r
        self.cvar_cl_accuracy_data_receive = boolean(self.cvar_cl_accuracy_data_receive);\r
@@ -817,12 +819,16 @@ float g_pickup_armorlarge;
 float g_pickup_armorlarge_max;\r
 float g_pickup_healthsmall;\r
 float g_pickup_healthsmall_max;\r
+float g_pickup_healthsmall_consumable;\r
 float g_pickup_healthmedium;\r
 float g_pickup_healthmedium_max;\r
+float g_pickup_healthmedium_consumable;\r
 float g_pickup_healthlarge;\r
 float g_pickup_healthlarge_max;\r
+float g_pickup_healthlarge_consumable;\r
 float g_pickup_healthmega;\r
 float g_pickup_healthmega_max;\r
+float g_pickup_healthmega_consumable;\r
 float g_weaponspeedfactor;\r
 float g_weaponratefactor;\r
 float g_weapondamagefactor;\r
@@ -1029,7 +1035,7 @@ void readlevelcvars(void)
        g_warmup_allguns = cvar("g_warmup_allguns");\r
        g_warmup_allow_timeout = cvar("g_warmup_allow_timeout");\r
 \r
-       if ((g_race && g_race_qualifying == 2) || g_arena || g_assault || cvar("g_campaign"))\r
+       if ((g_race && g_race_qualifying == 2) || g_arena || g_assault || g_rpg || cvar("g_campaign"))\r
                inWarmupStage = 0; // these modes cannot work together, sorry\r
 \r
        g_pickup_respawntime_weapon = cvar("g_pickup_respawntime_weapon");\r
@@ -1064,12 +1070,16 @@ void readlevelcvars(void)
        g_pickup_armorlarge_max = cvar("g_pickup_armorlarge_max");\r
        g_pickup_healthsmall = cvar("g_pickup_healthsmall");\r
        g_pickup_healthsmall_max = cvar("g_pickup_healthsmall_max");\r
+       g_pickup_healthsmall_consumable = cvar("g_pickup_healthsmall_consumable");\r
        g_pickup_healthmedium = cvar("g_pickup_healthmedium");\r
        g_pickup_healthmedium_max = cvar("g_pickup_healthmedium_max");\r
+       g_pickup_healthmedium_consumable = cvar("g_pickup_healthmedium_consumable");\r
        g_pickup_healthlarge = cvar("g_pickup_healthlarge");\r
        g_pickup_healthlarge_max = cvar("g_pickup_healthlarge_max");\r
+       g_pickup_healthlarge_consumable = cvar("g_pickup_healthlarge_consumable");\r
        g_pickup_healthmega = cvar("g_pickup_healthmega");\r
        g_pickup_healthmega_max = cvar("g_pickup_healthmega_max");\r
+       g_pickup_healthmega_consumable = cvar("g_pickup_healthmega_consumable");\r
 \r
        g_weapon_stay = cvar("g_weapon_stay");\r
 \r
@@ -1081,7 +1091,7 @@ void readlevelcvars(void)
        if(g_ghost_items >= 1)\r
                g_ghost_items = 0.25; // default alpha value\r
 \r
-       if not(inWarmupStage && !g_ca)\r
+       if not(inWarmupStage && !g_ca && !g_rpg)\r
                game_starttime = cvar("g_start_delay");\r
 \r
        sv_pitch_min = cvar("sv_pitch_min");\r
@@ -1331,8 +1341,6 @@ void precache()
 {\r
     // gamemode related things\r
     precache_model ("models/misc/chatbubble.spr");\r
-    precache_model ("models/misc/teambubble.spr");\r
-       precache_model ("models/misc/teambubbleheal.spr");\r
 \r
        // used by the waypoint editor\r
        precache_model ("models/rune.mdl");\r
@@ -1350,7 +1358,7 @@ void precache()
         precache_all_models("models/player/*.dpm");\r
         precache_all_models("models/player/*.md3");\r
         precache_all_models("models/player/*.psk");\r
-        //precache_model("models/player/vixen.zym");\r
+               precache_all_models("models/player/*.iqm");\r
     }\r
 \r
     if (cvar("sv_defaultcharacter"))\r
@@ -1407,6 +1415,9 @@ void precache()
     precache_sound ("misc/gib_splat04.wav");\r
     precache_sound ("misc/hit.wav");\r
        precache_sound ("misc/typehit.wav");\r
+       precache_sound ("misc/unavailable.wav");\r
+       precache_sound ("misc/forbidden.wav");\r
+       precache_sound ("misc/beep.wav");\r
     PrecacheGlobalSound((globalsound_fall = "misc/hitground 4"));\r
     PrecacheGlobalSound((globalsound_metalfall = "misc/metalhitground 4"));\r
     precache_sound ("misc/null.wav");\r
@@ -1417,6 +1428,9 @@ void precache()
     precache_sound ("player/lava.wav");\r
     precache_sound ("player/slime.wav");\r
     precache_sound ("player/digest.wav");\r
+       precache_sound ("misc/health_regen.wav");\r
+       precache_sound ("misc/armor_regen.wav");\r
+       precache_sound ("misc/power_fail.wav");\r
 \r
     if (g_jetpack)\r
         precache_sound ("misc/jetpack_fly.wav");\r
@@ -1436,11 +1450,11 @@ void precache()
     // common weapon precaches\r
     precache_sound ("weapons/weapon_switch.wav");\r
     precache_sound ("weapons/weaponpickup.wav");\r
-    precache_sound ("weapons/unavailable.wav");\r
-    precache_sound ("weapons/grabber_fire.wav"); // grabber\r
-       precache_sound ("weapons/grabber_altfire.wav"); // grabber\r
-    precache_sound ("weapons/grabber_impact.wav"); // grabber\r
-       precache_sound ("weapons/stomachkick.ogg");\r
+       precache_model ("models/weapons/w_displaydigit.md3");\r
+\r
+       float i;\r
+       for(i = 0; i < 8; i += 1)\r
+               precache_sound (strcat("weapons/hit", ftos(i), ".wav"));\r
 \r
     if (cvar("sv_precacheweapons"))\r
     {\r
@@ -2447,6 +2461,30 @@ void modeleffect_spawn(string m, float s, float f, vector o, vector v, vector an
        Net_LinkEntity(e, FALSE, 0.1, modeleffect_SendEntity);\r
 }\r
 \r
+float portrait_SendEntity(entity to, float sf)\r
+{\r
+       WriteByte(MSG_ENTITY, ENT_CLIENT_PORTRAIT);\r
+\r
+       string s;\r
+       s = substring(self.model, 0, strlen(self.model) - 4); // remove extension\r
+       s = strcat(s, "-", ftos(self.skin));\r
+\r
+       WriteString(MSG_ENTITY, s);\r
+\r
+       return TRUE;\r
+}\r
+\r
+void portrait(entity pl)\r
+{\r
+       entity e;\r
+       e = spawn();\r
+       e.classname = "portrait";\r
+       setmodel(e, pl.model);\r
+       e.skin = pl.skin;\r
+\r
+       Net_LinkEntity(e, FALSE, 0.1, portrait_SendEntity);\r
+}\r
+\r
 void shockwave_spawn(string m, vector org, float sz, float t1, float t2)\r
 {\r
        return modeleffect_spawn(m, 0, 0, org, '0 0 0', '0 0 0', '0 0 0', 0, sz, 1, t1, t2);\r