summaryrefslogtreecommitdiff
path: root/src/strife/f_wipe.c
diff options
context:
space:
mode:
authorJames Haley2010-08-28 05:35:52 +0000
committerJames Haley2010-08-28 05:35:52 +0000
commitcbfc9c134032630b71ec2acf4abe552a7569640f (patch)
tree19901c7157213d392931624833b04ac8bfd1b303 /src/strife/f_wipe.c
parent8f24f63be140a34c9ac19463832bed0e7fabba67 (diff)
downloadchocolate-doom-cbfc9c134032630b71ec2acf4abe552a7569640f.tar.gz
chocolate-doom-cbfc9c134032630b71ec2acf4abe552a7569640f.tar.bz2
chocolate-doom-cbfc9c134032630b71ec2acf4abe552a7569640f.zip
Added crossfade wipe and code to load XLATAB lump. Changes to the menu
system including working Sigil cursor, alignment changes, shortcut character changes, and removal of items from the options menu that Strife put elsewhere. Initial sweep for global lump name changes completed: AMMNUM%d -> PLMNUM%d, M_DOOM -> M_STRIFE, M_OPTTTL -> M_OPTION, STTMINUS -> STCFN045, et al. A dummy modified Strife IWAD must be loaded over DOOM.WAD at this point in order to run. Subversion-branch: /branches/strife-branch Subversion-revision: 1968
Diffstat (limited to 'src/strife/f_wipe.c')
-rw-r--r--src/strife/f_wipe.c63
1 files changed, 29 insertions, 34 deletions
diff --git a/src/strife/f_wipe.c b/src/strife/f_wipe.c
index efc678ca..4c496f38 100644
--- a/src/strife/f_wipe.c
+++ b/src/strife/f_wipe.c
@@ -33,6 +33,9 @@
#include "doomtype.h"
+#include "r_defs.h" // haleyjd [STRIFE]
+#include "r_draw.h"
+
#include "f_wipe.h"
//
@@ -69,6 +72,7 @@ wipe_shittyColMajorXform
}
+// haleyjd 08/26/10: [STRIFE] Verified unmodified.
int
wipe_initColorXForm
( int width,
@@ -79,52 +83,40 @@ wipe_initColorXForm
return 0;
}
+//
+// wipe_doColorXForm
+//
+// haleyjd 08/26/10: [STRIFE]
+// * Rogue modified the unused ColorXForm wipe in-place in order to implement
+// their distinctive crossfade wipe.
+//
int
wipe_doColorXForm
( int width,
int height,
int ticks )
{
- boolean changed;
- byte* w;
- byte* e;
- int newval;
-
- changed = false;
- w = wipe_scr;
- e = wipe_scr_end;
-
- while (w!=wipe_scr+width*height)
+ byte *cur_screen = wipe_scr;
+ byte *end_screen = wipe_scr_end;
+ int pix = width*height;
+ int i;
+ boolean changed = false;
+
+ for(i = pix; i > 0; i--)
{
- if (*w != *e)
- {
- if (*w > *e)
- {
- newval = *w - ticks;
- if (newval < *e)
- *w = *e;
- else
- *w = newval;
- changed = true;
- }
- else if (*w < *e)
- {
- newval = *w + ticks;
- if (newval > *e)
- *w = *e;
- else
- *w = newval;
- changed = true;
- }
- }
- w++;
- e++;
+ if(*cur_screen != *end_screen)
+ {
+ changed = true;
+ *cur_screen = xlatab[(*cur_screen << 8) + *end_screen];
+ }
+ ++cur_screen;
+ ++end_screen;
}
return !changed;
-
}
+// haleyjd 08/26/10: [STRIFE] Verified unmodified.
int
wipe_exitColorXForm
( int width,
@@ -235,6 +227,7 @@ wipe_exitMelt
return 0;
}
+// haleyjd 08/26/10: [STRIFE] Verified unmodified.
int
wipe_StartScreen
( int x,
@@ -247,6 +240,7 @@ wipe_StartScreen
return 0;
}
+// haleyjd 08/26/10: [STRIFE] Verified unmodified.
int
wipe_EndScreen
( int x,
@@ -260,6 +254,7 @@ wipe_EndScreen
return 0;
}
+// haleyjd 08/26/10: [STRIFE] Verified unmodified.
int
wipe_ScreenWipe
( int wipeno,