From 1915472cf10d9093cfb1c527ea6ef62a60eaf6de95a883191c5283eca093ace9 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 27 Jun 2011 15:07:42 +0000 Subject: [PATCH] Accepting request 74546 from home:jengelh:dev prboom-plus is the successor to prboom. OBS-URL: https://build.opensuse.org/request/show/74546 OBS-URL: https://build.opensuse.org/package/show/games/prboom-plus?expand=0&rev=1 --- .gitattributes | 23 +++++ .gitignore | 1 + clean_source.sh | 19 ++++ prboom-nodatetime.diff | 14 +++ prboom-plus-2.5.1.1+.tar.xz | 3 + prboom-plus.changes | 28 ++++++ prboom-plus.spec | 75 ++++++++++++++ prboom-protos.diff | 162 ++++++++++++++++++++++++++++++ prboom-types1.diff | 43 ++++++++ prboom-types2.diff | 194 ++++++++++++++++++++++++++++++++++++ 10 files changed, 562 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 clean_source.sh create mode 100644 prboom-nodatetime.diff create mode 100644 prboom-plus-2.5.1.1+.tar.xz create mode 100644 prboom-plus.changes create mode 100644 prboom-plus.spec create mode 100644 prboom-protos.diff create mode 100644 prboom-types1.diff create mode 100644 prboom-types2.diff diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/clean_source.sh b/clean_source.sh new file mode 100644 index 0000000..1c2395c --- /dev/null +++ b/clean_source.sh @@ -0,0 +1,19 @@ +#!/bin/sh -ex +# Remove Wolfenstein dogs from source + +: ${DOOMWADDIR:=/usr/share/doom}; + +version=$(perl -lne 'if(/^Version\s*:\s*(\S+)/){print$1;exit}' wadinfo.txt; +rm -f prboom-plus.wad; +deutex -doom2 "$DOOMWADDIR" -create wadinfo.txt prboom-plus.wad; +find . -mindepth 1 -type d -print0 | xargs -0 rm -Rf; +mv wadinfo.txt prboom.txt; +rm -f error.txt output.txt; +popd; +find "prboom-plus-$version" -print0 | sort -z | \ + tar -T- --null --use=xz -cvf "prboom-plus-$version+.tar.xz"; diff --git a/prboom-nodatetime.diff b/prboom-nodatetime.diff new file mode 100644 index 0000000..b596a2f --- /dev/null +++ b/prboom-nodatetime.diff @@ -0,0 +1,14 @@ +--- + src/version.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: prboom-plus-2.5.1.1/src/version.c +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/version.c ++++ prboom-plus-2.5.1.1/src/version.c +@@ -35,4 +35,4 @@ + + #include "version.h" + +-const char version_date[] = __DATE__ " " __TIME__; ++const char version_date[] = ""; diff --git a/prboom-plus-2.5.1.1+.tar.xz b/prboom-plus-2.5.1.1+.tar.xz new file mode 100644 index 0000000..f291ad7 --- /dev/null +++ b/prboom-plus-2.5.1.1+.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:248f0f5f97e36fa23c517cee6eb7960f1a92649c7b95b70e757ba00b6377eb1c +size 986440 diff --git a/prboom-plus.changes b/prboom-plus.changes new file mode 100644 index 0000000..db11eb6 --- /dev/null +++ b/prboom-plus.changes @@ -0,0 +1,28 @@ +------------------------------------------------------------------- +Mon Jun 20 11:25:36 UTC 2011 - jengelh@medozas.de + +- Update to new upstream release 2.5.1.1: +* Support was added for sound fonts, OPL2 emulation, mouse wheel, + changing resolution on the fly, interpolation of automap, and the + "use GL surface for software mode" video option for the ability + to use hardware vsync in software mode. + +------------------------------------------------------------------- +Tue Nov 16 14:03:31 UTC 2010 - jengelh@medozas.de + +- Update to new upstream release 2.5.0.8a: +* Support for textured automap was added. Compatibility with Doom + 1.2 was improved. New HUDs and bugs were fixed. + +------------------------------------------------------------------- +Mon Aug 23 09:31:11 UTC 2010 - jengelh@medozas.de + +- Update to new upstream release 2.5.0.7: +* A lot of compatibility and improvements, many bug fixes, and + several new features were added, including support for DeePBSP and + uncompressed ZDBSP nodes and dynamic music changing... through the + new MUSINFO lump. On the GLBoom+ front, there is support for GZDoom + skyboxes, custom detail texture definitions, and blending of + animated flats and wall textures. + + diff --git a/prboom-plus.spec b/prboom-plus.spec new file mode 100644 index 0000000..924e549 --- /dev/null +++ b/prboom-plus.spec @@ -0,0 +1,75 @@ + +Name: prboom-plus +Version: 2.5.1.1 +Release: 0 +Summary: Open source port of the DOOM game engine + +Group: Amusements/Games/3D/Shoot +License: GPLv2+ +URL: http://prboom-plus.sourceforge.net/ +Source: %name-%version+.tar.xz +Patch1: prboom-nodatetime.diff +Patch2: prboom-types1.diff +Patch3: prboom-types2.diff +Patch4: prboom-protos.diff + +BuildRoot: %_tmppath/%name-%version-build +BuildRequires: Mesa-devel, fluidsynth-devel, libSDL_image-devel +BuildRequires: libSDL_mixer-devel, libSDL_net-devel, libvorbis-devel +BuildRequires: libpng-devel, pcre-devel, xz + +# static version number +Provides: prboom = 2.5.0 + +%description +PrBoom+ is a Doom source port developed from the original PrBoom +project. + +prboom is an open-source port of Doom, the classic 3D first-person +shooter game. It totally outclassed any 3D world games that preceded +it, with amazing speed, flexibility, and outstanding gameplay. The +specs to the game were released, and thousands of extra levels were +written by fans of the game; even today new levels are written for +Doom faster then any one person could play them. + +The target of the prboom-plus project is to extend the original port +with features that are necessary or useful to the developers and all +those interested in their work. It is worth noting that all changes +introduced in no way break PrBoom's compatibility with the original +Doom/Doom2 engines, and it is possible to be confident this will +never happen in the future since compatibility is as important. + +Author(s): +---------- + Andrey "e6y" Budko + +%prep +%setup -q +%patch -P 1 -P 2 -P 3 -P 4 -p1 + +%build +./bootstrap; +# rpm has its own optimizations, so turn off shipped defaults +%configure --enable-gl --disable-cpu-opt --program-prefix='' \ + --with-waddir=%_datadir/doom --disable-dogs +make %{?_smp_mflags} + +%install +b="%buildroot"; +make install DESTDIR="$b"; +# Will manually package docs (see %%files) +rm -Rf "$b/%_datadir/doc"; +mkdir -p "$b/%_bindir"; +mv "$b/%_prefix/games"/* "$b/%_bindir/"; +# Convenience symlink +ln -s prboom-plus "$b/%_bindir/prboom"; + +%files +%defattr(-,root,root,-) +%doc NEWS AUTHORS README +%doc doc/MBF.txt doc/MBFFAQ.txt doc/README.compat doc/README.demos doc/boom.txt +%_bindir/* +%_datadir/doom +%_mandir/*/* + +%changelog diff --git a/prboom-protos.diff b/prboom-protos.diff new file mode 100644 index 0000000..cb1a976 --- /dev/null +++ b/prboom-protos.diff @@ -0,0 +1,162 @@ +From: Jan Engelhardt + +build: fix compiler warnings about prototypes + +p_enemy.c: In function 'A_KeenDie': +p_enemy.c:1023:3: warning: call to function 'A_Fall' without a real prototype +p_enemy.h:59:6: note: 'A_Fall' was declared here +p_enemy.c: In function 'A_Chase': +p_enemy.c:1147:5: warning: call to function 'A_FaceTarget' without a real prototype +p_enemy.h:63:6: note: 'A_FaceTarget' was declared here +p_enemy.c: In function 'A_StartFire': +p_enemy.c:1755:3: warning: call to function 'A_Fire' without a real prototype +p_enemy.h:72:6: note: 'A_Fire' was declared here +p_enemy.c: In function 'A_FireCrackle': +p_enemy.c:1761:3: warning: call to function 'A_Fire' without a real prototype +p_enemy.h:72:6: note: 'A_Fire' was declared here +p_enemy.c: In function 'A_PainDie': +p_enemy.c:2067:3: warning: call to function 'A_Fall' without a real prototype +p_enemy.h:59:6: note: 'A_Fall' was declared here +p_enemy.c: In function 'A_CloseShotgun2': +p_enemy.c:2326:3: warning: call to function 'A_ReFire' without a real prototype +p_pspr.h:100:6: note: 'A_ReFire' was declared here +p_enemy.c: In function 'A_SpawnSound': +p_enemy.c:2457:3: warning: call to function 'A_SpawnFly' without a real prototype +p_enemy.h:105:6: note: 'A_SpawnFly' was declared here + +--- + src/p_enemy.h | 122 +++++++++++++++++++++++++++++----------------------------- + 1 file changed, 61 insertions(+), 61 deletions(-) + +Index: prboom-plus-2.5.1.1/src/p_enemy.h +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/p_enemy.h ++++ prboom-plus-2.5.1.1/src/p_enemy.h +@@ -53,66 +53,66 @@ extern struct brain_s { /* killo + // allows more extensive changes (see d_deh.c) + + // Doesn't work with g++, needs actionf_p1 +-void A_Explode(); +-void A_Pain(); +-void A_PlayerScream(); +-void A_Fall(); +-void A_XScream(); +-void A_Look(); +-void A_Chase(); +-void A_FaceTarget(); +-void A_PosAttack(); +-void A_Scream(); +-void A_SPosAttack(); +-void A_VileChase(); +-void A_VileStart(); +-void A_VileTarget(); +-void A_VileAttack(); +-void A_StartFire(); +-void A_Fire(); +-void A_FireCrackle(); +-void A_Tracer(); +-void A_SkelWhoosh(); +-void A_SkelFist(); +-void A_SkelMissile(); +-void A_FatRaise(); +-void A_FatAttack1(); +-void A_FatAttack2(); +-void A_FatAttack3(); +-void A_BossDeath(); +-void A_CPosAttack(); +-void A_CPosRefire(); +-void A_TroopAttack(); +-void A_SargAttack(); +-void A_HeadAttack(); +-void A_BruisAttack(); +-void A_SkullAttack(); +-void A_Metal(); +-void A_SpidRefire(); +-void A_BabyMetal(); +-void A_BspiAttack(); +-void A_Hoof(); +-void A_CyberAttack(); +-void A_PainAttack(); +-void A_PainDie(); +-void A_KeenDie(); +-void A_BrainPain(); +-void A_BrainScream(); +-void A_BrainDie(); +-void A_BrainAwake(); +-void A_BrainSpit(); +-void A_SpawnSound(); +-void A_SpawnFly(); +-void A_BrainExplode(); +-void A_Die(); +-void A_Detonate(); /* killough 8/9/98: detonate a bomb or other device */ +-void A_Mushroom(); /* killough 10/98: mushroom effect */ +-void A_Spawn(); // killough 11/98 +-void A_Turn(); // killough 11/98 +-void A_Face(); // killough 11/98 +-void A_Scratch(); // killough 11/98 +-void A_PlaySound(); // killough 11/98 +-void A_RandomJump(); // killough 11/98 +-void A_LineEffect(); // killough 11/98 ++void A_Explode(mobj_t *); ++void A_Pain(mobj_t *); ++void A_PlayerScream(mobj_t *); ++void A_Fall(mobj_t *); ++void A_XScream(mobj_t *); ++void A_Look(mobj_t *); ++void A_Chase(mobj_t *); ++void A_FaceTarget(mobj_t *); ++void A_PosAttack(mobj_t *); ++void A_Scream(mobj_t *); ++void A_SPosAttack(mobj_t *); ++void A_VileChase(mobj_t *); ++void A_VileStart(mobj_t *); ++void A_VileTarget(mobj_t *); ++void A_VileAttack(mobj_t *); ++void A_StartFire(mobj_t *); ++void A_Fire(mobj_t *); ++void A_FireCrackle(mobj_t *); ++void A_Tracer(mobj_t *); ++void A_SkelWhoosh(mobj_t *); ++void A_SkelFist(mobj_t *); ++void A_SkelMissile(mobj_t *); ++void A_FatRaise(mobj_t *); ++void A_FatAttack1(mobj_t *); ++void A_FatAttack2(mobj_t *); ++void A_FatAttack3(mobj_t *); ++void A_BossDeath(mobj_t *); ++void A_CPosAttack(mobj_t *); ++void A_CPosRefire(mobj_t *); ++void A_TroopAttack(mobj_t *); ++void A_SargAttack(mobj_t *); ++void A_HeadAttack(mobj_t *); ++void A_BruisAttack(mobj_t *); ++void A_SkullAttack(mobj_t *); ++void A_Metal(mobj_t *); ++void A_SpidRefire(mobj_t *); ++void A_BabyMetal(mobj_t *); ++void A_BspiAttack(mobj_t *); ++void A_Hoof(mobj_t *); ++void A_CyberAttack(mobj_t *); ++void A_PainAttack(mobj_t *); ++void A_PainDie(mobj_t *); ++void A_KeenDie(mobj_t *); ++void A_BrainPain(mobj_t *); ++void A_BrainScream(mobj_t *); ++void A_BrainDie(mobj_t *); ++void A_BrainAwake(mobj_t *); ++void A_BrainSpit(mobj_t *); ++void A_SpawnSound(mobj_t *); ++void A_SpawnFly(mobj_t *); ++void A_BrainExplode(mobj_t *); ++void A_Die(mobj_t *); ++void A_Detonate(mobj_t *); /* killough 8/9/98: detonate a bomb or other device */ ++void A_Mushroom(mobj_t *); /* killough 10/98: mushroom effect */ ++void A_Spawn(mobj_t *); // killough 11/98 ++void A_Turn(mobj_t *); // killough 11/98 ++void A_Face(mobj_t *); // killough 11/98 ++void A_Scratch(mobj_t *); // killough 11/98 ++void A_PlaySound(mobj_t *); // killough 11/98 ++void A_RandomJump(mobj_t *); // killough 11/98 ++void A_LineEffect(mobj_t *); // killough 11/98 + + #endif // __P_ENEMY__ diff --git a/prboom-types1.diff b/prboom-types1.diff new file mode 100644 index 0000000..ba6a2ed --- /dev/null +++ b/prboom-types1.diff @@ -0,0 +1,43 @@ +From: Jan Engelhardt + +build: fix compiler warnings + +oplplayer.c:1347:9: warning: format '%i' expects type 'int', but +argument 3 has type 'size_t' +gl_main.c:1307:5: warning: format '%i' expects type 'int', but +argument 3 has type 'long int' + +size_t requires %z; the second instance actually has type ptrdiff_t, +so %t is required. + +--- + src/MUSIC/oplplayer.c | 2 +- + src/gl_main.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: prboom-plus-2.5.1.1/src/MUSIC/oplplayer.c +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/MUSIC/oplplayer.c ++++ prboom-plus-2.5.1.1/src/MUSIC/oplplayer.c +@@ -1344,7 +1344,7 @@ static const void *I_OPL_RegisterSong(co + // time numbers we have to traverse the tracks and everything + if (mf.len < 100) + { +- lprintf (LO_WARN, "I_OPL_RegisterSong: Very short MIDI (%i bytes)\n", mf.len); ++ lprintf (LO_WARN, "I_OPL_RegisterSong: Very short MIDI (%zu bytes)\n", mf.len); + return NULL; + } + +Index: prboom-plus-2.5.1.1/src/gl_main.c +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/gl_main.c ++++ prboom-plus-2.5.1.1/src/gl_main.c +@@ -1304,7 +1304,7 @@ static void gld_FlatConvexCarver(int ssi + + if(!numedgepoints) + { +- if (levelinfo) fprintf(levelinfo, "All carved away: subsector %i - sector %i\n", ssec-subsectors, ssec->sector->iSectorID); ++ if (levelinfo) fprintf(levelinfo, "All carved away: subsector %td - sector %i\n", ssec-subsectors, ssec->sector->iSectorID); + } + else + { diff --git a/prboom-types2.diff b/prboom-types2.diff new file mode 100644 index 0000000..61b107e --- /dev/null +++ b/prboom-types2.diff @@ -0,0 +1,194 @@ +From: Jan Engelhardt + +build: fix compiler warnings about casting across different-size types + +p_saveg.c: In function 'P_ArchivePlayers': +p_saveg.c:66:9: warning: cast from pointer to integer of different size +[...] + +--- + src/g_overflow.c | 3 ++- + src/p_saveg.c | 31 ++++++++++++++++--------------- + src/r_drawflush.inl | 4 +++- + 3 files changed, 21 insertions(+), 17 deletions(-) + +Index: prboom-plus-2.5.1.1/src/g_overflow.c +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/g_overflow.c ++++ prboom-plus-2.5.1.1/src/g_overflow.c +@@ -35,6 +35,7 @@ + #include "config.h" + #endif + ++#include + #include + #include + +@@ -170,7 +171,7 @@ void InterceptsOverrun(int num_intercept + + InterceptsMemoryOverrun(location, intercept->frac); + InterceptsMemoryOverrun(location + 4, intercept->isaline); +- InterceptsMemoryOverrun(location + 8, (int) intercept->d.thing); ++ InterceptsMemoryOverrun(location + 8, (uintptr_t) intercept->d.thing); + } + } + } +Index: prboom-plus-2.5.1.1/src/p_saveg.c +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/p_saveg.c ++++ prboom-plus-2.5.1.1/src/p_saveg.c +@@ -31,6 +31,7 @@ + * + *-----------------------------------------------------------------------------*/ + ++#include + #include "doomstat.h" + #include "r_main.h" + #include "p_maputl.h" +@@ -48,7 +49,7 @@ byte *save_p; + + // Pads save_p to a 4-byte boundary + // so that the load/save works on SGI&Gecko. +-#define PADSAVEP() do { save_p += (4 - ((int) save_p & 3)) & 3; } while (0) ++#define PADSAVEP() do { save_p += (4 - ((uintptr_t) save_p & 3)) & 3; } while (0) + // + // P_ArchivePlayers + // +@@ -99,7 +100,7 @@ void P_UnArchivePlayers (void) + for (j=0 ; jnext) + if (th->function == P_MobjThinker) +- th->prev = (thinker_t *) ++number_of_thinkers; ++ th->prev = (thinker_t *)(uintptr_t) ++number_of_thinkers; + } + + // phares 9/13/98: Moved this code outside of P_ArchiveThinkers so the +@@ -497,10 +498,10 @@ void P_UnArchiveThinkers (void) + + //e6y save_p += 4*sizeof(void*); + +- mobj->state = states + (int) mobj->state; ++ mobj->state = states + (uintptr_t) mobj->state; + + if (mobj->player) +- (mobj->player = &players[(int) mobj->player - 1]) -> mo = mobj; ++ (mobj->player = &players[(uintptr_t) mobj->player - 1]) -> mo = mobj; + + P_SetThingPosition (mobj); + mobj->info = &mobjinfo[mobj->type]; +@@ -811,7 +812,7 @@ void P_UnArchiveSpecials (void) + ceiling_t *ceiling = Z_Malloc (sizeof(*ceiling), PU_LEVEL, NULL); + memcpy (ceiling, save_p, sizeof(*ceiling)); + save_p += sizeof(*ceiling); +- ceiling->sector = §ors[(int)ceiling->sector]; ++ ceiling->sector = §ors[(uintptr_t)ceiling->sector]; + ceiling->sector->ceilingdata = ceiling; //jff 2/22/98 + + if (ceiling->thinker.function) +@@ -828,10 +829,10 @@ void P_UnArchiveSpecials (void) + vldoor_t *door = Z_Malloc (sizeof(*door), PU_LEVEL, NULL); + memcpy (door, save_p, sizeof(*door)); + save_p += sizeof(*door); +- door->sector = §ors[(int)door->sector]; ++ door->sector = §ors[(uintptr_t)door->sector]; + + //jff 1/31/98 unarchive line remembered by door as well +- door->line = (int)door->line!=-1? &lines[(int)door->line] : NULL; ++ door->line = (uintptr_t)door->line!=-1? &lines[(uintptr_t)door->line] : NULL; + + door->sector->ceilingdata = door; //jff 2/22/98 + door->thinker.function = T_VerticalDoor; +@@ -845,7 +846,7 @@ void P_UnArchiveSpecials (void) + floormove_t *floor = Z_Malloc (sizeof(*floor), PU_LEVEL, NULL); + memcpy (floor, save_p, sizeof(*floor)); + save_p += sizeof(*floor); +- floor->sector = §ors[(int)floor->sector]; ++ floor->sector = §ors[(uintptr_t)floor->sector]; + floor->sector->floordata = floor; //jff 2/22/98 + floor->thinker.function = T_MoveFloor; + P_AddThinker (&floor->thinker); +@@ -858,7 +859,7 @@ void P_UnArchiveSpecials (void) + plat_t *plat = Z_Malloc (sizeof(*plat), PU_LEVEL, NULL); + memcpy (plat, save_p, sizeof(*plat)); + save_p += sizeof(*plat); +- plat->sector = §ors[(int)plat->sector]; ++ plat->sector = §ors[(uintptr_t)plat->sector]; + plat->sector->floordata = plat; //jff 2/22/98 + + if (plat->thinker.function) +@@ -875,7 +876,7 @@ void P_UnArchiveSpecials (void) + lightflash_t *flash = Z_Malloc (sizeof(*flash), PU_LEVEL, NULL); + memcpy (flash, save_p, sizeof(*flash)); + save_p += sizeof(*flash); +- flash->sector = §ors[(int)flash->sector]; ++ flash->sector = §ors[(uintptr_t)flash->sector]; + flash->thinker.function = T_LightFlash; + P_AddThinker (&flash->thinker); + break; +@@ -887,7 +888,7 @@ void P_UnArchiveSpecials (void) + strobe_t *strobe = Z_Malloc (sizeof(*strobe), PU_LEVEL, NULL); + memcpy (strobe, save_p, sizeof(*strobe)); + save_p += sizeof(*strobe); +- strobe->sector = §ors[(int)strobe->sector]; ++ strobe->sector = §ors[(uintptr_t)strobe->sector]; + strobe->thinker.function = T_StrobeFlash; + P_AddThinker (&strobe->thinker); + break; +@@ -899,7 +900,7 @@ void P_UnArchiveSpecials (void) + glow_t *glow = Z_Malloc (sizeof(*glow), PU_LEVEL, NULL); + memcpy (glow, save_p, sizeof(*glow)); + save_p += sizeof(*glow); +- glow->sector = §ors[(int)glow->sector]; ++ glow->sector = §ors[(uintptr_t)glow->sector]; + glow->thinker.function = T_Glow; + P_AddThinker (&glow->thinker); + break; +@@ -911,7 +912,7 @@ void P_UnArchiveSpecials (void) + fireflicker_t *flicker = Z_Malloc (sizeof(*flicker), PU_LEVEL, NULL); + memcpy (flicker, save_p, sizeof(*flicker)); + save_p += sizeof(*flicker); +- flicker->sector = §ors[(int)flicker->sector]; ++ flicker->sector = §ors[(uintptr_t)flicker->sector]; + flicker->thinker.function = T_FireFlicker; + P_AddThinker (&flicker->thinker); + break; +@@ -924,7 +925,7 @@ void P_UnArchiveSpecials (void) + elevator_t *elevator = Z_Malloc (sizeof(*elevator), PU_LEVEL, NULL); + memcpy (elevator, save_p, sizeof(*elevator)); + save_p += sizeof(*elevator); +- elevator->sector = §ors[(int)elevator->sector]; ++ elevator->sector = §ors[(uintptr_t)elevator->sector]; + elevator->sector->floordata = elevator; //jff 2/22/98 + elevator->sector->ceilingdata = elevator; //jff 2/22/98 + elevator->thinker.function = T_MoveElevator; +Index: prboom-plus-2.5.1.1/src/r_drawflush.inl +=================================================================== +--- prboom-plus-2.5.1.1.orig/src/r_drawflush.inl ++++ prboom-plus-2.5.1.1/src/r_drawflush.inl +@@ -28,6 +28,8 @@ + * + *-----------------------------------------------------------------------------*/ + ++#include ++ + #if (R_DRAWCOLUMN_PIPELINE_BITS == 8) + #define SCREENTYPE byte + #define TOPLEFT byte_topleft +@@ -250,7 +252,7 @@ static void R_FLUSHQUAD_FUNCNAME(void) + } + #else + #if (R_DRAWCOLUMN_PIPELINE_BITS == 8) +- if ((sizeof(int) == 4) && (((int)source % 4) == 0) && (((int)dest % 4) == 0)) { ++ if ((sizeof(int) == 4) && (((uintptr_t)source % 4) == 0) && (((uintptr_t)dest % 4) == 0)) { + while(--count >= 0) + { + *(int *)dest = *(int *)source;