]> de.git.xonotic.org Git - voretournament/voretournament.git/commitdiff
Merge branch 'master' into mirceakitsune/power
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Tue, 15 Nov 2011 21:28:57 +0000 (23:28 +0200)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Tue, 15 Nov 2011 21:28:57 +0000 (23:28 +0200)
15 files changed:
data/defaultVT.cfg
data/gfx/hud/sb_power_fail.tga [new file with mode: 0644]
data/gfx/hud/sb_power_fail_icon.tga [new file with mode: 0644]
data/gfx/hud/sb_power_reboot.tga [new file with mode: 0644]
data/gfx/hud/sb_power_reboot_icon.tga [new file with mode: 0644]
data/qcsrc/client/Defs.qc
data/qcsrc/client/Main.qc
data/qcsrc/client/View.qc
data/qcsrc/client/main.qh
data/qcsrc/client/sbar.qc
data/qcsrc/server/cl_client.qc
data/qcsrc/server/miscfunctions.qc
data/sound/misc/power_fail.ogg [new file with mode: 0644]
misc/source/media/hud/psd/sb_power_fail.psd [new file with mode: 0644]
misc/source/media/hud/psd/sb_power_reboot.psd [new file with mode: 0644]

index 6f1052c56280fc5ec2c9e59fb25e462c88923a92..d9660c4c1d581f8302d1a4e906dd23705105fabe 100644 (file)
@@ -1631,6 +1631,9 @@ set g_healthsize_exteriorweapon_scalefactor 1 "Amount by which player size resiz
 set g_healthsize_weapon_scalefactor 1 "Amount by which player size resizes the view weapon model"\r
 set g_healthsize_weapon_scalefactor_pos 10 "Amount by which the view model is moved vertically based on player size"\r
 \r
+set g_power 5\r
+set g_power_reboot 3\r
+\r
 // part of an ugly hack for the menu audio sliders to work with the cutsound feature\r
 seta menu_volume 1\r
 seta menu_bgmvolume 0.5\r
diff --git a/data/gfx/hud/sb_power_fail.tga b/data/gfx/hud/sb_power_fail.tga
new file mode 100644 (file)
index 0000000..4c03123
Binary files /dev/null and b/data/gfx/hud/sb_power_fail.tga differ
diff --git a/data/gfx/hud/sb_power_fail_icon.tga b/data/gfx/hud/sb_power_fail_icon.tga
new file mode 100644 (file)
index 0000000..997bc54
Binary files /dev/null and b/data/gfx/hud/sb_power_fail_icon.tga differ
diff --git a/data/gfx/hud/sb_power_reboot.tga b/data/gfx/hud/sb_power_reboot.tga
new file mode 100644 (file)
index 0000000..c4bc3d5
Binary files /dev/null and b/data/gfx/hud/sb_power_reboot.tga differ
diff --git a/data/gfx/hud/sb_power_reboot_icon.tga b/data/gfx/hud/sb_power_reboot_icon.tga
new file mode 100644 (file)
index 0000000..2437b97
Binary files /dev/null and b/data/gfx/hud/sb_power_reboot_icon.tga differ
index 1f2edf68bbee691a43b3c1779309a657fc2de0d4..5c8a5f5f071b8102d6106a6f0f3278963c94b68c 100644 (file)
@@ -245,3 +245,5 @@ float ticrate;
 // only for Porto\r
 float angles_held_status;\r
 vector angles_held;\r
+\r
+float power_boot;\r
index 248074c2efc64a1abac378ebdcc635bf7c2789c3..bc4c745c08a3e0991af00b859ac7511dd32627b4 100644 (file)
@@ -1061,6 +1061,9 @@ void Ent_Init()
        armor_max = ReadCoord();\r
        teamheal_max = ReadCoord();\r
 \r
+       g_power = ReadShort();\r
+       g_power_reboot = ReadShort();\r
+\r
        if(!postinit)\r
                PostInit();\r
 }\r
index f82cc299e6e3114067e0eae710ef24ac4e44ab2b..bb51586b55ef7a75899dd35d8c7d1e4036e72e72 100644 (file)
@@ -300,6 +300,7 @@ void CSQC_UpdateView(float w, float h)
 \r
        // helper system\r
        if(cvar("cl_helper"))\r
