]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/client/View.qc
Artwork fading effect
[voretournament/voretournament.git] / data / qcsrc / client / View.qc
index e9110fb09e3c1dd32d2ed328e9e3c3f5cdc810e1..70b61f4daa05f1ac546029c7b9c63b24832fffd1 100644 (file)
@@ -251,6 +251,8 @@ float Sbar_WouldDrawScoreboard ();
 float view_set;\r
 float camera_mode;\r
 float chase_active_old;\r
+float artwork_fade;\r
+string artwork_image;\r
 string NextFrameCommand;\r
 void CSQC_UpdateView(float w, float h)\r
 {\r
@@ -259,6 +261,8 @@ void CSQC_UpdateView(float w, float h)
        float f, i, j;\r
        vector v, vo;\r
 \r
+       vector artwork_pos, artwork_size;\r
+\r
        WaypointSprite_Load();\r
 \r
        if(spectatee_status)\r
@@ -321,11 +325,13 @@ void CSQC_UpdateView(float w, float h)
        if(!postinit)\r
                PostInit();\r
 \r
-       if(intermission && !isdemo() && !(calledgrabbers & GRABBER_END))\r
-               if(calledgrabbers & GRABBER_START)\r
+       if(intermission && !isdemo() && !(calledhooks & HOOK_END))\r
+               if(calledhooks & HOOK_START)\r
                {\r
                        localcmd("\ncl_hook_gameend;");\r
-                       calledgrabbers |= GRABBER_END;\r
+                       if(g_campaign)\r
+                               localcmd("\ncl_hook_campaign_gameend;");\r
+                       calledhooks |= HOOK_END;\r
                }\r
 \r
        CheckForGamestartChange();\r
@@ -484,6 +490,58 @@ void CSQC_UpdateView(float w, float h)
          )\r
                teamradar_view();\r
 \r
+       // Draw Artwork\r
+       if(intermission && !isdemo()) // match has ended\r
+       {\r
+               if(artwork_image == "")\r
+               {\r
+                       if(getstati(STAT_WINNING))\r
+                       {\r
+                               if(!cvar("cl_artwork_won"))\r
+                                       return;\r
+                               artwork_image = strcat("gfx/artwork_won_", ftos(floor(1 + (random() * cvar("cl_artwork_won")))));\r
+                       }\r
+                       else\r
+                       {\r
+                               if(!cvar("cl_artwork_lost"))\r
+                                       return;\r
+                               artwork_image = strcat("gfx/artwork_lost_", ftos(floor(1 + (random() * cvar("cl_artwork_lost")))));\r
+                       }\r
+                       artwork_image = strzone(artwork_image);\r
+               }\r
+\r
+               if(cvar("cl_artwork_stretch"))\r
+               {\r
+                       artwork_size_x = vid_conwidth;\r
+                       artwork_size_y = vid_conheight;\r
+                       artwork_pos_x = 0;\r
+                       artwork_pos_y = 0;\r
+               }\r
+               else\r
+               {\r
+                       artwork_size_x = max(vid_conwidth, vid_conheight);\r
+                       artwork_size_y = max(vid_conwidth, vid_conheight);\r
+                       artwork_pos_x = (vid_conwidth - artwork_size_x) / 2;\r
+                       artwork_pos_y = (vid_conheight - artwork_size_y) / 2;\r
+               }\r
+\r
+               if(artwork_fade < 1)\r
+                       artwork_fade += frametime * cvar("cl_artwork_fadespeed");\r
+               else\r
+                       artwork_fade = 1;\r
+\r
+               drawpic(artwork_pos, artwork_image, artwork_size, '1 1 1', artwork_fade, DRAWFLAG_NORMAL);\r
+       }\r
+       else\r
+       {\r
+               if(artwork_image != "")\r
+               {\r
+                       strunzone(artwork_image);\r
+                       artwork_image = "";\r
+               }\r
+               artwork_fade = 0;\r
+       }\r
+\r
        // draw sbar\r
        if(cvar("r_letterbox") == 0) {\r
                if (cvar("cl_showpressedkeys")) { // draw pressed keys when spectating and playing\r