From cbfc9c134032630b71ec2acf4abe552a7569640f Mon Sep 17 00:00:00 2001 From: James Haley Date: Sat, 28 Aug 2010 05:35:52 +0000 Subject: 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 --- src/strife/f_wipe.c | 63 ++++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 34 deletions(-) (limited to 'src/strife/f_wipe.c') 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, -- cgit v1.2.3