foxygit / doom Log in
commit 5674a4e6f31616c3cd4ce725ef54086689245ebc
Author:     James Haley <haleyjd@hotmail.com>
AuthorDate: Thu Jun 30 04:07:25 2011 +0000
Commit:     James Haley <haleyjd@hotmail.com>
CommitDate: Thu Jun 30 04:07:25 2011 +0000

    Two changes:
    * Be vanilla-compatible with callpoint to M_Ticker.
    * Use a temporary screen buffer for screen wipes to avoid overdrawing
      the screen during the fade process. This didn't happen in vanilla due
      to its refresh system.

    Subversion-branch: /branches/strife-branch
    Subversion-revision: 2352
---
 src/strife/d_net.c  | 10 +++++++++-
 src/strife/f_wipe.c |  9 ++++++---
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/strife/d_net.c b/src/strife/d_net.c
index 7e1644e8..39a89e28 100644
--- a/src/strife/d_net.c
+++ b/src/strife/d_net.c
@@ -165,10 +165,13 @@ void NetUpdate (void)
 	I_StartTic ();
 	D_ProcessEvents ();

+#if 0
         // Always run the menu
+        // - jhaley 20110629 [CHOCOFIX] - sure, if you want to cause serious
+        //   problems. See TryRunTics for where the call to M_Ticker belongs.

         M_Ticker ();
-
+#endif
         if (drone)
         {
             // In drone mode, do not generate any ticcmds.
@@ -608,6 +611,11 @@ void TryRunTics (void)
 	    if (advancedemo)
 		D_DoAdvanceDemo ();

+            // [STRIFE]/[CHOCOFIX] jhaley 20110629 Chocolate compatibility problem!
+            // *Somebody* moved M_Ticker to NetUpdate where it specifically does not
+            // belong. It *must* be here. All it ever does is animate the cursor
+            // anyway so there is absolutely no reason to run it from NetUpdate.
+            M_Ticker ();
 	    G_Ticker ();
 	    gametic++;

diff --git a/src/strife/f_wipe.c b/src/strife/f_wipe.c
index 4c496f38..8c3eeaae 100644
--- a/src/strife/f_wipe.c
+++ b/src/strife/f_wipe.c
@@ -277,15 +277,18 @@ wipe_ScreenWipe
     if (!go)
     {
 	go = 1;
-	// wipe_scr = (byte *) Z_Malloc(width*height, PU_STATIC, 0); // DEBUG
-	wipe_scr = I_VideoBuffer;
+        // haleyjd 20110629 [STRIFE]: We *must* use a temp buffer here.
+	wipe_scr = (byte *) Z_Malloc(width*height, PU_STATIC, 0); // DEBUG
+	//wipe_scr = I_VideoBuffer;
 	(*wipes[wipeno*3])(width, height, ticks);
     }

     // do a piece of wipe-in
     V_MarkRect(0, 0, width, height);
     rc = (*wipes[wipeno*3+1])(width, height, ticks);
-    //  V_DrawBlock(x, y, 0, width, height, wipe_scr); // DEBUG
+
+    // haleyjd 20110629 [STRIFE]: Copy temp buffer to the real screen.
+    V_DrawBlock(x, y, width, height, wipe_scr);

     // final stuff
     if (rc)