- Update to release 2.6(um)

OBS-URL: https://build.opensuse.org/package/show/games/prboom-plus?expand=0&rev=36
This commit is contained in:
Jan Engelhardt 2021-04-10 01:06:49 +00:00 committed by Git OBS Bridge
parent cca12e01f6
commit f16fbe1737
13 changed files with 117 additions and 405 deletions

View File

@ -1,74 +0,0 @@
From 1a081d10e6c71a5b5b2db76081227677f06b47b3 Mon Sep 17 00:00:00 2001
From: Fabian Greffrath <fabian@greffrath.com>
Date: Mon, 1 Jun 2020 09:53:23 +0200
Subject: [PATCH] fix heap buffer overflows in UDP code (CVE-2019-20797) (#85)
Origin: https://github.com/coelckers/prboom-plus
* fix heap buffer overflows in UDP code (CVE-2019-20797)
* Limit length of buffer passed over to ChecksumPacket().
Patch taken from the OP at https://logicaltrust.net/blog/2019/10/prboom1.html
* Never send more than one second worth of tics (i.e. 35) in both the
main() routine in d_server.c and NetUpdate() in d_client.c.
This avoids overflows of the allocated UDF buffer with a fixed size
of 10000 bytes. Theoretically, up to about 35 seconds could be sent in the
client code and up to about 7 seconds in the server code, but the
network game would be unplayable with such a lag anyway.
Client code: pkt_size = 8 + 2 + X * 8 (= 9810 for X = 35*35)
Server code: pkt_size = 8 + 1 + X * (1 + 4 * (1 + 8)) (= 9074 for X = 7 * 35)
Fixes: #84
* limit number of sent tics to 128
* fix brain bug
---
src/SDL/i_network.c | 2 +-
src/d_client.c | 2 +-
src/d_server.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/SDL/i_network.c b/src/SDL/i_network.c
index 89edab78..7e02706a 100644
--- a/src/SDL/i_network.c
+++ b/src/SDL/i_network.c
@@ -240,7 +240,7 @@ size_t I_GetPacket(packet_header_t* buffer, size_t buflen)
checksum=buffer->checksum;
buffer->checksum=0;
if ( (status!=0) && (len>0)) {
- byte psum = ChecksumPacket(buffer, udp_packet->len);
+ byte psum = ChecksumPacket(buffer, len); // https://logicaltrust.net/blog/2019/10/prboom1.html
/* fprintf(stderr, "recvlen = %u, stolen = %u, csum = %u, psum = %u\n",
udp_packet->len, len, checksum, psum); */
if (psum == checksum) return len;
diff --git a/src/d_client.c b/src/d_client.c
index 7ce74d4e..054bc595 100644
--- a/src/d_client.c
+++ b/src/d_client.c
@@ -351,7 +351,7 @@ void NetUpdate(void)
int sendtics;
remotesend -= xtratics;
if (remotesend < 0) remotesend = 0;
- sendtics = maketic - remotesend;
+ sendtics = MIN(maketic - remotesend, 128); // limit number of sent tics (CVE-2019-20797)
{
size_t pkt_size = sizeof(packet_header_t) + 2 + sendtics * sizeof(ticcmd_t);
packet_header_t *packet = Z_Malloc(pkt_size, PU_STATIC, NULL);
diff --git a/src/d_server.c b/src/d_server.c
index 1269a861..39c2e3cd 100644
--- a/src/d_server.c
+++ b/src/d_server.c
@@ -682,7 +682,7 @@ int main(int argc, char** argv)
int tics;
if (lowtic <= remoteticto[i]) continue;
if ((remoteticto[i] -= xtratics) < 0) remoteticto[i] = 0;
- tics = lowtic - remoteticto[i];
+ tics = MIN(lowtic - remoteticto[i], 128); // limit number of sent tics (CVE-2019-20797)
{
byte *p;
packet = malloc(sizeof(packet_header_t) + 1 +
--
2.26.2

View File

@ -1,10 +1,11 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">svn</param>
<param name="url">https://svn.prboom.org/repos/branches/prboom-plus-24/prboom2</param>
<param name="scm">git</param>
<param name="url">https://github.com/coelckers/prboom-plus</param>
<param name="exclude">data/sounds/dsdg*</param>
<param name="exclude">data/sprites/dogs*</param>
<param name="versionformat">2.5.1.5+svn%r</param>
<param name="revision">07925d634cc4d5a8847f76ca4c4f2ce236ba6de8</param>
<param name="versionformat">2.6um+g@TAG_OFFSET@</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>

View File

@ -1,20 +1,20 @@
Date: 2011-08-03 18:36:44+0200
From 6f50776b2c6365671fe53bdfc4bc9ffa622f1e06 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Upstream: sent
Date: Wed, 3 Aug 2011 18:36:44 +0200
Subject: [PATCH 1/4] Unconditionally enable GL tesselation
Always do tesselation, because otherwise, map hacks like
self-referencing sectors (cf.
http://doom.wikia.com/wiki/Making_a_self-referencing_sector) will not
be rendered.
---
src/gl_main.c | 3 +++
prboom2/src/gl_main.c | 3 +++
1 file changed, 3 insertions(+)
Index: prboom-plus-2.5.1.4/src/gl_main.c
===================================================================
--- prboom-plus-2.5.1.4.orig/src/gl_main.c
+++ prboom-plus-2.5.1.4/src/gl_main.c
diff --git prboom2/src/gl_main.c prboom2/src/gl_main.c
index 20712b7e..8fbceb4f 100644
--- prboom2/src/gl_main.c
+++ prboom2/src/gl_main.c
@@ -36,6 +36,9 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
@ -25,3 +25,6 @@ Index: prboom-plus-2.5.1.4/src/gl_main.c
#include "gl_opengl.h"
--
2.30.2

View File

@ -1,20 +1,19 @@
From 814146aab795b0c2d693e03027993d91c9db6f3e Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: 2013-05-01 09:53:49.000000000 +0200
Category: improvement
Status: sent Wed, 1 May 2013 14:28:44 +0200
Show the health bar for all destructible items (including
barrels and Lost Souls).
Date: Wed, 1 May 2013 09:53:49 +0200
Subject: [PATCH 3/4] Show health bar for all destructible mobjs
Show the health bar for all destructible items, especially so
including barrels and Lost Souls.
---
src/gl_main.c | 3 ++-
prboom2/src/gl_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: prboom2/src/gl_main.c
===================================================================
--- prboom2.orig/src/gl_main.c
diff --git prboom2/src/gl_main.c prboom2/src/gl_main.c
index 8fbceb4f..0a52a0b5 100644
--- prboom2/src/gl_main.c
+++ prboom2/src/gl_main.c
@@ -2399,7 +2399,8 @@ static void gld_DrawSprite(GLSprite *spr
@@ -2331,7 +2331,8 @@ static void gld_DrawSprite(GLSprite *sprite)
static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite)
{
@ -24,3 +23,6 @@ Index: prboom2/src/gl_main.c
{
GLHealthBar hbar;
int health_percent = thing->health * 100 / thing->info->spawnhealth;
--
2.30.2

View File

@ -1,20 +1,19 @@
From ebebaebb619ef64d4243eb5066fa0b786b42a951 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: 2013-05-01 09:42:45.000000000 +0200
Category: improvement
Status: sent Wed, 1 May 2013 14:28:44 +0200
Date: Wed, 1 May 2013 09:42:45 +0200
Subject: [PATCH 2/4] Redistribute health bar colors
With the current value of health_hbar_green=0, green will never
be shown for monsters, which feels incorrect.
---
src/m_misc.c | 6 +++---
prboom2/src/m_misc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Index: prboom2/src/m_misc.c
===================================================================
--- prboom2.orig/src/m_misc.c
diff --git prboom2/src/m_misc.c prboom2/src/m_misc.c
index 0bf3f5b9..c83f23df 100644
--- prboom2/src/m_misc.c
+++ prboom2/src/m_misc.c
@@ -953,11 +953,11 @@ default_t defaults[] =
@@ -1045,11 +1045,11 @@ default_t defaults[] =
def_bool,ss_stat},
{"health_bar_full_length", {&health_bar_full_length}, {1},0,1,
def_bool,ss_stat},
@ -27,5 +26,8 @@ Index: prboom2/src/m_misc.c
- {"health_bar_green", {&health_bar_green}, {0},0,100,
+ {"health_bar_green", {&health_bar_green}, {99},0,100,
def_int,ss_stat},
#endif
// NSM
--
2.30.2

View File

@ -1,38 +1,18 @@
From be6b2259e2a150e6713d79574c2f64eaf7a25bd8 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: 2013-05-01 14:27:39.000000000 +0200
Category: improvement
Status: sent Wed, 1 May 2013 14:28:44 +0200
This makes the health bar above shootables use gradiented color.
Date: Wed, 1 May 2013 14:27:39 +0200
Subject: [PATCH 4/4] Make the health bar gradually change from green to red
---
src/gl_drawinfo.c | 4 ++--
src/gl_intern.h | 2 +-
src/gl_main.c | 44 +++++++++++++++++---------------------------
3 files changed, 20 insertions(+), 30 deletions(-)
prboom2/src/gl_intern.h | 2 +-
prboom2/src/gl_main.c | 44 ++++++++++++++++-------------------------
2 files changed, 18 insertions(+), 28 deletions(-)
Index: prboom-plus-2.5.1.4/src/gl_drawinfo.c
===================================================================
--- prboom-plus-2.5.1.4.orig/src/gl_drawinfo.c
+++ prboom-plus-2.5.1.4/src/gl_drawinfo.c
@@ -112,10 +112,10 @@ static void gld_AddDrawRange(int size)
#define SIZEOF8(type) ((sizeof(type)+7)&~7)
void gld_AddDrawItem(GLDrawItemType itemtype, void *itemdata)
{
- int itemsize = 0;
+ unsigned int itemsize = 0;
byte *item_p = NULL;
- static int itemsizes[GLDIT_TYPES] = {
+ static const unsigned int itemsizes[GLDIT_TYPES] = {
0,
SIZEOF8(GLWall), SIZEOF8(GLWall), SIZEOF8(GLWall), SIZEOF8(GLWall), SIZEOF8(GLWall),
SIZEOF8(GLWall), SIZEOF8(GLWall),
Index: prboom-plus-2.5.1.4/src/gl_intern.h
===================================================================
--- prboom-plus-2.5.1.4.orig/src/gl_intern.h
+++ prboom-plus-2.5.1.4/src/gl_intern.h
@@ -218,7 +218,7 @@ typedef struct
diff --git prboom2/src/gl_intern.h prboom2/src/gl_intern.h
index b4be8d56..8c44d9a7 100644
--- prboom2/src/gl_intern.h
+++ prboom2/src/gl_intern.h
@@ -219,7 +219,7 @@ typedef struct
typedef struct
{
@ -41,11 +21,11 @@ Index: prboom-plus-2.5.1.4/src/gl_intern.h
float x1, x2, x3;
float z1, z2, z3;
Index: prboom-plus-2.5.1.4/src/gl_main.c
===================================================================
--- prboom-plus-2.5.1.4.orig/src/gl_main.c
+++ prboom-plus-2.5.1.4/src/gl_main.c
@@ -2339,15 +2339,20 @@ static void gld_AddHealthBar(mobj_t* thi
diff --git prboom2/src/gl_main.c prboom2/src/gl_main.c
index 0a52a0b5..4f42ec46 100644
--- prboom2/src/gl_main.c
+++ prboom2/src/gl_main.c
@@ -2337,15 +2337,20 @@ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite)
GLHealthBar hbar;
int health_percent = thing->health * 100 / thing->info->spawnhealth;
@ -74,7 +54,7 @@ Index: prboom-plus-2.5.1.4/src/gl_main.c
{
float sx2 = (float)thing->radius / 2.0f / MAP_SCALE;
float sx1 = sx2 - (float)health_percent * (float)thing->radius / 100.0f / MAP_SCALE;
@@ -2371,7 +2376,6 @@ static void gld_AddHealthBar(mobj_t* thi
@@ -2369,7 +2374,6 @@ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite)
static void gld_DrawHealthBars(void)
{
int i, count;
@ -82,7 +62,7 @@ Index: prboom-plus-2.5.1.4/src/gl_main.c
count = gld_drawinfo.num_items[GLDIT_HBAR];
if (count > 0)
@@ -2382,31 +2386,17 @@ static void gld_DrawHealthBars(void)
@@ -2380,31 +2384,17 @@ static void gld_DrawHealthBars(void)
for (i = count - 1; i >= 0; i--)
{
GLHealthBar *hbar = gld_drawinfo.items[GLDIT_HBAR][i].item.hbar;
@ -118,3 +98,6 @@ Index: prboom-plus-2.5.1.4/src/gl_main.c
gld_EnableTexture2D(GL_TEXTURE0_ARB, true);
}
}
--
2.30.2

View File

@ -1,14 +1,16 @@
From 2bf8068e0cd916b39fd2c57f3c9bf582b0fc45d8 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: 2012-02-19 07:16:45.000000000 +0100
Date: Sun, 19 Feb 2012 07:16:45 +0100
Subject: [PATCH] Drop __DATE__/__TIME__ / enable reproducible builds
---
src/version.c | 4 ++--
prboom2/src/version.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: prboom2-2.5.1.5+svn4532/src/version.c
===================================================================
--- prboom2-2.5.1.5+svn4532.orig/src/version.c
+++ prboom2-2.5.1.5+svn4532/src/version.c
diff --git prboom2/src/version.c prboom2/src/version.c
index 1f5401f2..2cc173f6 100644
--- prboom2/src/version.c
+++ prboom2/src/version.c
@@ -37,11 +37,11 @@
#include "version.h"
@ -23,3 +25,6 @@ Index: prboom2-2.5.1.5+svn4532/src/version.c
#endif
const char version_date[] = BUILD_DATE " " BUILD_TIME;
--
2.30.2

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:314b5bd0e770cdc51f3d0cd1967bce3087776f74293bee7c049d684dd121f73d
size 1130204

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Fri Apr 9 23:53:06 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Switch to Oelcker's prboom-plus-um code base
- Update to release 2.6(um)
* Support for UMAPINFO lump, customizable intermissions,
customizable episode menu.
* Support for compressed ZDoom nodes.
* 100 extra sprites (SP00..SP99) for use in DEH/BEX.
* 200 extra sounds for use in DEH/BEX.
* Add -statdump parameter from Chocolate Doom.
* Add -stroller parameter.
* Now defaults to ffmpeg for video encoding
(switched from oggenc2/x264).
* Added new BEX property "Dropped item" for mobjs.
* New demo format with "PR+UM" signature.
* Add a "-pistolstart" command line parameter.
* Add ALSA sequencer API backend for ALSA MIDI support.
- Drop 0001-fix-heap-buffer-overflows-in-UDP-code-CVE-2019-20797.patch
(merged), prboom-types1.diff (obsolete),
prboom-types2.diff (obsolete)
-------------------------------------------------------------------
Tue Jun 9 20:32:48 UTC 2020 - Jan Engelhardt <jengelh@inai.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package prboom-plus
#
# Copyright (c) 2020 SUSE LLC
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,44 +17,37 @@
Name: prboom-plus
Version: 2.5.1.5+svn4532
Version: 2.6um+g69
Release: 0
Summary: DOOM source port with demo compatibility
License: GPL-2.0-or-later
Group: Amusements/Games/3D/Shoot
URL: http://prboom-plus.sf.net/
#SVN-Clone: https://svn.prboom.org/repos/branches/prboom-plus-24/prboom2
#Sibling-Prj: https://github.com/coelckers/prboom-plus (umapinfo fork)
#DL-URL: http://downloads.sf.net/prboom-plus/prboom-plus-2.5.1.4.tar.gz
Source: prboom2-%version.tar.xz
#Git-Clone: https://github.com/coelckers/prboom-plus
Source: %name-%version.tar.xz
Patch1: prboom-nodatetime.diff
Patch2: prboom-types1.diff
Patch3: prboom-types2.diff
Patch5: prboom-enable-tessellation.diff
Patch6: prboom-hbar-color.diff
Patch7: prboom-hbar-all.diff
Patch8: prboom-hbar-gradient.diff
Patch9: 0001-fix-heap-buffer-overflows-in-UDP-code-CVE-2019-20797.patch
BuildRequires: Mesa-devel
BuildRequires: automake
BuildRequires: c++_compiler
BuildRequires: cmake
BuildRequires: fluidsynth-devel
BuildRequires: hicolor-icon-theme
BuildRequires: libpng-devel
BuildRequires: libvorbis-devel
BuildRequires: pcre-devel
BuildRequires: portmidi-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(SDL2_image)
BuildRequires: pkgconfig(SDL2_mixer)
BuildRequires: pkgconfig(SDL2_net)
BuildRequires: pkgconfig(sdl2)
%if 0%{?suse_version} >= 1320
BuildRequires: portmidi-devel
%endif
BuildRequires: update-desktop-files
Suggests: freedoom
Provides: prboom = 2.5.0plus
Obsoletes: prboom <= 2.5.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: prboom = 2.6um
Obsoletes: prboom <= 2.6
%description
PrBoom+ is a conservative Doom source port. It features:
@ -72,26 +65,24 @@ PrBoom+ is a conservative Doom source port. It features:
mode.
%prep
%autosetup -p1 -n prboom2-%version
%autosetup -p0
%build
cp -alv data/sounds/free/*.wav data/sounds/
cp -alv data/sprites/free/* data/sprites/
autoreconf -fi
# rpm has its own optimizations, so turn off shipped defaults
%configure --enable-gl --disable-cpu-opt --program-prefix="" \
--with-waddir="%_datadir/doom" --disable-dogs CFLAGS="%optflags -fcommon"
make %{?_smp_mflags}
pushd prboom2/
%cmake -DDOOMWADDIR="%_datadir/doom"
%cmake_build
popd
%install
b="%buildroot"
%make_install gamesdir="%_bindir"
pushd prboom2/
%cmake_install
# convenience symlink
ln -s prboom-plus "%buildroot/%_bindir/prboom"
b="%buildroot"
ln -s prboom-plus "$b/%_bindir/prboom"
install -Dm0644 ICONS/prboom-plus.svg "$b/%_datadir/icons/hicolor/scalable/apps/prboom-plus.svg"
install -Dm0644 ICONS/prboom-plus.desktop "$b/%_datadir/applications/prboom-plus.desktop"
install -Dm0644 ICONS/prboom-plus.bash "$b/%_datadir/bash-completion/completions/prboom-plus.bash"
popd
%if 0%{?suse_version} && 0%{?suse_version} < 1550
%post

View File

@ -1,29 +0,0 @@
From: Jan Engelhardt <jengelh@medozas.de>
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 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: prboom-plus-2.5.1.3/src/MUSIC/oplplayer.c
===================================================================
--- prboom-plus-2.5.1.3.orig/src/MUSIC/oplplayer.c
+++ prboom-plus-2.5.1.3/src/MUSIC/oplplayer.c
@@ -1356,7 +1356,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;
}

View File

@ -1,194 +0,0 @@
From: Jan Engelhardt <jengelh@medozas.de>
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: prboom2/src/g_overflow.c
===================================================================
--- prboom2.orig/src/g_overflow.c
+++ prboom2/src/g_overflow.c
@@ -35,6 +35,7 @@
#include "config.h"
#endif
+#include <stdint.h>
#include <stdio.h>
#include <stdarg.h>
@@ -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: prboom2/src/p_saveg.c
===================================================================
--- prboom2.orig/src/p_saveg.c
+++ prboom2/src/p_saveg.c
@@ -31,6 +31,7 @@
*
*-----------------------------------------------------------------------------*/
+#include <stdint.h>
#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 ; j<NUMPSPRITES ; j++)
if (players[i]. psprites[j].state)
players[i]. psprites[j].state =
- &states[ (int)players[i].psprites[j].state ];
+ &states[ (uintptr_t)players[i].psprites[j].state ];
}
}
@@ -279,7 +280,7 @@ void P_ThinkerToIndex(void)
number_of_thinkers = 0;
for (th = thinkercap.next ; th != &thinkercap ; th=th->next)
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
@@ -474,10 +475,10 @@ void P_UnArchiveThinkers (void)
memcpy (mobj, save_p, sizeof(mobj_t));
save_p += sizeof(mobj_t);
- 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];
@@ -799,7 +800,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 = &sectors[(int)ceiling->sector];
+ ceiling->sector = &sectors[(uintptr_t)ceiling->sector];
ceiling->sector->ceilingdata = ceiling; //jff 2/22/98
if (ceiling->thinker.function)
@@ -816,10 +817,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 = &sectors[(int)door->sector];
+ door->sector = &sectors[(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;
@@ -833,7 +834,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 = &sectors[(int)floor->sector];
+ floor->sector = &sectors[(uintptr_t)floor->sector];
floor->sector->floordata = floor; //jff 2/22/98
floor->thinker.function = T_MoveFloor;
P_AddThinker (&floor->thinker);
@@ -846,7 +847,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 = &sectors[(int)plat->sector];
+ plat->sector = &sectors[(uintptr_t)plat->sector];
plat->sector->floordata = plat; //jff 2/22/98
if (plat->thinker.function)
@@ -863,7 +864,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 = &sectors[(int)flash->sector];
+ flash->sector = &sectors[(uintptr_t)flash->sector];
flash->thinker.function = T_LightFlash;
P_AddThinker (&flash->thinker);
break;
@@ -875,7 +876,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 = &sectors[(int)strobe->sector];
+ strobe->sector = &sectors[(uintptr_t)strobe->sector];
strobe->thinker.function = T_StrobeFlash;
P_AddThinker (&strobe->thinker);
break;
@@ -887,7 +888,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 = &sectors[(int)glow->sector];
+ glow->sector = &sectors[(uintptr_t)glow->sector];
glow->thinker.function = T_Glow;
P_AddThinker (&glow->thinker);
break;
@@ -899,7 +900,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 = &sectors[(int)flicker->sector];
+ flicker->sector = &sectors[(uintptr_t)flicker->sector];
flicker->thinker.function = T_FireFlicker;
P_AddThinker (&flicker->thinker);
break;
@@ -912,7 +913,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 = &sectors[(int)elevator->sector];
+ elevator->sector = &sectors[(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: prboom2/src/r_drawflush.inl
===================================================================
--- prboom2.orig/src/r_drawflush.inl
+++ prboom2/src/r_drawflush.inl
@@ -28,6 +28,8 @@
*
*-----------------------------------------------------------------------------*/
+#include <stdint.h>
+
#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;

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:faebc9ebee10d34ab862d155eb3dd1e0764b168a09a4389bb10acc9d5f35f527
size 1684780