diff --git a/CMakeLists.txt b/CMakeLists.txt index 3181c739..8d4f17b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -431,6 +431,7 @@ set(GL1-Source ${GL_SRC_DIR}/files/stb.c ${GL_SRC_DIR}/files/wal.c ${COMMON_SRC_DIR}/shared/shared.c + ${COMMON_SRC_DIR}/md4.c ) set(GL1-Header @@ -465,6 +466,7 @@ set(GL3-Source ${GL_SRC_DIR}/files/stb.c ${GL_SRC_DIR}/files/wal.c ${COMMON_SRC_DIR}/shared/shared.c + ${COMMON_SRC_DIR}/md4.c ) set(GL3-Header diff --git a/Makefile b/Makefile index 501d38f4..91b2f72f 100755 --- a/Makefile +++ b/Makefile @@ -816,7 +816,8 @@ REFGL1_OBJS_ := \ src/client/refresh/files/pcx.o \ src/client/refresh/files/stb.o \ src/client/refresh/files/wal.o \ - src/common/shared/shared.o + src/common/shared/shared.o \ + src/common/md4.o ifeq ($(YQ2_OSTYPE), Windows) REFGL1_OBJS_ += \ @@ -847,7 +848,8 @@ REFGL3_OBJS_ := \ src/client/refresh/files/pcx.o \ src/client/refresh/files/stb.o \ src/client/refresh/files/wal.o \ - src/common/shared/shared.o + src/common/shared/shared.o \ + src/common/md4.o ifeq ($(YQ2_OSTYPE), Windows) REFGL3_OBJS_ += \ diff --git a/src/client/menu/menu.c b/src/client/menu/menu.c index 1f8c3a37..c67256df 100644 --- a/src/client/menu/menu.c +++ b/src/client/menu/menu.c @@ -1509,7 +1509,7 @@ static const char *idcredits[] = { "Tim Willits", "American McGee", "Christian Antkow", - "Paul Jaquays", + "Jennell Jaquays", "Brandon James", "", "+BIZ", @@ -1667,7 +1667,7 @@ static const char *xatcredits[] = "Paul Steed", "Tim Willits", "Christian Antkow", - "Paul Jaquays", + "Jennell Jaquays", "Brandon James", "Todd Hollenshead", "Barrett (Bear) Alexander", @@ -1791,7 +1791,7 @@ static const char *roguecredits[] = "Paul Steed", "Tim Willits", "Christian Antkow", - "Paul Jaquays", + "Jennell Jaquays", "Brandon James", "Todd Hollenshead", "Barrett (Bear) Alexander", diff --git a/src/client/refresh/files/pcx.c b/src/client/refresh/files/pcx.c index f5117759..010a224f 100644 --- a/src/client/refresh/files/pcx.c +++ b/src/client/refresh/files/pcx.c @@ -26,6 +26,96 @@ #include "../ref_shared.h" +// Fix Jennell Jaquays' name in the Quitscreen +// this is 98x11 pixels, each value an index +// into the standard baseq2/pak0/pics/quit.pcx colormap +static unsigned char quitscreenfix[] = { + 191,191,191,47,28,39,4,4,39,1,47,28,47,28,29,1, + 28,28,47,31,31,1,29,31,1,28,47,47,47,47,29,28, + 47,31,30,28,40,40,4,28,28,40,39,40,29,102,102,245, + 28,39,4,4,39,103,40,40,1,1,102,94,47,47,1,94, + 94,94,94,47,102,245,103,103,103,47,1,102,1,102,29,29, + 29,29,47,28,245,31,31,31,47,1,28,1,28,47,1,102, 102,102, + 191,191,142,47,4,8,8,8,8,4,47,28,1,28,29,28, + 29,29,31,1,47,245,47,47,28,28,31,47,28,1,31,1, + 1,245,47,39,8,8,8,40,39,8,8,8,39,1,1,47, + 4,8,8,8,8,4,47,29,28,31,28,28,29,28,28,28, + 29,28,31,28,47,29,1,28,31,47,1,28,1,1,29,29, + 29,47,28,1,28,28,245,28,28,28,28,47,29,28,47,102,102,103, + 191,191,142,31,29,36,8,8,36,31,40,39,40,4,1,1, + 39,40,39,40,40,31,28,40,40,4,39,40,28,47,31,40, + 39,40,4,1,36,8,8,4,47,36,8,8,39,1,1,1, + 29,36,8,8,36,4,4,39,40,4,47,1,47,40,40,39, + 39,40,28,40,40,47,45,39,40,28,4,39,40,4,39,1, + 28,4,40,28,28,4,39,28,47,40,40,39,40,39,28,28,1,103, + 1,142,29,142,28,39,8,8,36,36,8,8,8,8,36,1, + 8,8,8,8,8,36,39,8,8,8,8,8,36,40,36,8, + 8,8,8,36,40,8,8,40,1,4,8,8,40,1,1,31, + 28,39,8,8,36,8,8,8,8,8,36,31,36,8,8,8, + 8,8,36,8,8,4,40,8,8,36,8,8,8,8,8,36, + 40,8,8,40,39,8,8,40,36,8,8,8,8,8,39,29,28,29, + 103,191,142,47,28,40,8,8,40,8,8,33,33,8,8,36, + 8,8,36,36,8,8,36,8,8,36,36,8,8,36,8,8, + 33,33,8,8,36,8,8,4,47,40,8,8,39,47,28,245, + 28,40,8,8,40,40,36,36,33,8,8,36,8,8,36,36, + 8,8,36,8,8,40,40,8,8,40,4,36,36,33,8,8, + 36,8,8,39,39,8,8,36,8,8,33,36,36,39,28,1,47,28, + 103,246,1,47,1,39,8,8,40,8,8,8,8,8,8,36, + 8,8,4,40,8,8,36,8,8,40,4,8,8,36,8,8, + 8,8,8,8,36,8,8,40,29,39,8,8,39,1,1,47, + 1,39,8,8,40,36,8,8,8,8,8,36,8,8,4,40, + 8,8,36,8,8,40,39,8,8,40,36,8,8,8,8,8, + 36,8,8,39,40,8,8,40,36,8,8,8,8,36,28,1,1,29, + 103,47,40,40,4,36,8,8,36,8,8,33,36,36,36,4, + 8,8,39,4,8,8,36,8,8,4,40,8,8,36,8,8, + 33,36,36,36,36,8,8,40,31,40,8,8,40,47,40,40, + 4,36,8,8,36,8,8,33,33,8,8,36,8,8,36,36, + 8,8,36,8,8,36,36,8,8,36,8,8,33,33,8,8, + 36,8,8,36,36,8,8,4,39,36,36,33,8,8,4,40,4,31, + 191,40,8,8,8,8,8,36,29,36,8,8,8,8,8,40, + 8,8,40,4,8,8,36,8,8,40,39,8,8,39,36,8, + 8,8,8,8,39,8,8,39,45,4,8,8,40,40,8,8, + 8,8,8,36,29,36,8,8,8,8,8,40,36,8,8,8, + 8,8,40,36,8,8,8,8,8,40,36,8,8,8,8,8, + 40,36,8,8,8,8,8,36,8,8,8,8,8,36,4,8,8,4, + 47,45,40,39,40,39,39,245,246,1,40,40,40,39,4,47, + 40,4,28,29,39,40,30,39,39,1,28,40,4,28,1,40, + 40,40,39,4,29,40,39,1,1,1,4,4,47,45,40,39, + 40,39,39,245,246,29,39,40,40,40,4,47,28,39,39,36, + 8,8,4,1,39,40,4,40,40,1,29,4,39,4,40,39, + 1,39,36,36,33,8,8,4,39,4,39,4,40,47,36,8,8,40, + 1,28,47,28,28,29,1,28,47,28,31,28,28,27,47,28, + 45,246,30,28,245,29,47,47,29,30,28,47,27,1,246,47, + 47,47,1,28,47,28,47,1,47,47,1,29,29,47,47,28, + 28,29,1,47,1,47,47,28,31,47,47,31,47,47,47,4, + 8,8,39,245,1,47,28,245,28,47,31,28,47,28,28,28, + 40,8,8,8,8,8,36,47,28,1,246,47,1,40,8,8,36,1, + 47,1,102,1,102,102,47,94,94,102,47,47,102,102,102,102, + 94,1,94,47,102,1,102,47,30,30,102,27,47,102,94,1, + 102,47,1,94,102,103,1,102,103,103,47,47,47,29,1,29, + 28,28,29,28,1,47,28,31,29,1,47,29,28,1,1,47, + 4,39,1,47,47,1,28,28,28,47,1,28,45,28,47,47, + 1,40,4,4,40,4,29,28,31,45,47,28,47,47,4,40,28,28 +}; + +static void +fixQuitScreen(byte* px) +{ + // overwrite 11 lines, 98 pixels each, from quitscreenfix[] + // starting at line 140, column 188 + // quitscreen is 320x240 px + int r, qsIdx = 0; + + px += 140*320; // go to line 140 + px += 188; // to colum 188 + for(r=0; r<11; ++r) + { + memcpy(px, quitscreenfix+qsIdx, 98); + qsIdx += 98; + px += 320; + } +} + void LoadPCX(char *origname, byte **pic, byte **palette, int *width, int *height) { @@ -134,6 +224,14 @@ LoadPCX(char *origname, byte **pic, byte **palette, int *width, int *height) free(*pic); *pic = NULL; } + else if(pcx->xmax == 319 && pcx->ymax == 239 + && Q_strcasecmp(origname, "pics/quit.pcx") == 0 + && Com_BlockChecksum(pcx, len) == 3329419434u) + { + // it's the quit screen, and the baseq2 one (identified by checksum) + // so fix it + fixQuitScreen(*pic); + } ri.FS_FreeFile(pcx); }