--- rott-1.0+dfsg.orig/debian/rules +++ rott-1.0+dfsg/debian/rules @@ -0,0 +1,5 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/makefile.mk +include /usr/share/cdbs/1/rules/dpatch.mk --- rott-1.0+dfsg.orig/debian/dirs +++ rott-1.0+dfsg/debian/dirs @@ -0,0 +1 @@ +/usr/share/games/rott --- rott-1.0+dfsg.orig/debian/config +++ rott-1.0+dfsg/debian/config @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +db_input high rott/shareware || true +db_go --- rott-1.0+dfsg.orig/debian/templates +++ rott-1.0+dfsg/debian/templates @@ -0,0 +1,19 @@ +# These templates have been reviewed by the debian-l10n-english +# team +# +# If modifications/additions/rewording are needed, please ask +# for an advice to debian-l10n-english@lists.debian.org +# +# Even minor modifications require translation updates and such +# changes should be coordinated with translators and reviewers. + +Template: rott/shareware +Type: boolean +Default: true +_Description: Download shareware data files? + The Rise of the Triad game requires additional data files which are + not available under a free license and cannot be distributed by + Debian. You may choose to automatically download the shareware data + files from the Internet and install them on the system now. + . + The installation will require about 15 MB of free disk space. --- rott-1.0+dfsg.orig/debian/manpages +++ rott-1.0+dfsg/debian/manpages @@ -0,0 +1 @@ +debian/manpage/rott.6 --- rott-1.0+dfsg.orig/debian/watch +++ rott-1.0+dfsg/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://www.icculus.org/rott/releases/rott-(.*)\.tar\.gz --- rott-1.0+dfsg.orig/debian/prerm +++ rott-1.0+dfsg/debian/prerm @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +SHAREDIR="/usr/share/games/rott" +DOCDIR="/usr/share/doc/rott" + +case "$1" in + remove|deconfigure) + rm -rf ${SHAREDIR}/* ${DOCDIR}/vendor.doc + ;; + + upgrade|failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- rott-1.0+dfsg.orig/debian/postinst +++ rott-1.0+dfsg/debian/postinst @@ -0,0 +1,74 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +SHAREDIR="/usr/share/games/rott" +SHAREZIP="1rott13.zip" +SHAREURL="ftp://ftp.3drealms.com/share" +SHAREMD5="0fafd6b629eab80278fc726e31f9cf41" +DOCDIR="/usr/share/doc/rott" + +SUCCESS=0 +COUNTER=0 +MAXCOUNT=3 + +case "$1" in + configure) + # Have we read the question already? + db_fget rott/shareware seen + if [ "$RET" = "false" ]; then + exit + fi + + # Do we want to download the shareware zip file? + db_get rott/shareware + if [ "$RET" = "true" ]; then + + # Repeat until we succeed (or reach MAXCOUNT) + while [ $SUCCESS -eq 0 -a $COUNTER -lt $MAXCOUNT ]; do + + # Increase counter + COUNTER=$(($COUNTER+1)) + + # Download the shareware zip file in case it's not already there + if [ ! -e ${SHAREDIR}/${SHAREZIP} ]; then + wget --progress=dot --directory-prefix ${SHAREDIR} -c ${SHAREURL}/${SHAREZIP} || \ + echo "rott: Download of shareware data files failed!" >&2 + fi + + # Check zip file integrity, then install + if [ "$(md5sum $SHAREDIR/$SHAREZIP | cut -f1 -d' ')" = "$SHAREMD5" ]; then + unzip -o ${SHAREDIR}/${SHAREZIP} -d ${SHAREDIR} > /dev/null && \ + unzip -o ${SHAREDIR}/ROTTSW13.SHR -d ${SHAREDIR} > /dev/null && \ + rm -f ${SHAREDIR}/ROTTSW13.SHR ${SHAREDIR}/INSTALL.EXE ${SHAREDIR}/FILE_ID.DIZ && \ + ln -sf ${SHAREDIR}/VENDOR.DOC ${DOCDIR}/vendor.doc && \ + SUCCESS=1 + else + # File integrity check failed, delete the crap + echo "rott: File integrity check failed!" >&2 + rm -rf ${SHAREDIR}/* + fi + done + + # Unsuccessful? + if [ $SUCCESS -eq 0 ]; then + echo "rott: Installation of shareware data files failed!" >&2 + exit 1 + fi + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- rott-1.0+dfsg.orig/debian/copyright +++ rott-1.0+dfsg/debian/copyright @@ -0,0 +1,44 @@ +This package was debianized by Fabian Greffrath on +Mon, 1 May 2006 00:00:00 +0100. + +It was downloaded from . + +Copyright Holders: + + Apogee Software, Ltd. (all files, except rott/byteordr.c and rott/byteordr.h) + James R. Dose (rott/fx_man.h, rott/music.h, rott/sndcards.h, rott/task_man.h) + John R. Hall (rott/byteordr.c, rott/byteordr.h) + Jim Kent (rott/fli_def.h, rott/fli_main.c, rott/fli_main.h, rott/fli_type.h, rott/fli_util.c, rott/fli_util.h) + Spacetec IMC Corporation (rott/rt_spbal.c, rott/sbconfig.c) + +License: + + Copyright (C) 1992 Jim Kent + Copyright (C) 1994 James R. Dose + Copyright (C) 1994-1995 Apogee Software, Ltd. + Copyright (C) 1995 Spacetec IMC Corporation + Copyright (C) 2002 John R. Hall + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General Public License +can be found in the `/usr/share/common-licenses/GPL' file. + +After installation the licensing terms of the shareware data can be found in +`/usr/share/doc/rott/vendor.doc'. + +The Debian packaging is (C) 2006-2008, Fabian Greffrath and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. --- rott-1.0+dfsg.orig/debian/changelog +++ rott-1.0+dfsg/debian/changelog @@ -0,0 +1,170 @@ +rott (1.0+dfsg-2) unstable; urgency=low + + * debian/patches/01-custom-datapath.dpatch, + debian/patches/13-improve-makefile.dpatch: + + Changed DATADIR back to "/usr/share/games/rott/". + + -- Fabian Greffrath Sun, 27 Jan 2008 20:00:00 +0100 + +rott (1.0+dfsg-1) unstable; urgency=low + + * Rebuilt source tarball. + + Removed sourceless binary files: + - rott/audio_wf.lib + - rott/spball.lib + + Moved documentation into the rott/ directory. + + Packaged only the rott/ directory. + + See README.Debian. + + * debian/changelog: + + Rephrased previous changelog entry. + * debian/control: + + Added Build-Depends on cdbs. + + Bumped Standards-Version to 3.7.3. + * debian/docs, debian/patches/*: + + Adjusted to new source directory structure. + * debian/install, debian/README.Debian: + + Added. + * debian/rules: + + Converted Debian packaging to CDBS. + * debian/lintian/rott: + + Added to override 'package-contains-empty-directory'. + * debian/patches/11-new-fix32.dpatch: + + Improved to build on big-endian architectures. + * debian/pixmaps/rott.xpm: + + Posterized to 34 colors. + * debian/po/fi.po: + + Added Finnish translation of the debconf templates (Closes: #456953). + + -- Fabian Greffrath Fri, 11 Jan 2008 17:00:00 +0100 + +rott (1.0-5) unstable; urgency=low + + * debian/control: + + Added 'Homepage:' control field. + + Added 'Suggests: freepats, timidity' for music playback. + * debian/rules: + + Pass CFLAGS over to $(MAKE). + + Patch before clean, unpatch after clean. + + Do not manually remove 'rott/rott' anymore (see patch #13). + * debian/manpage/rott.6: + + Removed description of soundsetup option (see patch #21). + + * debian/patches/10-32bitisms.dpatch: + + Dropped in favour of a series of patches courtesy of Michael Karcher + : + * debian/patches/11-new-fix32.dpatch: + + Fixes assumptions about sizes of integral types. Important for + 64 bit architectures (see patch #14). + * debian/patches/12-fix-char-byte.dpatch: + + Makes signed/unsigned chars more consistent to suppress compiler + warnings. No functional change. + * debian/patches/13-improve-makefile.dpatch: + + Makes CFLAGS overridable and removes executable on clean. + * debian/patches/14-fix-modex-ptr.dpatch: + + Cleans up use of integers instead of pointers to hold the base + address of the frame buffer (see patch #11, Closes: #419035). + * debian/patches/16-fix-random-actors.dpatch: + + Fix direction of random opponents. + * debian/patches/17-no-newline-in-addmessage.dpatch: + + Remove unsupported newlines from game messages. Important unless + signed character fix from 18-fix-drawichar is applied. + (+ Applied instead of upstream SVN commit 220.) + * debian/patches/18-fix-drawichar.dpatch: + + Fix cast for indexing an array with a character. + * debian/patches/19-playerarrow.dpatch: + + Modify DrawMap_PlayerArrow to avoid a off-by-one bug trying to + access scanline 201. + * debian/patches/20-printf-no-long.dpatch: + + Change tons of printf format strings to not use the "l" modifier + when printing "int" or even "byte" variables. + + Also add gcc's format attribute to printf-like functions and + make Error() a noreturn function. + * debian/patches/21-no-soundsetup.dpatch: + + Disable sound setup except on DOS. + + * Applied another series of patches from upstream SVN: + * debian/patches/30-svn-210.dpatch: + + Implement missing UL_ChangeDirectory. + * debian/patches/31-svn-211.dpatch: + + Add keyboard updates. + * debian/patches/33-svn-213.dpatch: + + Add some missing include guards. + * debian/patches/35-svn-215ab.dpatch: + + Sparc fixes from Damian M Gryski . + + Force `size' to be a multiple of 4 in Z_Malloc + to prevent unaligned access (SIGBUS). + + Prevent SIGBUS in ConvertStringToPasswordString. + * debian/patches/36-svn-216.dpatch: + + Replace FixedMul with one from Dan that optimizes better. + * debian/patches/37-svn-217c.dpatch: + + Change AUDIO_S16 to AUDIO_S16SYS in rott/fx_man.c. + * debian/patches/39-svn-219.dpatch: + + Another attempt at restoring the original EKG mode. + * debian/patches/41-svn-221.dpatch: + + Fix an incorrect array access. + (+ Applied instead of Michael Karcher's patch #15.) + + -- Fabian Greffrath Sat, 29 Nov 2007 09:45:00 +0200 + +rott (1.0-4) unstable; urgency=low + + * debian/patches/10-32bitisms.dpatch: + + New patch to lower the severity of #419035. + Thanks, Dmitry V. Rutsky ! + + ROTT no longer crashes on start on AMD64. + + Remaining issues: Sound works, but music is just a loud humming. + Loading a game produces a segfault. + * debian/menu: + + Adjusted to the new menu structure. + + -- Fabian Greffrath Sat, 1 Sep 2007 09:39:00 +0200 + +rott (1.0-3) unstable; urgency=low + + [ Christian Perrier ] + * Debconf templates and debian/control reviewed by the debian-l10n- + english team as part of the Smith review project. Closes: #422184 + * Debconf translation updates: + - Swedish. Closes: #422779,#420259 + - Czech. Closes: #422810 + - Galician. Closes: #422832 + - Portuguese. Closes: #422903 + - Tamil. Closes: #423077 + - Russian. Closes: #423225 + - French. Closes: #423491 + - Brazilian Portuguese. Closes: #425587 + - Dutch. Closes: #425709 + - German. Closes: #425892 + + [ Fabian Greffrath ] + * debian/control: + + Fixed indentation of Homepage line. + * debian/rules: + + Do not change directories, call MAKE with optional -C instead. + * debian/patches/01-custom-datapath.dpatch: + + Added ifdef for DATADIR. + * debian/po/fr.po: + + s/root/rott/ . + * Thanks to Christian Perrier and all translators! + + -- Fabian Greffrath Tue, 29 May 2007 13:04:29 +0200 + +rott (1.0-2) unstable; urgency=low + + * debian/postinst: + + Fixed bashism (Closes: #418695). + * debian/patches/05-big.endian-fix-dpatch: + + New patch: Fixes sprite errors on powerpc (Closes: #418698). + Thanks, Filippo Giunchedi ! + * debian/patches/06-touchplate-fix.dpatch: + + New patch: Fixes crashes when stepping on some touchplates. + + -- Fabian Greffrath Fri, 13 Apr 2007 00:00:00 +0100 + +rott (1.0-1) unstable; urgency=low + + * Initial release (Closes: #412063). + * Removed CVS directory from source tarball (thanks lintian). + + -- Fabian Greffrath Mon, 1 May 2006 00:00:00 +0100 --- rott-1.0+dfsg.orig/debian/pixmaps/rott.xpm +++ rott-1.0+dfsg/debian/pixmaps/rott.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char * rott_xpm[] = { +"32 29 35 1", +" c None", +". c #240000", +"+ c #242424", +"@ c #926D6D", +"# c #000000", +"$ c #6D4949", +"% c #926D49", +"& c #494924", +"* c #6D6D49", +"= c #494949", +"- c #49496D", +"; c #92926D", +"> c #242449", +", c #49246D", +"' c #494992", +") c #242492", +"! c #492424", +"~ c #242400", +"{ c #6D4900", +"] c #24246D", +"^ c #924900", +"/ c #926D00", +"( c #492449", +"_ c #6D4924", +": c #B69200", +"< c #929200", +"[ c #B6B600", +"} c #494900", +"| c #000049", +"1 c #240024", +"2 c #002449", +"3 c #492400", +"4 c #000024", +"5 c #6D6D00", +"6 c #B6DB00", +" .. ", +" +@@. ", +" #$%@& ", +" +*+=&. ", +" #**+-*= ", +" &;+>>=%+ ", +" .@$>>+,*$# ", +" #=%>'&+)=@! ", +" ~;=>,{&]>$*# ", +" #&@>'>^{>]=%! ", +" +@=])=^{>]]=*. ", +" #$@>']!//+]](*&# ", +" +%+)]]_:]=%~ ", +" .*=>)]]{[:}|]>>$&# ", +" &@>)]]({[[{>]>|=$+ ", +" .@=]])]+^$$# ", +" #=@>]]]]>3{{!|||||($+ ", +" ~@(]])]]>]|||]||||>&&# ", +" #$$>]]2>>]]>]>|+>|||=$! ", +" +@+|]>+{^!||>|}{}4|||&$~ ", +" #$$|]]+{:<{1||+{/5}1||+&! ", +" !*+]>+{:6[^~||!{<<5}1||!&. ", +" #$&||({/:/{34||+3}{5{}141&!# ", +" !$12!/{{3+4||||||4+33}}14+&+# ", +" .*+|!}!+|||||||||||4441~3#4&&. ", +"#&$1111||||||||4||44444444#4+&+ ", +"~$!$$=======&=&&&&&&!!&&!!!!!&&#", +"~$$$$*$*$%$*$$$$$$$$$&$$$&$&&&&.", +" .....~...####~~.........#.###. "}; --- rott-1.0+dfsg.orig/debian/patches/31-svn-211.dpatch +++ rott-1.0+dfsg/debian/patches/31-svn-211.dpatch @@ -0,0 +1,50 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r211 | relnev | 2003-01-10 10:24:15 +0100 (Fr, 10 Jan 2003) | 2 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: added keyboard updates + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/isr.c rott-1.0+dfsg/isr.c +--- rott-1.0+dfsg~/isr.c 2008-01-09 13:52:28.000000000 +0100 ++++ rott-1.0+dfsg/isr.c 2008-01-10 09:20:46.000000000 +0100 +@@ -801,10 +801,9 @@ + delay=(VBLCOUNTER*delay)/10; + IN_ClearKeysDown(); + time=GetTicCount(); +- while (GetTicCount()complete) ++ else if (touchplate[i] == NULL || touchplate[i]->complete) + { + if (!playeron) + TRIGGER[i] = 0; +diff -urNad rott-1.0+dfsg~/rt_playr.c rott-1.0+dfsg/rt_playr.c +--- rott-1.0+dfsg~/rt_playr.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_playr.c 2008-01-10 09:17:15.000000000 +0100 +@@ -3762,7 +3762,7 @@ + index = touchindices[ob->tilex][ob->tiley]; + if (index && (abs(ob->z - nominalheight) < 5)) + {if (!TRIGGER[index-1]) +- {if (touchplate[index-1]->complete) ++ {if (touchplate[index-1] == NULL || touchplate[index-1]->complete) + SD_PlaySoundRTP(SD_BADTOUCHSND,ob->x,ob->y); + else + { --- rott-1.0+dfsg.orig/debian/patches/04-alt-gr.dpatch +++ rott-1.0+dfsg/debian/patches/04-alt-gr.dpatch @@ -0,0 +1,17 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 04-alt-gr.dpatch by Fabian Greffrath +## +## DP: Enable `Alt Gr' key. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_in.c rott-1.0+dfsg/rt_in.c +--- rott-1.0+dfsg~/rt_in.c 2008-01-10 09:16:47.000000000 +0100 ++++ rott-1.0+dfsg/rt_in.c 2008-01-10 09:16:47.000000000 +0100 +@@ -1093,6 +1093,7 @@ + + scancodes[SDLK_LALT] = sc_Alt; + scancodes[SDLK_RALT] = sc_Alt; ++ scancodes[SDLK_MODE] = sc_Alt; + scancodes[SDLK_RCTRL] = sc_Control; + scancodes[SDLK_SPACE] = sc_Space; + scancodes[SDLK_CAPSLOCK] = sc_CapsLock; --- rott-1.0+dfsg.orig/debian/patches/13-improve-makefile.dpatch +++ rott-1.0+dfsg/debian/patches/13-improve-makefile.dpatch @@ -0,0 +1,36 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 13-improve-makefile.dpatch by Michael Karcher +## +## +## DP: Makes CFLAGS overridable and removes executable on clean + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/Makefile rott-1.0+dfsg/Makefile +--- rott-1.0+dfsg~/Makefile 2008-01-10 09:18:13.000000000 +0100 ++++ rott-1.0+dfsg/Makefile 2008-01-10 09:18:14.000000000 +0100 +@@ -47,9 +47,13 @@ + + + CC = gcc +-CFLAGS = -g $(SDL_CFLAGS) -DUSE_SDL=1 -DPLATFORM_UNIX=1 -W -Wall -Wno-unused $(EXTRACFLAGS) -DDATADIR=\"/usr/share/games/rott/\" ++CFLAGS = -g -O2 -W -Wall -Wno-unused ++ALL_CFLAGS = $(SDL_CFLAGS) -DUSE_SDL=1 -DPLATFORM_UNIX=1 $(EXTRACFLAGS) -DDATADIR=\"/usr/share/games/rott/\" $(CFLAGS) + LDLIBS = $(SDL_LDFLAGS) -lSDL -lSDL_mixer $(EXTRALDFLAGS) -Wl,-E + ++%.o: %.c ++ $(CC) $(ALL_CFLAGS) -c $< -o $@ ++ + all: rott + + rott: \ +@@ -105,7 +109,8 @@ + $(CC) $^ $(LDLIBS) -o $@ + + clean: +- rm -rf *.o ++ rm -f *.o ++ rm -f rott + + distclean: clean +- rm -rf *~ ++ rm -f *~ --- rott-1.0+dfsg.orig/debian/patches/36-svn-216.dpatch +++ rott-1.0+dfsg/debian/patches/36-svn-216.dpatch @@ -0,0 +1,24 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r216 | relnev | 2003-04-06 23:59:20 +0200 (So, 06 Apr 2003) | 2 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: replaced FixedMul with one from Dan that optimizes better. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/watcom.c rott-1.0+dfsg/watcom.c +--- rott-1.0+dfsg~/watcom.c 2008-01-09 13:52:28.000000000 +0100 ++++ rott-1.0+dfsg/watcom.c 2008-01-10 09:21:39.000000000 +0100 +@@ -9,11 +9,8 @@ + + fixed FixedMul(fixed a, fixed b) + { +- __int64 x = a; +- __int64 y = b; +- __int64 z = x * y + 0x8000; +- +- return (z >> 16) & 0xffffffff; ++ __int64 scratch1 = (__int64) a * (__int64) b + (__int64) 0x8000; ++ return (scratch1 >> 16) & 0xffffffff; + } + + fixed FixedMulShift(fixed a, fixed b, fixed shift) --- rott-1.0+dfsg.orig/debian/patches/99-registered-version.dpatch +++ rott-1.0+dfsg/debian/patches/99-registered-version.dpatch @@ -0,0 +1,21 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 99-registered-version.dpatch by Fabian Greffrath +## +## DP: The source code is setup to use shareware binaries. If you want to use +## DP: the registered version of ROTT, apply this patch and compile as normal. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/develop.h rott-1.0+dfsg/develop.h +--- rott-1.0+dfsg~/develop.h 2003-01-07 07:31:51.000000000 +0100 ++++ rott-1.0+dfsg/develop.h 2008-01-10 09:28:18.000000000 +0100 +@@ -40,8 +40,8 @@ + #define LOWCOST 0 + + // Make sure only one of the following are on at one time +-#define SHAREWARE 1 +-#define SUPERROTT 0 ++#define SHAREWARE 0 ++#define SUPERROTT 1 + #define SITELICENSE 0 + + // cute little dopefish thing, only works with special patch? --- rott-1.0+dfsg.orig/debian/patches/01-custom-datapath.dpatch +++ rott-1.0+dfsg/debian/patches/01-custom-datapath.dpatch @@ -0,0 +1,78 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 1.0-custom-datapath.patch from Gentoo, modified + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/Makefile rott-1.0+dfsg/Makefile +--- rott-1.0+dfsg~/Makefile 2008-01-09 13:52:32.000000000 +0100 ++++ rott-1.0+dfsg/Makefile 2008-01-10 09:15:27.000000000 +0100 +@@ -47,7 +47,7 @@ + + + CC = gcc +-CFLAGS = -g $(SDL_CFLAGS) -DUSE_SDL=1 -DPLATFORM_UNIX=1 -W -Wall -Wno-unused $(EXTRACFLAGS) ++CFLAGS = -g $(SDL_CFLAGS) -DUSE_SDL=1 -DPLATFORM_UNIX=1 -W -Wall -Wno-unused $(EXTRACFLAGS) -DDATADIR=\"/usr/share/games/rott/\" + LDLIBS = $(SDL_LDFLAGS) -lSDL -lSDL_mixer $(EXTRALDFLAGS) -Wl,-E + + all: rott +diff -urNad rott-1.0+dfsg~/_rt_ted.h rott-1.0+dfsg/_rt_ted.h +--- rott-1.0+dfsg~/_rt_ted.h 2008-01-09 13:52:32.000000000 +0100 ++++ rott-1.0+dfsg/_rt_ted.h 2008-01-10 09:15:27.000000000 +0100 +@@ -84,17 +84,17 @@ + #define MAXSILLYSTRINGS 32 + + #if (SHAREWARE==0) +- #define STANDARDGAMELEVELS ("DARKWAR.RTL") ++ #define STANDARDGAMELEVELS (DATADIR "DARKWAR.RTL") + #if (SUPERROTT==1) +- #define STANDARDBATTLELEVELS ("ROTTCD.RTC") ++ #define STANDARDBATTLELEVELS (DATADIR "ROTTCD.RTC") + #elif (SITELICENSE==1) +- #define STANDARDBATTLELEVELS ("ROTTSITE.RTC") ++ #define STANDARDBATTLELEVELS (DATADIR "ROTTSITE.RTC") + #else +- #define STANDARDBATTLELEVELS ("DARKWAR.RTC") ++ #define STANDARDBATTLELEVELS (DATADIR "DARKWAR.RTC") + #endif + #else +- #define STANDARDGAMELEVELS ("HUNTBGIN.RTL") +- #define STANDARDBATTLELEVELS ("HUNTBGIN.RTC") ++ #define STANDARDGAMELEVELS (DATADIR "HUNTBGIN.RTL") ++ #define STANDARDBATTLELEVELS (DATADIR "HUNTBGIN.RTC") + #endif + + +diff -urNad rott-1.0+dfsg~/rt_main.c rott-1.0+dfsg/rt_main.c +--- rott-1.0+dfsg~/rt_main.c 2008-01-09 13:52:32.000000000 +0100 ++++ rott-1.0+dfsg/rt_main.c 2008-01-10 09:15:27.000000000 +0100 +@@ -88,6 +88,10 @@ + //MED + #include "memcheck.h" + ++#ifndef DATADIR ++#define DATADIR ("") ++#endif ++ + volatile int oldtime; + volatile int gametime; + +@@ -763,9 +767,9 @@ + // Normal ROTT wads + + #if (SHAREWARE) +- newargs [argnum++] = "huntbgin.wad"; ++ newargs [argnum++] = DATADIR "HUNTBGIN.WAD"; + #else +- newargs [argnum++] = "darkwar.wad"; ++ newargs [argnum++] = DATADIR "DARKWAR.WAD"; + #endif + + // newargs [argnum++] = "credits.wad"; +@@ -785,7 +789,7 @@ + } + else + { +- newargs [argnum++] = "remote1.rts"; ++ newargs [argnum++] = DATADIR "REMOTE1.RTS"; + } + + newargs [argnum++] = NULL; --- rott-1.0+dfsg.orig/debian/patches/19-playerarrow.dpatch +++ rott-1.0+dfsg/debian/patches/19-playerarrow.dpatch @@ -0,0 +1,62 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 19-playerarrow.dpatch by Michael Karcher +## +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Modify DrawMap_PlayerArrow to avoid a off-by-one bug trying to +## DP: access scanline 201. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_map.c rott-1.0+dfsg/rt_map.c +--- rott-1.0+dfsg~/rt_map.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_map.c 2008-01-10 09:19:34.000000000 +0100 +@@ -394,26 +394,40 @@ + ======================= + */ + ++/* Indices: mapscale, reduced coordinate */ ++static const int arrowscale[4][5] = ++{{ 1,17,32,47,63}, /* Mapscale 0: 64 pixels/sprite */ ++ { 1, 9,16,23,31}, /* Mapscale 1: 32 pixels/sprite */ ++ { 1, 5, 8,11,15}, /* Mapscale 2: 16 pixels/sprite */ ++ { 1, 3, 4, 5, 7}}; /* Mapscale 3: 8 pixels/sprite */ ++ + void DrawMap_PlayerArrow (int x, int y, int dir) + { + int i; +- ++ + x*=tilesize; + y*=tilesize; + ++ /* You can't draw a 4x4 arrow */ ++ if(mapscale == 4) ++ { ++ VL_Bar(x+1,y+1,2,2,244); ++ return; ++ } ++ + for (i=0;i<6;i++) + { +- VL_DrawLine ((arrows[dir][i].x<<(4-mapscale))+x, +- (arrows[dir][i].y<<(4-mapscale))+y, +- (arrows[dir][i+1].x<<(4-mapscale))+x, +- (arrows[dir][i+1].y<<(4-mapscale))+y, ++ VL_DrawLine (arrowscale[mapscale][arrows[dir][i].x]+x, ++ arrowscale[mapscale][arrows[dir][i].y]+y, ++ arrowscale[mapscale][arrows[dir][i+1].x]+x, ++ arrowscale[mapscale][arrows[dir][i+1].y]+y, + 244 + ); + } +- VL_DrawLine ( (arrows[dir][6].x<<(4-mapscale))+x, +- (arrows[dir][6].y<<(4-mapscale))+y, +- (arrows[dir][0].x<<(4-mapscale))+x, +- (arrows[dir][0].y<<(4-mapscale))+y, ++ VL_DrawLine ( arrowscale[mapscale][arrows[dir][6].x]+x, ++ arrowscale[mapscale][arrows[dir][6].y]+y, ++ arrowscale[mapscale][arrows[dir][0].x]+x, ++ arrowscale[mapscale][arrows[dir][0].y]+y, + 244 + ); + } --- rott-1.0+dfsg.orig/debian/patches/20-printf-no-long.dpatch +++ rott-1.0+dfsg/debian/patches/20-printf-no-long.dpatch @@ -0,0 +1,1408 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 20-printf-no-long.dpatch by Michael Karcher +## +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Change tons of printf format strings to not use the "l" modifier +## DP: when printing "int" or even "byte" variables. +## DP: Also add gcc's format attribute to printf-like functions and +## DP: make Error() a noreturn function. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/fx_man.c rott-1.0+dfsg/fx_man.c +--- rott-1.0+dfsg~/fx_man.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/fx_man.c 2008-01-10 09:19:49.000000000 +0100 +@@ -141,6 +141,7 @@ + // go to the file that is specified in that variable. Otherwise, they + // are ignored for the expense of the function call. If DUKESND_DEBUG is + // set to "-" (without the quotes), then the output goes to stdout. ++static void snddebug(const char *fmt, ...) __attribute__((format(printf,1,2))); + static void snddebug(const char *fmt, ...) + { + va_list ap; +@@ -159,6 +160,7 @@ + + // FIXME: Consolidate this code. + // Same as snddebug(), but a different tag is put on each line. ++static void musdebug(const char *fmt, ...) __attribute__((format(printf,1,2))); + static void musdebug(const char *fmt, ...) + { + va_list ap; +diff -urNad rott-1.0+dfsg~/myprint.h rott-1.0+dfsg/myprint.h +--- rott-1.0+dfsg~/myprint.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/myprint.h 2008-01-10 09:19:49.000000000 +0100 +@@ -38,6 +38,6 @@ + int printstring( char *string ); + int printnum( int number ); + int printunsigned( unsigned long number, int radix ); +-int myprintf( char *fmt, ... ); ++int myprintf( char *fmt, ... ) __attribute__((format(printf,1,2))); + + #endif +diff -urNad rott-1.0+dfsg~/rt_com.c rott-1.0+dfsg/rt_com.c +--- rott-1.0+dfsg~/rt_com.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_com.c 2008-01-10 09:19:49.000000000 +0100 +@@ -247,7 +247,7 @@ + if (crc!=sentcrc) + { + badpacket=1; +- SoftError("BADPKT at %ld\n",GetTicCount()); ++ SoftError("BADPKT at %d\n",GetTicCount()); + } + if (networkgame==false) + { +diff -urNad rott-1.0+dfsg~/rt_door.c rott-1.0+dfsg/rt_door.c +--- rott-1.0+dfsg~/rt_door.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_door.c 2008-01-10 09:19:49.000000000 +0100 +@@ -476,7 +476,7 @@ + {memcpy(&dummy,buffer,sizeof(saved_touch_type)); + temp = (touchplatetype*)Z_LevelMalloc(sizeof(touchplatetype),PU_LEVELSTRUCT,NULL); + if (!temp) +- Error("LoadTouchplates: Failed on allocation of touchplates %ld of %ld",i,savedactions); ++ Error("LoadTouchplates: Failed on allocation of touchplates %d of %d",i,savedactions); + memset(temp,0,sizeof(*temp)); + + temp->tictime = dummy.tictime; +@@ -1189,7 +1189,7 @@ + + doorobjlist[doornum]=(doorobj_t*)Z_LevelMalloc(sizeof(doorobj_t),PU_LEVELSTRUCT,NULL); + if (!doorobjlist[doornum]) +- Error("SpawnDoor: Failed on allocation of door %ld ",doornum); ++ Error("SpawnDoor: Failed on allocation of door %d ",doornum); + memset(doorobjlist[doornum],0,sizeof(doorobj_t)); + lastdoorobj=doorobjlist[doornum]; + +@@ -1530,7 +1530,7 @@ + else if (lt) + MAPSPOT(tilex,tiley,0) = MAPSPOT(tilex-1,tiley,0); + else +- Error("FixDoors: Couldn't fix up area at x=%ld y=%ld\n",tilex,tiley); ++ Error("FixDoors: Couldn't fix up area at x=%d y=%d\n",tilex,tiley); + } + else + { +@@ -1539,7 +1539,7 @@ + else if (up) + MAPSPOT(tilex,tiley,0) = MAPSPOT(tilex,tiley-1,0); + else +- Error("FixDoors: Couldn't fix up area at x=%ld y=%ld\n",tilex,tiley); ++ Error("FixDoors: Couldn't fix up area at x=%d y=%d\n",tilex,tiley); + } + if (IsDoorLinked(i)) + UtilizeDoor(i,LockLinkedDoor); +@@ -2648,7 +2648,7 @@ + else if (dn) + MAPSPOT(tilex,tiley,0) = MAPSPOT(tilex,tiley+1,0); + else +- Error("FixMaskedWalls: Couldn't fix up area at x=%ld y=%ld\n",tilex,tiley); ++ Error("FixMaskedWalls: Couldn't fix up area at x=%d y=%d\n",tilex,tiley); + } + else + { +@@ -2661,7 +2661,7 @@ + else if (lt) + MAPSPOT(tilex,tiley,0) = MAPSPOT(tilex-1,tiley,0); + else +- Error("FixMaskedWalls: Couldn't fix up area at x=%ld y=%ld\n",tilex,tiley); ++ Error("FixMaskedWalls: Couldn't fix up area at x=%d y=%d\n",tilex,tiley); + } + maskobjlist[i]->areanumber = MAPSPOT(tilex,tiley,0)-AREATILE; + if ((maskobjlist[i]->areanumber <0) || (maskobjlist[i]->areanumber > NUMAREAS)) +@@ -3305,7 +3305,7 @@ + else if (rt) + return rt; + else +- Error("Cannot find an area number for tile at x=%ld y=%ld\n",tilex,tiley); ++ Error("Cannot find an area number for tile at x=%d y=%d\n",tilex,tiley); + return -1; + } + +@@ -3907,7 +3907,7 @@ + VW_UpdateScreen (); + I_Delay (2000); + } +- Error ("PushWall Attempting to escape off the edge of the map\nIt is located at x=%ld y=%ld\nI'm Free!!!!\n", ++ Error ("PushWall Attempting to escape off the edge of the map\nIt is located at x=%d y=%d\nI'm Free!!!!\n", + pw->tilex, pw->tiley); + } + } +@@ -4033,7 +4033,7 @@ + + num=sz/unitsize; + if (pwallnum!=num) +- Error("Different number of Push Walls when trying to load a game\npwallnum=%ld num=%ld",pwallnum,num); ++ Error("Different number of Push Walls when trying to load a game\npwallnum=%d num=%d",pwallnum,num); + + for (i=0;iweapon); ++ Error("Illegal weapon value = %d\n",locplayerstate->weapon); + break; + } + } +@@ -2232,7 +2232,7 @@ + else + viewangle = player->angle; + if ((viewangle<0) && (viewangle>=FINEANGLES)) +- Error ("View angle out of range = %ld\n",viewangle); ++ Error ("View angle out of range = %d\n",viewangle); + viewx = player->x; + viewy = player->y; + pheight = player->z + locplayerstate->playerheight + locplayerstate->heightoffset; +diff -urNad rott-1.0+dfsg~/rt_error.c rott-1.0+dfsg/rt_error.c +--- rott-1.0+dfsg~/rt_error.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_error.c 2008-01-10 09:19:49.000000000 +0100 +@@ -121,7 +121,7 @@ + // + //****************************************************************************** + +-void UL_UserMessage (int x, int y, char *str, ...) ++void UL_UserMessage (int x, int y, char *str, ...) __attribute__((format(printf,3,4))) + { + va_list strptr; + char buf[128]; +diff -urNad rott-1.0+dfsg~/rt_floor.c rott-1.0+dfsg/rt_floor.c +--- rott-1.0+dfsg~/rt_floor.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_floor.c 2008-01-10 09:19:49.000000000 +0100 +@@ -346,7 +346,7 @@ + lump=W_GetNumForName("FLRCL16\0"); + break; + default: +- Error("Illegal Floor/Ceiling Tile = %ld\n",num); ++ Error("Illegal Floor/Ceiling Tile = %d\n",num); + break; + } + return lump; +@@ -406,7 +406,7 @@ + word crud; + sky = (MAPSPOT(1,0,0) - 233); + if ((sky<1) || (sky>6)) +- Error("Illegal Sky Tile = %ld\n",sky); ++ Error("Illegal Sky Tile = %d\n",sky); + ceilingnum=1; + crud=(word)MAPSPOT(1,0,1); + if ((crud>=90) && (crud<=97)) +@@ -414,7 +414,7 @@ + else if ((crud>=450) && (crud<=457)) + horizonheight=crud-450+9; + else +- Error("You must specify a valid horizon height sprite icon over the sky at (2,0) on map %ld\n",gamestate.mapon); ++ Error("You must specify a valid horizon height sprite icon over the sky at (2,0) on map %d\n",gamestate.mapon); + + // Check for lightnign icon + +diff -urNad rott-1.0+dfsg~/rt_game.c rott-1.0+dfsg/rt_game.c +--- rott-1.0+dfsg~/rt_game.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_game.c 2008-01-10 09:19:49.000000000 +0100 +@@ -4580,7 +4580,7 @@ + int myticcount; + + if (num > 15 || num < 0) +- Error("Illegal Saved game value=%ld\n",num); ++ Error("Illegal Saved game value=%d\n",num); + + // + // Save Alternate Game Level information for reloading game +@@ -4902,7 +4902,7 @@ + int myticcount; + + if (num>15 || num<0) +- Error("Illegal Load game value=%ld\n",num); ++ Error("Illegal Load game value=%d\n",num); + + // Create the proper file name + +@@ -5254,7 +5254,7 @@ + int size; + + if (num>15 || num<0) +- Error("Illegal Load game value=%ld\n",num); ++ Error("Illegal Load game value=%d\n",num); + + // Create the proper file name + +@@ -5296,7 +5296,7 @@ + int size; + + if (num>15 || num<0) +- Error("Illegal Load game value=%ld\n",num); ++ Error("Illegal Load game value=%d\n",num); + + // Create the proper file name + +diff -urNad rott-1.0+dfsg~/rt_map.c rott-1.0+dfsg/rt_map.c +--- rott-1.0+dfsg~/rt_map.c 2008-01-10 09:19:49.000000000 +0100 ++++ rott-1.0+dfsg/rt_map.c 2008-01-10 09:19:49.000000000 +0100 +@@ -574,7 +574,7 @@ + DrawMap_Actor(i,j,a); + break; + default: +- SoftError("Unable to resolve actorat at x=%ld y=%ld which=%ld\n",mapx,mapy,a->which); ++ SoftError("Unable to resolve actorat at x=%d y=%d which=%d\n",mapx,mapy,a->which); + break; + } + } +@@ -743,7 +743,7 @@ + *(buf)=egacolor[MAP_SPRITECOLOR]; + break; + default: +- SoftError("Unable to resolve actorat at x=%ld y=%ld which=%ld\n",mapx,mapy,a->which); ++ SoftError("Unable to resolve actorat at x=%d y=%d which=%d\n",mapx,mapy,a->which); + break; + } + } +diff -urNad rott-1.0+dfsg~/rt_net.c rott-1.0+dfsg/rt_net.c +--- rott-1.0+dfsg~/rt_net.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_net.c 2008-01-10 09:19:49.000000000 +0100 +@@ -504,7 +504,7 @@ + if (modemgame==true) + { + controlupdatetime=controlsynctime+(VBLCOUNTER*2); +- SoftError("Controls started at %ld\n",controlupdatetime); ++ SoftError("Controls started at %d\n",controlupdatetime); + } + else if (demoplayback || demorecord) + { +@@ -1083,7 +1083,7 @@ + size=sizeof(MoveType)+sizeof(COM_SoundType); + break; + default: +- Error("Unhandled packet type in GetPacketSize type=%ld",((MoveType *)pkt)->type); ++ Error("Unhandled packet type in GetPacketSize type=%d",((MoveType *)pkt)->type); + break; + } + +@@ -1216,7 +1216,7 @@ + + if (pkt->time!=time) + { +- Error( "CLIENT: Could not find packet to resend\ntime=%ld packettime=%ld controlupdatetime=%ld\n", ++ Error( "CLIENT: Could not find packet to resend\ntime=%d packettime=%d controlupdatetime=%d\n", + time, pkt->time, controlupdatetime); + } + else +@@ -1290,7 +1290,7 @@ + + if (serverpkt->time!=time) + { +- Error( "SERVER: Could not find packet to resend\ntime=%ld packettime=%ld serverupdatetime=%ld\n", ++ Error( "SERVER: Could not find packet to resend\ntime=%d packettime=%d serverupdatetime=%d\n", + time, serverpkt->time,serverupdatetime); + } + else +@@ -1361,18 +1361,18 @@ + request=(COM_RequestType * )pkt; + time=request->time; + +- ComError( "RESEND request received at %ld\n packet time=%ld dest=%ld numpackets=%ld\n", ++ ComError( "RESEND request received at %d\n packet time=%d dest=%d numpackets=%d\n", + GetTicCount(), time, dest, request->numpackets); + + if (IsServer==true) + { + if ((dest==server) && (standalone==false)) + Error("Trying to resend packets to client on top of server\n"); +- ComError( "RESEND SERVER serverupdatetime=%ld\n",serverupdatetime); ++ ComError( "RESEND SERVER serverupdatetime=%d\n",serverupdatetime); + if (IsServerCommandReady ( time ) == true) + ResendServerPackets(time,dest,request->numpackets); + else +- ComError( "RESEND SERVER time=%ld is not ready\n",time); ++ ComError( "RESEND SERVER time=%d is not ready\n",time); + } + else + { +@@ -1395,7 +1395,7 @@ + + fix=(COM_FixupType *)pkt; + +- ComError( "Fixup received at %ld, time=%ld numpackets=%ld\n", GetTicCount(), fix->time, fix->numpackets); ++ ComError( "Fixup received at %d, time=%d numpackets=%d\n", GetTicCount(), fix->time, fix->numpackets); + #if 0 + if (networkgame==false) + FixingPackets=false; +@@ -1412,7 +1412,7 @@ + { + if (ClientCommandStatus(src, time)!=cs_fixing) + { +- ComError("Server Received fixup with no bad packet time=%ld from %ld\n",time,src); ++ ComError("Server Received fixup with no bad packet time=%d from %d\n",time,src); + } + else + { +@@ -1424,7 +1424,7 @@ + { + if (ServerCommandStatus(time)!=cs_fixing) + { +- ComError("Client Received fixup with no bad packet time=%ld from %ld\n",time,src); ++ ComError("Client Received fixup with no bad packet time=%d from %d\n",time,src); + } + else + { +@@ -1472,7 +1472,7 @@ + } + if (oldpolltime>lastsynccheck) + { +- Error("Missed a player sync check time=%ld\n",oldpolltime); ++ Error("Missed a player sync check time=%d\n",oldpolltime); + } + } + } +@@ -1512,40 +1512,40 @@ + } + if (sync->randomindex!=PlayerSync[0].randomindex) + { +- Error("Player %ld is unsynced localindex=%ld remoteindex=%ld\n" +- "Unsynced Player x=%x y=%x a=%ld z=%ld name=%s\n", ++ Error("Player %d is unsynced localindex=%d remoteindex=%d\n" ++ "Unsynced Player x=%x y=%x a=%d z=%d name=%s\n", + src, PlayerSync[0].randomindex, sync->randomindex, + PlayerSync[src].x, PlayerSync[src].y, PlayerSync[src].angle, + PlayerSync[src].z,PLAYERSTATE[src].codename); + } + if (sync->x!=PlayerSync[src].x) + { +- Error("Player %ld is unsynced local x=%ld remote x=%ld\n" +- "Unsynced Player x=%x y=%x a=%ld z=%ld name=%s\n", ++ Error("Player %d is unsynced local x=%d remote x=%d\n" ++ "Unsynced Player x=%x y=%x a=%d z=%d name=%s\n", + src,PlayerSync[src].x,sync->x, + PlayerSync[src].x, PlayerSync[src].y, PlayerSync[src].angle, + PlayerSync[src].z,PLAYERSTATE[src].codename); + } + if (sync->y!=PlayerSync[src].y) + { +- Error("Player %ld is unsynced local y=%ld remote y=%ld\n" +- "Unsynced Player x=%x y=%x a=%ld z=%ld name=%s\n", ++ Error("Player %d is unsynced local y=%d remote y=%d\n" ++ "Unsynced Player x=%x y=%x a=%d z=%d name=%s\n", + src,PlayerSync[src].y,sync->y, + PlayerSync[src].x, PlayerSync[src].y, PlayerSync[src].angle, + PlayerSync[src].z,PLAYERSTATE[src].codename); + } + if (sync->z!=PlayerSync[src].z) + { +- Error("Player %ld is unsynced local z=%ld remote z=%ld\n" +- "Unsynced Player x=%x y=%x a=%ld z=%ld name=%s\n", ++ Error("Player %d is unsynced local z=%d remote z=%d\n" ++ "Unsynced Player x=%x y=%x a=%d z=%d name=%s\n", + src,PlayerSync[src].z,sync->z, + PlayerSync[src].x, PlayerSync[src].y, PlayerSync[src].angle, + PlayerSync[src].z,PLAYERSTATE[src].codename); + } + if (sync->angle!=PlayerSync[src].angle) + { +- Error("Player %ld is unsynced local angle=%ld remote angle=%ld\n" +- "Unsynced Player x=%x y=%x a=%ld z=%ld name=%s\n", ++ Error("Player %d is unsynced local angle=%d remote angle=%d\n" ++ "Unsynced Player x=%x y=%x a=%d z=%d name=%s\n", + src,PlayerSync[src].angle,sync->angle, + PlayerSync[src].x, PlayerSync[src].y, PlayerSync[src].angle, + PlayerSync[src].z,PLAYERSTATE[src].codename); +@@ -1772,7 +1772,7 @@ + break; + + default: +- Error("ProcessPacket: Unknown packet type=%ld\n",((MoveType *)pkt)->type); ++ Error("ProcessPacket: Unknown packet type=%d\n",((MoveType *)pkt)->type); + } + } + +@@ -1835,7 +1835,7 @@ + + if (src!=server) + { +- Error("Received server packet from non-server src=%ld\n",src); ++ Error("Received server packet from non-server src=%d\n",src); + } + + serverpkt=(COM_ServerHeaderType *)pkt; +@@ -1854,7 +1854,7 @@ + { + RequestPacket ( LastCommandTime[src] , src , numpackets ); + +- ComError("AddServerPacket: Request packet time=%ld lct=%ld numpackets=%ld\n", ++ ComError("AddServerPacket: Request packet time=%d lct=%d numpackets=%d\n", + serverpkt->time, LastCommandTime[src], numpackets + ); + } +@@ -1900,7 +1900,7 @@ + ProcessSoundAndDeltaPacket(packet, src); + break; + default: +- Error("AddClientPacket: Unknown packet type = %ld\n",packet->type); ++ Error("AddClientPacket: Unknown packet type = %d\n",packet->type); + } + } + +@@ -1969,7 +1969,7 @@ + { + RequestPacket ( LastCommandTime[src] , src , numpackets ); + +- ComError("AddPacket: Request packet time=%ld lct=%ld numpackets=%ld\n", ++ ComError("AddPacket: Request packet time=%d lct=%d numpackets=%d\n", + packet->time, LastCommandTime[src], numpackets + ); + } +@@ -2568,7 +2568,7 @@ + { + ProcessPlayerCommand (num); + if (demoplayback||demorecord) { +- SoftError("x=%4lx y=%4lx a=%4lx time=%5ld\n",player->x,player->y,player->angle,oldpolltime); ++ SoftError("x=%4x y=%4x a=%4x time=%5d\n",player->x,player->y,player->angle,oldpolltime); + } + break; + } +@@ -2587,7 +2587,7 @@ + + if (GetTicCount()>savetime) + { +- SoftError("Client timeout oldpolltime=%ld\n",oldpolltime); ++ SoftError("Client timeout oldpolltime=%d\n",oldpolltime); + if (IsServer==false) + RequestPacket(oldpolltime, server, controldivisor); + if (networkgame==true) +@@ -2686,7 +2686,7 @@ + pstate->topspeed=MaxSpeedForCharacter(pstate); + + if (demoplayback||demorecord) { +- SoftError(" dmx=%4lx dmy=%4lx da=%4lx time=%5ld\n",pstate->dmomx,pstate->dmomy,pstate->angle>>11,oldpolltime); ++ SoftError(" dmx=%4x dmy=%4x da=%4x time=%5d\n",pstate->dmomx,pstate->dmomy,pstate->angle>>11,oldpolltime); + } + #if 0 + #if (DEVELOPMENT == 1) +@@ -3247,7 +3247,7 @@ + { + DemoType * dtime; + +- SoftError("Demo command recorded at %ld\n",controlupdatetime); ++ SoftError("Demo command recorded at %d\n",controlupdatetime); + dtime=(DemoType *)demoptr; + dtime->time = controlupdatetime; + dtime->momx = (controlbuf[0]>>1); +@@ -3274,7 +3274,7 @@ + // get info from demo buffer + // + +- SoftError("Demo command played at %ld\n",controlupdatetime); ++ SoftError("Demo command played at %d\n",controlupdatetime); + if (demoplayback==true) + { + dtime=(DemoType *)demoptr; +diff -urNad rott-1.0+dfsg~/rt_playr.c rott-1.0+dfsg/rt_playr.c +--- rott-1.0+dfsg~/rt_playr.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_playr.c 2008-01-10 09:19:49.000000000 +0100 +@@ -610,7 +610,7 @@ + + if ((x<=0) || (y<=0)) + { +- SoftError("SpawnGunSmoke: xy below angle=%ld\n",angle); ++ SoftError("SpawnGunSmoke: xy below angle=%d\n",angle); + return; + } + +@@ -688,7 +688,7 @@ + NewState(new,&s_bloodspurt1); + + if ((new->x<=0) || (new->y<=0)) +- Error("SpawnBlood: bad x,y obj->obclass=%ld\n",ob->obclass); ++ Error("SpawnBlood: bad x,y obj->obclass=%d\n",ob->obclass); + } + + void SpawnMetalSparks(objtype * ob, int angle) +@@ -718,7 +718,7 @@ + else + SD_PlaySoundRTP(SD_RICOCHET3SND,new->x,new->y); + if ((new->x<=0) || (new->y<=0)) +- Error("SpawnMetalSparks: bad x,y obj->obclass=%ld\n",ob->obclass); ++ Error("SpawnMetalSparks: bad x,y obj->obclass=%d\n",ob->obclass); + } + + /* +diff -urNad rott-1.0+dfsg~/rt_rand.c rott-1.0+dfsg/rt_rand.c +--- rott-1.0+dfsg~/rt_rand.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_rand.c 2008-01-10 09:19:49.000000000 +0100 +@@ -73,7 +73,7 @@ + { + rndindex=i; + //#if (DEVELOPMENT == 1) +- SoftError("RNG index set at %ld\n",i); ++ SoftError("RNG index set at %d\n",i); + //#endif + } + +@@ -98,7 +98,7 @@ + int GameRNG ( char * string, int val ) + { + rndindex = (rndindex+1)&(SIZE_OF_RANDOM_TABLE-1); +- SoftError("RNG - num=%3ld called from=%s val=%ld\n",RandomTable[rndindex],string,val); ++ SoftError("RNG - num=%3d called from=%s val=%d\n",RandomTable[rndindex],string,val); + return RandomTable[rndindex]; + } + #else +diff -urNad rott-1.0+dfsg~/rt_scale.c rott-1.0+dfsg/rt_scale.c +--- rott-1.0+dfsg~/rt_scale.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_scale.c 2008-01-10 09:19:49.000000000 +0100 +@@ -1299,9 +1299,9 @@ + p = (patch_t *)shape; + + if (((x-p->leftoffset)<0) || ((x-p->leftoffset+p->width)>320)) +- Error ("DrawNormalSprite: x is out of range x=%ld\n",x-p->leftoffset+p->width); ++ Error ("DrawNormalSprite: x is out of range x=%d\n",x-p->leftoffset+p->width); + if (((y-p->topoffset)<0) || ((y-p->topoffset+p->height)>200)) +- Error ("DrawNormalSprite: y is out of range y=%ld\n",y-p->topoffset+p->height); ++ Error ("DrawNormalSprite: y is out of range y=%d\n",y-p->topoffset+p->height); + + startx=x-p->leftoffset; + buffer = (byte*)bufferofs+ylookup[y-p->topoffset]; +diff -urNad rott-1.0+dfsg~/rt_stat.c rott-1.0+dfsg/rt_stat.c +--- rott-1.0+dfsg~/rt_stat.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_stat.c 2008-01-10 09:19:49.000000000 +0100 +@@ -1027,7 +1027,7 @@ + { + temp = (statobj_t*)Z_LevelMalloc(sizeof(statobj_t),PU_LEVELSTRUCT,NULL); + if (!temp) +- Error("LoadStatics: Failed on allocation of static %ld of %ld",i,stcount); ++ Error("LoadStatics: Failed on allocation of static %d of %d",i,stcount); + memset(temp,0,sizeof(*temp)); + memcpy(&(dummy.x),buffer,sizeof(saved_stat_type)); + temp->whichstat = statcount++; +@@ -1100,7 +1100,7 @@ + else + { + if (z>levelheight) +- Error ("You specified a height of %lx for the %s at tilex=%ld tiley=%ld when\n the level is only %ld high\n", ++ Error ("You specified a height of %x for the %s at tilex=%d tiley=%d when\n the level is only %d high\n", + zoffset,errorstr,tilex,tiley,levelheight); + else + *newz = nominalheight-(z<<6)-(zf<<2); +@@ -1234,7 +1234,7 @@ + temp->areanumber = MAPSPOT(tilex,tiley,0)-AREATILE; + temp->linked_to = -1; + if ((temp->areanumber<=0) || (temp->areanumber>NUMAREAS)) +- Error ("Sprite at x=%ld y=%ld type=%ld has an illegal areanumber\n",tilex,tiley,mtype); ++ Error ("Sprite at x=%d y=%d type=%d has an illegal areanumber\n",tilex,tiley,mtype); + if ( mtype == stat_mine ) + { + temp->z = nominalheight; +@@ -1930,5 +1930,5 @@ + new->speed = 0; + new->flags = (FL_NEVERMARK|FL_ABP); + if ((new->x<=0) || (new->y<=0)) +- Error("SpawnStaticDamage: bad x,y itemnumber=%ld\n",stat->itemnumber); ++ Error("SpawnStaticDamage: bad x,y itemnumber=%d\n",stat->itemnumber); + } +diff -urNad rott-1.0+dfsg~/rt_str.h rott-1.0+dfsg/rt_str.h +--- rott-1.0+dfsg~/rt_str.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_str.h 2008-01-10 09:19:49.000000000 +0100 +@@ -78,7 +78,7 @@ + void VWB_DrawPropString (const char *string); + void VW_MeasurePropString (const char *string, int *width, int *height); + +-void US_MeasureStr (int *width, int *height, const char * s, ...); ++void US_MeasureStr (int *width, int *height, const char * s, ...) __attribute__((format(printf,3,4))); + + void VW_DrawPropString (const char *string); + +diff -urNad rott-1.0+dfsg~/rt_ted.c rott-1.0+dfsg/rt_ted.c +--- rott-1.0+dfsg~/rt_ted.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.c 2008-01-10 09:19:49.000000000 +0100 +@@ -1263,8 +1263,8 @@ + { + OpenMapDebug(); + +- MapDebug("Map Number %ld\n",gamestate.mapon); +- MapDebug("sizeoflevel=%ld\n",Z_UsedLevelHeap()); ++ MapDebug("Map Number %d\n",gamestate.mapon); ++ MapDebug("sizeoflevel=%d\n",Z_UsedLevelHeap()); + } + #if (PRECACHETEST == 1) + SoftError("<<<<<<<<<<<<<<<<<<<<<<path) == false) +- Error ("ERROR : Can't change to alternate directory %s!\n"); ++ Error ("ERROR : Can't change to alternate directory %s!\n", info->path); + + GetMapFileInfo (mapinfo, info->file); + +@@ -1801,7 +1801,7 @@ + + if ( close( maphandle ) ) + { +- Error( "Error closing Ted file Error #%ld", errno ); ++ Error( "Error closing Ted file Error #%d", errno ); + } + } + +@@ -1884,8 +1884,8 @@ + { \ + PreCacheLump(lump,PU_CACHEWALLS,cache_pic_t); \ + if (W_LumpLength(lump) == 0) \ +- Error("%s being used in shareware at %ld %ld", \ +- W_GetNameForNum(lump),newx,newy); \ ++ Error("%s being used in shareware at %d %d",\ ++ W_GetNameForNum(lump),newx,newy); \ + actorat[newx][newy]= &walls[index]; \ + tempwall = (wall_t*)actorat[newx][newy]; \ + tempwall->which = WALL; \ +@@ -2765,7 +2765,7 @@ + SpawnMaskedWall(i,j,mw_platform7,MW_ABOVEPASSABLE); + break; + default: +- Error ("Illegal Maskedwall platform value at x=%ld y=%ld\n",i,j); ++ Error ("Illegal Maskedwall platform value at x=%d y=%d\n",i,j); + break; + } + #if 0 +@@ -2782,7 +2782,7 @@ + #endif + } + else +- Error("You have what appears to be a platform ontop\n a wall at x=%ld y=%ld\n",i,j); ++ Error("You have what appears to be a platform ontop\n a wall at x=%d y=%d\n",i,j); + } + } + } +@@ -2886,7 +2886,7 @@ + temp=tilemap[i][j]&0x1fff; + tilemap[i][j] = pwallnum; + if (MAPSPOT(i,j,2)) +- Error("You cannot link a pushwall which has no direction associated\n with it at x=%ld y=%ld\n",i,j); ++ Error("You cannot link a pushwall which has no direction associated\n with it at x=%d y=%d\n",i,j); + else + SpawnPushWall(i,j,0,temp,nodir,0); + } +@@ -2947,7 +2947,7 @@ + for (i=0;itilex==tx) && (pwallobjlist[i]->tiley==ty)) + return i; +- Error ("Could not find a push wall at x=%ld y=%ld\n",tx,ty); ++ Error ("Could not find a push wall at x=%d y=%d\n",tx,ty); + return -1; + } + +@@ -2998,7 +2998,7 @@ + Link_To_Touchplate(touchx,touchy,ActivatePushWall,NULL,GetPushWallNumber(i,j),0); + } + else +- Error("tried to link a pushwall at x=%ld y=%ld to a non-existent touchplate\n",i,j); ++ Error("tried to link a pushwall at x=%d y=%d to a non-existent touchplate\n",i,j); + } + } + break; +@@ -3008,7 +3008,7 @@ + { + if (MAPSPOT(i,j,2)) + { +- Error("You shouldn't be linking a nondirectional-push wall at x=%ld y=%ld\n",i,j); ++ Error("You shouldn't be linking a nondirectional-push wall at x=%d y=%d\n",i,j); + } + } + break; +@@ -3033,7 +3033,7 @@ + Link_To_Touchplate(touchx,touchy,ActivateMoveWall,NULL,GetPushWallNumber(i,j),0); + } + else +- Error("tried to link a turbomovewall at x=%ld y=%ld to a non-existent touchplate\n",i,j); ++ Error("tried to link a turbomovewall at x=%d y=%d to a non-existent touchplate\n",i,j); + } + } + break; +@@ -3059,7 +3059,7 @@ + Link_To_Touchplate(touchx,touchy,ActivateMoveWall,NULL,GetPushWallNumber(i,j),0); + } + else +- Error("tried to link a movewall at x=%ld y=%ld to a non-existent touchplate\n",i,j); ++ Error("tried to link a movewall at x=%d y=%d to a non-existent touchplate\n",i,j); + } + } + break; +@@ -3279,7 +3279,7 @@ + for (i=0;itilex==tx) && (doorobjlist[i]->tiley==ty)) + return i; +- Error ("Could not find a door at x=%ld y=%ld\n",tx,ty); ++ Error ("Could not find a door at x=%d y=%d\n",tx,ty); + return -1; + } + +@@ -3348,7 +3348,7 @@ + LinkedOpenDoor, doornumber, 0); + } + else +- Error ("tried to link a door at x=%ld y=%ld to a non-existent touchplate",i,j); ++ Error ("tried to link a door at x=%d y=%d to a non-existent touchplate",i,j); + } + } + } +@@ -3390,7 +3390,7 @@ + *y=yy-1; + return; + } +- Error ("Could not find an end time for a clock linked item\nat x=%ld y=%ld\n",*x,*y); ++ Error ("Could not find an end time for a clock linked item\nat x=%d y=%d\n",*x,*y); + } + + +@@ -3618,7 +3618,7 @@ + } + } + else +- Error("tried to link an object at x=%ld y=%ld to a non-existent touchplate supposedly at x=%ld y=%ld",tilex,tiley,touchx,touchy); ++ Error("tried to link an object at x=%d y=%d to a non-existent touchplate supposedly at x=%d y=%d",tilex,tiley,touchx,touchy); + } + + if (tilemap[tilex][tiley]) +@@ -4051,7 +4051,7 @@ + sprites[i][j]->linked_to = touchindices[touchx][touchy]-1; + } + else +- Error("tried to link a light at x=%ld y=%ld to a non-existent touchplate",i,j); ++ Error("tried to link a light at x=%d y=%d to a non-existent touchplate",i,j); + } + else + {if (touchindices[touchx][touchy]) +@@ -4059,7 +4059,7 @@ + sprites[i][j]->linked_to = touchindices[touchx][touchy]-1; + } + else +- Error("tried to link a light at x=%ld y=%ld to a non-existent touchplate",i,j); ++ Error("tried to link a light at x=%d y=%d to a non-existent touchplate",i,j); + sprites[i][j]->flags |= FL_LIGHTON; + } + } +@@ -4069,7 +4069,7 @@ + sprites[i][j]->linked_to = touchindices[touchx][touchy]-1; + } + else +- Error("tried to link a light at x=%ld y=%ld to a non-existent touchplate",i,j); ++ Error("tried to link a light at x=%d y=%d to a non-existent touchplate",i,j); + sprites[i][j]->flags |= FL_LIGHTON; + } + +@@ -4101,31 +4101,31 @@ + OpenMapDebug(); + + total=0; +- MapDebug("MAP STATS Map Number %ld\n",gamestate.mapon); ++ MapDebug("MAP STATS Map Number %d\n",gamestate.mapon); + MapDebug("=======================\n"); + size=pwallnum*sizeof(pwallobj_t); + total+=size; +- MapDebug("Number of PushWalls : %4ld size = %6ld\n",pwallnum,size); ++ MapDebug("Number of PushWalls : %4d size = %6d\n",pwallnum,size); + size=maskednum*sizeof(maskedwallobj_t); + total+=size; +- MapDebug("Number of MaskedWalls : %4ld size = %6ld\n",maskednum,size); ++ MapDebug("Number of MaskedWalls : %4d size = %6d\n",maskednum,size); + size=doornum*sizeof(doorobj_t); + total+=size; +- MapDebug("Number of Doors : %4ld size = %6ld\n",doornum,size); ++ MapDebug("Number of Doors : %4d size = %6d\n",doornum,size); + size=lasttouch*sizeof(touchplatetype); + total+=size; +- MapDebug("Number of TouchPlates : %4ld size = %6ld\n",lasttouch,size); ++ MapDebug("Number of TouchPlates : %4d size = %6d\n",lasttouch,size); + size=_numelevators*sizeof(elevator_t); + total+=size; +- MapDebug("Number of Elevators : %4ld size = %6ld\n",_numelevators,size); ++ MapDebug("Number of Elevators : %4d size = %6d\n",_numelevators,size); + size=statcount*sizeof(statobj_t); + total+=size; +- MapDebug("Number of Sprites : %4ld size = %6ld\n",statcount,size); ++ MapDebug("Number of Sprites : %4d size = %6d\n",statcount,size); + size=objcount*sizeof(objtype); + total+=size; +- MapDebug("Number of Actors : %4ld size = %6ld\n",objcount,size); +- MapDebug("Number of Clocks : %4ld\n",numclocks); +- MapDebug("\nTotal size of level : %6ld\n",total); ++ MapDebug("Number of Actors : %4d size = %6d\n",objcount,size); ++ MapDebug("Number of Clocks : %4d\n",numclocks); ++ MapDebug("\nTotal size of level : %6d\n",total); + } + + +@@ -4398,7 +4398,7 @@ + + OpenMapDebug(); + +- MapDebug("TILE STATS Map Number %ld\n",gamestate.mapon); ++ MapDebug("TILE STATS Map Number %d\n",gamestate.mapon); + MapDebug("=======================\n\n"); + + +@@ -4437,7 +4437,7 @@ + MapDebug("-----------------------\n"); + for (i=0;i<1000;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + + // Doors + memset(tally,0,sizeof(tally)); +@@ -4458,7 +4458,7 @@ + MapDebug("-----------------------\n"); + for (i=0;i<1000;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + + // MaskedWalls + memset(tally,0,sizeof(tally)); +@@ -4480,7 +4480,7 @@ + MapDebug("-----------------------\n"); + for (i=0;i<1000;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + // Platforms + memset(tally,0,sizeof(tally)); + MapDebug("=======================\n"); +@@ -4500,7 +4500,7 @@ + MapDebug("-----------------------\n"); + for (i=0;i<1000;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + + // Actors + memset(tally,0,sizeof(tally)); +@@ -4527,9 +4527,9 @@ + hardtotal+=tally[i]; + MapDebug("\nLowGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Sneaky Low Guards + easytotal=0; +@@ -4540,9 +4540,9 @@ + hardtotal+=tally[i]; + MapDebug("\nSneakyLowGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // High Guards + easytotal=0; +@@ -4553,9 +4553,9 @@ + hardtotal+=tally[i]; + MapDebug("\nHighGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // OverPatrol Guards + easytotal=0; +@@ -4566,9 +4566,9 @@ + hardtotal+=tally[i]; + MapDebug("\nOverPatrolGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Strike Guards + easytotal=0; +@@ -4579,9 +4579,9 @@ + hardtotal+=tally[i]; + MapDebug("\nStrikeGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // TriadEnforcer Guards + easytotal=0; +@@ -4592,9 +4592,9 @@ + hardtotal+=tally[i]; + MapDebug("\nTriadEnforcer Guards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Lightning Guards + easytotal=0; +@@ -4605,9 +4605,9 @@ + hardtotal+=tally[i]; + MapDebug("\nLightningGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Random Actors + easytotal=0; +@@ -4616,7 +4616,7 @@ + easytotal+=tally[i]; + MapDebug("\nRandom Actors\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",easytotal); ++ MapDebug(" Total=%4d\n",easytotal); + + // Monks + easytotal=0; +@@ -4627,9 +4627,9 @@ + hardtotal+=tally[i]; + MapDebug("\nMonks\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Fire Monks + easytotal=0; +@@ -4640,9 +4640,9 @@ + hardtotal+=tally[i]; + MapDebug("\nFire Monks\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Robo Guards + easytotal=0; +@@ -4653,9 +4653,9 @@ + hardtotal+=tally[i]; + MapDebug("\nRoboGuards\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Ballistikrafts + easytotal=0; +@@ -4666,9 +4666,9 @@ + hardtotal+=tally[i]; + MapDebug("\nBallistikrafts\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Boulders + easytotal=0; +@@ -4679,8 +4679,8 @@ + hardtotal+=tally[i]; + MapDebug("\nBoulders\n"); + MapDebug("-----------------------\n"); +- MapDebug("Boulders=%4ld\n",easytotal); +- MapDebug("BoulderHoles=%4ld\n",hardtotal); ++ MapDebug("Boulders=%4d\n",easytotal); ++ MapDebug("BoulderHoles=%4d\n",hardtotal); + + // PushColumns + easytotal=0; +@@ -4697,7 +4697,7 @@ + easytotal+=tally[i]; + MapDebug("\nPushColumns\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",easytotal); ++ MapDebug(" Total=%4d\n",easytotal); + + // Gun Emplacements + easytotal=0; +@@ -4708,9 +4708,9 @@ + hardtotal+=tally[i]; + MapDebug("\nGun Emplacements\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // 4-way guns + easytotal=0; +@@ -4721,49 +4721,49 @@ + hardtotal+=tally[i]; + MapDebug("\n4-way guns\n"); + MapDebug("-----------------------\n"); +- MapDebug("EasyTotal=%4ld\n",easytotal); +- MapDebug("HardTotal=%4ld\n",hardtotal); +- MapDebug(" Total=%4ld\n",easytotal+hardtotal); ++ MapDebug("EasyTotal=%4d\n",easytotal); ++ MapDebug("HardTotal=%4d\n",hardtotal); ++ MapDebug(" Total=%4d\n",easytotal+hardtotal); + + // Stabbers from above + MapDebug("\nStabbers from above\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[412]); ++ MapDebug(" Total=%4d\n",tally[412]); + + // Stabbers from below + MapDebug("\nStabbers from below\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[430]); ++ MapDebug(" Total=%4d\n",tally[430]); + + // Crushing pillar from above + MapDebug("\nCrushing pillar from above\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[413]); ++ MapDebug(" Total=%4d\n",tally[413]); + + // Crushing pillar from below + MapDebug("\nCrushing pillar from below\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[431]); ++ MapDebug(" Total=%4d\n",tally[431]); + + // Above Spinner + MapDebug("\nAbove Spinner\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[156]); ++ MapDebug(" Total=%4d\n",tally[156]); + + // Ground Spinner + MapDebug("\nGround Spinner\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[174]); ++ MapDebug(" Total=%4d\n",tally[174]); + + // Spinner from above + MapDebug("\nSpinner from above\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[157]); ++ MapDebug(" Total=%4d\n",tally[157]); + + // Spinner from below + MapDebug("\nSpinner from below\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[175]); ++ MapDebug(" Total=%4d\n",tally[175]); + + // Bosses + easytotal=0; +@@ -4771,12 +4771,12 @@ + easytotal+=tally[i]; + MapDebug("\nBosses\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",easytotal); ++ MapDebug(" Total=%4d\n",easytotal); + + // Spring Boards + MapDebug("\nSpring Boards\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",tally[193]); ++ MapDebug(" Total=%4d\n",tally[193]); + + // Above FlameJets + easytotal=0; +@@ -4787,8 +4787,8 @@ + hardtotal+=tally[i]; + MapDebug("\nFlameJets\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Above=%4ld\n",easytotal); +- MapDebug(" Ground=%4ld\n",hardtotal); ++ MapDebug(" Above=%4d\n",easytotal); ++ MapDebug(" Ground=%4d\n",hardtotal); + + // Fire Chutes + easytotal=0; +@@ -4796,7 +4796,7 @@ + easytotal+=tally[i]; + MapDebug("\nFireChutes\n"); + MapDebug("-----------------------\n"); +- MapDebug(" Total=%4ld\n",easytotal); ++ MapDebug(" Total=%4d\n",easytotal); + + // Sprites + MapDebug("=======================\n"); +@@ -4806,22 +4806,22 @@ + MapDebug("-----------------------\n"); + for (i=1;i<=72;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + for (i=210;i<=210;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + for (i=228;i<=233;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + for (i=246;i<=255;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + for (i=260;i<=273;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + for (i=282;i<=284;i++) + if (tally[i]!=0) +- MapDebug(" %4ld %4ld\n",i,tally[i]); ++ MapDebug(" %4d %4d\n",i,tally[i]); + } + + //*************************************************************************** +@@ -5738,7 +5738,7 @@ + nominalheight = maxheight-32; + } + else +- Error("You must specify a valid height sprite icon at (2,0) on map %ld\n",gamestate.mapon); ++ Error("You must specify a valid height sprite icon at (2,0) on map %d\n",gamestate.mapon); + + /* + if ( ( BATTLEMODE ) && ( !gamestate.BattleOptions.SpawnDangers ) ) +@@ -6828,7 +6828,7 @@ + case 253: + + #if (SHAREWARE == 1) +- Error("DogMode Power up in shareware at x=%ld y=%ld\n",i,j); ++ Error("DogMode Power up in shareware at x=%d y=%d\n",i,j); + #endif + + SD_PreCacheSoundGroup(SD_DOGMODEPANTSND,SD_DOGMODELICKSND); +@@ -6952,7 +6952,7 @@ + else if (ActorIsSpring(x+(dx*count),y+(dy*count))) + d=0; + else +- Error("Cannot find a spring board around a ramp ascension near x=%ld y=%ld\n",x,y); ++ Error("Cannot find a spring board around a ramp ascension near x=%d y=%d\n",x,y); + + hc=((maxheight+20)<<16)/(count+1); + h=hc<<1; +@@ -6984,7 +6984,7 @@ + while (StaticUndefined(x+count,y)) + count++; + if (count<3) +- Error ("Are You kidding me? You are trying to loft <3 sprites in an arc??? \n x=%ld y=%ld\n",x,y); ++ Error ("Are You kidding me? You are trying to loft <3 sprites in an arc??? \n x=%d y=%d\n",x,y); + RaiseSprites(x,y,count,1); + } + else if (StaticUndefined(x,y+1)) +@@ -6993,11 +6993,11 @@ + while (StaticUndefined(x,y+count)) + count++; + if (count<3) +- Error ("Are You kidding me? You are trying to loft <3 sprites??? \n x=%ld y=%ld\n",x,y); ++ Error ("Are You kidding me? You are trying to loft <3 sprites??? \n x=%d y=%d\n",x,y); + RaiseSprites(x,y,count,0); + } + else +- Error ("Sprite Lofter is confused around x=%ld y=%ld\n",x,y); ++ Error ("Sprite Lofter is confused around x=%d y=%d\n",x,y); + } + } + } +diff -urNad rott-1.0+dfsg~/rt_util.c rott-1.0+dfsg/rt_util.c +--- rott-1.0+dfsg~/rt_util.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.c 2008-01-10 09:19:49.000000000 +0100 +@@ -333,7 +333,7 @@ + + inerror++; + if (inerror > 1) +- return; ++ abort(); + + + SetTextMode (); +diff -urNad rott-1.0+dfsg~/rt_util.h rott-1.0+dfsg/rt_util.h +--- rott-1.0+dfsg~/rt_util.h 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.h 2008-01-10 09:19:49.000000000 +0100 +@@ -44,7 +44,7 @@ + void GetPalette(char * pal); + void ClearGraphicsScreen( void ); + void ClearBuffer( char * buf, int size ); +-void Error (char *error, ...); ++void Error (char *error, ...) __attribute__((noreturn,format(printf,1,2))); + void StartupSoftError ( void ); + void ShutdownSoftError ( void ); + int CheckParm (char *check); +@@ -100,7 +100,7 @@ + void VL_GetPalette (byte *palette); + void UL_printf (char *str); + void VL_NormalizePalette (byte *palette); +-void MapDebug (char *error, ...); ++void MapDebug (char *error, ...) __attribute__((format(printf,1,2))); + void OpenMapDebug ( void ); + void UL_ColorBox (int x, int y, int w, int h, int color); + +@@ -161,11 +161,11 @@ + + #if (SOFTERROR==1) + +-void SoftwareError (char *error, ...); ++void SoftwareError (char *error, ...) __attribute__((format(printf,1,2))); + #define SoftError SoftwareError + + #else +-void SoftwareError (char *error, ...); ++void SoftwareError (char *error, ...) __attribute__((format(printf,1,2))); + //#define SoftError SoftwareError + + #define SoftError if (1) {} else SoftwareError +@@ -176,12 +176,12 @@ + + #if (DEBUG==1) + +-void DebugError (char *error, ...); ++void DebugError (char *error, ...) __attribute__((format(printf,1,2))); + #define Debug DebugError + + #else + +-void DebugError (char *error, ...); ++void DebugError (char *error, ...) __attribute__((format(printf,1,2))); + #define Debug DebugError + //#define Debug + +diff -urNad rott-1.0+dfsg~/rt_view.c rott-1.0+dfsg/rt_view.c +--- rott-1.0+dfsg~/rt_view.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/rt_view.c 2008-01-10 09:19:49.000000000 +0100 +@@ -287,7 +287,7 @@ + int topy; + + if ((size<0) || (size>=MAXVIEWSIZES)) +- Error("Illegal screen size = %ld\n",size); ++ Error("Illegal screen size = %d\n",size); + + viewwidth = viewsizes[ size << 1 ]; // must be divisable by 16 + viewheight = viewsizes[ ( size << 1 ) + 1 ]; // must be even +@@ -508,7 +508,7 @@ + if (((word)MAPSPOT(2,0,1)>=104) && ((word)MAPSPOT(2,0,1)<=105)) + fog=(word)MAPSPOT(2,0,1)-104; + else +- Error ("There is no Fog icon on map %ld\n",gamestate.mapon); ++ Error ("There is no Fog icon on map %d\n",gamestate.mapon); + if ((word)MAPSPOT(3,0,1)==139) + { + if (fog==0) +@@ -518,14 +518,14 @@ + memset (lights,0,MAPSIZE*MAPSIZE*(sizeof(unsigned long))); + } + else +- Error("You cannot use light sourcing on a level with fog on map %ld\n",gamestate.mapon); ++ Error("You cannot use light sourcing on a level with fog on map %d\n",gamestate.mapon); + } + else if ((word)MAPSPOT(3,0,1)) +- Error("You must use the lightsource icon or nothing at all at (3,0) in plane 1 on map %ld\n",gamestate.mapon); ++ Error("You must use the lightsource icon or nothing at all at (3,0) in plane 1 on map %d\n",gamestate.mapon); + if (((word)MAPSPOT(2,0,0)>=LIGHTLEVELBASE) && ((word)MAPSPOT(2,0,0)<=LIGHTLEVELEND)) + glevel=(MAPSPOT(2,0,0)-LIGHTLEVELBASE); + else +- Error("You must specify a valid darkness level icon at (2,0) on map %ld\n",gamestate.mapon); ++ Error("You must specify a valid darkness level icon at (2,0) on map %d\n",gamestate.mapon); + + SetLightLevels ( glevel ); + +diff -urNad rott-1.0+dfsg~/w_wad.c rott-1.0+dfsg/w_wad.c +--- rott-1.0+dfsg~/w_wad.c 2008-01-10 09:19:48.000000000 +0100 ++++ rott-1.0+dfsg/w_wad.c 2008-01-10 09:19:49.000000000 +0100 +@@ -230,7 +230,7 @@ + // + lumpcache = calloc (numlumps, sizeof(*lumpcache)); + if (!lumpcache) +- Error("W_InitFiles: lumpcache malloc failed size=%ld\n",numlumps<<2); ++ Error("W_InitFiles: lumpcache malloc failed size=%d\n",numlumps<<2); + + if (!quiet) + printf("W_Wad: Wad Manager Started NUMLUMPS=%ld\n",(long int)numlumps); +@@ -483,7 +483,7 @@ + #else + Z_Malloc (W_LumpLength (lump), tag, &lumpcache[lump]); + W_ReadLump (lump, lumpcache[lump]); +- Debug("Invoking endian converter on %p, %i records\n", lump, numrec); ++ Debug("Invoking endian converter on %p, %i records\n", lumpcache[lump], numrec); + converter(lumpcache[lump], numrec); + #endif + } +diff -urNad rott-1.0+dfsg~/z_zone.c rott-1.0+dfsg/z_zone.c +--- rott-1.0+dfsg~/z_zone.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/z_zone.c 2008-01-10 09:19:49.000000000 +0100 +@@ -122,7 +122,7 @@ + + header = malloc (size+sizeof(memzone_t)); + if (!header) +- Error ("Z_AllocateZone: Couldn't malloc %i bytes avail=%ld\n", ++ Error ("Z_AllocateZone: Couldn't malloc %zd bytes avail=%d\n", + size+sizeof(memzone_t), Z_AvailHeap()); + header->size = size; + Z_ClearZone (header); +@@ -540,7 +540,7 @@ + SoftError("ERROR: two consecutive free blocks\n"); + } + } +- SoftError("Total Size of blocks = %ld\n",totalsize); ++ SoftError("Total Size of blocks = %d\n",totalsize); + + SoftError("LEVEL ZONE\n"); + SoftError("zone size: %i location: %p\n",levelzone->size,levelzone); +@@ -569,7 +569,7 @@ + SoftError("ERROR: two consecutive free blocks\n"); + } + } +- SoftError("Total Size of blocks = %ld\n",totalsize); ++ SoftError("Total Size of blocks = %d\n",totalsize); + + } + --- rott-1.0+dfsg.orig/debian/patches/37-svn-217c.dpatch +++ rott-1.0+dfsg/debian/patches/37-svn-217c.dpatch @@ -0,0 +1,20 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r217 | theoddone33 | 2003-06-26 04:05:15 +0200 (Do, 26 Jun 2003) | 3 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add some fixes from "DrLex" on the 3drealms forums. +## DP: Fixes some endianness problems as well as the save bug VS.NET complains about + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/fx_man.c rott-1.0+dfsg/fx_man.c +--- rott-1.0+dfsg~/fx_man.c 2008-01-10 09:21:54.000000000 +0100 ++++ rott-1.0+dfsg/fx_man.c 2008-01-10 09:21:55.000000000 +0100 +@@ -412,7 +412,7 @@ + return(FX_Error); + } // if + +- audio_format = (samplebits == 8) ? AUDIO_U8 : AUDIO_S16; ++ audio_format = (samplebits == 8) ? AUDIO_U8 : AUDIO_S16SYS; + if (Mix_OpenAudio(mixrate, audio_format, numchannels, 256) < 0) + { + setErrorMessage(SDL_GetError()); --- rott-1.0+dfsg.orig/debian/patches/03-fullscreen-hack.dpatch +++ rott-1.0+dfsg/debian/patches/03-fullscreen-hack.dpatch @@ -0,0 +1,317 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 1.0-fullscreen-patch.patch from Gentoo + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/modexlib.c rott-1.0+dfsg/modexlib.c +--- rott-1.0+dfsg~/modexlib.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/modexlib.c 2008-01-10 09:16:33.000000000 +0100 +@@ -39,6 +39,7 @@ + #include "memcheck.h" + #include "rt_util.h" + ++#define FULLSCREENHACK // !New! + + // GLOBAL VARIABLES + +@@ -403,7 +404,9 @@ + ==================== + */ + static SDL_Surface *sdl_surface = NULL; +-static SDL_Surface *sdl_backbuf = NULL; ++#ifdef FULLSCREENHACK // [!New! ++static byte *backbuf = NULL; // Game drawing will happen here ++#endif // !New!] + + void GraphicsMode ( void ) + { +@@ -422,7 +425,12 @@ + + SDL_WM_SetCaption ("Rise of the Triad", "ROTT"); + SDL_ShowCursor (0); +- sdl_surface = SDL_SetVideoMode (320, 200, 8, flags); ++#ifdef FULLSCREENHACK // [!New! ++ sdl_surface = SDL_SetVideoMode (640, 480, 8, flags); ++ backbuf = SafeMalloc(320*200); ++#else // !New!] ++ sdl_surface = SDL_SetVideoMode (320, 200, 8, flags); ++#endif + + if (sdl_surface == NULL) + { +@@ -448,6 +456,12 @@ + + SDL_QuitSubSystem (SDL_INIT_VIDEO); + } ++#ifdef FULLSCREENHACK // [!New! ++ if(backbuf != NULL) { ++ SafeFree(backbuf); ++ backbuf = NULL; ++ } ++#endif // !New!] + } + + /* +@@ -502,9 +516,15 @@ + + screensize=MAXSCREENHEIGHT*MAXSCREENWIDTH; + ++#ifdef FULLSCREENHACK // [!New! ++ page1start=(int)backbuf; ++ page2start=(int)backbuf; ++ page3start=(int)backbuf; ++#else // !New!] + page1start=(int)sdl_surface->pixels; + page2start=(int)sdl_surface->pixels; +- page3start=(int)sdl_surface->pixels; ++ page3start=(int)sdl_surface->pixels; ++#endif // !New! + displayofs = page1start; + bufferofs = page2start; + XFlipPage (); +@@ -633,7 +653,11 @@ + VGAMAPMASK(15); + memset((byte *)(0xa000<<4),color,0x10000); + #else ++#ifdef FULLSCREENHACK // [!New! ++ memset (backbuf, color, 320*200); ++#else // !New!] + memset (sdl_surface->pixels, color, MAXSCREENWIDTH*MAXSCREENHEIGHT); ++#endif // !New! + #endif + } + +@@ -649,11 +673,79 @@ + { + } + ++#ifdef FULLSCREENHACK // [!New! ++/* This scales a 320x200 image to 640x400 in good ol' DOS fashion. ++ * This code has been optimized to the max, because it's used a lot. ++ * This version is about 2.5 times as fast as the trivial implementation. */ ++/*void copyFullScreen(char* source, char* dest) ++{ ++ int i, j, inRow, outRow1, outRow2; ++ for(j = 0; j < 200; j++) { ++ inRow = ylookup[j]; ++ outRow1 = (j<<1)*640; ++ outRow2 = ((j<<1)+1)*640; ++ for(i = 0; i < 320; i++) { ++ dest[outRow2+(i<<1)+1] = dest[outRow2+(i<<1)] = ++ dest[outRow1+(i<<1)+1] = dest[outRow1+(i<<1)] = source[inRow+i]; ++ } ++ } ++}*/ ++// The same as above but for scaling 320x200 to 640x480 so the aspect ++// ratio is right. ++void copyFullScreen(char* source, char* dest) ++{ ++ int i, j, inRow, outRow1, outRow2, outRow3; ++ for(j = 0; j < 40; j++) { ++ inRow = 1600*j; ++ outRow1 = 7680*j; ++ outRow2 = outRow1+640; ++ for(i = 0; i < 320; i++) { ++ dest[outRow2+(i<<1)+1] = dest[outRow2+(i<<1)] = ++ dest[outRow1+(i<<1)+1] = dest[outRow1+(i<<1)] = source[inRow+i]; ++ } ++ inRow += 320; ++ outRow1 += 1280; ++ outRow2 += 1280; ++ outRow3 = outRow2+640; ++ for(i = 0; i < 320; i++) { ++ dest[outRow3+(i<<1)+1] = dest[outRow3+(i<<1)] = ++ dest[outRow2+(i<<1)+1] = dest[outRow2+(i<<1)] = ++ dest[outRow1+(i<<1)+1] = dest[outRow1+(i<<1)] = source[inRow+i]; ++ } ++ inRow += 320; ++ outRow1 += 1920; ++ outRow2 += 1920; ++ for(i = 0; i < 320; i++) { ++ dest[outRow2+(i<<1)+1] = dest[outRow2+(i<<1)] = ++ dest[outRow1+(i<<1)+1] = dest[outRow1+(i<<1)] = source[inRow+i]; ++ } ++ inRow += 320; ++ outRow1 += 1280; ++ outRow2 += 1280; ++ outRow3 = outRow2+640; ++ for(i = 0; i < 320; i++) { ++ dest[outRow3+(i<<1)+1] = dest[outRow3+(i<<1)] = ++ dest[outRow2+(i<<1)+1] = dest[outRow2+(i<<1)] = ++ dest[outRow1+(i<<1)+1] = dest[outRow1+(i<<1)] = source[inRow+i]; ++ } ++ inRow += 320; ++ outRow1 += 1920; ++ outRow2 += 1920; ++ for(i = 0; i < 320; i++) { ++ dest[outRow2+(i<<1)+1] = dest[outRow2+(i<<1)] = ++ dest[outRow1+(i<<1)+1] = dest[outRow1+(i<<1)] = source[inRow+i]; ++ } ++ } ++} ++#endif // !New!] + + /* C version of rt_vh_a.asm */ + + void VH_UpdateScreen (void) + { ++#ifdef FULLSCREENHACK // [!New! ++ copyFullScreen(backbuf, (char*)sdl_surface->pixels); ++#endif // !New!] + SDL_UpdateRect (SDL_GetVideoSurface (), 0, 0, 0, 0); + } + +@@ -681,6 +773,9 @@ + if (bufferofs > page3start) + bufferofs = page1start; + #else ++#ifdef FULLSCREENHACK // [!New! ++ copyFullScreen(backbuf, (char*)sdl_surface->pixels); // !New! ++#endif // !New!] + SDL_UpdateRect (sdl_surface, 0, 0, 0, 0); + #endif + } +diff -urNad rott-1.0+dfsg~/rt_in.c rott-1.0+dfsg/rt_in.c +--- rott-1.0+dfsg~/rt_in.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_in.c 2008-01-10 09:16:33.000000000 +0100 +@@ -268,7 +268,7 @@ + * surface's current flags are used. + * @return non-zero on success, zero on failure. + */ +-static int attempt_fullscreen_toggle(SDL_Surface **surface, Uint32 *flags) ++int attempt_fullscreen_toggle(SDL_Surface **surface, Uint32 *flags) + { + long framesize = 0; + void *pixels = NULL; +diff -urNad rott-1.0+dfsg~/rt_main.c rott-1.0+dfsg/rt_main.c +--- rott-1.0+dfsg~/rt_main.c 2008-01-10 09:16:32.000000000 +0100 ++++ rott-1.0+dfsg/rt_main.c 2008-01-10 09:16:33.000000000 +0100 +@@ -115,9 +115,8 @@ + boolean TILESTATS = false; + boolean HUD = false; + boolean IS8250 = false; +- +-boolean dopefish; +- ++boolean dopefish = false; ++boolean FullScreen = false; + boolean newlevel = false; + boolean infopause; + boolean SOUNDSETUP=false; +@@ -157,7 +156,7 @@ + void PlayTurboGame( void ); + void Init_Tables (void); + void CheckRemoteRidicule ( int scancode ); +- ++extern int attempt_fullscreen_toggle(SDL_Surface **surface, Uint32 *flags); + #ifndef DOS + extern void crash_print (int); + extern int setup_homedir (void); +@@ -376,6 +375,15 @@ + + BATTLE_SetOptions( &BATTLE_Options[ battle_StandAloneGame ] ); + ++ if (FullScreen) ++ { ++ SDL_Surface *surface = SDL_GetVideoSurface(); ++ if (surface != NULL) ++ { ++ Uint32 sdl_flags = surface->flags; ++ attempt_fullscreen_toggle(&surface, &sdl_flags); ++ } ++ } + if (turbo || tedlevel) + { + if (modemgame == true) +@@ -516,9 +524,10 @@ + { + char *PStrings[] = {"TEDLEVEL","NOWAIT","NOSOUND","NOW", + "TRANSPORT","DOPEFISH","SCREENSHOTS", +- "MONO","MAPSTATS","TILESTATS","VER","net", ++ "MONO","MAPSTATS","TILESTATS","VER","FULLSCREEN","net", + "PAUSE","SOUNDSETUP","WARP","IS8250","ENABLEVR", +- "TIMELIMIT","MAXTIMELIMIT","NOECHO","DEMOEXIT","QUIET",NULL}; ++ "TIMELIMIT","MAXTIMELIMIT","NOECHO","DEMOEXIT","QUIET", ++ NULL}; + int i,n; + + infopause=false; +@@ -565,6 +574,7 @@ + printf (" CYBERMAN - Enable check for Cyberman.\n"); + printf (" ASSASSIN - Enable check for Wingman Assassin.\n"); + printf (" VER - Version number.\n"); ++ printf (" FULLSCREEN - Enable Full Screen video mode.\n"); + printf (" MAPSTATS - Dump Map statistics to ERROR.\n"); + printf (" TILESTATS - Dump Tile statistics to ERROR.\n"); + printf (" MONO - Enable mono-monitor support.\n"); +@@ -608,7 +618,7 @@ + MenuFixup (); + break; + #endif +- case 1: ++ case 1: + NoWait = true; + break; + case 2: +@@ -662,6 +672,9 @@ + exit (0); + break; + case 11: ++ FullScreen = true; ++ break; ++ case 12: + InitROTTNET(); + numplayers = rottcom->numplayers; + if (numplayers>MAXPLAYERS) +@@ -681,24 +694,24 @@ + printf("MODEM GAME\n"); + } + break; +- case 12: ++ case 13: + infopause=true; + break; +- case 13: ++ case 14: + SOUNDSETUP = true; + break; +- case 14: ++ case 15: + startlevel = (ParseNum(_argv[i + 1])-1); + break; +- case 15: ++ case 16: + IS8250 = true; + break; +- case 16: ++ case 17: + vrenabled = true; + if (!quiet) + printf("Virtual Reality Mode enabled\n"); + break; +- case 17: ++ case 18: + timelimitenabled = true; + timelimit = ParseNum(_argv[i + 1]); + if (!quiet) +@@ -706,17 +719,17 @@ + timelimit *= VBLCOUNTER; + break; + +- case 18: ++ case 19: + maxtimelimit = ParseNum(_argv[i + 1]); + maxtimelimit *= VBLCOUNTER; + break; +- case 19: ++ case 20: + noecho = true; + break; +- case 20: ++ case 21: + demoexit = true; + break; +- case 21: ++ case 22: + quiet = true; + break; + } --- rott-1.0+dfsg.orig/debian/patches/12-fix-char-byte.dpatch +++ rott-1.0+dfsg/debian/patches/12-fix-char-byte.dpatch @@ -0,0 +1,165 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 12-fix-char-byte.dpatch by Michael Karcher +## +## +## DP: Makes signed/unsigned chars more consistent to suppress compiler +## DP: warnings. No functional change. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/_rt_menu.h rott-1.0+dfsg/_rt_menu.h +--- rott-1.0+dfsg~/_rt_menu.h 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/_rt_menu.h 2008-01-10 09:17:58.000000000 +0100 +@@ -194,7 +194,7 @@ + // + //****************************************************************************** + +-static byte *ScanNames[] = // Scan code names with single chars ++static char *ScanNames[] = // Scan code names with single chars + { + "?","?","1","2","3","4","5","6","7","8","9","0","-","+","?","?", + "Q","W","E","R","T","Y","U","I","O","P","[","]","|","?","A","S", +@@ -215,7 +215,7 @@ + 0x50, 0x4b, 0x4d, 0x00 + }; + +-static byte *ExtScanNames[] = // Names corresponding to ExtScanCodes ++static char *ExtScanNames[] = // Names corresponding to ExtScanCodes + { + "Esc","BkSp","Tab","Ctrl","Space","CapLk","F1","F2","F3","F4", + "F5","F6","F7","F8","F9","F10","F11","F12","SclLk","Enter","Shift", +@@ -232,7 +232,7 @@ + + void MouseSensitivity (void); + void DoThreshold (void); +-byte * IN_GetScanName (ScanCode scan); ++char * IN_GetScanName (ScanCode scan); + void DisplayInfo (int which); + + void PrintLSEntry (int w); +diff -urNad rott-1.0+dfsg~/fx_man.c rott-1.0+dfsg/fx_man.c +--- rott-1.0+dfsg~/fx_man.c 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/fx_man.c 2008-01-10 09:17:58.000000000 +0100 +@@ -1068,7 +1068,7 @@ + static int music_initialized = 0; + static int music_context = 0; + static int music_loopflag = MUSIC_PlayOnce; +-static char *music_songdata = NULL; ++static byte *music_songdata = NULL; + static Mix_Music *music_musicchunk = NULL; + + int MUSIC_Init(int SoundCard, int Address) +diff -urNad rott-1.0+dfsg~/rt_build.c rott-1.0+dfsg/rt_build.c +--- rott-1.0+dfsg~/rt_build.c 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/rt_build.c 2008-01-10 09:17:58.000000000 +0100 +@@ -235,7 +235,7 @@ + void DrawPlanePosts (void) + { + int height; +- char * buf; ++ byte * buf; + byte * shape; + int lastwall=-2; + int plane; +diff -urNad rott-1.0+dfsg~/rt_draw.c rott-1.0+dfsg/rt_draw.c +--- rott-1.0+dfsg~/rt_draw.c 2008-01-10 09:17:57.000000000 +0100 ++++ rott-1.0+dfsg/rt_draw.c 2008-01-10 09:17:58.000000000 +0100 +@@ -1920,7 +1920,7 @@ + + void DrawWalls (void) + { +- char * buf; ++ byte * buf; + int plane; + wallcast_t * post; + +diff -urNad rott-1.0+dfsg~/rt_menu.c rott-1.0+dfsg/rt_menu.c +--- rott-1.0+dfsg~/rt_menu.c 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/rt_menu.c 2008-01-10 09:17:58.000000000 +0100 +@@ -4902,9 +4902,9 @@ + // + //****************************************************************************** + +-byte * IN_GetScanName (ScanCode scan) ++char * IN_GetScanName (ScanCode scan) + { +- byte **p; ++ char **p; + ScanCode *s; + + for (s = ExtScanCodes, p = ExtScanNames; *s; p++, s++) +diff -urNad rott-1.0+dfsg~/rt_sound.c rott-1.0+dfsg/rt_sound.c +--- rott-1.0+dfsg~/rt_sound.c 2008-01-10 09:17:57.000000000 +0100 ++++ rott-1.0+dfsg/rt_sound.c 2008-01-10 09:17:58.000000000 +0100 +@@ -378,12 +378,12 @@ + #ifdef DOS + if ( *snd == 'C' ) + { +- voice = FX_PlayVOC3D( snd, pitch, angle, distance, ++ voice = FX_PlayVOC3D( (char*)snd, pitch, angle, distance, + sounds[sndnum].priority, (unsigned long) sndnum ); + } + else + { +- voice = FX_PlayWAV3D( snd, pitch, angle, distance, ++ voice = FX_PlayWAV3D( (char*)snd, pitch, angle, distance, + sounds[sndnum].priority, (unsigned long) sndnum ); + } + #else +@@ -393,13 +393,13 @@ + */ + if ( *snd == 'C' ) + { +- voice = FX_PlayVOC3D_ROTT( snd, W_LumpLength(SoundNumber(sndnum)), ++ voice = FX_PlayVOC3D_ROTT( (char*)snd, W_LumpLength(SoundNumber(sndnum)), + pitch, angle, distance, + sounds[sndnum].priority, (unsigned long) sndnum ); + } + else + { +- voice = FX_PlayWAV3D_ROTT( snd, W_LumpLength(SoundNumber(sndnum)), ++ voice = FX_PlayWAV3D_ROTT( (char*)snd, W_LumpLength(SoundNumber(sndnum)), + pitch, angle, distance, + sounds[sndnum].priority, (unsigned long) sndnum ); + } +diff -urNad rott-1.0+dfsg~/rt_util.c rott-1.0+dfsg/rt_util.c +--- rott-1.0+dfsg~/rt_util.c 2008-01-10 09:17:57.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.c 2008-01-10 09:17:58.000000000 +0100 +@@ -1318,7 +1318,7 @@ + #endif + } + +-void SetPalette ( char * pal ) ++void SetPalette ( byte * pal ) + { + VL_SetPalette (pal); + } +@@ -1607,7 +1607,7 @@ + ================= + */ + +-void UL_printf (byte *str) ++void UL_printf (char *str) + { + #ifdef DOS + byte *s; +diff -urNad rott-1.0+dfsg~/rt_util.h rott-1.0+dfsg/rt_util.h +--- rott-1.0+dfsg~/rt_util.h 2008-01-10 09:17:57.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.h 2008-01-10 09:17:58.000000000 +0100 +@@ -90,7 +90,7 @@ + int atan2_appx(int,int); + int FindDistance(int ix, int iy); + int Find_3D_Distance(int ix, int iy, int iz); +-void SetPalette ( char * pal ); ++void SetPalette ( byte * pal ); + void SetaPalette ( byte * pal ); + void FindEGAColors ( void ); + void VL_FillPalette (int red, int green, int blue); +@@ -98,7 +98,7 @@ + void VL_GetColor (int color, int *red, int *green, int *blue); + void VL_SetPalette (byte *palette); + void VL_GetPalette (byte *palette); +-void UL_printf (byte *str); ++void UL_printf (char *str); + void VL_NormalizePalette (byte *palette); + void MapDebug (char *error, ...); + void OpenMapDebug ( void ); --- rott-1.0+dfsg.orig/debian/patches/16-fix-random-actors.dpatch +++ rott-1.0+dfsg/debian/patches/16-fix-random-actors.dpatch @@ -0,0 +1,34 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 16-fix-random-actors.dpatch by Michael Karcher +## +## +## DP: Fix direction of random opponents. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_ted.c rott-1.0+dfsg/rt_ted.c +--- rott-1.0+dfsg~/rt_ted.c 2008-01-10 09:18:47.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.c 2008-01-10 09:18:48.000000000 +0100 +@@ -5897,6 +5897,7 @@ + int starti,totalrandom=0,count=0,ambush,locindex,orig; + byte actorpresent[10]={0},index=0,randomtype,used[100]={0}; + _2Dpoint randloc[100]; ++ word randtile[100]; + + + map = mapplanes[1]; +@@ -5921,6 +5922,7 @@ + if ((tile >= 122) && (tile <= 125)) + {randloc[totalrandom].x = i; + randloc[totalrandom].y = j; ++ randtile[totalrandom] = tile; + totalrandom++; + if (totalrandom >= 100) + Error("Max random actors (100) exceeded"); +@@ -5955,6 +5957,7 @@ + ambush = (GameRandomNumber("rand actor",0) < 128); + i = randloc[locindex].x; + j = randloc[locindex].y; ++ tile = randtile[locindex]; + SpawnStand(randomtype,i,j,tile-122,ambush); + used[locindex] = 1; + PreCacheActor(randomtype,0); --- rott-1.0+dfsg.orig/debian/patches/14-fix-modex-ptr.dpatch +++ rott-1.0+dfsg/debian/patches/14-fix-modex-ptr.dpatch @@ -0,0 +1,315 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 14-fix-modex-ptr.dpatch by Michael Karcher +## +## +## DP: Cleans up use of integers instead of pointers to hold the base +## DP: address of the frame buffer. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/modexlib.c rott-1.0+dfsg/modexlib.c +--- rott-1.0+dfsg~/modexlib.c 2008-01-10 09:18:28.000000000 +0100 ++++ rott-1.0+dfsg/modexlib.c 2008-01-10 09:18:29.000000000 +0100 +@@ -46,12 +46,12 @@ + + int linewidth; + int ylookup[MAXSCREENHEIGHT]; +-int page1start; +-int page2start; +-int page3start; ++byte* page1start; ++byte* page2start; ++byte* page3start; + int screensize; +-unsigned bufferofs; +-unsigned displayofs; ++byte* bufferofs; ++byte* displayofs; + boolean graphicsmode=false; + + #ifdef DOS +@@ -249,7 +249,7 @@ + = + ======================= + */ +-void VL_CopyBufferToAll ( unsigned buffer ) ++void VL_CopyBufferToAll ( byte * buffer ) + { + int plane; + +@@ -258,11 +258,11 @@ + VGAREADMAP(plane); + VGAWRITEMAP(plane); + if (page1start!=buffer) +- memcpy((byte *)page1start,(byte *)buffer,screensize); ++ memcpy(page1start,buffer,screensize); + if (page2start!=buffer) +- memcpy((byte *)page2start,(byte *)buffer,screensize); ++ memcpy(page2start,buffer,screensize); + if (page3start!=buffer) +- memcpy((byte *)page3start,(byte *)buffer,screensize); ++ memcpy(page3start,buffer,screensize); + } + } + +@@ -517,13 +517,13 @@ + screensize=MAXSCREENHEIGHT*MAXSCREENWIDTH; + + #ifdef FULLSCREENHACK // [!New! +- page1start=(int)backbuf; +- page2start=(int)backbuf; +- page3start=(int)backbuf; ++ page1start=backbuf; ++ page2start=backbuf; ++ page3start=backbuf; + #else // !New!] +- page1start=(int)sdl_surface->pixels; +- page2start=(int)sdl_surface->pixels; +- page3start=(int)sdl_surface->pixels; ++ page1start=sdl_surface->pixels; ++ page2start=sdl_surface->pixels; ++ page3start=sdl_surface->pixels; + #endif // !New! + displayofs = page1start; + bufferofs = page2start; +@@ -586,7 +586,7 @@ + = + ======================= + */ +-void VL_CopyBufferToAll ( unsigned buffer ) ++void VL_CopyBufferToAll ( byte * buffer ) + { + #ifdef DOS + int plane; +@@ -627,13 +627,13 @@ + ================= + */ + +-void VL_ClearBuffer (unsigned buf, byte color) ++void VL_ClearBuffer (byte * buf, byte color) + { + #ifdef DOS + VGAMAPMASK(15); +- memset((byte *)buf,color,screensize); ++ memset(buf,color,screensize); + #else +- memset((byte *)buf,color,screensize); ++ memset(buf,color,screensize); + #endif + } + +@@ -692,7 +692,7 @@ + }*/ + // The same as above but for scaling 320x200 to 640x480 so the aspect + // ratio is right. +-void copyFullScreen(char* source, char* dest) ++void copyFullScreen(byte* source, byte* dest) + { + int i, j, inRow, outRow1, outRow2, outRow3; + for(j = 0; j < 40; j++) { +@@ -744,7 +744,7 @@ + void VH_UpdateScreen (void) + { + #ifdef FULLSCREENHACK // [!New! +- copyFullScreen(backbuf, (char*)sdl_surface->pixels); ++ copyFullScreen(backbuf, (byte*)sdl_surface->pixels); + #endif // !New!] + SDL_UpdateRect (SDL_GetVideoSurface (), 0, 0, 0, 0); + } +@@ -774,7 +774,7 @@ + bufferofs = page1start; + #else + #ifdef FULLSCREENHACK // [!New! +- copyFullScreen(backbuf, (char*)sdl_surface->pixels); // !New! ++ copyFullScreen(backbuf, (byte*)sdl_surface->pixels); // !New! + #endif // !New!] + SDL_UpdateRect (sdl_surface, 0, 0, 0, 0); + #endif +diff -urNad rott-1.0+dfsg~/modexlib.h rott-1.0+dfsg/modexlib.h +--- rott-1.0+dfsg~/modexlib.h 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/modexlib.h 2008-01-10 09:18:29.000000000 +0100 +@@ -104,23 +104,23 @@ + + extern int ylookup[MAXSCREENHEIGHT]; // Table of row offsets + extern int linewidth; +-extern int page1start; +-extern int page2start; +-extern int page3start; ++extern byte* page1start; ++extern byte* page2start; ++extern byte* page3start; + extern int screensize; +-extern unsigned bufferofs; +-extern unsigned displayofs; ++extern byte* bufferofs; ++extern byte* displayofs; + extern boolean graphicsmode; + + + void GraphicsMode ( void ); + void SetTextMode ( void ); + void VL_SetVGAPlaneMode ( void ); +-void VL_ClearBuffer (unsigned buf, byte color); ++void VL_ClearBuffer (byte * buf, byte color); + void VL_ClearVideo (byte color); + void VL_DePlaneVGA (void); + void VL_CopyDisplayToHidden ( void ); +-void VL_CopyBufferToAll ( unsigned buffer ); ++void VL_CopyBufferToAll ( byte * buffer ); + void VL_CopyPlanarPage ( byte * src, byte * dest ); + void VL_CopyPlanarPageToMemory ( byte * src, byte * dest ); + void XFlipPage ( void ); +diff -urNad rott-1.0+dfsg~/rt_game.c rott-1.0+dfsg/rt_game.c +--- rott-1.0+dfsg~/rt_game.c 2008-01-10 09:18:28.000000000 +0100 ++++ rott-1.0+dfsg/rt_game.c 2008-01-10 09:18:29.000000000 +0100 +@@ -998,7 +998,7 @@ + + void DrawGameString (int x, int y, char * str, boolean bufferofsonly) + { +- unsigned tempbuf; ++ byte* tempbuf; + + px=x; + py=y; +@@ -1543,8 +1543,8 @@ + + void DrawMPPic (int xpos, int ypos, int width, int height, int heightmod, byte *src, boolean bufferofsonly) + { +- byte *olddest; +- byte *dest; ++ int olddest; ++ int dest; + int x; + int y; + int planes; +@@ -1554,9 +1554,9 @@ + mask = 1 << (xpos&3); + + #ifdef DOS +- olddest = (byte *)(ylookup[ypos] + (xpos>>2)); ++ olddest = (ylookup[ypos] + (xpos>>2)); + #else +- olddest = (byte *)(ylookup[ypos] + xpos); ++ olddest = (ylookup[ypos] + xpos); + #endif + + for (planes = 0; planes < 4; planes++) +@@ -1637,8 +1637,8 @@ + + void DrawColoredMPPic (int xpos, int ypos, int width, int height, int heightmod, byte *src, boolean bufferofsonly, int color) + { +- byte *olddest; +- byte *dest; ++ int olddest; ++ int dest; + int x; + int y; + int planes; +@@ -1651,9 +1651,9 @@ + mask = 1 << (xpos&3); + + #ifdef DOS +- olddest = (byte *)(ylookup[ypos] + (xpos>>2)); ++ olddest = (ylookup[ypos] + (xpos>>2)); + #else +- olddest = (byte *)(ylookup[ypos] + xpos); ++ olddest = (ylookup[ypos] + xpos); + #endif + + for (planes = 0; planes < 4; planes++) +@@ -1822,8 +1822,8 @@ + + void DrawPPic (int xpos, int ypos, int width, int height, byte *src, int num, boolean up, boolean bufferofsonly) + { +- byte *olddest; +- byte *dest; ++ int olddest; ++ int dest; + int x; + int y; + int planes; +@@ -1847,9 +1847,9 @@ + mask = 1; + + #ifdef DOS +- olddest = (byte *)(ylookup[ypos] + (xpos>>2)); ++ olddest = (ylookup[ypos] + (xpos>>2)); + #else +- olddest = (byte *)(ylookup[ypos] + xpos); ++ olddest = (ylookup[ypos] + xpos); + #endif + + for (planes = 0; planes < 4; planes++) +@@ -2254,7 +2254,7 @@ + void DrawPause (void) + { + pic_t *p; +- int bufftemp = bufferofs; ++ byte *bufftemp = bufferofs; + + bufferofs -= screenofs; + +@@ -2610,15 +2610,16 @@ + + void GM_MemToScreen (byte *source, int width, int height, int x, int y) + { +- byte *dest, *dest1, *dest2, *dest3, mask; ++ int dest; ++ byte *dest1, *dest2, *dest3, mask; + byte *screen1, *screen2, *screen3; + int plane; + int w; + + #ifdef DOS +- dest = (byte *)(ylookup[y]+(x>>2)); ++ dest = (ylookup[y]+(x>>2)); + #else +- dest = (byte *)(ylookup[y]+x); ++ dest = (ylookup[y]+x); + #endif + mask = 1 << (x&3); + +@@ -4450,7 +4451,7 @@ + { + if ((SaveTime+1) < GetTicCount()) + { +- int temp = bufferofs; ++ byte *temp = bufferofs; + + bufferofs = displayofs; + SaveTime = GetTicCount(); +diff -urNad rott-1.0+dfsg~/rt_main.c rott-1.0+dfsg/rt_main.c +--- rott-1.0+dfsg~/rt_main.c 2008-01-10 09:18:28.000000000 +0100 ++++ rott-1.0+dfsg/rt_main.c 2008-01-10 09:18:29.000000000 +0100 +@@ -979,7 +979,7 @@ + while ((!LastScan) && (!IN_GetMouseButtons())) + { + int i; +- unsigned tempbuf; ++ byte *tempbuf; + MenuFadeOut(); + ClearGraphicsScreen(); + SetPalette(&dimpal[0]); +diff -urNad rott-1.0+dfsg~/rt_ted.c rott-1.0+dfsg/rt_ted.c +--- rott-1.0+dfsg~/rt_ted.c 2008-01-10 09:18:28.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.c 2008-01-10 09:18:29.000000000 +0100 +@@ -1143,7 +1143,7 @@ + int lastmem=0; + int lastcache=0; + int ticdelay; +- unsigned tempbuf; ++ byte * tempbuf; + + if (CachingStarted==false) + { +diff -urNad rott-1.0+dfsg~/rt_vid.c rott-1.0+dfsg/rt_vid.c +--- rott-1.0+dfsg~/rt_vid.c 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/rt_vid.c 2008-01-10 09:18:29.000000000 +0100 +@@ -968,7 +968,7 @@ + + void SwitchPalette (byte * newpal, int steps) + { +- int temp; ++ byte *temp; + + VL_FadeOut(0,255,0,0,0,steps>>1); + --- rott-1.0+dfsg.orig/debian/patches/41-svn-221.dpatch +++ rott-1.0+dfsg/debian/patches/41-svn-221.dpatch @@ -0,0 +1,55 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r221 | relnev | 2004-11-06 09:26:11 +0100 (Sa, 06 Nov 2004) | 2 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: fixed an incorrect array access. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_game.c rott-1.0+dfsg/rt_game.c +--- rott-1.0+dfsg~/rt_game.c 2008-01-10 09:22:34.000000000 +0100 ++++ rott-1.0+dfsg/rt_game.c 2008-01-10 09:22:36.000000000 +0100 +@@ -104,12 +104,12 @@ + + static int KeyX[4] = {KEY1_X, KEY2_X, KEY3_X, KEY4_X}; + +-static char *Names[ 5 ] = ++static const char *Names[ 5 ] = + { + "Taradino", "Thi", "Doug", "Lorelei", "Ian Paul" + }; + +-static char *LastNames[ 5 ] = ++static const char *LastNames[ 5 ] = + { + "Cassatt", "Barrett", "Wendt", "Ni", "Freeley" + }; +@@ -487,7 +487,7 @@ + VW_MeasurePropString( LastNames[ character ], &width, &height ); + + DrawGameString ( MEN_X + 44 - width, MEN_Y + 8, +- Names[ character + 5 ], bufferofsonly ); ++ LastNames[ character ], bufferofsonly ); + + UpdateLives( locplayerstate->lives ); + UpdateScore( gamestate.score ); +@@ -996,7 +996,7 @@ + // + //****************************************************************************** + +-void DrawGameString (int x, int y, char * str, boolean bufferofsonly) ++void DrawGameString (int x, int y, const char * str, boolean bufferofsonly) + { + byte* tempbuf; + +diff -urNad rott-1.0+dfsg~/rt_game.h rott-1.0+dfsg/rt_game.h +--- rott-1.0+dfsg~/rt_game.h 2008-01-09 13:52:27.000000000 +0100 ++++ rott-1.0+dfsg/rt_game.h 2008-01-10 09:22:36.000000000 +0100 +@@ -93,7 +93,7 @@ + + void DrawKills (boolean bufferofsonly); + void DrawPlayers ( void ); +-void DrawGameString (int x, int y, char * str, boolean bufferofsonly); ++void DrawGameString (int x, int y, const char * str, boolean bufferofsonly); + void DrawNumber (int x, int y, int width, int which, boolean bufferofsonly); + void TakeDamage (int points, objtype *attacker); + void HealPlayer (int points, objtype * ob); --- rott-1.0+dfsg.orig/debian/patches/02-gcc41.dpatch +++ rott-1.0+dfsg/debian/patches/02-gcc41.dpatch @@ -0,0 +1,28 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## rott-1.0-gcc41.patch from Gentoo + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_actor.h rott-1.0+dfsg/rt_actor.h +--- rott-1.0+dfsg~/rt_actor.h 2008-01-09 13:52:32.000000000 +0100 ++++ rott-1.0+dfsg/rt_actor.h 2008-01-10 09:16:01.000000000 +0100 +@@ -315,7 +315,6 @@ + extern void *actorat[MAPSIZE][MAPSIZE]; + extern int angletodir[ANGLES]; + extern _2Dpoint SNAKEPATH[512]; +-extern int STOPSPEED; + extern int FRICTION; + + extern int objcount; +diff -urNad rott-1.0+dfsg~/rt_in.h rott-1.0+dfsg/rt_in.h +--- rott-1.0+dfsg~/rt_in.h 2008-01-09 13:52:32.000000000 +0100 ++++ rott-1.0+dfsg/rt_in.h 2008-01-10 09:16:01.000000000 +0100 +@@ -147,9 +147,6 @@ + + extern boolean Paused; + extern volatile int LastScan; +-extern KeyboardDef KbdDefs; +-extern JoystickDef JoyDefs[]; +-extern ControlType Controls[MAXPLAYERS]; + + extern boolean SpaceBallPresent; + extern boolean CybermanPresent; --- rott-1.0+dfsg.orig/debian/patches/39-svn-219.dpatch +++ rott-1.0+dfsg/debian/patches/39-svn-219.dpatch @@ -0,0 +1,56 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r219 | relnev | 2003-07-11 03:54:45 +0200 (Fr, 11 Jul 2003) | 2 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Another attempt at restoring the original EKG mode. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_actor.c rott-1.0+dfsg/rt_actor.c +--- rott-1.0+dfsg~/rt_actor.c 2008-01-10 09:22:11.000000000 +0100 ++++ rott-1.0+dfsg/rt_actor.c 2008-01-10 09:22:14.000000000 +0100 +@@ -3362,9 +3362,13 @@ + else + { + MISCVARS->randgibspeed = true; +-// SpawnParticles(ob,GUTS,75); +-//MED ++ ++#ifdef MEDGIBS + SpawnParticles(ob,GUTS,150); ++#else ++ SpawnParticles(ob,GUTS,75); ++#endif ++ + MISCVARS->randgibspeed = false; + } + SpawnParticles(ob,GUTS,40); +@@ -3847,10 +3851,12 @@ + (randadj<<4); + dz = 100 + (randadj<<3); + +-//MED +-// nspeed = 0x2800 + (randadj<<7); ++#ifdef MEDGIBS + nspeed = 0x2800; +- ++#else ++ nspeed = 0x2800 + (randadj<<7); ++#endif ++ + randphi = atan2_appx(FindDistance(dx,dy),dz<<10); + } + +@@ -3872,8 +3878,11 @@ + new->temp3 = (MISCVARS->gibgravity == -1)?(GRAVITY):(MISCVARS->gibgravity); + + new->speed = nspeed>>1; +- //if (MISCVARS->randgibspeed == true) +- // new->speed += (randadj << 11); ++ ++#ifndef MEDGIBS ++ if (MISCVARS->randgibspeed == true) ++ new->speed += (randadj << 11); ++#endif + + // if (ob->state == &s_snakefireworks) + new->z = ob->z; --- rott-1.0+dfsg.orig/debian/patches/05-big-endian-fix.dpatch +++ rott-1.0+dfsg/debian/patches/05-big-endian-fix.dpatch @@ -0,0 +1,984 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## Closes: #418698. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/_rt_ted.h rott-1.0+dfsg/_rt_ted.h +--- rott-1.0+dfsg~/_rt_ted.h 2008-01-10 09:17:00.000000000 +0100 ++++ rott-1.0+dfsg/_rt_ted.h 2008-01-10 09:17:01.000000000 +0100 +@@ -36,6 +36,7 @@ + { + int lump; + int cachelevel; ++ int type; // To make precaching possible on big endian machines + } cachetype; + + //======================================== +diff -urNad rott-1.0+dfsg~/byteordr.c rott-1.0+dfsg/byteordr.c +--- rott-1.0+dfsg~/byteordr.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/byteordr.c 2008-01-10 09:17:01.000000000 +0100 +@@ -52,7 +52,33 @@ + Debug("No-op endian converter on %p.\n", lmp); + } + +-void CvtFixme(void *lmp, int num) ++// Returns converter for the designated type ++converter_t CvtForType(int type) + { +- Debug("FIXME endian converter on %p.\n", lmp); ++ switch(type) { ++ case cache_pic_t: ++ return Cvt_pic_t; ++ break; ++ case cache_lpic_t: ++ return Cvt_lpic_t; ++ break; ++ case cache_font_t: ++ return Cvt_font_t; ++ break; ++ case cache_lbm_t: ++ return Cvt_lbm_t; ++ break; ++ case cache_patch_t: ++ return Cvt_patch_t; ++ break; ++ case cache_transpatch_t: ++ return Cvt_transpatch_t; ++ break; ++ case cache_cfont_t: ++ return Cvt_cfont_t; ++ break; ++ default: ++ return CvtNull; ++ break; ++ } + } +diff -urNad rott-1.0+dfsg~/byteordr.h rott-1.0+dfsg/byteordr.h +--- rott-1.0+dfsg~/byteordr.h 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/byteordr.h 2008-01-10 09:17:01.000000000 +0100 +@@ -35,4 +35,4 @@ + DECLARE_CONVERTER(transpatch_t); + DECLARE_CONVERTER(cfont_t); + void CvtNull(void *lmp, int num); +-void CvtFixme(void *lmp, int num); ++converter_t CvtForType(int type); +diff -urNad rott-1.0+dfsg~/cin_efct.c rott-1.0+dfsg/cin_efct.c +--- rott-1.0+dfsg~/cin_efct.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/cin_efct.c 2008-01-10 09:17:01.000000000 +0100 +@@ -329,7 +329,7 @@ + { + if (flic->usefile==false) + { +- W_CacheLumpName(flic->name,PU_CACHE, CvtFixme, 1); ++ W_CacheLumpName(flic->name,PU_CACHE, CvtNull, 1); + } + } + +@@ -511,7 +511,7 @@ + */ + void PrecacheBack ( backevent * back ) + { +- W_CacheLumpName( back->name, PU_CACHE, CvtFixme, 1); ++ W_CacheLumpName( back->name, PU_CACHE, CvtNull, 1); + } + + +@@ -614,7 +614,7 @@ + { + byte * pal; + +- pal=W_CacheLumpName(event->name,PU_CACHE, CvtFixme, 1); ++ pal=W_CacheLumpName(event->name,PU_CACHE, CvtNull, 1); + XFlipPage (); + CinematicSetPalette (pal); + } +@@ -629,7 +629,7 @@ + + void PrecachePalette (paletteevent * event) + { +- W_CacheLumpName(event->name,PU_CACHE, CvtFixme, 1); ++ W_CacheLumpName(event->name,PU_CACHE, CvtNull, 1); + } + + +diff -urNad rott-1.0+dfsg~/rt_def.h rott-1.0+dfsg/rt_def.h +--- rott-1.0+dfsg~/rt_def.h 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_def.h 2008-01-10 09:17:01.000000000 +0100 +@@ -443,6 +443,18 @@ + ex_battledone + } exit_t; + ++// Types for cache lumps (for endian converters) ++enum { ++ cache_other, ++ cache_pic_t, ++ cache_lpic_t, ++ cache_font_t, ++ cache_lbm_t, ++ cache_patch_t, ++ cache_transpatch_t, ++ cache_cfont_t ++}; ++ + //////////////////////////////////////////////////////////////////////////// + + ///////////////// GLOBAL STRUCTURE TYPES ////////////////////////// +diff -urNad rott-1.0+dfsg~/rt_door.c rott-1.0+dfsg/rt_door.c +--- rott-1.0+dfsg~/rt_door.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_door.c 2008-01-10 09:17:01.000000000 +0100 +@@ -1369,8 +1369,8 @@ + if ((lock>0) && (lock<5)) + lastdoorobj->sidepic = W_GetNumForName("lock1")+lock-1; + +- PreCacheLump(lastdoorobj->sidepic,PU_CACHEWALLS); +- PreCacheLump(lastdoorobj->alttexture,PU_CACHEWALLS); ++ PreCacheLump(lastdoorobj->sidepic,PU_CACHEWALLS,cache_pic_t); ++ PreCacheLump(lastdoorobj->alttexture,PU_CACHEWALLS,cache_pic_t); + + if (lastdoorobj->vertical==true) + { +@@ -1395,8 +1395,9 @@ + lastdoorobj->flags|=DF_MULTI; + } + +- for (i=0;i<9;i++) +- PreCacheLump(lastdoorobj->texture+i,PU_CACHEWALLS); ++ PreCacheLump(lastdoorobj->texture,PU_CACHEWALLS,cache_pic_t); ++ for (i=1;i<9;i++) // only first texture is pic_t! ++ PreCacheLump(lastdoorobj->texture+i,PU_CACHEWALLS,cache_patch_t); + doornum++; + lastdoorobj++; + if (doornum==MAXDOORS) +@@ -2580,20 +2581,20 @@ + + for (i=1;ibottomtexture+i,PU_CACHEWALLS); ++ PreCacheLump(lastmaskobj->bottomtexture+i,PU_CACHEWALLS,cache_transpatch_t); + } + SD_PreCacheSound(SD_GLASSBREAKSND); + } + if (sidepic==true) + { +- PreCacheLump(lastmaskobj->sidepic,PU_CACHEWALLS); ++ PreCacheLump(lastmaskobj->sidepic,PU_CACHEWALLS,cache_pic_t); + } + if (lastmaskobj->bottomtexture>=0) +- PreCacheLump(lastmaskobj->bottomtexture,PU_CACHEWALLS); ++ PreCacheLump(lastmaskobj->bottomtexture,PU_CACHEWALLS,cache_transpatch_t); + if (lastmaskobj->toptexture>=0) +- PreCacheLump(lastmaskobj->toptexture,PU_CACHEWALLS); ++ PreCacheLump(lastmaskobj->toptexture,PU_CACHEWALLS,cache_patch_t); + if (lastmaskobj->midtexture>=0) +- PreCacheLump(lastmaskobj->midtexture,PU_CACHEWALLS); ++ PreCacheLump(lastmaskobj->midtexture,PU_CACHEWALLS,cache_patch_t); + maskednum++; + lastmaskobj++; + if (maskednum==MAXMASKED) +@@ -3347,7 +3348,7 @@ + + lastpwallobj->texture = texture; + if (!texture&0x1000) +- PreCacheLump(texture,PU_CACHEWALLS); ++ PreCacheLump(texture,PU_CACHEWALLS,cache_pic_t); + lastpwallobj->areanumber = GetAreaNumber(tilex,tiley,lastpwallobj->dir); + + MAPSPOT (tilex, tiley, 0)=(word)(lastpwallobj->areanumber+AREATILE); +@@ -4200,13 +4201,19 @@ + + for (i=0;iflags); + memcpy(&flags,bufptr,size); + bufptr+=size; +- if (flags!=mw->flags) ++ if ((flags&0x00FF)!=(mw->flags&0x00FF)) // only check the 8 LSBs. + UpdateMaskedWall(i); + if (mw->flags&MW_SWITCHON) + mw->toptexture--; +diff -urNad rott-1.0+dfsg~/rt_game.c rott-1.0+dfsg/rt_game.c +--- rott-1.0+dfsg~/rt_game.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_game.c 2008-01-10 09:17:01.000000000 +0100 +@@ -4974,6 +4974,9 @@ + DoLoadGameAction (); + SetupGameLevel(); + ++ // This prevents a nasty glitch when loading some saved games ++ PreCacheGroup(W_GetNumForName("BULLETHO"),W_GetNumForName("ALTBHO"),cache_transpatch_t); ++ + // Door Tag + + size=4; +diff -urNad rott-1.0+dfsg~/rt_main.c rott-1.0+dfsg/rt_main.c +--- rott-1.0+dfsg~/rt_main.c 2008-01-10 09:17:00.000000000 +0100 ++++ rott-1.0+dfsg/rt_main.c 2008-01-10 09:17:01.000000000 +0100 +@@ -1000,8 +1000,9 @@ + I_Delay(30); + SD_Play (SD_ACTORSQUISHSND); + tempbuf=bufferofs; +- bufferofs=displayofs; ++ bufferofs=page1start; // fixed, was displayofs + DrawNormalSprite(320-94,200-41,W_GetNumForName("rsac")); ++ VW_UpdateScreen(); // fixed, was missing + bufferofs=tempbuf; + I_Delay(30); + +@@ -1307,9 +1308,10 @@ + MenuFadeIn(); + + WaitKeyUp(); ++ IN_ClearKeysDown(); // Fixed by Lex! + LastScan = 0; + while (!LastScan) +- ; ++ IN_UpdateKeyboard(); // Fixed by Lex! + LastScan=0; + } + #endif +diff -urNad rott-1.0+dfsg~/rt_scale.c rott-1.0+dfsg/rt_scale.c +--- rott-1.0+dfsg~/rt_scale.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_scale.c 2008-01-10 09:17:01.000000000 +0100 +@@ -1030,7 +1030,7 @@ + shadingtable=colormap+(1<<12); + centeryclipped=y; + xcent=x; +- shape=W_CacheLumpNum(shapenum,PU_CACHE, Cvt_transpatch_t, 1); ++ shape=W_CacheLumpNum(shapenum,PU_CACHE, Cvt_patch_t, 1); // was transpatch, fixed + p=(patch_t *)shape; + tp=(transpatch_t *)shape; + +diff -urNad rott-1.0+dfsg~/rt_sound.c rott-1.0+dfsg/rt_sound.c +--- rott-1.0+dfsg~/rt_sound.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_sound.c 2008-01-10 09:17:01.000000000 +0100 +@@ -127,7 +127,7 @@ + if (sounds[sndnum].count>0) + return; + else +- W_CacheLumpNum(SoundNumber(sndnum),PU_CACHE, CvtFixme, 1); ++ W_CacheLumpNum(SoundNumber(sndnum),PU_CACHE, CvtNull, 1); + } + + #if 0 +@@ -862,7 +862,7 @@ + if ( SD_SoundOkay ( num ) == false ) + return; + +- PreCacheLump(SoundNumber(num),PU_CACHESOUNDS+sounds[num].priority); ++ PreCacheLump(SoundNumber(num),PU_CACHESOUNDS+sounds[num].priority,cache_other); + } + + //*************************************************************************** +@@ -1171,8 +1171,8 @@ + + lump = W_GetNumForName(rottsongs[num].lumpname); + size = W_LumpLength(lump); +- +- currentsong=W_CacheLumpNum(lump,PU_STATIC, CvtFixme, 1); ++ ++ currentsong=W_CacheLumpNum(lump,PU_STATIC, CvtNull, 1); + + #ifdef PLATFORM_DOS + if (rottsongs[num].loopflag == loop_yes) +@@ -1203,7 +1203,7 @@ + MUSIC_StopSong (); + if (currentsong) + { +- W_CacheLumpName(rottsongs[lastsongnumber].lumpname,PU_CACHE, CvtFixme, 1); ++ W_CacheLumpName(rottsongs[lastsongnumber].lumpname,PU_CACHE, CvtNull, 1); + currentsong=0; + } + } +diff -urNad rott-1.0+dfsg~/rt_stat.c rott-1.0+dfsg/rt_stat.c +--- rott-1.0+dfsg~/rt_stat.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_stat.c 2008-01-10 09:17:01.000000000 +0100 +@@ -627,12 +627,12 @@ + + if (DoPanicMapping()==true) + { +- PreCacheLump(aw->basetexture,PU_CACHEWALLS); ++ PreCacheLump(aw->basetexture,PU_CACHEWALLS,cache_pic_t); + } + else + { + for (i=aw->basetexture;ibasetexture+animwallsinfo[which].numanims;i++) +- PreCacheLump(i,PU_CACHEWALLS); ++ PreCacheLump(i,PU_CACHEWALLS,cache_pic_t); + } + } + +@@ -846,29 +846,33 @@ + int z,start,stop; + int female=0,black=0; + +- PreCacheLump(temp->shapenum+shapestart,PU_CACHESPRITES); ++ if (temp->itemnumber != stat_bullethole && ++ ((temp->itemnumber < stat_touch1) || (temp->itemnumber > stat_touch4))) ++ PreCacheLump(temp->shapenum+shapestart,PU_CACHESPRITES,cache_patch_t); ++ else ++ PreCacheLump(temp->shapenum+shapestart,PU_CACHESPRITES,cache_transpatch_t); + for (z=0;znumanims;z++) +- PreCacheLump(temp->shapenum+shapestart+z,PU_CACHESPRITES); ++ PreCacheLump(temp->shapenum+shapestart+z,PU_CACHESPRITES,cache_patch_t); + + if (temp->flags & FL_ROTATING) + { + for (z=1;z<8;z++) +- PreCacheLump(temp->shapenum+shapestart+z,PU_CACHESPRITES); ++ PreCacheLump(temp->shapenum+shapestart+z,PU_CACHESPRITES,cache_patch_t); + } + + if (temp->flags & FL_WOODEN) + { + start = W_GetNumForName("WFRAG1"); + stop = W_GetNumForName("WFRAG14"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + } + + if (temp->flags & FL_METALLIC) + { +- PreCacheLump(W_GetNumForName("MSHARDS"),PU_CACHESPRITES); ++ PreCacheLump(W_GetNumForName("MSHARDS"),PU_CACHESPRITES,cache_patch_t); + start = W_GetNumForName("ROBODIE1"); + stop = W_GetNumForName("ROBODEAD"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + } + + female = ((locplayerstate->player == 1) || (locplayerstate->player == 3)); +@@ -890,7 +894,7 @@ + stop = W_GetNumForName("MPIST13"); + } + +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + + switch (temp->itemnumber) + { +@@ -899,18 +903,18 @@ + case stat_pedsilverkey: + case stat_pedironkey: + case stat_pedcrystalkey: +- PreCacheLump(W_GetNumForName("PEDESTA"),PU_CACHESPRITES); ++ PreCacheLump(W_GetNumForName("PEDESTA"),PU_CACHESPRITES,cache_patch_t); + break; + + case stat_bat: + start = W_GetNumForName("EXBAT1"); + stop = W_GetNumForName("EXBAT7"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_knifestatue: + start = W_GetNumForName("KNIFE1"); + stop = W_GetNumForName("KNIFE10"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_twopistol: + if (female) +@@ -928,64 +932,66 @@ + start = W_GetNumForName("RMPIST1"); + stop = W_GetNumForName("LMPIST3"); + } +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_mp40: + start = W_GetNumForName("MP401"); + stop = W_GetNumForName("MP403"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_bazooka: + start = W_GetNumForName("BAZOOKA1"); + stop = W_GetNumForName("BAZOOKA4"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_firebomb: + start = W_GetNumForName("FBOMB1"); + stop = W_GetNumForName("FBOMB4"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_heatseeker: + start = W_GetNumForName("HSEEK1"); + stop = W_GetNumForName("HSEEK4"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_drunkmissile: + start = W_GetNumForName("DRUNK1"); + stop = W_GetNumForName("DRUNK4"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_firewall: + start = W_GetNumForName("FIREW1"); + stop = W_GetNumForName("FIREW3"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_splitmissile: + start = W_GetNumForName("SPLIT1"); + stop = W_GetNumForName("SPLIT4"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_kes: + start = W_GetNumForName("KES1"); + stop = W_GetNumForName("KES6"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + case stat_godmode: + start = W_GetNumForName("GODHAND1"); + stop = W_GetNumForName("GODHAND8"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + + PreCacheGroup(W_GetNumForName("VAPO1"), +- W_GetNumForName("LITSOUL")); ++ W_GetNumForName("LITSOUL"), ++ cache_patch_t); + + PreCacheGroup(W_GetNumForName("GODFIRE1"), +- W_GetNumForName("GODFIRE4")); ++ W_GetNumForName("GODFIRE4"), ++ cache_patch_t); + + break; + case stat_dogmode: + start = W_GetNumForName("DOGNOSE1"); + stop = W_GetNumForName("DOGPAW4"); +- PreCacheGroup(start,stop); ++ PreCacheGroup(start,stop,cache_patch_t); + break; + + default: +diff -urNad rott-1.0+dfsg~/rt_ted.c rott-1.0+dfsg/rt_ted.c +--- rott-1.0+dfsg~/rt_ted.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.c 2008-01-10 09:17:01.000000000 +0100 +@@ -258,7 +258,7 @@ + = + ====================== + */ +-void PreCacheLump( int lump, int level ) ++void PreCacheLump( int lump, int level, int type ) // added type + { + int i; + +@@ -275,7 +275,8 @@ + if (cachelist[i].lump==lump) + return; + cachelist[cacheindex].lump=lump; +- cachelist[cacheindex++].cachelevel=level; ++ cachelist[cacheindex].cachelevel=level; ++ cachelist[cacheindex++].type=type; + if (cacheindex==MAXPRECACHE) + Error("MaxPreCache reached\n"); + } +@@ -290,7 +291,7 @@ + = + ====================== + */ +-void PreCacheGroup( int start, int end ) ++void PreCacheGroup( int start, int end, int type ) // added type + { + int i; + int j; +@@ -319,7 +320,8 @@ + if (found==0) + { + cachelist[cacheindex].lump=j; +- cachelist[cacheindex++].cachelevel=PU_CACHEACTORS; ++ cachelist[cacheindex].cachelevel=PU_CACHEACTORS; ++ cachelist[cacheindex++].type=type; + + if (cacheindex==MAXPRECACHE) + Error("MaxPreCache reached\n"); +@@ -349,7 +351,7 @@ + {pstate = &PLAYERSTATE[i]; + start=W_GetNumForName("CASSHO11")+(pstate->player*REMOTEOFFSET); + end =W_GetNumForName("CASWDEAD")+(pstate->player*REMOTEOFFSET); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + } + } + } +@@ -465,10 +467,10 @@ + + start=W_GetNumForName("OBBOLO1"); + end =W_GetNumForName("OBBOLO4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + start=W_GetNumForName("NET1"); + end =W_GetNumForName("NET4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + start = SD_OVERP1SEESND; + end = SD_OVERPDIESND; +@@ -543,7 +545,7 @@ + + start=W_GetNumForName("TEGREN1"); + end =W_GetNumForName("TGRENF6"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + start=W_GetNumForName("TRISHOO1"); + end =W_GetNumForName("TRIWDEAD"); + //end =W_GetNumForName("TRIUSE28"); +@@ -569,7 +571,7 @@ + + start = W_GetNumForName("MONFIRE1"); + end = W_GetNumForName("MONFIRE4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + + if (IS_ALTERNATE_ACTOR(new)) +@@ -619,7 +621,7 @@ + + start=W_GetNumForName("MINE1"); + end =W_GetNumForName("MINE4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + start=W_GetNumForName("HSIT1"); + end =W_GetNumForName("HDOPE8"); + break; +@@ -632,7 +634,7 @@ + + start=W_GetNumForName("LIGNING1"); + end =W_GetNumForName("FSPARK4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + start=W_GetNumForName("TOMS1"); + end =W_GetNumForName("TOHRH8"); + break; +@@ -667,7 +669,7 @@ + + start=W_GetNumForName("GUNEMP1"); + end =W_GetNumForName("GUNEMPF8"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + start=W_GetNumForName("GRISE11"); + end =W_GetNumForName("GDEAD2"); + break; +@@ -675,7 +677,7 @@ + case wallopobj: + start=W_GetNumForName("BSTAR1"); + end =W_GetNumForName("BSTAR4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + start=W_GetNumForName("BCRAFT1"); + end =W_GetNumForName("BCRAFT16"); + break; +@@ -824,7 +826,7 @@ + break; + } + if ((start>=0) && (end>=0)) +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + } + + +@@ -862,7 +864,7 @@ + // cache in bullet hole graphics + start=W_GetNumForName("BULLETHO"); + end=W_GetNumForName("ALTBHO"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_transpatch_t); + + + // cache in explosions +@@ -871,24 +873,24 @@ + { + start=W_GetNumForName("EXPLOS1"); + end =W_GetNumForName("EXPLOS20"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + } + else + { + start=W_GetNumForName("EXPLOS1"); + end =W_GetNumForName("GREXP25"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + } + + // cache in misc player sprites + start=W_GetNumForName("BLOODS1"); + end =W_GetNumForName("PLATFRM5"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + // cache in missile smoke + start=W_GetNumForName("MISSMO11"); + end =W_GetNumForName("MISSMO14"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + #if (DEVELOPMENT == 1) + // cache in all weapon sounds +@@ -898,26 +900,28 @@ + #if (SHAREWARE == 0) + start=W_GetNumForName("KNIFE1"); + end =W_GetNumForName("DOGPAW4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + // cache in kinetic sphere + start=W_GetNumForName("KSPHERE1"); + end =W_GetNumForName("KSPHERE4"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + #else + start=W_GetNumForName("MPIST11"); + end =W_GetNumForName("GODHAND8"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + #endif + + + // cache in god mode stuff + + PreCacheGroup(W_GetNumForName("VAPO1"), +- W_GetNumForName("LITSOUL")); ++ W_GetNumForName("LITSOUL"), ++ cache_patch_t); + + PreCacheGroup(W_GetNumForName("GODFIRE1"), +- W_GetNumForName("GODFIRE4")); ++ W_GetNumForName("GODFIRE4"), ++ cache_patch_t); + + + #endif +@@ -926,17 +930,17 @@ + // cache in rubble + start=W_GetNumForName("RUBBLE1"); + end =W_GetNumForName("RUBBLE10"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + // cache in guts + start=W_GetNumForName("GUTS1"); + end =W_GetNumForName("GUTS12"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + // cache in player missile + start=W_GetNumForName("BJMISS1"); + end =W_GetNumForName("BJMISS16"); +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + + if (gamestate.violence >= vl_high) + { // cache in all gibs +@@ -950,7 +954,7 @@ + start = W_GetNumForName("PART1"); + end = W_GetNumForName("GEYE3"); + } +- PreCacheGroup(start,end); ++ PreCacheGroup(start,end,cache_patch_t); + } + } + +@@ -1141,13 +1145,6 @@ + int ticdelay; + unsigned tempbuf; + +-#if defined(PLATFORM_MACOSX) +-#warning "Precaching is disabled. Fix." +-// Precaching confuses the byteswapping code, since we have +-// no simple way of knowing the type of each resource. +- return; +-#endif +- + if (CachingStarted==false) + { + if (loadedgame==false) +@@ -1168,11 +1165,11 @@ + total=0; + + tempbuf=bufferofs; +- bufferofs=displayofs; ++ bufferofs=page1start; // fixed, was displayofs + ticdelay=CACHETICDELAY; + for (i=1;i 75) && (tile <= 79)) + { + lump = tilemap[i][j] = GetLumpForTile(tile); +- PreCacheLump(lump,PU_CACHEWALLS); +- PreCacheLump(elevatorstart+5,PU_CACHEWALLS); +- PreCacheLump(elevatorstart+6,PU_CACHEWALLS); +- PreCacheLump(elevatorstart+7,PU_CACHEWALLS); ++ PreCacheLump(lump,PU_CACHEWALLS,cache_pic_t); ++ PreCacheLump(elevatorstart+5,PU_CACHEWALLS,cache_pic_t); ++ PreCacheLump(elevatorstart+6,PU_CACHEWALLS,cache_pic_t); ++ PreCacheLump(elevatorstart+7,PU_CACHEWALLS,cache_pic_t); + tilemap[i][j]|=0x2000; + if (MAPSPOT(i,j,2)==0) + MAPSPOT(i,j,2)=21; +@@ -6564,7 +6563,8 @@ + + + PreCacheGroup(W_GetNumForName("EXBAT1"), +- W_GetNumForName("EXBAT7")); ++ W_GetNumForName("EXBAT7"), ++ cache_patch_t); + + + +@@ -6574,9 +6574,11 @@ + break; + case 47: + PreCacheGroup(W_GetNumForName("KNIFE1"), +- W_GetNumForName("KNIFE10")); ++ W_GetNumForName("KNIFE10"), ++ cache_patch_t); + PreCacheGroup(W_GetNumForName("ESTATUE1"), +- W_GetNumForName("ESTATUE8")); ++ W_GetNumForName("ESTATUE8"), ++ cache_patch_t); + + SpawnStatic(i,j,tile-23,spawnz); + break; +@@ -6586,15 +6588,18 @@ + + if ((locplayerstate->player == 1) || (locplayerstate->player == 3)) + PreCacheGroup(W_GetNumForName("RFPIST1"), +- W_GetNumForName("LFPIST3")); ++ W_GetNumForName("LFPIST3"), ++ cache_patch_t); + + else if (locplayerstate->player == 2) + PreCacheGroup(W_GetNumForName("RBMPIST1"), +- W_GetNumForName("LBMPIST3")); ++ W_GetNumForName("LBMPIST3"), ++ cache_patch_t); + + else + PreCacheGroup(W_GetNumForName("RMPIST1"), +- W_GetNumForName("LMPIST3")); ++ W_GetNumForName("LMPIST3"), ++ cache_patch_t); + + SpawnStatic(i,j,tile-23,spawnz); + +@@ -6603,7 +6608,8 @@ + + SD_PreCacheSound(SD_ATKMP40SND); + PreCacheGroup(W_GetNumForName("MP401"), +- W_GetNumForName("MP403")); ++ W_GetNumForName("MP403"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + break; + +@@ -6612,7 +6618,8 @@ + SD_PreCacheSound(SD_MISSILEFLYSND); + SD_PreCacheSound(SD_BAZOOKAFIRESND); + PreCacheGroup(W_GetNumForName("BAZOOKA1"), +- W_GetNumForName("BAZOOKA4")); ++ W_GetNumForName("BAZOOKA4"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6624,7 +6631,8 @@ + SD_PreCacheSound(SD_MISSILEFLYSND); + SD_PreCacheSound(SD_FIREBOMBFIRESND); + PreCacheGroup(W_GetNumForName("FBOMB1"), +- W_GetNumForName("FBOMB4")); ++ W_GetNumForName("FBOMB4"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6634,7 +6642,8 @@ + SD_PreCacheSound(SD_MISSILEFLYSND); + SD_PreCacheSound(SD_HEATSEEKFIRESND); + PreCacheGroup(W_GetNumForName("HSEEK1"), +- W_GetNumForName("HSEEK4")); ++ W_GetNumForName("HSEEK4"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6644,7 +6653,8 @@ + SD_PreCacheSound(SD_MISSILEFLYSND); + SD_PreCacheSound(SD_DRUNKFIRESND); + PreCacheGroup(W_GetNumForName("DRUNK1"), +- W_GetNumForName("DRUNK4")); ++ W_GetNumForName("DRUNK4"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6655,11 +6665,14 @@ + SD_PreCacheSound(SD_FLAMEWALLFIRESND); + SD_PreCacheSound(SD_FLAMEWALLSND); + PreCacheGroup(W_GetNumForName("FIREW1"), +- W_GetNumForName("FIREW3")); ++ W_GetNumForName("FIREW3"), ++ cache_patch_t); + PreCacheGroup(W_GetNumForName("FWALL1"), +- W_GetNumForName("FWALL15")); ++ W_GetNumForName("FWALL15"), ++ cache_patch_t); + PreCacheGroup(W_GetNumForName("SKEL1"), +- W_GetNumForName("SKEL48")); ++ W_GetNumForName("SKEL48"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6673,7 +6686,8 @@ + SD_PreCacheSound(SD_SPLITFIRESND); + SD_PreCacheSound(SD_SPLITSND); + PreCacheGroup(W_GetNumForName("SPLIT1"), +- W_GetNumForName("SPLIT4")); ++ W_GetNumForName("SPLIT4"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6691,9 +6705,11 @@ + SD_PreCacheSound(SD_GRAVBUILDSND); + + PreCacheGroup(W_GetNumForName("KES1"), +- W_GetNumForName("KES6")); ++ W_GetNumForName("KES6"), ++ cache_patch_t); + PreCacheGroup(W_GetNumForName("KSPHERE1"), +- W_GetNumForName("KSPHERE4")); ++ W_GetNumForName("KSPHERE4"), ++ cache_patch_t); + SpawnStatic(i,j,tile-23,spawnz); + if (loadedgame == false) + gamestate.missiletotal ++; +@@ -6793,13 +6809,16 @@ + + + PreCacheGroup(W_GetNumForName("GODHAND1"), +- W_GetNumForName("GODHAND8")); ++ W_GetNumForName("GODHAND8"), ++ cache_patch_t); + + PreCacheGroup(W_GetNumForName("VAPO1"), +- W_GetNumForName("LITSOUL")); ++ W_GetNumForName("LITSOUL"), ++ cache_patch_t); + + PreCacheGroup(W_GetNumForName("GODFIRE1"), +- W_GetNumForName("GODFIRE4")); ++ W_GetNumForName("GODFIRE4"), ++ cache_patch_t); + + SpawnStatic(i,j,stat_godmode,spawnz); + if (loadedgame == false) +@@ -6821,7 +6840,8 @@ + + + PreCacheGroup(W_GetNumForName("DOGNOSE1"), +- W_GetNumForName("DOGPAW4")); ++ W_GetNumForName("DOGPAW4"), ++ cache_patch_t); + SpawnStatic(i,j,stat_dogmode,spawnz); + if (loadedgame == false) + gamestate.supertotal ++; +diff -urNad rott-1.0+dfsg~/rt_ted.h rott-1.0+dfsg/rt_ted.h +--- rott-1.0+dfsg~/rt_ted.h 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.h 2008-01-10 09:17:01.000000000 +0100 +@@ -138,12 +138,12 @@ + extern char LevelName[80]; + extern boolean ISRTL; + +-void PreCacheGroup(int,int); ++void PreCacheGroup(int,int,int); // added type + void AssignTeams(void); + void LoadTedMap( const char *extension, int mapnum ); + void SetupGameLevel(void); + void ScanInfoPlane(void); +-void PreCacheLump( int lump, int level ); ++void PreCacheLump( int lump, int level, int type ); // added type + void SetupGameLevelAgain (void); + void ScanInfoPlaneAgain (void); + void PreCacheActor( int actor, int which ); +diff -urNad rott-1.0+dfsg~/rt_view.c rott-1.0+dfsg/rt_view.c +--- rott-1.0+dfsg~/rt_view.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_view.c 2008-01-10 09:17:01.000000000 +0100 +@@ -238,7 +238,7 @@ + + //Hey, isn't this stuff already loaded in? + //Why don't we make this a lump? +- table=W_CacheLumpName("tables",PU_STATIC, CvtFixme, 1); ++ table=W_CacheLumpName("tables",PU_STATIC, CvtNull, 1); + ptr=table; + + // +@@ -261,7 +261,7 @@ + pixelangle[centerx+i] =(short) -intang; + frac+=(length*65536/centerx); + } +- table=W_CacheLumpName("tables",PU_CACHE, CvtFixme, 1); ++ table=W_CacheLumpName("tables",PU_CACHE, CvtNull, 1); + SafeFree(pangle); + } + --- rott-1.0+dfsg.orig/debian/patches/11-new-fix32.dpatch +++ rott-1.0+dfsg/debian/patches/11-new-fix32.dpatch @@ -0,0 +1,1142 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 11-new-fix32.dpatch by Michael Karcher +## +## +## DP: Fixes assumptions about sizes of integral types. Important for +## DP: 64 bit architectures + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/_rt_ted.h rott-1.0+dfsg/_rt_ted.h +--- rott-1.0+dfsg~/_rt_ted.h 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/_rt_ted.h 2008-01-10 09:17:43.000000000 +0100 +@@ -43,18 +43,18 @@ + + typedef struct + { +- short RLEWtag; +- long headeroffsets[100]; +- byte tileinfo[1]; ++ int16_t RLEWtag; ++ int32_t headeroffsets[100]; ++ byte tileinfo[1]; + } mapfiletype; + + + typedef struct + { +- long planestart[3]; +- word planelength[3]; +- word width,height; +- char name[16]; ++ int32_t planestart[3]; ++ word planelength[3]; ++ word width,height; ++ char name[16]; + } maptype; + + #define ActorIsPushWall(xx,yy) ((actorat[xx][yy])&&(((objtype *)actorat[xx][yy])->which==PWALL) ) +diff -urNad rott-1.0+dfsg~/_w_wad.h rott-1.0+dfsg/_w_wad.h +--- rott-1.0+dfsg~/_w_wad.h 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/_w_wad.h 2008-01-10 09:17:43.000000000 +0100 +@@ -61,15 +61,15 @@ + typedef struct + { + char identification[4]; // should be IWAD +- int numlumps; +- int infotableofs; ++ int32_t numlumps; ++ int32_t infotableofs; + } wadinfo_t; + + + typedef struct + { +- int filepos; +- int size; ++ int32_t filepos; ++ int32_t size; + char name[8]; + } filelump_t; + +diff -urNad rott-1.0+dfsg~/fli_type.h rott-1.0+dfsg/fli_type.h +--- rott-1.0+dfsg~/fli_type.h 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/fli_type.h 2008-01-10 09:17:43.000000000 +0100 +@@ -28,12 +28,14 @@ + #ifndef TYPES_H /* Prevent file from being included twice. */ + #define TYPES_H + +-typedef signed char Char; /* Signed 8 bits. */ +-typedef unsigned char Uchar; /* Unsigned 8 bits. */ +-typedef short Short; /* Signed 16 bits please. */ +-typedef unsigned short Ushort; /* Unsigned 16 bits please. */ +-typedef long Long; /* Signed 32 bits. */ +-typedef unsigned long Ulong; /* Unsigned 32 bits. */ ++#include ++ ++typedef int8_t Char; /* Signed 8 bits. */ ++typedef uint8_t Uchar; /* Unsigned 8 bits. */ ++typedef int16_t Short; /* Signed 16 bits please. */ ++typedef uint16_t Ushort; /* Unsigned 16 bits please. */ ++typedef int32_t Long; /* Signed 32 bits. */ ++typedef uint32_t Ulong; /* Unsigned 32 bits. */ + + typedef int Boolean; /* TRUE or FALSE value. */ + typedef int ErrCode; /* ErrXXX or Success. */ +diff -urNad rott-1.0+dfsg~/lumpy.h rott-1.0+dfsg/lumpy.h +--- rott-1.0+dfsg~/lumpy.h 2008-01-09 13:52:30.000000000 +0100 ++++ rott-1.0+dfsg/lumpy.h 2008-01-10 09:17:43.000000000 +0100 +@@ -37,104 +37,104 @@ + + typedef struct + { +- short width,height; +- short orgx,orgy; ++ int16_t width,height; ++ int16_t orgx,orgy; + byte data; + } lpic_t; + + #define CONVERT_ENDIAN_lpic_t(lp) \ + { \ +- SwapIntelShort(&lp->width); \ +- SwapIntelShort(&lp->height); \ +- SwapIntelShort(&lp->orgx); \ +- SwapIntelShort(&lp->orgy); \ ++ SwapIntel16(&lp->width); \ ++ SwapIntel16(&lp->height); \ ++ SwapIntel16(&lp->orgx); \ ++ SwapIntel16(&lp->orgy); \ + } + + typedef struct + { + short height; + char width[256]; +- short charofs[256]; ++ int16_t charofs[256]; + byte data; // as much as required + } font_t; + + #define CONVERT_ENDIAN_font_t(fp) \ + { \ + int i; \ +- SwapIntelShort(&fp->height); \ ++ SwapIntel16(&fp->height); \ + for (i = 0; i < 256; i++) { \ +- SwapIntelShort(&fp->charofs[i]); \ ++ SwapIntel16(&fp->charofs[i]); \ + } \ + } + + typedef struct + { +- short width; +- short height; ++ int16_t width; ++ int16_t height; + byte palette[768]; + byte data; + } lbm_t; + + #define CONVERT_ENDIAN_lbm_t(lp) \ + { \ +- SwapIntelShort(&lp->width); \ +- SwapIntelShort(&lp->height); \ ++ SwapIntel16(&lp->width); \ ++ SwapIntel16(&lp->height); \ + } + + typedef struct + { +- short origsize; // the orig size of "grabbed" gfx +- short width; // bounding box size +- short height; +- short leftoffset; // pixels to the left of origin +- short topoffset; // pixels above the origin ++ int16_t origsize; // the orig size of "grabbed" gfx ++ int16_t width; // bounding box size ++ int16_t height; ++ int16_t leftoffset; // pixels to the left of origin ++ int16_t topoffset; // pixels above the origin + unsigned short collumnofs[320]; // only [width] used, the [0] is &collumnofs[width] + } patch_t; + + #define CONVERT_ENDIAN_patch_t(pp) \ + { \ + int i; \ +- SwapIntelShort(&pp->origsize); \ +- SwapIntelShort(&pp->width); \ +- SwapIntelShort(&pp->height); \ +- SwapIntelShort(&pp->leftoffset); \ +- SwapIntelShort(&pp->topoffset); \ ++ SwapIntel16(&pp->origsize); \ ++ SwapIntel16(&pp->width); \ ++ SwapIntel16(&pp->height); \ ++ SwapIntel16(&pp->leftoffset); \ ++ SwapIntel16(&pp->topoffset); \ + for (i = 0; i < pp->width; i++) { \ +- SwapIntelShort((short*)&pp->collumnofs[i]); \ ++ SwapIntel16((short*)&pp->collumnofs[i]); \ + } \ + } + + typedef struct + { +- short origsize; // the orig size of "grabbed" gfx +- short width; // bounding box size +- short height; +- short leftoffset; // pixels to the left of origin +- short topoffset; // pixels above the origin +- short translevel; +- short collumnofs[320]; // only [width] used, the [0] is &collumnofs[width] ++ int16_t origsize; // the orig size of "grabbed" gfx ++ int16_t width; // bounding box size ++ int16_t height; ++ int16_t leftoffset; // pixels to the left of origin ++ int16_t topoffset; // pixels above the origin ++ int16_t translevel; ++ int16_t collumnofs[320]; // only [width] used, the [0] is &collumnofs[width] + } transpatch_t; + + #define CONVERT_ENDIAN_transpatch_t(pp) \ + { \ + int i; \ +- SwapIntelShort(&pp->origsize); \ +- SwapIntelShort(&pp->width); \ +- SwapIntelShort(&pp->height); \ +- SwapIntelShort(&pp->leftoffset); \ +- SwapIntelShort(&pp->topoffset); \ +- SwapIntelShort(&pp->translevel); \ ++ SwapIntel16(&pp->origsize); \ ++ SwapIntel16(&pp->width); \ ++ SwapIntel16(&pp->height); \ ++ SwapIntel16(&pp->leftoffset); \ ++ SwapIntel16(&pp->topoffset); \ ++ SwapIntel16(&pp->translevel); \ + for (i = 0; i < pp->width; i++) { \ +- SwapIntelShort((short*)&pp->collumnofs[i]); \ ++ SwapIntel16((short*)&pp->collumnofs[i]); \ + } \ + } + + typedef struct + { + byte color; +- short height; ++ int16_t height; + char width[256]; +- short charofs[256]; ++ int16_t charofs[256]; + byte pal[0x300]; + byte data; // as much as required + } cfont_t; +@@ -142,9 +142,9 @@ + #define CONVERT_ENDIAN_cfont_t(pp) \ + { \ + int i; \ +- SwapIntelShort(&pp->height); \ ++ SwapIntel16(&pp->height); \ + for (i = 0; i < 256; i++) { \ +- SwapIntelShort(&pp->charofs[i]); \ ++ SwapIntel16(&pp->charofs[i]); \ + } \ + } + +diff -urNad rott-1.0+dfsg~/rt_actor.c rott-1.0+dfsg/rt_actor.c +--- rott-1.0+dfsg~/rt_actor.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_actor.c 2008-01-10 09:17:43.000000000 +0100 +@@ -19,6 +19,7 @@ + */ + + ++#include + #include + #include + #include "rt_def.h" +@@ -1001,7 +1002,7 @@ + + for(i=0;ithink); ++ tfunct = (uintptr_t)(statetable[i]->think); + if (tfunct < MINFUNCTION) + MINFUNCTION = tfunct; + +@@ -1023,8 +1024,8 @@ + { + unsigned tstate,tfunct; + +- tstate = (unsigned)(ob->state); +- tfunct = (unsigned)(ob->state->think); ++ tstate = (uintptr_t)(ob->state); ++ tfunct = (uintptr_t)(ob->state->think); + + if ((tfunct < MINFUNCTION) || (tfunct > MAXFUNCTION) || + (tstate < MINSTATE) || (tstate > MAXSTATE)) +@@ -10059,7 +10060,7 @@ + if (ob->hitpoints <= 0) + {objtype*column = (objtype*)(ob->whatever); + +- EnableObject((int)column); ++ EnableObject((intptr_t)column); + ob->whatever = NULL; + + KillActor(ob); +@@ -10424,7 +10425,7 @@ + { + objtype*column = (objtype*)(ob->whatever); + +- EnableObject((int)column); ++ EnableObject((intptr_t)column); + ob->whatever = NULL; + + KillActor(ob); +@@ -10654,7 +10655,7 @@ + {touchplatetype *tplate; + + for(tplate=touchplate[tempstat->linked_to];tplate;tplate = tplate->nextaction) +- if (tplate->whichobj == (int)(tempstat)) ++ if (tplate->whichobj == (intptr_t)(tempstat)) + RemoveTouchplateAction(tplate,tempstat->linked_to); + } + +@@ -10870,7 +10871,7 @@ + (tempstat->itemnumber == stat_tntcrate) + ) + { +- tempstat->linked_to = (int)(LASTSTAT); ++ tempstat->linked_to = (intptr_t)(LASTSTAT); + tempstat->flags |= FL_RESPAWN; + } + +@@ -10891,7 +10892,7 @@ + + + +-void EnableObject(int object) ++void EnableObject(intptr_t object) + { + objtype* ob; + int i,gasicon; +@@ -10942,7 +10943,7 @@ + } + } + +-void DisableObject(int object) ++void DisableObject(intptr_t object) + {objtype*ob; + + ob = (objtype*)object; +diff -urNad rott-1.0+dfsg~/rt_actor.h rott-1.0+dfsg/rt_actor.h +--- rott-1.0+dfsg~/rt_actor.h 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_actor.h 2008-01-10 09:17:43.000000000 +0100 +@@ -357,8 +357,8 @@ + void A_Drain(objtype*ob); + void T_Explosion(objtype*ob); + void T_MoveColumn(objtype*); +-void EnableObject(int object); +-void DisableObject(int); ++void EnableObject(intptr_t object); ++void DisableObject(intptr_t object); + + void T_Collide(objtype*); + void Collision(objtype*ob,objtype *attacker,int hitmomentumx,int hitmomentumy); +diff -urNad rott-1.0+dfsg~/rt_def.h rott-1.0+dfsg/rt_def.h +--- rott-1.0+dfsg~/rt_def.h 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_def.h 2008-01-10 09:17:43.000000000 +0100 +@@ -22,6 +22,7 @@ + + + // RT_DEF.H Zee big one ++#include + #include + #include + #include +@@ -301,9 +302,9 @@ + + + typedef unsigned char byte; +-typedef unsigned short int word; +-typedef unsigned long longword; +-typedef long fixed; ++typedef uint16_t word; ++typedef uint32_t longword; ++typedef int32_t fixed; + + + ////////////////////////////////////////////////////////////////////////// +diff -urNad rott-1.0+dfsg~/rt_door.c rott-1.0+dfsg/rt_door.c +--- rott-1.0+dfsg~/rt_door.c 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_door.c 2008-01-10 09:17:43.000000000 +0100 +@@ -94,7 +94,7 @@ + + // Local Variables + +-static void (*touchactions[NUMTOUCHPLATEACTIONS])(int) = ++static void (*touchactions[NUMTOUCHPLATEACTIONS])(intptr_t) = + {ActivatePushWall, + ActivateMoveWall, + LinkedOpenDoor, +@@ -315,7 +315,7 @@ + } + + +-int GetIndexForAction(void (*action)(int)) ++int GetIndexForAction(void (*action)(intptr_t)) + {int i; + + for(i=0;icomplete = dummy.complete; + + if (dummy.whichobj & FL_TACT) +- temp->whichobj = (int)(objlist[dummy.whichobj & ~FL_TACT]); ++ temp->whichobj = (intptr_t)(objlist[dummy.whichobj & ~FL_TACT]); + + else if (dummy.whichobj & FL_TSTAT) +- temp->whichobj = (int)(GetStatForIndex(dummy.whichobj & ~FL_TSTAT)); ++ temp->whichobj = (intptr_t)(GetStatForIndex(dummy.whichobj & ~FL_TSTAT)); + else + temp->whichobj = dummy.whichobj; + if (dummy.actionindex != -1) +@@ -613,7 +613,7 @@ + + + +-void Link_To_Touchplate(word touchlocx, word touchlocy, void (*maction)(int), void (*swapaction)(int), int wobj, int delaytime) ++void Link_To_Touchplate(word touchlocx, word touchlocy, void (*maction)(intptr_t), void (*swapaction)(intptr_t), intptr_t wobj, int delaytime) + {touchplatetype *temp; + int index; + +@@ -640,7 +640,7 @@ + + + +-void ClockLink (void (*saction)(int), void (*eaction)(int), int wobj,int whichclock) ++void ClockLink (void (*saction)(intptr_t), void (*eaction)(intptr_t), intptr_t wobj,int whichclock) + {touchplatetype*temp; + + +@@ -731,7 +731,7 @@ + touchplatetype *temp; + int i,touchcomplete,j; + int playeron; +- void (*tempact)(int); ++ void (*tempact)(intptr_t); + boolean wallmessage,doormessage,columnmessage; + + for(i=0;i ++ + //*************************************************************************** + // + // RT_DOOR.C - doors +@@ -124,11 +126,11 @@ + } pwallobj_t; + + typedef struct tplate +-{ void (*action)(int); +- void (*swapaction)(int); ++{ void (*action)(intptr_t); ++ void (*swapaction)(intptr_t); + struct tplate * nextaction; + struct tplate * prevaction; +- int whichobj; ++ intptr_t whichobj; + byte tictime; + byte ticcount; + byte triggered; +@@ -213,9 +215,9 @@ + + + int PlatformHeight(int,int); +-void Link_To_Touchplate(word, word, void (*)(int), void (*)(int),int, int); ++void Link_To_Touchplate(word, word, void (*)(intptr_t), void (*)(intptr_t),intptr_t, int); + void TriggerStuff(void); +-void ClockLink(void (*)(int),void(*)(int),int,int); ++void ClockLink(void (*)(intptr_t),void(*)(intptr_t),intptr_t,int); + void RecursiveConnect(int); + void ConnectAreas(void); + void InitAreas(void); +@@ -234,8 +236,8 @@ + void WallPushing (int pwall); + void PushWall (int pwall, int dir); + void OperatePushWall (int pwall, int dir, boolean localplayer ); +-void ActivatePushWall (int pwall); +-void ActivateMoveWall (int pwall); ++void ActivatePushWall (intptr_t pwall); ++void ActivateMoveWall (intptr_t pwall); + int UpdateMaskedWall (int num); + + void FixDoorAreaNumbers ( void ); +@@ -262,8 +264,8 @@ + void LoadElevators(byte * buffer,int size); + + void MakeWideDoorVisible ( int doornum ); +-void LinkedCloseDoor (int door); +-void LinkedOpenDoor (int door); ++void LinkedCloseDoor (intptr_t door); ++void LinkedOpenDoor (intptr_t door); + int IsWall (int tilex, int tiley); + int IsDoor (int tilex, int tiley); + int IsMaskedWall (int tilex, int tiley); +diff -urNad rott-1.0+dfsg~/rt_draw.c rott-1.0+dfsg/rt_draw.c +--- rott-1.0+dfsg~/rt_draw.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_draw.c 2008-01-10 09:17:43.000000000 +0100 +@@ -99,8 +99,8 @@ + // math tables + // + +-short tantable[FINEANGLES]; +-long sintable[FINEANGLES+FINEANGLEQUAD+1], ++int16_t tantable[FINEANGLES]; ++fixed sintable[FINEANGLES+FINEANGLEQUAD+1], + *costable = sintable+(FINEANGLES/4); + + // +@@ -200,7 +200,7 @@ + { + byte * table; + byte * ptr; +- long length; ++ int32_t length; + int i; + + // +@@ -214,60 +214,60 @@ + // get size of first table + // + +- memcpy(&length,ptr,sizeof(int)); +- SwapIntelLong(&length); ++ memcpy(&length,ptr,sizeof(int32_t)); ++ SwapIntel32(&length); + + // + // skip first table + // + +- ptr+=(length+1)*sizeof(int); ++ ptr+=(length+1)*sizeof(int32_t); + + // + // get size of sin/cos table + // + +- memcpy(&length,ptr,sizeof(int)); +- SwapIntelLong(&length); +- ptr+=sizeof(int); ++ memcpy(&length,ptr,sizeof(int32_t)); ++ SwapIntel32(&length); ++ ptr+=sizeof(int32_t); + + // + // get sin/cos table + // +- memcpy(&sintable[0],ptr,length*sizeof(long)); +- SwapIntelLongArray(&sintable[0], length); +- ptr+=(length)*sizeof(int); ++ memcpy(&sintable[0],ptr,length*sizeof(fixed)); ++ SwapIntel32Array(&sintable[0], length); ++ ptr+=(length)*sizeof(fixed); + + // + // get size of tangent table + // + +- memcpy(&length,ptr,sizeof(int)); +- SwapIntelLong(&length); +- ptr+=sizeof(int); ++ memcpy(&length,ptr,sizeof(int32_t)); ++ SwapIntel32(&length); ++ ptr+=sizeof(int32_t); + + // + // get tangent table + // +- memcpy(tantable,ptr,length*sizeof(short)); +- SwapIntelShortArray(tantable, length); +- ptr+=(length)*sizeof(short); ++ memcpy(tantable,ptr,length*sizeof(int16_t)); ++ SwapIntel16Array(tantable, length); ++ ptr+=(length)*sizeof(int16_t); + + // + // get size of gamma table + // + +- memcpy(&length,ptr,sizeof(int)); +- SwapIntelLong(&length); +- ptr+=sizeof(int); ++ memcpy(&length,ptr,sizeof(int32_t)); ++ SwapIntel32(&length); ++ ptr+=sizeof(int32_t); + + // + // get gamma table + // +- memcpy(&gammatable[0],ptr,length*sizeof(byte)); ++ memcpy(&gammatable[0],ptr,length); + table=W_CacheLumpName("tables",PU_CACHE, CvtNull, 1); + +- costable = (fixed *)&(sintable[FINEANGLES/4]); ++ costable = &(sintable[FINEANGLES/4]); + + wstart=W_GetNumForName("WALLSTRT"); + #if (SHAREWARE==0) +diff -urNad rott-1.0+dfsg~/rt_draw.h rott-1.0+dfsg/rt_draw.h +--- rott-1.0+dfsg~/rt_draw.h 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_draw.h 2008-01-10 09:17:43.000000000 +0100 +@@ -58,7 +58,7 @@ + // + // math tables + // +-extern short tantable[FINEANGLES]; ++extern int16_t tantable[FINEANGLES]; + extern fixed sintable[FINEANGLES+FINEANGLEQUAD+1]; + extern fixed *costable; + +diff -urNad rott-1.0+dfsg~/rt_stat.c rott-1.0+dfsg/rt_stat.c +--- rott-1.0+dfsg~/rt_stat.c 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_stat.c 2008-01-10 09:17:43.000000000 +0100 +@@ -397,7 +397,7 @@ + } + + +-void ActivateLight(int light) ++void ActivateLight(intptr_t light) + {statobj_t*tstat; + + tstat = (statobj_t*)light; +@@ -409,7 +409,7 @@ + } + + +-void DeactivateLight(int light) ++void DeactivateLight(intptr_t light) + {statobj_t*tstat; + + tstat = (statobj_t*)light; +diff -urNad rott-1.0+dfsg~/rt_stat.h rott-1.0+dfsg/rt_stat.h +--- rott-1.0+dfsg~/rt_stat.h 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_stat.h 2008-01-10 09:17:43.000000000 +0100 +@@ -25,6 +25,7 @@ + #ifndef _rt_stat_public + #define _rt_stat_public + ++#include + #include "rt_ted.h" + + #define MAXSWITCHES 64 +@@ -151,7 +152,7 @@ + short int whichstat; + short int areanumber; + +- int linked_to; ++ intptr_t linked_to; + struct statstruct *statnext; + struct statstruct *statprev; + struct statstruct *nextactive; +@@ -167,7 +168,7 @@ + int spawnz; + struct respstruct *next; + struct respstruct *prev; +- int linked_to; ++ intptr_t linked_to; + + } respawn_t; + +@@ -205,8 +206,8 @@ + void Set_NewZ_to_MapValue(fixed*,int,const char*,int,int); + void RemoveFromFreeStaticList(statobj_t*); + void CheckCriticalStatics(void); +-void ActivateLight(int); +-void DeactivateLight(int); ++void ActivateLight(intptr_t); ++void DeactivateLight(intptr_t); + void TurnOnLight(int,int); + void TurnOffLight(int,int); + void MakeStatActive(statobj_t*); +diff -urNad rott-1.0+dfsg~/rt_ted.c rott-1.0+dfsg/rt_ted.c +--- rott-1.0+dfsg~/rt_ted.c 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.c 2008-01-10 09:17:43.000000000 +0100 +@@ -1293,7 +1293,7 @@ + // + do + { +- value = IntelShort(*source++); ++ value = Intel16(*source++); + if (value != rlewtag) + // + // uncompressed +@@ -1304,8 +1304,8 @@ + // + // compressed string + // +- count = IntelShort(*source++); +- value = IntelShort(*source++); ++ count = Intel16(*source++); ++ value = Intel16(*source++); + for (i=1;i<=count;i++) + *dest++ = value; + } +@@ -1328,7 +1328,7 @@ + { + int filehandle; + char RTLSignature[ 4 ]; +- unsigned long RTLVersion; ++ uint32_t RTLVersion; + + filehandle = SafeOpenRead( filename ); + +@@ -1347,7 +1347,7 @@ + // Check the version number + // + SafeRead( filehandle, &RTLVersion, sizeof( RTLVersion ) ); +- SwapIntelLong(&RTLVersion); ++ SwapIntel32U(&RTLVersion); + if ( RTLVersion > RTL_VERSION ) + { + Error( +@@ -1394,12 +1394,12 @@ + SEEK_SET ); + SafeRead( filehandle, &RTLMap, sizeof( RTLMap ) ); + +- SwapIntelLong((long *)&RTLMap.used); +- SwapIntelLong((long *)&RTLMap.CRC); +- SwapIntelLong((long *)&RTLMap.RLEWtag); +- SwapIntelLong((long *)&RTLMap.MapSpecials); +- SwapIntelLongArray((long *)&RTLMap.planestart, NUMPLANES); +- SwapIntelLongArray((long *)&RTLMap.planelength, NUMPLANES); ++ SwapIntel32U(&RTLMap.used); ++ SwapIntel32U(&RTLMap.CRC); ++ SwapIntel32U(&RTLMap.RLEWtag); ++ SwapIntel32U(&RTLMap.MapSpecials); ++ SwapIntel32UArray(RTLMap.planestart, NUMPLANES); ++ SwapIntel32UArray(RTLMap.planelength, NUMPLANES); + + if ( !RTLMap.used ) + { +@@ -1731,10 +1731,7 @@ + // fix structure alignment + tinf = ( void * )( ( word * )tinf - 1 ); + +- for( i = 0 ; i < 100 ; i++ ) +- { +- tinf->headeroffsets[ i ] = IntelLong( tinf->headeroffsets[ i ] ); +- } ++ SwapIntel32Array(tinf->headeroffsets,100); + + // + // open the data file +@@ -1759,12 +1756,12 @@ + + for( i = 0 ; i < 3; i++ ) + { +- mapheader.planestart[ i ] = IntelLong( mapheader.planestart[ i ] ); +- mapheader.planelength[ i ] = IntelShort( mapheader.planelength[ i ] ); ++ mapheader.planestart[ i ] = Intel16( mapheader.planestart[ i ] ); ++ mapheader.planelength[ i ] = Intel32U( mapheader.planelength[ i ] ); + } + +- mapheader.width = IntelShort( mapheader.width ); +- mapheader.height = IntelShort( mapheader.height ); ++ mapheader.width = Intel16U( mapheader.width ); ++ mapheader.height = Intel16U( mapheader.height ); + + mapwidth = mapheader.width; + mapheight = mapheader.height; +@@ -3567,7 +3564,7 @@ + + + void LinkActor (objtype *ob,int tilex,int tiley, +- void (*action)(int),void (*swapaction)(int) ++ void (*action)(intptr_t),void (*swapaction)(intptr_t) + ) + { + word touchx,touchy; +@@ -3584,7 +3581,7 @@ + if ((clockx == tilex) && (clocky == tiley)) + { + clocklinked = 1; +- ClockLink(EnableObject,DisableObject,(int)ob,k); ++ ClockLink(EnableObject,DisableObject,(intptr_t)ob,k); + } + } + +@@ -3611,9 +3608,9 @@ + + + if (tswitch && (tswitch->flags & FL_ON)) +- Link_To_Touchplate(touchx,touchy,swapaction,action,(int)ob,0); ++ Link_To_Touchplate(touchx,touchy,swapaction,action,(intptr_t)ob,0); + else +- Link_To_Touchplate(touchx,touchy,action,swapaction,(int)ob,0); ++ Link_To_Touchplate(touchx,touchy,action,swapaction,(intptr_t)ob,0); + if (ob->obclass == gasgrateobj) + { + ob->temp1 = touchx; +@@ -3644,7 +3641,7 @@ + { + int i,j,linked; + word *map,tile; +- void (*action)(int),(*swapaction)(int); ++ void (*action)(intptr_t),(*swapaction)(intptr_t); + + + map = mapplanes[1]; +@@ -4050,7 +4047,7 @@ + if (!(tswitch->flags & FL_ON)) + {sprites[i][j]->shapenum --; + if (touchindices[touchx][touchy]) +- {Link_To_Touchplate(touchx,touchy,ActivateLight,DeactivateLight,(int)(sprites[i][j]),0); ++ {Link_To_Touchplate(touchx,touchy,ActivateLight,DeactivateLight,(intptr_t)(sprites[i][j]),0); + sprites[i][j]->linked_to = touchindices[touchx][touchy]-1; + } + else +@@ -4058,7 +4055,7 @@ + } + else + {if (touchindices[touchx][touchy]) +- {Link_To_Touchplate(touchx,touchy,DeactivateLight,ActivateLight,(int)(sprites[i][j]),0); ++ {Link_To_Touchplate(touchx,touchy,DeactivateLight,ActivateLight,(intptr_t)(sprites[i][j]),0); + sprites[i][j]->linked_to = touchindices[touchx][touchy]-1; + } + else +@@ -4068,7 +4065,7 @@ + } + else + {if (touchindices[touchx][touchy]) +- {Link_To_Touchplate(touchx,touchy,DeactivateLight,ActivateLight,(int)(sprites[i][j]),0); ++ {Link_To_Touchplate(touchx,touchy,DeactivateLight,ActivateLight,(intptr_t)(sprites[i][j]),0); + sprites[i][j]->linked_to = touchindices[touchx][touchy]-1; + } + else +diff -urNad rott-1.0+dfsg~/rt_ted.h rott-1.0+dfsg/rt_ted.h +--- rott-1.0+dfsg~/rt_ted.h 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_ted.h 2008-01-10 09:17:43.000000000 +0100 +@@ -90,12 +90,12 @@ + + typedef struct + { +- unsigned used; +- unsigned CRC; +- unsigned RLEWtag; +- unsigned MapSpecials; +- unsigned planestart[ NUMPLANES ]; +- unsigned planelength[ NUMPLANES ]; ++ uint32_t used; ++ uint32_t CRC; ++ uint32_t RLEWtag; ++ uint32_t MapSpecials; ++ uint32_t planestart[ NUMPLANES ]; ++ uint32_t planelength[ NUMPLANES ]; + char Name[ ALLOCATEDLEVELNAMELENGTH ]; + } RTLMAP; + +diff -urNad rott-1.0+dfsg~/rt_util.c rott-1.0+dfsg/rt_util.c +--- rott-1.0+dfsg~/rt_util.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.c 2008-01-10 09:17:43.000000000 +0100 +@@ -1144,78 +1144,81 @@ + + + #if (BYTE_ORDER == LITTLE_ENDIAN) +-#define KeepShort IntelShort +-#define SwapShort MotoShort +-#define KeepLong IntelLong +-#define SwapLong MotoLong ++#define Keep16 Intel16 ++#define Swap16 Moto16 ++#define Keep32 Intel32 ++#define Swap32 Moto32 + #else +-#define KeepShort MotoShort +-#define SwapShort IntelShort +-#define KeepLong MotoLong +-#define SwapLong IntelLong ++#define Keep16 Moto16 ++#define Swap16 Intel16 ++#define Keep32 Moto32 ++#define Swap32 Intel32 + #endif + +-short SwapShort (short l) ++int16_t Swap16 (int16_t l) + { ++ uint16_t ul = l; + byte b1,b2; + +- b1 = l&255; +- b2 = (l>>8)&255; ++ b1 = ul&255; ++ b2 = (ul>>8)&255; + + return (b1<<8) + b2; + } + +-short KeepShort (short l) ++int16_t Keep16 (int16_t l) + { + return l; + } + + +-long SwapLong (long l) ++int32_t Swap32 (int32_t l) + { ++ /* signed right shifts are implementation defined */ ++ const uint32_t ul = l; + byte b1,b2,b3,b4; + +- b1 = l&255; +- b2 = (l>>8)&255; +- b3 = (l>>16)&255; +- b4 = (l>>24)&255; ++ b1 = ul&255; ++ b2 = (ul>>8)&255; ++ b3 = (ul>>16)&255; ++ b4 = (ul>>24)&255; + + return ((long)b1<<24) + ((long)b2<<16) + ((long)b3<<8) + b4; + } + +-long KeepLong (long l) ++int32_t Keep32 (int32_t l) + { + return l; + } + + +-#undef KeepShort +-#undef KeepLong +-#undef SwapShort +-#undef SwapLong ++#undef Keep16 ++#undef Keep32 ++#undef Swap16 ++#undef Swap32 + +-void SwapIntelLong(long *l) ++void SwapIntel32(int32_t *l) + { +- *l = IntelLong(*l); ++ *l = Intel32(*l); + } + +-void SwapIntelShort(short *s) ++void SwapIntel16(int16_t *s) + { +- *s = IntelShort(*s); ++ *s = Intel16(*s); + } + +-void SwapIntelLongArray(long *l, int num) ++void SwapIntel32Array(int32_t *l, int num) + { + while (num--) { +- SwapIntelLong(l); ++ SwapIntel32(l); + l++; + } + } + +-void SwapIntelShortArray(short *s, int num) ++void SwapIntel16Array(int16_t *s, int num) + { + while (num--) { +- SwapIntelShort(s); ++ SwapIntel16(s); + s++; + } + } +diff -urNad rott-1.0+dfsg~/rt_util.h rott-1.0+dfsg/rt_util.h +--- rott-1.0+dfsg~/rt_util.h 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.h 2008-01-10 09:17:43.000000000 +0100 +@@ -65,14 +65,26 @@ + void ExtractFileBase (char *path, char *dest); + long ParseHex (char *hex); + long ParseNum (char *str); +-short MotoShort (short l); +-short IntelShort (short l); +-long MotoLong (long l); +-long IntelLong (long l); +-void SwapIntelLong (long *l); +-void SwapIntelShort(short *s); +-void SwapIntelLongArray (long *l, int num); +-void SwapIntelShortArray (short *s, int num); ++int16_t Moto16 (int16_t l); ++int16_t Intel16 (int16_t l); ++int32_t Moto32 (int32_t l); ++int32_t Intel32 (int32_t l); ++static inline uint16_t Intel16U (uint16_t s) ++{ return Intel16(s); } ++static inline uint32_t Intel32U (uint32_t l) ++{ return Intel32(l); } ++void SwapIntel32 (int32_t *l); ++void SwapIntel16 (int16_t *s); ++void SwapIntel32Array (int32_t *l, int num); ++void SwapIntel16Array (int16_t *s, int num); ++static inline void SwapIntel16U (uint16_t * s) ++{ SwapIntel16((int16_t*)s); } ++static inline void SwapIntel32U (uint32_t * l) ++{ SwapIntel32((int32_t*)l); } ++static inline void SwapIntel16UArray (uint16_t * s, int num) ++{ SwapIntel16Array((int16_t*)s,num); } ++static inline void SwapIntel32UArray (uint32_t * l, int num) ++{ SwapIntel32Array((int32_t*)l,num); } + int US_CheckParm (char *parm, char **strings); + byte BestColor (int r, int g, int b, byte *palette); + int atan2_appx(int,int); +diff -urNad rott-1.0+dfsg~/rt_view.c rott-1.0+dfsg/rt_view.c +--- rott-1.0+dfsg~/rt_view.c 2008-01-10 09:17:42.000000000 +0100 ++++ rott-1.0+dfsg/rt_view.c 2008-01-10 09:17:43.000000000 +0100 +@@ -218,13 +218,13 @@ + + void CalcProjection ( void ) + { +- int i; +- int frac; +- long intang; +- byte * table; +- byte * ptr; +- int length; +- int * pangle; ++ int i; ++ int frac; ++ int32_t intang; ++ byte * table; ++ byte * ptr; ++ int32_t length; ++ int32_t * pangle; + + + +@@ -245,18 +245,18 @@ + // get size of table + // + +- memcpy(&length,ptr,sizeof(int)); +- SwapIntelLong((long *)&length); +- ptr+=sizeof(int); +- pangle=SafeMalloc(length*sizeof(int)); +- memcpy(pangle,ptr,length*sizeof(int)); ++ memcpy(&length,ptr,sizeof(int32_t)); ++ SwapIntel32(&length); ++ ptr+=sizeof(int32_t); ++ pangle=SafeMalloc(length*sizeof(int32_t)); ++ memcpy(pangle,ptr,length*sizeof(int32_t)); + + frac=((length*65536/centerx))>>1; + for (i=0;i>16]; +- SwapIntelLong(&intang); ++ SwapIntel32(&intang); + pixelangle[centerx-1-i] =(short) intang; + pixelangle[centerx+i] =(short) -intang; + frac+=(length*65536/centerx); +@@ -447,7 +447,7 @@ + lump = W_GetNumForName("colormap"); + length = W_LumpLength (lump) + 255; + colormap = SafeMalloc (length); +- colormap = (byte *)( ((int)colormap + 255)&~0xff); ++ colormap = (byte *)( ((intptr_t)colormap + 255)&~0xff); + W_ReadLump (lump,colormap); + + // Fix fire colors in colormap +@@ -461,7 +461,7 @@ + lump = W_GetNumForName("specmaps"); + length = W_LumpLength (lump+1) + 255; + redmap = SafeMalloc (length); +- redmap = (byte *)( ((int)redmap + 255)&~0xff); ++ redmap = (byte *)( ((intptr_t)redmap + 255)&~0xff); + W_ReadLump (lump+1,redmap); + greenmap = redmap+(16*256); + +@@ -474,7 +474,7 @@ + { + length = W_LumpLength (lump+i) + 255; + playermaps[i] = SafeMalloc (length); +- playermaps[i] = (byte *)( ((int)playermaps[i] + 255)&~0xff); ++ playermaps[i] = (byte *)( ((intptr_t)playermaps[i] + 255)&~0xff); + W_ReadLump (lump+i,playermaps[i]); + } + } +diff -urNad rott-1.0+dfsg~/w_wad.c rott-1.0+dfsg/w_wad.c +--- rott-1.0+dfsg~/w_wad.c 2008-01-09 13:52:31.000000000 +0100 ++++ rott-1.0+dfsg/w_wad.c 2008-01-10 09:17:43.000000000 +0100 +@@ -125,8 +125,8 @@ + read (handle, &header, sizeof(header)); + if (strncmp(header.identification,"IWAD",4)) + Error ("Wad file %s doesn't have IWAD id\n",filename); +- header.numlumps = IntelLong(LONG(header.numlumps)); +- header.infotableofs = IntelLong(LONG(header.infotableofs)); ++ header.numlumps = Intel32(LONG(header.numlumps)); ++ header.infotableofs = Intel32(LONG(header.infotableofs)); + length = header.numlumps*sizeof(filelump_t); + fileinfo = alloca (length); + if (!fileinfo) +@@ -148,8 +148,8 @@ + + for (i=startlump ; i<(unsigned int)numlumps ; i++,lump_p++, fileinfo++) + { +- fileinfo->filepos = IntelLong(LONG(fileinfo->filepos)); +- fileinfo->size = IntelLong(LONG(fileinfo->size)); ++ fileinfo->filepos = Intel32(LONG(fileinfo->filepos)); ++ fileinfo->size = Intel32(LONG(fileinfo->size)); + lump_p->handle = handle; + lump_p->position = LONG(fileinfo->filepos); + lump_p->size = LONG(fileinfo->size); --- rott-1.0+dfsg.orig/debian/patches/17-no-newline-in-addmessage.dpatch +++ rott-1.0+dfsg/debian/patches/17-no-newline-in-addmessage.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 17-no-newline-in-addmessage.dpatch by Michael Karcher +## +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Remove unsupported newlines from game messages. Important unless +## DP: signed character fix from 18-fix-drawichar is applied. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_game.c rott-1.0+dfsg/rt_game.c +--- rott-1.0+dfsg~/rt_game.c 2008-01-10 09:19:03.000000000 +0100 ++++ rott-1.0+dfsg/rt_game.c 2008-01-10 09:19:04.000000000 +0100 +@@ -1777,7 +1777,7 @@ + GiveLives(1); + if (ob==player) + { +- AddMessage("100 Life Item Points! Extra Life!\n",MSG_BONUS); ++ AddMessage("100 Life Item Points! Extra Life!",MSG_BONUS); + SD_PlaySoundRTP (SD_GET1UPSND, player->x, player->y); + } + pstate->triads -= 100; +@@ -4184,7 +4184,7 @@ + killangle=startangle+(TOTALDEATHROT>>1); + if (dopefish==true) + { +- AddMessage("Dopefish Death Cam\n",MSG_SYSTEM); ++ AddMessage("Dopefish Death Cam",MSG_SYSTEM); + } + for (iangle=startangle;;) + { --- rott-1.0+dfsg.orig/debian/patches/21-no-soundsetup.dpatch +++ rott-1.0+dfsg/debian/patches/21-no-soundsetup.dpatch @@ -0,0 +1,689 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 21-no-soundsetup.dpatch by Michael Karcher +## +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Disable sound setup except on DOS. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/fx_man.c rott-1.0+dfsg/fx_man.c +--- rott-1.0+dfsg~/fx_man.c 2008-01-10 09:20:04.000000000 +0100 ++++ rott-1.0+dfsg/fx_man.c 2008-01-10 09:20:05.000000000 +0100 +@@ -300,22 +300,6 @@ + snddebug("Error message set to [%s].", errorMessage); + } // setErrorMessage + +- +-int FX_GetBlasterSettings(fx_blaster_config *blaster) +-{ +- setErrorMessage("No SoundBlaster cards available."); +- return(FX_Error); +-} // FX_GetBlasterSettings +- +- +-int FX_SetupSoundBlaster(fx_blaster_config blaster, int *MaxVoices, +- int *MaxSampleBits, int *MaxChannels) +-{ +- setErrorMessage("No SoundBlaster cards available."); +- return(FX_Error); +-} // FX_SetupSoundBlaster +- +- + int FX_SetupCard( int SoundCard, fx_device *device ) + { + init_debugging(); +diff -urNad rott-1.0+dfsg~/fx_man.h rott-1.0+dfsg/fx_man.h +--- rott-1.0+dfsg~/fx_man.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/fx_man.h 2008-01-10 09:20:05.000000000 +0100 +@@ -1,3 +1,4 @@ ++ + /* + Copyright (C) 1994-1995 Apogee Software, Ltd. + +@@ -43,17 +44,6 @@ + #define MonoFx 1 + #define StereoFx 2 + +-typedef struct +- { +- unsigned long Address; +- unsigned long Type; +- unsigned long Interrupt; +- unsigned long Dma8; +- unsigned long Dma16; +- unsigned long Midi; +- unsigned long Emu; +- } fx_blaster_config; +- + enum FX_ERRORS + { + FX_Warning = -2, +@@ -67,6 +57,7 @@ + FX_DPMI_Error + }; + ++#ifdef DOS + enum fx_BLASTER_Types + { + fx_SB = 1, +@@ -75,12 +66,11 @@ + fx_SBPro2 = 4, + fx_SB16 = 6 + }; ++#endif + + + char *FX_ErrorString( int ErrorNumber ); + int FX_SetupCard( int SoundCard, fx_device *device ); +-int FX_GetBlasterSettings( fx_blaster_config *blaster ); +-int FX_SetupSoundBlaster( fx_blaster_config blaster, int *MaxVoices, int *MaxSampleBits, int *MaxChannels ); + int FX_Init( int SoundCard, int numvoices, int numchannels, int samplebits, unsigned mixrate ); + int FX_Shutdown( void ); + int FX_SetCallBack( void ( *function )( unsigned long ) ); +diff -urNad rott-1.0+dfsg~/rt_cfg.c rott-1.0+dfsg/rt_cfg.c +--- rott-1.0+dfsg~/rt_cfg.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_cfg.c 2008-01-10 09:20:05.000000000 +0100 +@@ -98,10 +98,12 @@ + int MUvolume = 196; + int FXvolume = 196; + ++#ifdef DOS + fx_blaster_config SBSettings = + { + 0x220, fx_SB, 7, 1, 5, 0x330, 0x620 + }; ++#endif + + boolean mouseenabled = 1; + boolean joystickenabled = 0; +@@ -112,7 +114,9 @@ + int NumVoices = 4; + int NumChannels = 1; + int NumBits = 8; ++#ifdef DOS + int MidiAddress = 0x330; ++#endif + boolean cybermanenabled = false; + boolean assassinenabled = false; + boolean spaceballenabled = false; +@@ -288,14 +292,17 @@ + + ReadInt ("NumBits",&NumBits); + ++#ifdef DOS + // Read in Midi Address + + ReadInt ("MidiAddress",&MidiAddress); ++#endif + + // Read in stereo reversal + + ReadBoolean ("StereoReverse",&stereoreversed); + ++#ifdef DOS + // Read in Sound Blaster info + ReadUnsigned ("SBType", &SBSettings.Type ); + ReadUnsigned ("SBPort", &SBSettings.Address ); +@@ -304,6 +311,7 @@ + ReadUnsigned ("SBDma16", &SBSettings.Dma16 ); + ReadUnsigned ("SBMidi", &SBSettings.Midi ); + ReadUnsigned ("SBEmu", &SBSettings.Emu ); ++#endif + } + else + retval = false; +@@ -324,7 +332,9 @@ + ) + + { ++#ifdef DOS + fx_blaster_config blaster; ++#endif + int status; + + // +@@ -337,7 +347,6 @@ + NumVoices = 8; + NumChannels = 2; + NumBits = 16; +- MidiAddress = 0x330; + stereoreversed = false; + #else + MusicMode = 0; +@@ -347,7 +356,6 @@ + NumBits = 8; + MidiAddress = 0x330; + stereoreversed = false; +- #endif + + status = FX_GetBlasterSettings( &blaster ); + if ( status == FX_Ok ) +@@ -360,6 +368,7 @@ + SBSettings.Midi = blaster.Midi; + SBSettings.Emu = blaster.Emu; + } ++ #endif + } + + +@@ -1519,6 +1528,7 @@ + SafeWriteString(file,"\n;\n"); + SafeWriteString(file,"; Music Modes\n"); + SafeWriteString(file,"; 0 - Off\n"); ++#ifdef DOS + SafeWriteString(file,"; 1 - UltraSound\n"); + SafeWriteString(file,"; 2 - Sound Blaster\n"); + SafeWriteString(file,"; 3 - Sound Man 16\n"); +@@ -1529,6 +1539,9 @@ + SafeWriteString(file,"; 8 - General Midi\n"); + SafeWriteString(file,"; 9 - Sound Canvas\n"); + SafeWriteString(file,"; 10 - Adlib\n"); ++#else ++ SafeWriteString(file,"; 6 - On\n"); ++#endif + WriteParameter(file,"MusicMode ",MusicMode); + + // Write out FX Mode +@@ -1536,6 +1549,7 @@ + SafeWriteString(file,"\n;\n"); + SafeWriteString(file,"; FX Modes\n"); + SafeWriteString(file,"; 0 - Off\n"); ++#ifdef DOS + SafeWriteString(file,"; 1 - UltraSound\n"); + SafeWriteString(file,"; 2 - Sound Blaster\n"); + SafeWriteString(file,"; 3 - Sound Man 16\n"); +@@ -1546,6 +1560,9 @@ + SafeWriteString(file,"; 8 - Disney Sound Source\n"); + SafeWriteString(file,"; 9 - Tandy Sound Source\n"); + SafeWriteString(file,"; 10 - PC Speaker\n"); ++#else ++ SafeWriteString(file,"; 6 - On\n"); ++#endif + WriteParameter(file,"FXMode ",FXMode); + + // Write in Music Volume +@@ -1585,6 +1602,7 @@ + SafeWriteString(file,"; 16 bit\n"); + WriteParameter(file,"NumBits ",NumBits); + ++#ifdef DOS + // Write out Midi Address + + SafeWriteString(file,"\n;\n"); +@@ -1599,6 +1617,7 @@ + SafeWriteString(file,"; $370\n"); + SafeWriteString(file,"; $380\n"); + WriteParameterHex(file,"MidiAddress ",MidiAddress); ++#endif + + // Write out stereo reversal + +@@ -1608,6 +1627,7 @@ + SafeWriteString(file,"; 1 reverse stereo\n"); + WriteParameter (file,"StereoReverse ",stereoreversed); + ++#ifdef DOS + // Write out Sound Blaster info + + SafeWriteString(file,"\n;\n"); +@@ -1619,6 +1639,7 @@ + WriteParameter(file, "SBDma16 ", SBSettings.Dma16 ); + WriteParameterHex(file, "SBMidi ", SBSettings.Midi ); + WriteParameterHex(file, "SBEmu ", SBSettings.Emu ); ++#endif + + close (file); + } +diff -urNad rott-1.0+dfsg~/rt_cfg.h rott-1.0+dfsg/rt_cfg.h +--- rott-1.0+dfsg~/rt_cfg.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_cfg.h 2008-01-10 09:20:05.000000000 +0100 +@@ -46,7 +46,9 @@ + extern int NumVoices; + extern int NumChannels; + extern int NumBits; ++#ifdef DOS + extern int MidiAddress; ++#endif + extern boolean stereoreversed; + extern boolean cybermanenabled; + extern boolean assassinenabled; +diff -urNad rott-1.0+dfsg~/rt_main.c rott-1.0+dfsg/rt_main.c +--- rott-1.0+dfsg~/rt_main.c 2008-01-10 09:20:04.000000000 +0100 ++++ rott-1.0+dfsg/rt_main.c 2008-01-10 09:20:05.000000000 +0100 +@@ -119,7 +119,9 @@ + boolean FullScreen = false; + boolean newlevel = false; + boolean infopause; ++#ifdef DOS + boolean SOUNDSETUP=false; ++#endif + boolean quiet = false; + + #if (DEVELOPMENT == 1) +@@ -294,6 +296,7 @@ + printf( "Sound FX disabled.\n" ); + } + ++#ifdef DOS + if ( status1 || status2 || status3 ) + { + printf( "\n\nROTT was unable to initialize your " ); +@@ -317,6 +320,7 @@ + "Now entering sound setup.\n" ); + SOUNDSETUP = true; + } ++#endif + + Init_Tables (); + InitializeRNG (); +@@ -361,11 +365,13 @@ + // SetBorderColor(155); + SetViewSize(8); + ++#ifdef DOS + if ( SOUNDSETUP ) + { + SwitchPalette( origpal, 35 ); + CP_SoundSetup(); + } ++#endif + + playstate = ex_titles; + +@@ -445,8 +451,10 @@ + { + SetTextMode(); + TurnOffTextCursor (); ++#ifdef DOS + if (CheckParm ("SOUNDSETUP") == 0) + { ++#endif + #ifdef ANSIESC + printf("\n\n\n"); + #endif +@@ -496,6 +504,7 @@ + #endif + + UL_ColorBox (0, 0, 80, 2, 0x1e); ++#ifdef DOS + } + else + { +@@ -512,6 +521,7 @@ + + UL_ColorBox (0, 0, 80, 1, 0x1e); + } ++#endif + } + else + { +@@ -531,7 +541,9 @@ + int i,n; + + infopause=false; ++#ifdef DOS + SOUNDSETUP = false; ++#endif + tedlevel=false; + NoWait=false; + NoSound=false; +@@ -580,7 +592,9 @@ + printf (" MONO - Enable mono-monitor support.\n"); + printf (" SCREENSHOTS- Clean screen capture for shots.\n"); + printf (" PAUSE - Pauses startup screen information.\n"); ++#ifdef DOS + printf (" SOUNDSETUP - Setup sound for ROTT\n"); ++#endif + printf (" ENABLEVR - Enable VR helmet input devices\n"); + printf (" NOECHO - Turn off sound reverb\n"); + printf (" DEMOEXIT - Exit program when demo is terminated\n"); +@@ -698,7 +712,9 @@ + infopause=true; + break; + case 14: ++#ifdef DOS + SOUNDSETUP = true; ++#endif + break; + case 15: + startlevel = (ParseNum(_argv[i + 1])-1); +@@ -1424,7 +1440,11 @@ + + void ShutDown ( void ) + { +- if ( ( standalone == false ) || ( SOUNDSETUP ) ) ++ if ( ( standalone == false ) ++#ifdef DOS ++ || ( SOUNDSETUP ) ++#endif ++ ) + { + WriteConfig (); + } +@@ -1516,8 +1536,10 @@ + printf("LIGHTRATE =%ld\n",GetLightRateTile()); + printf("\nCENTERY=%ld\n",centery); + #else ++#ifdef DOS + if ( !SOUNDSETUP ) + { ++#endif + #if (SHAREWARE==0) + txtscn = (byte *) W_CacheLumpNum (W_GetNumForName ("regend"), PU_CACHE, CvtNull, 1); + #else +@@ -1544,15 +1566,19 @@ + + UL_printf (itoa(ROTTMINORVERSION,&buf[0],10)); + #endif ++#ifdef DOS + } + #endif ++#endif + ++#ifdef DOS + if ( SOUNDSETUP ) + { + printf( "\nSound setup complete.\n" + "Type ROTT to run the game.\n" ); + } + ShutDown(); ++#endif + + exit(0); + } +diff -urNad rott-1.0+dfsg~/rt_main.h rott-1.0+dfsg/rt_main.h +--- rott-1.0+dfsg~/rt_main.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_main.h 2008-01-10 09:20:05.000000000 +0100 +@@ -158,7 +158,9 @@ + extern boolean MAPSTATS; + extern boolean TILESTATS; + extern boolean HUD; ++#ifdef DOS + extern boolean SOUNDSETUP; ++#endif + + extern char CWD[40]; + +diff -urNad rott-1.0+dfsg~/rt_menu.c rott-1.0+dfsg/rt_menu.c +--- rott-1.0+dfsg~/rt_menu.c 2008-01-10 09:20:03.000000000 +0100 ++++ rott-1.0+dfsg/rt_menu.c 2008-01-10 09:20:05.000000000 +0100 +@@ -5039,19 +5039,25 @@ + ) + + { ++#ifdef DOS + extern boolean SOUNDSETUP; ++#endif + + SliderMenu( &MUvolume, 254, 0, 33, 81, 225, 8, "block3", MUSIC_SetVolume, + "Music Volume", "Low", "High" ); + ++#ifdef DOS + if ( SOUNDSETUP ) + { + DrawSoundSetupMainMenu(); + } + else + { ++#endif + DrawControlMenu(); ++#ifdef DOS + } ++#endif + } + + +@@ -5067,7 +5073,9 @@ + ) + + { ++#ifdef DOS + extern boolean SOUNDSETUP; ++#endif + int oldvolume; + + oldvolume = FXvolume; +@@ -5075,14 +5083,18 @@ + SliderMenu( &FXvolume, 254, 0, 33, 81, 225, 8, "block3", FX_SetVolume, + "Sound Volume", "Low", "High" ); + ++#ifdef DOS + if ( SOUNDSETUP ) + { + DrawSoundSetupMainMenu(); + } + else + { ++#endif + DrawControlMenu(); ++#ifdef DOS + } ++#endif + } + + +@@ -8539,6 +8551,7 @@ + } + } + ++#ifdef DOS + void SS_DrawSBTypeMenu( void ); + void SS_SBTypeMenu( void ); + void SS_DrawPortMenu( void ); +@@ -9288,6 +9301,7 @@ + + handlewhich = -1; + } ++#endif + + + //****************************************************************************** +@@ -9423,6 +9437,8 @@ + MN_PlayMenuSnd( SD_ESCPRESSEDSND ); + } + ++#ifdef DOS ++ + //**************************************************************************** + // + // DrawSoundSetupMainMenu () +@@ -10147,3 +10163,4 @@ + + FlipMenuBuf(); + } ++#endif +diff -urNad rott-1.0+dfsg~/rt_menu.h rott-1.0+dfsg/rt_menu.h +--- rott-1.0+dfsg~/rt_menu.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_menu.h 2008-01-10 09:20:05.000000000 +0100 +@@ -205,7 +205,9 @@ + int HandleMultiPageCustomMenu( char **names, int amount, int curpos, char *title, void ( *routine )( int w ), void ( *redrawfunc )( void ), boolean exitonselect ); + int CP_LevelSelectionMenu ( void ); + int CP_EnterCodeNameMenu ( void ); ++#ifdef DOS + void CP_SoundSetup( void ); ++#endif + void QuickSaveGame (void); + void UndoQuickSaveGame (void); + void CP_CaptureTheTriadError( void ); +diff -urNad rott-1.0+dfsg~/rt_sound.c rott-1.0+dfsg/rt_sound.c +--- rott-1.0+dfsg~/rt_sound.c 2008-01-10 09:20:03.000000000 +0100 ++++ rott-1.0+dfsg/rt_sound.c 2008-01-10 09:20:05.000000000 +0100 +@@ -66,6 +66,7 @@ + static int remotestart; + static boolean SoundsRemapped = false; + ++#ifdef DOS + int musicnums[ 11 ] = { + -1, UltraSound, SoundBlaster, SoundMan16, ProAudioSpectrum, + Awe32, SoundScape, WaveBlaster, GenMidi, SoundCanvas, Adlib +@@ -75,8 +76,19 @@ + -1, UltraSound, SoundBlaster, SoundMan16, ProAudioSpectrum, + Awe32, SoundScape, Adlib, SoundSource, TandySoundSource, PC + }; ++#else ++int musicnums[ 11 ] = { ++ -1, -1, -1, -1, -1, -1, SoundScape, -1, -1, -1, -1 ++ }; + ++int fxnums[ 11 ] = { ++ -1, -1, -1, -1, -1, -1, SoundScape, -1, -1, -1, -1 ++ }; ++#endif ++ ++#if 0 + void MU_SetupGUSInitFile( void ); ++#endif + + int MUSIC_GetPosition( void ) { + songposition pos; +@@ -174,6 +186,7 @@ + card = fxnums[ FXMode ]; + if (card==-1) // Check if it is off + return (0); ++#ifdef DOS + if ( ( card == SoundBlaster ) || ( card == Awe32 ) ) + { + extern fx_blaster_config SBSettings; +@@ -183,6 +196,7 @@ + } + else + { ++#endif + status=FX_SetupCard( card, &device ); + if ( status == FX_Ok ) + { +@@ -190,7 +204,9 @@ + *numbits=device.MaxSampleBits; + *numchannels=device.MaxChannels; + } ++#ifdef DOS + } ++#endif + + return (status); + } +@@ -224,6 +240,7 @@ + + switch (card) + { ++#ifdef DOS + case UltraSound: + case SoundBlaster: + case SoundMan16: +@@ -231,10 +248,12 @@ + case Awe32: + case SoundSource: + case TandySoundSource: ++#endif + case SoundScape: + soundstart=W_GetNumForName("digistrt")+1; + soundtype=fx_digital; + break; ++#ifdef DOS + case Adlib: + soundstart=W_GetNumForName("adstart")+1; + soundtype=fx_muse; +@@ -243,6 +262,7 @@ + soundstart=W_GetNumForName("pcstart")+1; + soundtype=fx_muse; + break; ++#endif + default: + Error("FX: Unsupported Card number %d",FXMode); + break; +@@ -1052,6 +1072,7 @@ + if (card==-1) // Check if it is off + return (0); + ++#ifdef DOS + if ( ( card == SoundBlaster ) || ( card == Awe32 ) || ( card == WaveBlaster ) ) + { + if ( SD_Started == false ) +@@ -1072,6 +1093,11 @@ + } + + status=MUSIC_Init( card, MidiAddress ); ++#else ++ /* Not DOS, no address config needed */ ++ status=MUSIC_Init( card, 0 ); ++#endif ++ + + if (status != MUSIC_Ok) { + if (bombonerror) +@@ -1105,6 +1131,8 @@ + MUSIC_Shutdown(); + MU_Started=false; + } ++ ++#ifdef DOS + //*************************************************************************** + // + // MU_SetupGUSInitFile - initialize GUS stuff +@@ -1126,6 +1154,8 @@ + } + } + ++#endif ++ + //*************************************************************************** + // + // MU_GetNumForType - returns number of song in rottsongs of specific type +diff -urNad rott-1.0+dfsg~/rt_util.c rott-1.0+dfsg/rt_util.c +--- rott-1.0+dfsg~/rt_util.c 2008-01-10 09:20:04.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.c 2008-01-10 09:20:05.000000000 +0100 +@@ -435,13 +435,14 @@ + } + + close(handle); +-#endif + + if ( SOUNDSETUP ) + { + getch(); + } + ++#endif ++ + #if USE_SDL + SDL_Quit(); + #endif +diff -urNad rott-1.0+dfsg~/sndcards.h rott-1.0+dfsg/sndcards.h +--- rott-1.0+dfsg~/sndcards.h 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/sndcards.h 2008-01-10 09:20:05.000000000 +0100 +@@ -38,6 +38,7 @@ + { + // ASS_NoSound, + SoundBlaster, ++#ifdef DOS + ProAudioSpectrum, + SoundMan16, + Adlib, +@@ -45,11 +46,14 @@ + SoundCanvas, + Awe32, + WaveBlaster, ++#endif + SoundScape, + UltraSound, ++#ifdef DOS + SoundSource, + TandySoundSource, + PC, ++#endif + NumSoundCards + } soundcardnames; + +diff -urNad rott-1.0+dfsg~/w_wad.c rott-1.0+dfsg/w_wad.c +--- rott-1.0+dfsg~/w_wad.c 2008-01-10 09:20:04.000000000 +0100 ++++ rott-1.0+dfsg/w_wad.c 2008-01-10 09:20:05.000000000 +0100 +@@ -238,7 +238,9 @@ + lumpcheck=SafeMalloc(numlumps); + memset(lumpcheck,255,numlumps); + #endif ++#ifdef DOS + if (!SOUNDSETUP) ++#endif + W_CheckWADIntegrity (); + } + --- rott-1.0+dfsg.orig/debian/patches/18-fix-drawichar.dpatch +++ rott-1.0+dfsg/debian/patches/18-fix-drawichar.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 18-fix-drawichar.dpatch by Michael Karcher +## +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix cast for indexing an array with a character. + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_str.c rott-1.0+dfsg/rt_str.c +--- rott-1.0+dfsg~/rt_str.c 2008-01-09 13:52:29.000000000 +0100 ++++ rott-1.0+dfsg/rt_str.c 2008-01-10 09:19:19.000000000 +0100 +@@ -1517,8 +1517,8 @@ + dest = origdest; + + ch -= 31; +- width = IFont->width[ (unsigned int)ch ]; +- source = ( ( byte * )IFont ) + IFont->charofs[ (unsigned int)ch ]; ++ width = IFont->width[ (unsigned char)ch ]; ++ source = ( ( byte * )IFont ) + IFont->charofs[ (unsigned char)ch ]; + + mask = 1 << ( px & 3 ); + --- rott-1.0+dfsg.orig/debian/patches/33-svn-213.dpatch +++ rott-1.0+dfsg/debian/patches/33-svn-213.dpatch @@ -0,0 +1,158 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r213 | relnev | 2003-02-14 06:51:57 +0100 (Fr, 14 Feb 2003) | 2 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: added some missing include guards + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/_rt_util.h rott-1.0+dfsg/_rt_util.h +--- rott-1.0+dfsg~/_rt_util.h 2008-01-09 13:52:28.000000000 +0100 ++++ rott-1.0+dfsg/_rt_util.h 2008-01-10 09:21:04.000000000 +0100 +@@ -20,10 +20,12 @@ + #ifndef _rt_util_private + #define _rt_util_private + ++#ifdef DOS + #define PEL_WRITE_ADR 0x3c8 + #define PEL_READ_ADR 0x3c7 + #define PEL_DATA 0x3c9 + #define PEL_MASK 0x3c6 ++#endif + + #define ERRORROW 2 + #define ERRORCOL 11 +diff -urNad rott-1.0+dfsg~/byteordr.h rott-1.0+dfsg/byteordr.h +--- rott-1.0+dfsg~/byteordr.h 2008-01-10 09:21:02.000000000 +0100 ++++ rott-1.0+dfsg/byteordr.h 2008-01-10 09:21:04.000000000 +0100 +@@ -23,6 +23,9 @@ + // + //*************************************************************************** + ++#ifndef BYTEORDER_H ++#define BYTEORDER_H ++ + typedef void (*converter_t)(void *, int); + + #define DECLARE_CONVERTER(type) void Cvt_##type(void *lmp, int num); +@@ -36,3 +39,5 @@ + DECLARE_CONVERTER(cfont_t); + void CvtNull(void *lmp, int num); + converter_t CvtForType(int type); ++ ++#endif +diff -urNad rott-1.0+dfsg~/cin_glob.h rott-1.0+dfsg/cin_glob.h +--- rott-1.0+dfsg~/cin_glob.h 2008-01-09 13:52:28.000000000 +0100 ++++ rott-1.0+dfsg/cin_glob.h 2008-01-10 09:21:04.000000000 +0100 +@@ -22,6 +22,9 @@ + #include "isr.h" + #include + ++#ifndef CIN_GLOB_H ++#define CIN_GLOB_H ++ + #define DUMP 0 + + #define CLOCKSPEED (VBLCOUNTER) +@@ -31,3 +34,4 @@ + boolean CinematicAbort( void ); + void ClearCinematicAbort( void ); + ++#endif +diff -urNad rott-1.0+dfsg~/modexlib.c rott-1.0+dfsg/modexlib.c +--- rott-1.0+dfsg~/modexlib.c 2008-01-10 09:21:02.000000000 +0100 ++++ rott-1.0+dfsg/modexlib.c 2008-01-10 09:21:04.000000000 +0100 +@@ -389,6 +389,8 @@ + + #include "SDL.h" + ++#ifndef STUB_FUNCTION ++ + /* rt_def.h isn't included, so I just put this here... */ + #if !defined(ANSIESC) + #define STUB_FUNCTION fprintf(stderr,"STUB: %s at " __FILE__ ", line %d, thread %d\n",__FUNCTION__,__LINE__,getpid()) +@@ -396,6 +398,8 @@ + #define STUB_FUNCTION + #endif + ++#endif ++ + /* + ==================== + = +diff -urNad rott-1.0+dfsg~/modexlib.h rott-1.0+dfsg/modexlib.h +--- rott-1.0+dfsg~/modexlib.h 2008-01-10 09:21:02.000000000 +0100 ++++ rott-1.0+dfsg/modexlib.h 2008-01-10 09:21:04.000000000 +0100 +@@ -40,6 +40,7 @@ + // + //*************************************************************************** + ++#ifdef DOS + #define SC_INDEX 0x3C4 + #define SC_DATA 0x3C5 + #define SC_RESET 0 +@@ -100,7 +101,7 @@ + #define PEL_WRITE_ADR 0x3c8 + #define PEL_READ_ADR 0x3c7 + #define PEL_DATA 0x3c9 +- ++#endif + + extern int ylookup[MAXSCREENHEIGHT]; // Table of row offsets + extern int linewidth; +diff -urNad rott-1.0+dfsg~/rottnet.h rott-1.0+dfsg/rottnet.h +--- rott-1.0+dfsg~/rottnet.h 2008-01-09 13:52:28.000000000 +0100 ++++ rott-1.0+dfsg/rottnet.h 2008-01-10 09:21:04.000000000 +0100 +@@ -23,10 +23,12 @@ + + #include "develop.h" + ++#ifdef DOS + #define PEL_WRITE_ADR 0x3c8 + #define PEL_DATA 0x3c9 + + #define I_ColorBlack(r,g,b) {outp(PEL_WRITE_ADR,0);outp(PEL_DATA,r);outp(PEL_DATA,g);outp(PEL_DATA,b);}; ++#endif + + #define MAXNETNODES 14 // max computers in a game + +diff -urNad rott-1.0+dfsg~/rt_def.h rott-1.0+dfsg/rt_def.h +--- rott-1.0+dfsg~/rt_def.h 2008-01-10 09:21:02.000000000 +0100 ++++ rott-1.0+dfsg/rt_def.h 2008-01-10 09:21:04.000000000 +0100 +@@ -248,9 +248,6 @@ + #define MaxKbds 2 + #define MaxJoys 2 + #define NumCodes 128 +-#define MReset 0 +-#define MButtons 3 +-#define MDelta 11 + + // Key definitions + +diff -urNad rott-1.0+dfsg~/rt_util.c rott-1.0+dfsg/rt_util.c +--- rott-1.0+dfsg~/rt_util.c 2008-01-10 09:21:03.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.c 2008-01-10 09:21:04.000000000 +0100 +@@ -928,7 +928,7 @@ + { + *ptr = '\0'; + f->dir = opendir(f->pattern); +- memmove(f->pattern, ptr + 1, strlen(ptr) + 1); ++ memmove(f->pattern, ptr + 1, strlen(ptr + 1) + 1); + } + + return(_dos_findnext(f)); +diff -urNad rott-1.0+dfsg~/version.h rott-1.0+dfsg/version.h +--- rott-1.0+dfsg~/version.h 2008-01-09 13:52:28.000000000 +0100 ++++ rott-1.0+dfsg/version.h 2008-01-10 09:21:04.000000000 +0100 +@@ -17,6 +17,12 @@ + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ ++ ++#ifndef VERSION_H ++#define VERSION_H ++ + #define ROTTMAJORVERSION 1 + #define ROTTMINORVERSION 4 + #define ROTTVERSION ((ROTTMAJORVERSION*10)+(ROTTMINORVERSION)) ++ ++#endif --- rott-1.0+dfsg.orig/debian/patches/30-svn-210.dpatch +++ rott-1.0+dfsg/debian/patches/30-svn-210.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r210 | relnev | 2003-01-10 05:31:51 +0100 (Fr, 10 Jan 2003) | 2 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: implemented missing UL_ChangeDirectory + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_util.c rott-1.0+dfsg/rt_util.c +--- rott-1.0+dfsg~/rt_util.c 2008-01-10 09:20:30.000000000 +0100 ++++ rott-1.0+dfsg/rt_util.c 2008-01-10 09:20:30.000000000 +0100 +@@ -1854,9 +1854,15 @@ + + return (true); + #else +- STUB_FUNCTION; ++ if (!*path) { ++ return true; ++ } + +- return false; ++ if (chdir (path) == -1) { ++ return (false); ++ } ++ ++ return true; + #endif + } + --- rott-1.0+dfsg.orig/debian/patches/35-svn-215ab.dpatch +++ rott-1.0+dfsg/debian/patches/35-svn-215ab.dpatch @@ -0,0 +1,50 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## r215 | relnev | 2003-04-02 04:50:18 +0200 (Mi, 02 Apr 2003) | 10 lines +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: sparc fixes from Damian M Gryski : +## DP: o force `size' to be a multiple of 4 in Z_Malloc +## DP: to prevent unaligned access (SIGBUS) +## DP: o prevent SIGBUS in ConvertStringToPasswordString + +@DPATCH@ +diff -urNad rott-1.0+dfsg~/rt_cfg.c rott-1.0+dfsg/rt_cfg.c +--- rott-1.0+dfsg~/rt_cfg.c 2008-01-10 09:21:21.000000000 +0100 ++++ rott-1.0+dfsg/rt_cfg.c 2008-01-10 09:21:22.000000000 +0100 +@@ -386,6 +386,7 @@ + void ConvertStringToPasswordString ( char * string ) + { + int i; ++ unsigned int j; + char temp[3]; + + memset(temp,0,sizeof(temp)); +@@ -393,7 +394,11 @@ + for (i=0;i<13;i++) + { + memcpy(&temp[0],&string[i<<1],2); +- sscanf(&temp[0],"%x",(unsigned int *)&passwordstring[i]); ++ sscanf(&temp[0],"%x",&j); ++ passwordstring[i+0] = j & 0xff; j >>= 8; ++ passwordstring[i+1] = j & 0xff; j >>= 8; ++ passwordstring[i+2] = j & 0xff; j >>= 8; ++ passwordstring[i+3] = j & 0xff; + } + } + +diff -urNad rott-1.0+dfsg~/z_zone.c rott-1.0+dfsg/z_zone.c +--- rott-1.0+dfsg~/z_zone.c 2008-01-10 09:21:21.000000000 +0100 ++++ rott-1.0+dfsg/z_zone.c 2008-01-10 09:21:22.000000000 +0100 +@@ -289,6 +289,12 @@ + // + size += sizeof(memblock_t); // account for size of block header + ++#if defined(__sparc__) ++ /* ensure word alignment */ ++ if (size % 4) { ++ size = size + (4 - size % 4); ++ } ++#endif + + // + // if there is a free block behind the rover, back up over them --- rott-1.0+dfsg.orig/debian/patches/00list +++ rott-1.0+dfsg/debian/patches/00list @@ -0,0 +1,24 @@ +01-custom-datapath +02-gcc41 +03-fullscreen-hack +04-alt-gr +05-big-endian-fix +06-touchplate-fix +11-new-fix32 +12-fix-char-byte +13-improve-makefile +14-fix-modex-ptr +16-fix-random-actors +17-no-newline-in-addmessage +18-fix-drawichar +19-playerarrow +20-printf-no-long +21-no-soundsetup +30-svn-210 +31-svn-211 +33-svn-213 +35-svn-215ab +36-svn-216 +37-svn-217c +39-svn-219 +41-svn-221 --- rott-1.0+dfsg.orig/debian/install +++ rott-1.0+dfsg/debian/install @@ -0,0 +1,3 @@ +rott /usr/games/ +debian/pixmaps/rott.xpm /usr/share/pixmaps/ +debian/lintian/rott /usr/share/lintian/overrides/ --- rott-1.0+dfsg.orig/debian/compat +++ rott-1.0+dfsg/debian/compat @@ -0,0 +1 @@ +5 --- rott-1.0+dfsg.orig/debian/manpage/rott.6 +++ rott-1.0+dfsg/debian/manpage/rott.6 @@ -0,0 +1,80 @@ +.TH ROTT 6 "2006-05-01" "1.0" "Rise of the Triad" + +.SH NAME +rott \- Rise of the Triad + +.SH SYNOPSIS +.B rott +.RI [ options ] + +.SH DESCRIPTION +.B ROTT +is a port of Apogee's 3D action title Rise of the Triad, originally released in 1994. +This port duplicates the functionality of the original game on modern operating systems, including Linux, Win32, and OSX. + +.SH OPTIONS +.TP +.BR spaceball +Enable check for Spaceball. +.TP +.BR nojoys +Disable check for joystick. +.TP +.BR nomouse +Disable check for mouse. +.TP +.BR cyberman +Enable check for Cyberman. +.TP +.BR assassin +Enable check for Wingman Assassin. +.TP +.BR ver +Version number. +.TP +.BR fullscreen +Enable Full Screen video mode. +.TP +.BR mapstats +Dump Map statistics to ERROR. +.TP +.BR tilestats +Dump Tile statistics to ERROR. +.TP +.BR mono +Enable mono-monitor support. +.TP +.BR screenshots +Clean screen capture for shots. +.TP +.BR pause +Pauses startup screen information. +.TP +.BR enablevr +Enable VR helmet input devices. +.TP +.BR noecho +Turn off sound reverb. +.TP +.BR demoexit +Exit program when demo is terminated. +.TP +.BR warp\ \fIlevel\fP +Warp to specific ROTT level (next paramater is level to start on). +.TP +.BR timelimit\ \fItime\fP +Play ROTT in time limit mode (next paramater is time in seconds). +.TP +.BR maxtimelimit\ \fItime\fP +Maximimum time to count down from (next paramater is time in seconds). +.TP +.BR dopefish +? + +.SH AUTHORS +ROTT was created and published as shareware by Apogee Software, Ltd. and was published commercially by FormGen, Inc. +.PP +The primary contributors to this port are: Steven Fuller, Ryan Gordon, John Hall and Dan Olson. +.PP +This manual page was written by Fabian Greffrath +for the Debian Unofficial project (but may be used by others). --- rott-1.0+dfsg.orig/debian/po/sv.po +++ rott-1.0+dfsg/debian/po/sv.po @@ -0,0 +1,35 @@ +# Swedish translation for rott debconf template. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the rott package. +# Daniel Nylander , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-08 09:47+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Hämta datafiler från sharewareversionen?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The Rise of the Triad game requires additional data files which are not available under a free license and cannot be distributed by Debian. You may choose to automatically download the shareware data files from the Internet and install them on the system now." +msgstr "Rise of the Triad kräver ytterligare datafiler som inte finns tillgängliga under en fri licens och kan därför inte distribueras av Debian. Du kan välja att automatiskt hämta ner datafilerna från sharewareversionen från Internet och installera dem på ditt system." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "Installationen kräver ungefär 15 MB ledigt utrymme på din hårddisk." + --- rott-1.0+dfsg.orig/debian/po/nl.po +++ rott-1.0+dfsg/debian/po/nl.po @@ -0,0 +1,43 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-16 19:18+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Wilt u shareware-databestanden ophalen?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"Het spel 'Rise of the Triad' vereist aanvullende databastanden die niet " +"beschikbaar zijn met een vrije licentie, en dus niet door Debian verspreid " +"kunnen worden. U kunt deze shareware-databastanden nu automatisch ophalen " +"via het Internet en ze zo op uw systeem installeren." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "De installatie vereist ongeveer 15MB aan vrije schijfruimte." --- rott-1.0+dfsg.orig/debian/po/fr.po +++ rott-1.0+dfsg/debian/po/fr.po @@ -0,0 +1,44 @@ +# French translation of rott. +# Copyright (C) 2007 THE rott'S COPYRIGHT HOLDER +# This file is distributed under the same license as the rott package. +# Sylvain Archenault , 2007. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-08 12:22+0200\n" +"Last-Translator: Sylvain Archenault \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Faut-il télécharger les fichiers de données du partagiciel ?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"Le jeu « The Rise of the Triad » a besoin de fichiers de données " +"supplémentaires qui ne sont pas disponibles sous une licence libre et ne " +"peuvent pas être distribués par Debian. Vous pouvez les télécharger " +"automatiquement sur l'Internet et les installer maintenant sur le système." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "L'installation a besoin d'environ 15 Mo d'espace disque." --- rott-1.0+dfsg.orig/debian/po/templates.pot +++ rott-1.0+dfsg/debian/po/templates.pot @@ -0,0 +1,39 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "" --- rott-1.0+dfsg.orig/debian/po/fi.po +++ rott-1.0+dfsg/debian/po/fi.po @@ -0,0 +1,32 @@ +msgid "" +msgstr "" +"Project-Id-Version: rott_1.0-5\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-12-18 19:53+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: Finland\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Ladataanko maksullisina julkisohjelmina jaettavat datatiedostot?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The Rise of the Triad game requires additional data files which are not available under a free license and cannot be distributed by Debian. You may choose to automatically download the shareware data files from the Internet and install them on the system now." +msgstr "The Rise of the Triad -peli vaatii lisädatatiedostoja, joita ei ole saatavilla vapaasti lisensoituna ja joita ei voida jakaa Debianin mukana. Voit nyt halutessasi automaattisesti ladata nämä maksullisina julkisohjelmina jaettavat datatiedostot Internetistä ja asentaa ne järjestelmään." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "Asennus vaatii noin 15 megatavua vapaata levytilaa." + --- rott-1.0+dfsg.orig/debian/po/cs.po +++ rott-1.0+dfsg/debian/po/cs.po @@ -0,0 +1,42 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-08 10:49+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Stáhnout sharewarové datové soubory?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"Hra The Rise of the Triad vyžaduje dodatečné datové soubory, které nejsou " +"šířeny pod svobodnou licencí a tedy nemohou být v Debianu distribuovány. " +"Nyní se můžete rozhodnout, zda tyto sharewarové soubory chcete stáhnout z " +"Internetu a nainstalovat do systému." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "Instalace bude potřebovat zhruba 15 MB volného místa na disku." --- rott-1.0+dfsg.orig/debian/po/POTFILES.in +++ rott-1.0+dfsg/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates --- rott-1.0+dfsg.orig/debian/po/pt.po +++ rott-1.0+dfsg/debian/po/pt.po @@ -0,0 +1,42 @@ +# Portuguese translation for rott's debconf messages. +# Copyright (C) 2007 +# This file is distributed under the same license as the rott package. +# Ricardo Silva , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-08 09:53+0100\n" +"Last-Translator: Ricardo Silva \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Obter os ficheiros de dados shareware?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"O jogo Rise of the Triad necessita de ficheiros adicionais com dados que não " +"estão disponíveis numa licença livre e não podem ser distribuídos pela " +"Debian. Pode escolher obtê-los automaticamente da Internet e instalá-los " +"agora no seu sistema." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "A instalação vai precisar de cerca de 15 MB de disco livre." --- rott-1.0+dfsg.orig/debian/po/pt_BR.po +++ rott-1.0+dfsg/debian/po/pt_BR.po @@ -0,0 +1,43 @@ +# rott Brazilian Portuguese translation +# Copyright (C) 2007, Eder L. Marques +# This file is distributed under the same license as the rott package. +# Eder L. Marques , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: rott 1.0-2\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-08 11:21-0300\n" +"Last-Translator: Eder L. Marques \n" +"Language-Team: l10n Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Baixar arquivos de dados shareware?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"O jogo Rise of the Triad necessita de arquivos de dados adicionais que não " +"estão disponíveis através de uma licença livre e não podem ser distribuídos " +"pelo Debian. Você pode escolher baixar automaticamente os arquivos de dados " +"shareware através da internet e instalá-los no sistema agora." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "A instalação irá precisar de cerca de 15 MB de espaço em disco livre." --- rott-1.0+dfsg.orig/debian/po/de.po +++ rott-1.0+dfsg/debian/po/de.po @@ -0,0 +1,43 @@ +# Translation of rott debconf templates to German +# Copyright Fabian Greffrath , 2007. +# Copyright (C) Helge Kreutzmann , 2007. +# This file is distributed under the same license as the rott package. +# +msgid "" +msgstr "" +"Project-Id-Version: rott 1\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-24 21:41+0200\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Shareware-Datendateien herunterladen?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"Das Spiel »Rise of the Triad« benötigt zusätzliche Datendateien, die nicht " +"unter einer freien Lizenz verfügbar sind und von Debian nicht vertrieben " +"werden können. Bitte wählen sie, ob die Shareware-Daten jetzt automatisch " +"aus dem Internet heruntergeladen und auf Ihrem System installiert werden " +"sollen." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "Die Installation wird etwa 15 MB freien Festplattenspeicher benötigen." --- rott-1.0+dfsg.orig/debian/po/gl.po +++ rott-1.0+dfsg/debian/po/gl.po @@ -0,0 +1,41 @@ +# Galician translation of rott's debconf templates +# This file is distributed under the same license as the rott package. +# Jacobo Tarrio , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-08 13:15+0200\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "¿Descargar os ficheiros de datos shareware?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"O xogo \"Rise of the Triad\" precisa de ficheiros de datos adicionais que " +"non están dispoñibles baixo unha licencia libre e que Debian non pode " +"distribuír. Pode descargar automaticamente os ficheiros de datos shareware " +"de Internet e instalalos no sistema." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "A instalación ha precisar duns 15 MB de espazo libre no disco." --- rott-1.0+dfsg.orig/debian/po/ta.po +++ rott-1.0+dfsg/debian/po/ta.po @@ -0,0 +1,43 @@ +# translation of rott.po to TAMIL +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr.T.Vasudevan , 2007. +msgid "" +msgstr "" +"Project-Id-Version: rott\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-09 21:18+0530\n" +"Last-Translator: Dr.T.Vasudevan \n" +"Language-Team: TAMIL \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "பகிர்பொருள் தரவு கோப்புகளை தரவிறக்கவா? " + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"ரைஸ் ஆப் தி ட்ரையாட் விளையாட்டுக்கு கூடுதல் தரவு கோப்புகள் தேவை. அவை இலவச காப்பு " +"உரிமையில் கிடைப்பதில்லையாகையால் டெபியன் அவற்றை வினியோகிக்க இயலாது. இணையத்திலிருந்து " +"தானியங்கியாக பகிர்பொருள் தரவு கோப்புகளை தரவிறக்கி கணினியில் இப்போது நிறுவ நீங்கள் " +"தேர்ந்தெடுக்கலாம்." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "நிறுவலுக்கு வட்டில் 15 எம்பி(MB) இடம் தேவை" --- rott-1.0+dfsg.orig/debian/po/ru.po +++ rott-1.0+dfsg/debian/po/ru.po @@ -0,0 +1,45 @@ +# translation of rott_debconf_ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2007. +msgid "" +msgstr "" +"Project-Id-Version: 1.0-2\n" +"Report-Msgid-Bugs-To: fabian@debian-unofficial.org\n" +"POT-Creation-Date: 2007-05-08 09:41+0200\n" +"PO-Revision-Date: 2007-05-10 21:52+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "Download shareware data files?" +msgstr "Скачать файлы данных shareware?" + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "" +"The Rise of the Triad game requires additional data files which are not " +"available under a free license and cannot be distributed by Debian. You may " +"choose to automatically download the shareware data files from the Internet " +"and install them on the system now." +msgstr "" +"Для игры Rise of the Triad требуются файлы данных, которые недоступны под " +"свободной лицензией и не могут распространяться Debian. Вы можете " +"автоматически скачать файлы данных shareware из интернет и установить их в " +"систему прямо сейчас." + +#. Type: boolean +#. Description +#: ../templates:2001 +msgid "The installation will require about 15 MB of free disk space." +msgstr "Для установки потребуется около 15 МБ на диске." --- rott-1.0+dfsg.orig/debian/docs +++ rott-1.0+dfsg/debian/docs @@ -0,0 +1,2 @@ +README +*.txt --- rott-1.0+dfsg.orig/debian/lintian/rott +++ rott-1.0+dfsg/debian/lintian/rott @@ -0,0 +1,2 @@ +# Directory created intentionally for data files. +rott: package-contains-empty-directory usr/share/games/rott/ --- rott-1.0+dfsg.orig/debian/menu +++ rott-1.0+dfsg/debian/menu @@ -0,0 +1,3 @@ +?package(rott):needs="X11" section="Games/Action"\ + title="ROTT" longtitle="Rise of the Triad -- The HUNT Begins"\ + command="/usr/games/rott -fullscreen" icon="/usr/share/pixmaps/rott.xpm" --- rott-1.0+dfsg.orig/debian/control +++ rott-1.0+dfsg/debian/control @@ -0,0 +1,22 @@ +Source: rott +Section: contrib/games +Priority: optional +Maintainer: Fabian Greffrath +Build-Depends: cdbs, debhelper (>= 5), dpatch, libsdl1.2-dev, libsdl-mixer1.2-dev +Standards-Version: 3.7.3 +Homepage: http://icculus.org/rott/ + +Package: rott +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, wget, unzip +Suggests: freepats, timidity +Description: Rise of the Triad -- The HUNT Begins + Rise of the Triad is a high quality, fast scrolling first-person perspective + 3D action game. It includes a lot of destructive enemies, an arsenal of + weapons from simple pistols to missile launchers, life-preserving armor, traps + and ambushes galore. + . + WARNING: Rise of the Triad features wanton and gratuitous violence. + . + This package contains no data files but can install the shareware data files + from the Internet. --- rott-1.0+dfsg.orig/debian/README.Debian +++ rott-1.0+dfsg/debian/README.Debian @@ -0,0 +1,14 @@ +Rise of the Triad for Debian +---------------------------- + +This is how I created rott_1.0+dfsg.orig.tar.gz: + + wget http://icculus.org/rott/releases/rott-1.0.tar.gz + tar xvzf rott-1.0.tar.gz + rm rott-1.0/rott/audio_wf.lib rott-1.0/rott/spball.lib + mv rott-1.0/rott/ rott-1.0+dfsg + mv rott-1.0/README rott-1.0/readme.txt rott-1.0+dfsg/ + mv rott-1.0/gpl.txt rott-1.0+dfsg/COPYING + tar cvzf rott_1.0+dfsg.orig.tar.gz rott-1.0+dfsg/ + + -- Fabian Greffrath Fri, 11 Jan 2008 17:00:00 +0100