+       if not(getstati(STAT_ARMOR) < g_power || time <= power_boot)\r
        {\r
                if(intermission || respawned || spectatee_status < 0 || getstati(STAT_HEALTH) <= 0 || getstati(STAT_VORE_EATEN))\r
                {\r
@@ -1158,6 +1159,7 @@ void CSQC_UpdateView(float w, float h)
                localcmd(strcat("bf ", cvar_string("cl_flash_respawn_color"), " ", cvar_string("cl_flash_respawn"), "\n"));\r
 \r
        if not(getstati(STAT_VORE_EATEN)) // crosshair is useless if we're in the stomach\r
+       if not(getstati(STAT_ARMOR) < g_power || time <= power_boot)\r
        {\r
                // crosshair goes VERY LAST\r
                if(!scoreboard_active && !ons_showmap && !camera_active) {\r
index 1d495abf07bb0cb674b6eb4aa33ff7388f75d24a..7045704351be5f0c95a0816363e2e9b41bb21184 100644 (file)
@@ -170,6 +170,7 @@ float g_vore;
 float g_healthsize_center, g_healthsize_min, g_healthsize_max;\r
 float armor_max;\r
 float teamheal_max;\r
+float g_power, g_power_reboot;\r
 \r
 //hooks\r
 float calledhooks;\r
index 61d7e8f2801ab9d042d9d043a888cd747cfa00b4..0371c39b4157ee7cbaf29e00698991dfd3002ce5 100644 (file)
@@ -3078,6 +3078,28 @@ void Sbar_Draw (void)
                fade = 3.2 - 2 * (time - weapontime);\r
                fade = bound(0.7, fade, 1);\r
 \r
+               if(getstati(STAT_HEALTH) > 0)\r
+               {\r
+                       vector warn_pos;\r
+                       warn_pos_x = vid_conwidth / 2;\r
+                       warn_pos_y = vid_conheight - vid_conheight / 2.5;\r
+                       if(getstati(STAT_ARMOR) < g_power)\r
+                       {\r
+                               drawpic(warn_pos - '128 0 0', "gfx/hud/sb_power_fail", '256 256 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+                               drawpic(warn_pos - '16 0 0' + '0 150 0', "gfx/hud/sb_power_fail_icon", '32 32 0', '1 1 1', sbar_alpha_fg * (0.5 + sin(time * 5) / 2), DRAWFLAG_NORMAL);\r
+\r
+                               power_boot = time + g_power_reboot;\r
+                               return;\r
+                       }\r
+                       else if(time <= power_boot)\r
+                       {\r
+                               drawpic(warn_pos - '128 0 0', "gfx/hud/sb_power_reboot", '256 256 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);\r
+                               drawpic(warn_pos - '16 0 0' + '0 150 0', "gfx/hud/sb_power_reboot_icon", '32 32 0', '1 1 1', sbar_alpha_fg * (0.5 + sin(time * 5) / 2), DRAWFLAG_NORMAL);\r
+\r
+                               return;\r
+                       }\r
+               }\r
+\r
                if(g_vore) // only when the vore system is active\r
                {\r
                        // draw the stomach board\r
index 29f39be31fe7813c3d08754451ecbaf12547fb45..6fb96a71a52c372b58e395f905d704677c981774 100644 (file)
@@ -1071,6 +1071,9 @@ float ClientInit_SendEntity(entity to, float sf)
                teamheal_max = cvar("g_balance_vore_teamheal_stable");\r
        WriteCoord(MSG_ENTITY, teamheal_max);\r
 \r
+       WriteShort(MSG_ENTITY, cvar("g_power"));\r
+       WriteShort(MSG_ENTITY, cvar("g_power_reboot"));\r
+\r
        return TRUE;\r
 }\r
 \r
@@ -2443,6 +2446,7 @@ Called every frame for each client before the physics are run
 void() ctf_setstatus;\r
 .float items_added;\r
 .vector avg_vel;\r
+.float power_sounded;\r
 void PlayerPreThink (void)\r
 {\r
        self.stat_game_starttime = game_starttime;\r
@@ -2473,6 +2477,18 @@ void PlayerPreThink (void)
        // core code for the vore system\r
        Vore();\r
 \r
+       // play power fail sound\r
+       if(self.armorvalue < cvar("g_power"))\r
+       {\r
+               if(!self.power_sounded)\r
+               {\r
+                       sound(self, CHAN_TRIGGER, "misc/power_fail.ogg", VOL_BASE, ATTN_NORM);\r
+                       self.power_sounded = TRUE;\r
+               }\r
+       }\r
+       else\r
+               self.power_sounded = FALSE;\r
+\r
        // version nagging\r
        if(self.version_nagtime)\r
                if(self.cvar_g_voretournamentversion)\r
@@ -2592,8 +2608,7 @@ void PlayerPreThink (void)
                        LA = AnglesTransform_Multiply(LA, LF);\r
 \r
                        // fade the player back to normal rotation each frame\r
-                       if(self.leanangle_damage_force) // safety\r
-                               self.leanangle_damage_force = self.leanangle_damage_force * cvar("g_leanplayer_damage_fade");\r
+                       self.leanangle_damage_force = self.leanangle_damage_force * cvar("g_leanplayer_damage_fade");\r
                        // end of damage leaning\r
 \r
                        self.angles = AnglesTransform_Normalize(AnglesTransform_ToAngles(LA), TRUE);\r
@@ -2622,6 +2637,8 @@ void PlayerPreThink (void)
                        {\r
                                // set weapon and player glowmod\r
                                self.glowmod = colormapPaletteColor(self.clientcolors & 0x0F, TRUE) * 2;\r
+                               if(self.armorvalue < cvar("g_power"))\r
+                                       self.glowmod = self.glowmod * random(); // make glow flicker when power is down\r
                                self.weaponentity_glowmod = self.glowmod;\r
                        }\r
 \r
index d8c72f49cb03da9f54469147ba68ac5063bbcca4..9f4c0c8fb86a260c7a4cb05d59e6c806792dfc68 100644 (file)
@@ -1422,6 +1422,7 @@ void precache()
     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
diff --git a/data/sound/misc/power_fail.ogg b/data/sound/misc/power_fail.ogg
new file mode 100644 (file)
index 0000000..f1ef148
Binary files /dev/null and b/data/sound/misc/power_fail.ogg differ
diff --git a/misc/source/media/hud/psd/sb_power_fail.psd b/misc/source/media/hud/psd/sb_power_fail.psd
new file mode 100644 (file)
index 0000000..88d8ffa
Binary files /dev/null and b/misc/source/media/hud/psd/sb_power_fail.psd differ
diff --git a/misc/source/media/hud/psd/sb_power_reboot.psd b/misc/source/media/hud/psd/sb_power_reboot.psd
new file mode 100644 (file)
index 0000000..480bf43
Binary files /dev/null and b/misc/source/media/hud/psd/sb_power_reboot.psd differ