[rott] 02/05: Imported Upstream version 1.1.2+svn287

Fabian Greffrath fabian-guest at moszumanska.debian.org
Thu Apr 30 15:03:00 UTC 2015


This is an automated email from the git hooks/post-receive script.

fabian-guest pushed a commit to branch master
in repository rott.

commit aede78d6690cc7f62324eaf3ac16cff3e4342734
Author: Fabian Greffrath <fabian+debian at greffrath.com>
Date:   Thu Apr 30 16:25:57 2015 +0200

    Imported Upstream version 1.1.2+svn287
---
 Makefile.am                              |   1 +
 Makefile_old                             |  33 ++++
 README                                   |  35 ++--
 configure.ac                             |  85 ++++++++++
 misc/icons.mk                            |   5 +
 misc/rott.png                            | Bin 0 -> 1820 bytes
 misc/rott.svg                            | 282 +++++++++++++++++++++++++++++++
 misc/rott.xpm                            | 219 ++++++++++++++++--------
 misc/runrott.sh                          |   2 +-
 rott/Makefile.am                         |  56 ++++++
 rott/{Makefile => Makefile_old}          |  10 +-
 rott/_rt_floo.h                          |   2 +-
 rott/_rt_ted.h                           |  13 --
 rott/audiolib/Makefile.am                |  13 ++
 rott/audiolib/{Makefile => Makefile_old} |   0
 rott/develop.h                           |   8 +-
 rott/modexlib.c                          |  13 +-
 rott/rt_actor.c                          |  15 +-
 rott/rt_cfg.c                            |  13 +-
 rott/rt_cfg.h                            |   4 +-
 rott/rt_draw.c                           |  19 ++-
 rott/rt_floor.c                          |   9 +-
 rott/rt_game.c                           |   4 +-
 rott/rt_main.c                           |  53 ++++--
 rott/rt_main.h                           |  10 ++
 rott/rt_menu.c                           |  13 +-
 rott/rt_scale.c                          |   4 +-
 rott/rt_ted.c                            |   5 +-
 rott/rt_util.c                           |   2 +-
 rott/rt_view.c                           |  11 +-
 30 files changed, 765 insertions(+), 174 deletions(-)

diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..c2df278
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = rott
diff --git a/Makefile_old b/Makefile_old
new file mode 100755
index 0000000..d3c6fdd
--- /dev/null
+++ b/Makefile_old
@@ -0,0 +1,33 @@
+FLVRS=huntbgin darkwar rottcd rottsite
+ROTTS=$(addprefix rott-,$(FLVRS))
+SRCDIR=rott
+
+all: $(ROTTS)
+
+# Shareware Version
+rott-huntbgin:
+	$(MAKE) -C $(SRCDIR) tidy
+	$(MAKE) -C $(SRCDIR) ROTT=$@
+	mv $(SRCDIR)/$@ .
+
+# Commercial Version
+rott-darkwar:
+	$(MAKE) -C $(SRCDIR) tidy
+	$(MAKE) -C $(SRCDIR) ROTT=$@ SHAREWARE=0
+	mv $(SRCDIR)/$@ .
+
+# CD Version
+rott-rottcd:
+	$(MAKE) -C $(SRCDIR) tidy
+	$(MAKE) -C $(SRCDIR) ROTT=$@ SHAREWARE=0 SUPERROTT=1
+	mv $(SRCDIR)/$@ .
+
+# Site License CD Version
+rott-rottsite:
+	$(MAKE) -C $(SRCDIR) tidy
+	$(MAKE) -C $(SRCDIR) ROTT=$@ SHAREWARE=0 SITELICENSE=1
+	mv $(SRCDIR)/$@ .
+
+clean:
+	$(MAKE) -C $(SRCDIR) $@
+	$(RM) $(ROTTS) $(addsuffix .exe,$(ROTTS))
diff --git a/README b/README
index 20ccd98..b3440cb 100644
--- a/README
+++ b/README
@@ -71,23 +71,36 @@ distributions. Patches are always welcome. ;-)
 General Hints
 -------------
 
-To compile the source code under Linux, change to the rott/ directory and type:
+The following prerequisites are required to compile the source code:
 
-  make clean
+  autoconf
+  automake
+  pkg-config
+  SDL 1.2
+  SDL_mixer 1.2
+
+To compile the source code, type the following:
+
+  autoreconf -fiv
+  ./configure
   make
 
-The build system is setup to use shareware binaries.  If you want to use the
-registered version of ROTT, compile with:
+The resulting binaries can be found in the rott/ directory.
+
+The build system is setup to build the commercial variant of ROTT.
+This variant supports the Registered Version, the "Super ROTT" CD Version and
+the "Site License" CD Version of the game by automatically detecting and
+loading their corresponding multiplayer map files.
 
-  make SHAREWARE=0
+If you want to build the shareware version of ROTT, configure with:
 
-You may additionally append SUPERROTT=1 or SITELICENSE=1, if you want to use
-the CD version or the Site License CD version, respectively. However, make
-sure to only set one of them to 1 at once. You may want to edit rott/Makefile
-to make your changes persistent.
+  ./configure --enable-shareware
 
-It is generally recommended to build against the most recent version of 
-the Simple Direct Media Layer and SDL_mixer.
+Additionally, you may pass the "--enable-suffix=<suffix>" parameter to
+./configure in order to append a suffix to the executable file name,
+e.g. to tell the commercial and the shareware variants apart. You may
+also want to pass the "--enable-datadir=<datadir>" parameter to point
+the executables to the location of your game data files.
 
 
 ------------
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..8fb3628
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,85 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([rott], [1.1.2])
+AM_INIT_AUTOMAKE([foreign no-define])
+AC_CONFIG_SRCDIR([rott/version.h])
+#AC_CONFIG_HEADERS([config.h])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_RANLIB
+
+# Checks for libraries.
+AC_DEFINE([USE_SDL])
+PKG_CHECK_MODULES([SDL],       [sdl])
+PKG_CHECK_MODULES([SDL_mixer], [SDL_mixer])
+
+# Checks for header files.
+AC_DEFINE([PLATFORM_UNIX])
+AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stddef.h stdlib.h string.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_CHECK_HEADER_STDBOOL
+AC_C_INLINE
+AC_TYPE_INT16_T
+AC_TYPE_INT32_T
+AC_TYPE_INT8_T
+AC_TYPE_SIZE_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+
+# Checks for library functions.
+AC_FUNC_ALLOCA
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([memmove memset mkdir pow strcasecmp strerror strrchr strstr strtol])
+
+# Set to build the shareware version
+AC_ARG_ENABLE([shareware],
+              [AS_HELP_STRING([--enable-shareware],
+                              [set to build the shareware version])],
+              [AC_DEFINE([SHAREWARE])],
+              [])
+
+# Set executable file name suffix
+AC_ARG_ENABLE([suffix],
+              [AS_HELP_STRING([--enable-suffix],
+                              [set executable file name suffix])],
+              [suffix="$enableval"],
+              [suffix=no])
+
+case "$suffix" in
+no|yes)
+    suffix=
+    ;;
+*)
+    # Add leading dash
+    suffix=-${suffix}
+    ;;
+esac
+
+SUFFIX=${suffix}
+AC_SUBST([SUFFIX])
+
+# Set data file directory
+AC_ARG_ENABLE([datadir],
+              [AS_HELP_STRING([--enable-datadir],
+                              [set data file directory])],
+              [datadir="$enableval"],
+              [datadir=no])
+
+# Remove duplicate and trailing slashes
+datadir=`echo ${datadir} | tr -s '/' | sed 's|/*$||'`
+
+case "$datadir" in
+no|yes)
+    ;;
+*)
+    AC_DEFINE_UNQUOTED([DATADIR], ["$datadir/"])
+    ;;
+esac
+
+AC_CONFIG_FILES([Makefile rott/Makefile rott/audiolib/Makefile])
+AC_OUTPUT
diff --git a/misc/icons.mk b/misc/icons.mk
new file mode 100644
index 0000000..a4436e0
--- /dev/null
+++ b/misc/icons.mk
@@ -0,0 +1,5 @@
+rott.xpm: rott.png
+	convert $^ $@
+
+rott.png: rott.svg
+	inkscape --export-png=$@ $^
diff --git a/misc/rott.png b/misc/rott.png
new file mode 100644
index 0000000..f7ed469
Binary files /dev/null and b/misc/rott.png differ
diff --git a/misc/rott.svg b/misc/rott.svg
new file mode 100644
index 0000000..4e7950e
--- /dev/null
+++ b/misc/rott.svg
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg2993"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="rott.svg">
+  <title
+     id="title3880">rott icon</title>
+  <defs
+     id="defs2995">
+    <linearGradient
+       id="linearGradient3977">
+      <stop
+         style="stop-color:#b6db00;stop-opacity:1;"
+         offset="0"
+         id="stop3979" />
+      <stop
+         style="stop-color:#924900;stop-opacity:1;"
+         offset="1"
+         id="stop3981" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3961">
+      <stop
+         style="stop-color:#000024;stop-opacity:1;"
+         offset="0"
+         id="stop3963" />
+      <stop
+         style="stop-color:#494992;stop-opacity:1;"
+         offset="1"
+         id="stop3965" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3945">
+      <stop
+         style="stop-color:#6d4949;stop-opacity:1;"
+         offset="0"
+         id="stop3947" />
+      <stop
+         style="stop-color:#494924;stop-opacity:1;"
+         offset="1"
+         id="stop3949" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3917">
+      <stop
+         style="stop-color:#494924;stop-opacity:1;"
+         offset="0"
+         id="stop3919" />
+      <stop
+         style="stop-color:#494924;stop-opacity:0;"
+         offset="1"
+         id="stop3921" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3897">
+      <stop
+         id="stop3913"
+         offset="0"
+         style="stop-color:#060927;stop-opacity:1;" />
+      <stop
+         style="stop-color:#383058;stop-opacity:1;"
+         offset="1"
+         id="stop3901" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3889">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop3891" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop3893" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3814">
+      <stop
+         style="stop-color:#ff7d7d;stop-opacity:1;"
+         offset="0"
+         id="stop3816" />
+      <stop
+         id="stop3818"
+         offset="0.20312501"
+         style="stop-color:#590000;stop-opacity:1;" />
+      <stop
+         id="stop3820"
+         offset="0.328125"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0.42187497"
+         id="stop3822" />
+      <stop
+         id="stop3824"
+         offset="1"
+         style="stop-color:#555555;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       y2="-258.17926"
+       x2="-300.02075"
+       y1="-166.01627"
+       x1="-300.02075"
+       gradientTransform="matrix(0.33655928,0,0,0.34721102,100.47477,89.642679)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3019"
+       xlink:href="#linearGradient3814"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3945"
+       id="linearGradient3959"
+       x1="0"
+       y1="0"
+       x2="32"
+       y2="32"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3961"
+       id="linearGradient3975"
+       x1="32"
+       y1="32"
+       x2="0"
+       y2="0"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3977"
+       id="radialGradient3993"
+       cx="16"
+       cy="12.5"
+       fx="16"
+       fy="12.5"
+       r="3"
+       gradientTransform="matrix(1,0,0,1.8333333,0,-10.416667)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3977"
+       id="radialGradient4001"
+       cx="10.5"
+       cy="23.5"
+       fx="10.5"
+       fy="23.5"
+       r="5.5"
+       gradientTransform="matrix(1,0,0,0.63636364,0,8.5454545)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3977"
+       id="radialGradient4009"
+       cx="21.75"
+       cy="23.5"
+       fx="21.75"
+       fy="23.5"
+       r="5.25"
+       gradientTransform="matrix(1,0,0,0.66666667,0,7.8333333)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3945"
+       id="linearGradient4011"
+       gradientUnits="userSpaceOnUse"
+       x1="0"
+       y1="0"
+       x2="32"
+       y2="32" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="20"
+     inkscape:cx="18.588086"
+     inkscape:cy="15.921783"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:snap-bbox="false"
+     inkscape:bbox-paths="false"
+     inkscape:bbox-nodes="false"
+     inkscape:snap-bbox-edge-midpoints="true"
+     inkscape:snap-bbox-midpoints="true"
+     inkscape:snap-global="true"
+     inkscape:window-width="1600"
+     inkscape:window-height="841"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:snap-to-guides="false"
+     inkscape:snap-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3044"
+       empspacing="2"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="0.5px"
+       spacingy="0.5px"
+       originx="-0.5px"
+       originy="-0.5px"
+       empcolor="#000000"
+       empopacity="0.25098039"
+       dotted="false"
+       color="#9c9cdb"
+       opacity="0" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata2998">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>rott icon</dc:title>
+        <cc:license
+           rdf:resource="http://www.gnu.org/licenses/gpl-2.0" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Fabian Greffrath</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:date>7 Sep 2013</dc:date>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:url(#linearGradient4011);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       d="m 0.5,28.5 14,-28 2,0 14,28 -2,3 -26,0 z"
+       id="path3091"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:url(#linearGradient3975);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       d="m 2.5,29.5 13,-27 13,27 z"
+       id="path3093"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:url(#radialGradient3993);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       d="m 13.5,17.5 4,0 1,-1.5 -3,-10.5 -3,10.5 z"
+       id="path3095"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="use3097"
+       d="m 14.5,22.5 -1,-2 -3,0 -5,7 9,-3 z"
+       style="fill:url(#radialGradient4001);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:url(#radialGradient4009);fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       d="m 17.5,20.5 -1,2 0,2 9,3 -5,-7 z"
+       id="use3099"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+  </g>
+</svg>
diff --git a/misc/rott.xpm b/misc/rott.xpm
index 8327ce4..430a8a9 100644
--- a/misc/rott.xpm
+++ b/misc/rott.xpm
@@ -1,67 +1,154 @@
 /* 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",
-"               ..               ",
-"              +@@.              ",
-"             #$%@&              ",
-"             +*+=&.             ",
-"            #**+-*=             ",
-"            &;+>>=%+            ",
-"           .@$>>+,*$#           ",
-"          #=%>'&+)=@!           ",
-"          ~;=>,{&]>$*#          ",
-"         #&@>'>^{>]=%!          ",
-"         +@=])=^{>]]=*.         ",
-"        #$@>']!//+]](*&#        ",
-"        +%+)]]_:<!]>]=%~        ",
-"       .*=>)]]{[:}|]>>$&#       ",
-"       &@>)]]({[[{>]>|=$+       ",
-"      .@=]])]+^</{12||>$$#      ",
-"     #=@>]]]]>3{{!|||||($+      ",
-"     ~@(]])]]>]|||]||||>&&#     ",
-"    #$$>]]2>>]]>]>|+>|||=$!     ",
-"    + at +|]>+{^!||>|}{}4|||&$~    ",
-"   #$$|]]+{:<{1||+{/5}1||+&!    ",
-"   !*+]>+{:6[^~||!{<<5}1||!&.   ",
-"  #$&||({/:/{34||+3}{5{}141&!#  ",
-"  !$12!/{{3+4||||||4+33}}14+&+# ",
-" .*+|!}!+|||||||||||4441~3#4&&. ",
-"#&$1111||||||||4||44444444#4+&+ ",
-"~$!$$=======&=&&&&&&!!&&!!!!!&&#",
-"~$$$$*$*$%$*$$$$$$$$$&$$$&$&&&&.",
-" .....~...####~~.........#.###. "};
+static char *rott[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 116 2 ",
+"   c #030202",
+".  c #0B0B05",
+"X  c #060609",
+"o  c #09070A",
+"O  c #0C0A0B",
+"+  c #100E05",
+"@  c #180D00",
+"#  c #110E0E",
+"$  c #13110D",
+"%  c #0B0712",
+"&  c #0C0A12",
+"*  c #060618",
+"=  c #0D0C1B",
+"-  c #110D16",
+";  c #100F1C",
+":  c #141113",
+">  c #1A1513",
+",  c #1C1A11",
+"<  c #251604",
+"1  c #2A1B04",
+"2  c #3E1F02",
+"3  c #201C14",
+"4  c #251E18",
+"5  c #291F1A",
+"6  c #272206",
+"7  c #2D2504",
+"8  c #313204",
+"9  c #242014",
+"0  c #2D2B16",
+"q  c #272018",
+"w  c #2A201A",
+"e  c #342B1F",
+"r  c #3C3A1F",
+"t  c #0A0A24",
+"y  c #0D0D2B",
+"u  c #110F22",
+"i  c #131224",
+"p  c #14132B",
+"a  c #18152A",
+"s  c #0C0C34",
+"d  c #0F0F39",
+"f  c #141434",
+"g  c #181837",
+"h  c #12123C",
+"j  c #19193C",
+"k  c #312521",
+"l  c #352921",
+"z  c #3A2D24",
+"x  c #3D3324",
+"c  c #422D02",
+"v  c #542A01",
+"b  c #433502",
+"n  c #553301",
+"m  c #7C3F00",
+"M  c #433C25",
+"N  c #433329",
+"B  c #4A3A2D",
+"V  c #4E3D30",
+"C  c #533E34",
+"Z  c #444103",
+"A  c #5A4901",
+"S  c #644F01",
+"D  c #6F4F00",
+"F  c #615201",
+"G  c #695600",
+"H  c #695800",
+"J  c #6C6300",
+"K  c #746500",
+"L  c #7A7000",
+"P  c #7E7F00",
+"I  c #474225",
+"U  c #494327",
+"Y  c #4C4927",
+"T  c #4D422B",
+"R  c #4E4929",
+"E  c #50422F",
+"W  c #52492D",
+"Q  c #554134",
+"!  c #564931",
+"~  c #594934",
+"^  c #63493F",
+"/  c #151543",
+"(  c #1C1C44",
+")  c #1B1B4C",
+"_  c #1F1F51",
+"`  c #20204D",
+"'  c #222254",
+"]  c #25255B",
+"[  c #28285B",
+"{  c #292963",
+"}  c #2E2E69",
+"|  c #895600",
+" . c #845E00",
+".. c #965A00",
+"X. c #996200",
+"o. c #9B6E00",
+"O. c #947400",
+"+. c #9C7300",
+"@. c #9C7A00",
+"#. c #7B8300",
+"$. c #9D8B00",
+"%. c #A08200",
+"&. c #A28A00",
+"*. c #A49300",
+"=. c #A79C00",
+"-. c #A2A200",
+";. c #A9A300",
+":. c #AAAA00",
+">. c #A3B200",
+",. c #ADB400",
+"<. c #ACBA00",
+"1. c #A7C500",
+"2. c #AFC000",
+"3. c #B0C300",
+"4. c #B6DB00",
+"5. c None",
+/* pixels */
+"5.5.5.5.5.5.5.5.5.5.5.5.5.5.      5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.5.5.5.X 5 ^ 5   5.5.5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.5.5.5.  C > C   5.5.5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.5.5.  5 k X k w   5.5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.5.5.  C   [ X C   5.5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.5.  5 k a i a k 5   5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.5.  C O (   j X C   5.5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.X 5 l i a @ a i l q   5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.5.  Q . [ o D . ' o E   5.5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.X 5 z u [ + &.+ [ ; l w   5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.5.  Q O [ j b ;.Z g ' X Q   5.5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.X 5 z ; } - K ,.#.: ] - x q   5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.5.  Q O ' {   &.3.<.X ] ( O E   5.5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.  5 N - } ` < *.,.,.6 j [ & x q   5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.5.  Q # ` { a n %.=.;.A i ' j o E   5.5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.  w N - { { o m o.&.&. .o ' ' O N w   5.5.5.5.5.5.5.",
+"5.5.5.5.5.5.  Q # ) { { & v ..o.o.n & ' _ h O E   5.5.5.5.5.5.5.",
+"5.5.5.5.5.  w N & { { { '           ) _ _ _ o x q   5.5.5.5.5.5.",
+"5.5.5.5.5.X Q : ( { { ] { ] ] ' ' _ _ _ ) ) f $ E   5.5.5.5.5.5.",
+"5.5.5.5.  w B o { [ ] { ] ' ' ' ' _ _ _ ) ) ) o r q   5.5.5.5.5.",
+"5.5.5.5.  Q > j [ '         _ ' )         h ) y $ T   5.5.5.5.5.",
+"5.5.5.X 5 V X { ] & S &. at .c i _ u 2 X.o.S O / / o M 9   5.5.5.5.",
+"5.5.5.  Q > j [ p 8 ,.:.*.O.  _   | @.*.;.8 u / y , U   5.5.5.5.",
+"5.5.  w V . ] ( . >.4.<.;.&.  _   X.%.=.<.1.. y h   I 9   5.5.5.",
+"5.5.  Q 3 a ' O L :.,.;.J 7 X )   1 S $.;.,.P . d t , U   5.5.5.",
+"5.  q C X ] ; c O.G 7 X & f / ) ) y &   6 H @.b & s   I 9   5.5.",
+"5.  Q 4 f g   <   - f ) _ ) ) ) ) / / / y O   <   t * , U   5.5.",
+"X w E X ] ; - f _ _ _ ) ) ) / ) / / / / / h d t O % s   I 9   5.",
+"  B 5 p ' ' ' ' _ _ ) ) ) ) / / / / / / h d d d s s s * , r   5.",
+"5.$ #                                                   $ $ 5.5.",
+"5.  e ~ ~ ! ! ~ ! ! ! ! W ! W W W W T W T R R R U R Y Y 0   5.5.",
+"5.5.                                                      5.5.5."
+};
diff --git a/misc/runrott.sh b/misc/runrott.sh
index a71224d..86f15df 100755
--- a/misc/runrott.sh
+++ b/misc/runrott.sh
@@ -4,7 +4,7 @@
 # http://www.delphidude.com/personal/utilities/games/
 
 CONFIG=$HOME/.rott/darkwar/rott.rot
-EXE=./rott
+EXE=rott
 
 if [ $# != 1 ]; then
 	echo "usage: "$0" <RTL or RTC filename>"
diff --git a/rott/Makefile.am b/rott/Makefile.am
new file mode 100644
index 0000000..8987188
--- /dev/null
+++ b/rott/Makefile.am
@@ -0,0 +1,56 @@
+SUBDIRS = audiolib
+
+bin_PROGRAMS = rott at SUFFIX@
+rott at SUFFIX@_SOURCES = \
+	byteordr.c \
+	cin_actr.c \
+	cin_efct.c \
+	cin_evnt.c \
+	cin_glob.c \
+	cin_main.c \
+	cin_util.c \
+	dosutil.c \
+	dukemusc.c \
+	engine.c \
+	isr.c \
+	modexlib.c \
+	rt_actor.c \
+	rt_battl.c \
+	rt_build.c \
+	rt_cfg.c \
+	rt_com.c \
+	rt_crc.c \
+	rt_debug.c \
+	rt_dmand.c \
+	rt_door.c \
+	rt_draw.c \
+	rt_err.c \
+	rt_floor.c \
+	rt_game.c \
+	rt_in.c \
+	rt_main.c \
+	rt_map.c \
+	rt_menu.c \
+	rt_msg.c \
+	rt_net.c \
+	rt_playr.c \
+	rt_rand.c \
+	rt_scale.c \
+	rt_sound.c \
+	rt_spbal.c \
+	rt_sqrt.c \
+	rt_stat.c \
+	rt_state.c \
+	rt_str.c \
+	rt_swift.c \
+	rt_ted.c \
+	rt_util.c \
+	rt_vid.c \
+	rt_view.c \
+	scriplib.c \
+	watcom.c \
+	winrott.c \
+	w_wad.c \
+	z_zone.c
+rott at SUFFIX@_CFLAGS = @SDL_CFLAGS@ @SDL_mixer_CFLAGS@
+rott at SUFFIX@_LDADD = audiolib/libaudiolib.a @SDL_LIBS@ @SDL_mixer_LIBS@
diff --git a/rott/Makefile b/rott/Makefile_old
similarity index 86%
rename from rott/Makefile
rename to rott/Makefile_old
index 8470cd7..5a3f85a 100644
--- a/rott/Makefile
+++ b/rott/Makefile_old
@@ -1,14 +1,8 @@
 # Determine which version to build
-# Make sure only one of the following is set to 1 at once
-# Triple 0 will build the commercial/registered version
-
-SHAREWARE   ?= 1
-SUPERROTT   ?= 0
-SITELICENSE ?= 0
+# Leave at 0 to build the commercial/superrott/sitelicense version
 
+SHAREWARE ?= 0
 CPPFLAGS += -DSHAREWARE=$(SHAREWARE)
-CPPFLAGS += -DSUPERROTT=$(SUPERROTT)
-CPPFLAGS += -DSITELICENSE=$(SITELICENSE)
 
 ROTT ?= rott
 
diff --git a/rott/_rt_floo.h b/rott/_rt_floo.h
index 9c9c608..6abb730 100644
--- a/rott/_rt_floo.h
+++ b/rott/_rt_floo.h
@@ -23,6 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //#define	MAXVIEWHEIGHT MAXSCREENHEIGHT	
 #define MAXSKYSEGS    2048
 #define MAXSKYDATA    8
-#define MINSKYHEIGHT  0//148 //bna++ sky change here
+#define MINSKYHEIGHT  148
 
 #endif
diff --git a/rott/_rt_ted.h b/rott/_rt_ted.h
index 27152e4..247baa4 100644
--- a/rott/_rt_ted.h
+++ b/rott/_rt_ted.h
@@ -84,19 +84,6 @@ typedef struct
 
 #define  MAXSILLYSTRINGS 32
 
-#if (SHAREWARE==0)
-   #define  STANDARDGAMELEVELS   (DATADIR "DARKWAR.RTL")
-   #if (SUPERROTT==1)
-       #define  STANDARDBATTLELEVELS (DATADIR "ROTTCD.RTC")
-   #elif (SITELICENSE==1)
-       #define  STANDARDBATTLELEVELS (DATADIR "ROTTSITE.RTC")
-   #else
-       #define  STANDARDBATTLELEVELS (DATADIR "DARKWAR.RTC")
-   #endif
-#else
-   #define  STANDARDGAMELEVELS   (DATADIR "HUNTBGIN.RTL")
-   #define  STANDARDBATTLELEVELS (DATADIR "HUNTBGIN.RTC")
-#endif
 
 
 
diff --git a/rott/audiolib/Makefile.am b/rott/audiolib/Makefile.am
new file mode 100644
index 0000000..c3a2a84
--- /dev/null
+++ b/rott/audiolib/Makefile.am
@@ -0,0 +1,13 @@
+noinst_LIBRARIES = libaudiolib.a
+libaudiolib_a_SOURCES = \
+	dsl.c \
+	fx_man.c \
+	ll_man.c \
+	multivoc.c \
+	mv_mix.c \
+	mvreverb.c \
+	nodpmi.c \
+	pitch.c \
+	user.c \
+	usrhooks.c
+libaudiolib_a_CFLAGS = @SDL_CFLAGS@
diff --git a/rott/audiolib/Makefile b/rott/audiolib/Makefile_old
similarity index 100%
rename from rott/audiolib/Makefile
rename to rott/audiolib/Makefile_old
diff --git a/rott/develop.h b/rott/develop.h
index c4383c6..a61393a 100644
--- a/rott/develop.h
+++ b/rott/develop.h
@@ -40,10 +40,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #define LOWCOST  0
 
 #define BNACRASHPREVENT  1 //bna added 
-// Make sure only one of the following are on at one time
-//#define SHAREWARE   1
-//#define SUPERROTT   0
-//#define SITELICENSE 0
+// Flavor selection (shareware, registered, cd version, site license) has moved to the Makefile
+#ifndef SHAREWARE
+#define SHAREWARE 0
+#endif
 
 // cute little dopefish thing, only works with special patch?
 #define DOPEFISH 0
diff --git a/rott/modexlib.c b/rott/modexlib.c
index 513689b..ad6e00b 100644
--- a/rott/modexlib.c
+++ b/rott/modexlib.c
@@ -39,6 +39,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "memcheck.h"
 #include "rt_util.h"
 #include "rt_net.h" // for GamePaused
+#include "myprint.h"
 
 static void StretchMemPicture ();
 // GLOBAL VARIABLES
@@ -796,6 +797,10 @@ int		iG_playerTilt;
 void DrawCenterAim ()
 {
 	int x;
+
+	int percenthealth = (locplayerstate->health * 10) / MaxHitpointsForCharacter(locplayerstate);
+	int color = percenthealth < 3 ? egacolor[RED] : percenthealth < 4 ? egacolor[YELLOW] : egacolor[GREEN];
+
 	if (iG_aimCross && !GamePaused){
 		if (( ingame == true )&&(iGLOBAL_SCREENWIDTH>320)){
 			  if ((iG_playerTilt <0 )||(iG_playerTilt >iGLOBAL_SCREENHEIGHT/2)){
@@ -806,22 +811,22 @@ void DrawCenterAim ()
 
 			  for (x=iG_X_center-10;x<=iG_X_center-4;x++){
 				  if ((iG_buf_center+x < bufofsTopLimit)&&(iG_buf_center+x > bufofsBottomLimit)){
-					 *(iG_buf_center+x) = 75;
+					 *(iG_buf_center+x) = color;
 				  }
 			  }
 			  for (x=iG_X_center+4;x<=iG_X_center+10;x++){
 				  if ((iG_buf_center+x < bufofsTopLimit)&&(iG_buf_center+x > bufofsBottomLimit)){
-					 *(iG_buf_center+x) = 75;
+					 *(iG_buf_center+x) = color;
 				  }
 			  }
 			  for (x=10;x>=4;x--){
 				  if (((iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) < bufofsTopLimit)&&((iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) > bufofsBottomLimit)){
-					 *(iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = 75;
+					 *(iG_buf_center-(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = color;
 				  }
 			  }
 			  for (x=4;x<=10;x++){
 				  if (((iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) < bufofsTopLimit)&&((iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) > bufofsBottomLimit)){
-					 *(iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = 75;
+					 *(iG_buf_center+(x*iGLOBAL_SCREENWIDTH)+iG_X_center) = color;
 				  }
 			  }
 		}
diff --git a/rott/rt_actor.c b/rott/rt_actor.c
index 6780f04..de9a5bb 100644
--- a/rott/rt_actor.c
+++ b/rott/rt_actor.c
@@ -251,7 +251,7 @@ static int        starthitpoints[4][NUMENEMIES+2] =
                    {0,0,60,80,70,70,75,525,300,350,175,2800,3800,5900,4800,-1,350,2}};
 
 
-static statobj_t  *touchsprite;
+static statobj_t  *touchsprite = NULL;
 
 
 static const byte dirdiff[8][8] = {{0,1,2,3,4,3,2,1},{1,0,1,2,3,4,3,2},
@@ -1621,11 +1621,8 @@ void SpawnStand (classtype which, int tilex, int tiley, int dir, int ambush)
 
 
  #if 0
- #if (SUPERROTT == 1)
-
+ if (gamestate.Product == ROTT_SUPERCD)
    ConsiderAlternateActor(new,which);
-
- #endif
  #endif
 
    StandardEnemyInit(new,dir);
@@ -1671,10 +1668,9 @@ void SpawnPatrol (classtype which, int tilex, int tiley, int dir)
 {statetype *temp;
  int path=PATH;
 #if 0
-#if (SUPERROTT == 1)
+if (gamestate.Product == ROTT_SUPERCD)
  char *altstartlabel;
 #endif
-#endif
 
 
 
@@ -1711,10 +1707,9 @@ void SpawnPatrol (classtype which, int tilex, int tiley, int dir)
 
 
    #if 0
-   #if (SUPERROTT == 1)
+   if (gamestate.Product == ROTT_SUPERCD)
    ConsiderAlternateActor(new,which);
    #endif
-   #endif
 
    StandardEnemyInit(new,dir);
 
@@ -11070,7 +11065,7 @@ void T_Use(objtype*ob)
   {
 #if (SHAREWARE == 0)
    case b_darianobj:
-    if (!DoPanicMapping())
+    if (touchsprite && !DoPanicMapping())
        touchsprite->flags |= FL_ACTIVE;
 	 if ((!sprites[PLAYER[0]->tilex][PLAYER[0]->tiley]) && (ob->areanumber == PLAYER[0]->areanumber))
 	  {SpawnNewObj(PLAYER[0]->tilex,PLAYER[0]->tiley,&s_dspear1,spearobj);
diff --git a/rott/rt_cfg.c b/rott/rt_cfg.c
index 8355636..c4ea802 100644
--- a/rott/rt_cfg.c
+++ b/rott/rt_cfg.c
@@ -2030,6 +2030,7 @@ void WriteConfig (void)
    memset(passwordtemp,0,sizeof(passwordtemp));
    ConvertPasswordStringToString ( &passwordtemp[0] );
    SafeWriteString(file,&passwordtemp[0]);
+   SafeWriteString(file,"\n");
 
    close (file);
 #endif
@@ -2047,13 +2048,12 @@ void WriteConfig (void)
 
 void GetAlternatePath (char * tokenstr, AlternateInformation *info)
 {
-   strcpy (&info->path[0], ".\0");
+   info->path = ".";
    GetToken (true);
    if (!stricmp (token, tokenstr))
       {
       GetTokenEOL (false);
-      memset (&info->path[0], 0, sizeof (info->path));
-      strcpy (&info->path[0], &name[0]);
+      info->path = strdup(name);
       }
 }
 
@@ -2068,7 +2068,7 @@ void GetAlternateFile (char * tokenstr, AlternateInformation *info)
 {
    // Read in remote sound file
    //
-   strcpy (&info->file[0], "foo.foo\0");
+   info->file = "foo.foo";
    GetToken (true);
    if (!stricmp (token, tokenstr))
       {
@@ -2079,11 +2079,10 @@ void GetAlternateFile (char * tokenstr, AlternateInformation *info)
             {
             #if (SHAREWARE == 0)
             info->avail = true;
-            memset (&info->file[0], 0, sizeof (info->file));
-            strcpy (&info->file[0], &token[0]);
+            info->file = strdup(token);
             #else
             printf("Alternate file %s ignored.\n",token);
-            memset (&info->file[0], 0, sizeof (info->file));
+            info->file = "";
             #endif
             }
          }
diff --git a/rott/rt_cfg.h b/rott/rt_cfg.h
index 3f6cd28..a803636 100644
--- a/rott/rt_cfg.h
+++ b/rott/rt_cfg.h
@@ -75,9 +75,9 @@ extern byte    passwordstring[20];
 
 typedef struct
 {
-   char path[41];
+   char *path;
    boolean avail;
-   char file[14];
+   char *file;
 } AlternateInformation;
 
 extern AlternateInformation RemoteSounds;
diff --git a/rott/rt_draw.c b/rott/rt_draw.c
index 74b12f4..a04a95c 100644
--- a/rott/rt_draw.c
+++ b/rott/rt_draw.c
@@ -1636,7 +1636,7 @@ void SetSpriteLightLevel (int x, int y, visobj_t * sprite, int dir, int fullbrig
 
    if (fog)
       {
-      i=(sprite->viewheight>>normalshade)+minshade;
+      i=((sprite->viewheight*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
       if (i>maxshade) i=maxshade;
       sprite->colormap=colormap+(i<<8);
       }
@@ -1697,7 +1697,7 @@ void SetColorLightLevel (int x, int y, visobj_t * sprite, int dir, int color, in
 
    if (fog)
       {
-      i=(height>>normalshade)+minshade;
+      i=((height*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
       if (i>maxshade) i=maxshade;
       sprite->colormap=map+(i<<8);
       }
@@ -1792,7 +1792,7 @@ void SetWallLightLevel (wallcast_t * post)
       }
    if (fog)
       {
-      i =(post->wallheight>>normalshade)+minshade-lv+la;
+      i =((post->wallheight*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade-lv+la;
       if (i>maxshade+la) i=maxshade+la;
       shadingtable=colormap+(i<<8);
       }
@@ -4114,7 +4114,7 @@ void DrawBackground ( byte * bkgnd )
 //   int plane;
    int size;
 
-   size=linewidth*400;
+   size=linewidth*200;
 
 #ifdef DOS
    for (plane=0;plane<4;plane++)
@@ -4138,7 +4138,7 @@ void PrepareBackground ( byte * bkgnd )
 //   int plane;
    int size;
 
-   size=linewidth*400;
+   size=linewidth*200;
 
 #ifdef DOS
    for (plane=0;plane<4;plane++)
@@ -6009,6 +6009,7 @@ void DrawMaskedRotRow(int count, byte * dest, byte * src)
 
 void DrawSkyPost (byte * buf, byte * src, int height)
 {
+#if 0
 // bna fix for missing sky by high res eg 800x600
 // when sky is >400 (max skyheight) then reverse mouintain to missing spot
 // there should be 200 line of mouintain (400+200) = 600 height lines
@@ -6033,13 +6034,17 @@ void DrawSkyPost (byte * buf, byte * src, int height)
 		}
 	// bna section end
 	}
-	else {
+	else
+#endif
+	{
+	int i = 0;
+	const byte *orig_src = src;
 	// org code
 		while (height--) {
 			*buf = shadingtable[*src];
 			
 			buf += linewidth;
-			src++;
+			src = orig_src + (++i*200/iGLOBAL_SCREENHEIGHT);
 		}
 	//	
 	}
diff --git a/rott/rt_floor.c b/rott/rt_floor.c
index 026e160..5028eb9 100644
--- a/rott/rt_floor.c
+++ b/rott/rt_floor.c
@@ -105,14 +105,15 @@ void DrawSky( void )
    else
       shadingtable=colormap+(1<<12);
 
-   ofs=(((maxheight)-(player->z))>>3)+(centery-(viewheight>>1));
+   ofs=(((maxheight)-(player->z))>>3)+(centery*200/iGLOBAL_SCREENHEIGHT-((viewheight*200/iGLOBAL_SCREENHEIGHT)>>1));
+
    if (ofs>centerskypost)
       {
       ofs=centerskypost;
       }
-   else if (((centerskypost-ofs)+viewheight)>1799)
+   else if (((centerskypost-ofs)+viewheight*200/iGLOBAL_SCREENHEIGHT)>1799)
       {
-      ofs=-(1799-(centerskypost+viewheight));
+      ofs=-(1799-(centerskypost+viewheight*200/iGLOBAL_SCREENHEIGHT));
       }
 //ofs=centerskypost;
 #ifdef DOS
@@ -527,7 +528,7 @@ void SetFCLightLevel (int height)
       }
    if (fog)
       {
-      i=(height>>normalshade)+minshade;
+      i=((height*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
       if (i>maxshade) i=maxshade;
       shadingtable=colormap+(i<<8);
       }
diff --git a/rott/rt_game.c b/rott/rt_game.c
index 6654d9a..6de0ee3 100644
--- a/rott/rt_game.c
+++ b/rott/rt_game.c
@@ -4854,8 +4854,8 @@ boolean SaveTheGame (int num, gamestorage_t * game)
    memset (&game->info, 0, sizeof (game->info));
    if (GameLevels.avail == true)
    {
-      memcpy (&game->info.path[0], &GameLevels.path[0], sizeof (GameLevels.path));
-      memcpy (&game->info.file[0], &GameLevels.file[0], sizeof (GameLevels.file));
+      game->info.path = GameLevels.path;
+      game->info.file = GameLevels.file;
       game->info.avail = true;
    }
 
diff --git a/rott/rt_main.c b/rott/rt_main.c
index 08de70c..cb6a011 100644
--- a/rott/rt_main.c
+++ b/rott/rt_main.c
@@ -179,6 +179,7 @@ extern void RecordDemoQuery ( void );
 int main (int argc, char *argv[])
 {
     char *macwd;
+    extern char *BATTMAPS;
 #ifndef DOS
 	_argc = argc;
 	_argv = argv;
@@ -214,13 +215,33 @@ int main (int argc, char *argv[])
    gamestate.Version = ROTTVERSION;
 
 #if ( SHAREWARE == 1 )
+   BATTMAPS = strdup(STANDARDBATTLELEVELS);
+   FixFilePath(BATTMAPS);
    gamestate.Product = ROTT_SHAREWARE;
-#elif ( SUPERROTT == 1 )
-   gamestate.Product = ROTT_SUPERCD;
-#elif ( SITELICENSE == 1 )
-   gamestate.Product = ROTT_SITELICENSE;
 #else
-   gamestate.Product = ROTT_REGISTERED;
+   BATTMAPS = strdup(SITELICENSEBATTLELEVELS);
+   FixFilePath(BATTMAPS);
+   if (!access(BATTMAPS, R_OK))
+   {
+       gamestate.Product = ROTT_SITELICENSE;
+   }
+   else
+   {
+       free(BATTMAPS);
+       BATTMAPS = strdup(SUPERROTTBATTLELEVELS);
+       FixFilePath(BATTMAPS);
+       if (!access(BATTMAPS, R_OK))
+       {
+           gamestate.Product = ROTT_SUPERCD;
+       }
+       else
+       {
+           free(BATTMAPS);
+           BATTMAPS = strdup(STANDARDBATTLELEVELS);
+           FixFilePath(BATTMAPS);
+           gamestate.Product = ROTT_REGISTERED;
+       }
+   }
 #endif
 
    DrawRottTitle ();
@@ -821,7 +842,7 @@ void SetupWads( void )
 {
    char  *newargs[99];
    int i, arg, argnum = 0;
-   char tempstr[129];
+   char *tempstr = NULL;
    char *PStrings[] = {"AIM", "FULLSCREEN", "WINDOW", "RESOLUTION", NULL };
 
    // These must be checked here so that they can override the cfg file
@@ -867,8 +888,9 @@ void SetupWads( void )
    arg = CheckParm ("filertl");
    if (arg!=0)
    {
-	   FILE *f;char buf[32];
+	   FILE *f;char *buf = malloc(32);
 	   if (_argv[arg+1] != 0) { //are there a filename included
+		   tempstr = realloc(tempstr, 129 + strlen(_argv[arg+1]));
 		   strcpy (tempstr,_argv[arg+1]);//copy it to tempstr
 		   if (strlen (tempstr) < MAX_PATH) {
 			   if (access (tempstr, 0) != 0) { //try open
@@ -887,8 +909,9 @@ void SetupWads( void )
 			   }else{
 					fread(buf,3,3,f);//is the 3 first letters RTL (RTC)
 				    if (((strstr(buf,"RTL") != 0)||strstr(buf,"RTC") != 0)) {
-						strcpy (GameLevels.file,tempstr);
+						GameLevels.file = strdup(tempstr);
 						GameLevels.avail++;
+						buf = realloc(buf, 32 + strlen(tempstr));
 						strcpy (buf,"Adding ");
 						strcat (buf,tempstr);
 						printf("%s", buf);
@@ -897,14 +920,16 @@ void SetupWads( void )
 			   }
 		   }
 	   }else{printf("Missing RTL filename");}
+	   free(buf);
    }
 NoRTL:;
    // Check for rtc files
    arg = CheckParm ("filertc");
    if (arg!=0)
    {
-	   FILE *f;char buf[32];
+	   FILE *f;char *buf = malloc(32);
 	   if (_argv[arg+1] != 0) { //are there a filename included
+		   tempstr = realloc(tempstr, 129 + strlen(_argv[arg+1]));
 		   strcpy (tempstr,_argv[arg+1]);//copy it to tempstr
 		   if (strlen (tempstr) < MAX_PATH) {
 			   if (access (tempstr, 0) != 0) { //try open
@@ -923,8 +948,9 @@ NoRTL:;
 			   }else{
 					fread(buf,3,3,f);//is the 3 first letters RTL (RTC)
 				    if (((strstr(buf,"RTL") != 0)||strstr(buf,"RTC") != 0)) {
-						strcpy (BattleLevels.file,tempstr);
+						BattleLevels.file = strdup(tempstr);
 						BattleLevels.avail++;
+						buf = realloc(buf, 32 + strlen(tempstr));
 						strcpy (buf,"Adding ");
 						strcat (buf,tempstr);
 						printf("%s", buf);
@@ -933,6 +959,7 @@ NoRTL:;
 			   }
 		   }
 	   }else{printf("Missing RTC filename");}
+	   free(buf);
    }
 NoRTC:;
 
@@ -981,18 +1008,22 @@ NoRTC:;
       {
       char  *src;
 
+      tempstr = realloc(tempstr, strlen(RemoteSounds.path) + strlen(RemoteSounds.file) + 2);
       strcpy (tempstr,RemoteSounds.path);
       src = RemoteSounds.path + strlen(RemoteSounds.path) - 1;
       if (*src != '\\')
          strcat (tempstr,"\\\0");
       strcat (tempstr,RemoteSounds.file);
-      newargs [argnum++] = tempstr;
+      newargs [argnum++] = strdup(tempstr);
       }
    else
       {
       newargs [argnum++] = DATADIR "REMOTE1.RTS";
       }
 
+   if (tempstr)
+      free(tempstr);
+
    newargs [argnum++] = NULL;
 
    W_InitMultipleFiles(newargs);
diff --git a/rott/rt_main.h b/rott/rt_main.h
index 746e6ac..13a5e8d 100644
--- a/rott/rt_main.h
+++ b/rott/rt_main.h
@@ -31,6 +31,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "rottnet.h"
 #include "rt_battl.h"
 
+#if (SHAREWARE==0)
+   #define  STANDARDGAMELEVELS   (DATADIR "DARKWAR.RTL")
+   #define  STANDARDBATTLELEVELS (DATADIR "DARKWAR.RTC")
+   #define  SUPERROTTBATTLELEVELS (DATADIR "ROTTCD.RTC")
+   #define  SITELICENSEBATTLELEVELS (DATADIR "ROTTSITE.RTC")
+#else
+   #define  STANDARDGAMELEVELS   (DATADIR "HUNTBGIN.RTL")
+   #define  STANDARDBATTLELEVELS (DATADIR "HUNTBGIN.RTC")
+#endif
+
 enum
 {vl_low,
  vl_medium,
diff --git a/rott/rt_menu.c b/rott/rt_menu.c
index aed465a..1076aa6 100644
--- a/rott/rt_menu.c
+++ b/rott/rt_menu.c
@@ -5359,9 +5359,9 @@ void DrawExtOptionsMenu (void)
 
    FlipMenuBuf();
 }
-extern long inverse_mouse;
+extern int inverse_mouse;
 extern boolean usemouselook;
-extern int iG_aimCross;
+extern boolean iG_aimCross;
 extern boolean usejump;
 extern boolean sdl_fullscreen;
 
@@ -7155,8 +7155,6 @@ void CP_TeamPlayErrorMessage
 //
 //****************************************************************************
 
-#if (SITELICENSE == 0)
-
 #define SITELINES 8
 
 char *sitemessage[] =
@@ -7171,8 +7169,6 @@ char *sitemessage[] =
    "For more on site licenses, see ORDERING INFO."
    };
 
-#endif
-
 void CP_ModemGameMessage (int player  )
 
    {
@@ -7215,7 +7211,8 @@ void CP_ModemGameMessage (int player  )
          MenuBufCPrint ("Please wait while\nMaster selects\nCOMM-BAT options.");
          }
 
-#if (SITELICENSE == 0)
+if (gamestate.Product != ROTT_SITELICENSE)
+{
       if (networkgame==true)
          {
          for( i = 0; i < SITELINES; i++ )
@@ -7224,7 +7221,7 @@ void CP_ModemGameMessage (int player  )
                sitemessage[ i ] );
             }
          }
-#endif
+}
       }
 
    FlipMenuBuf();
diff --git a/rott/rt_scale.c b/rott/rt_scale.c
index ff4d839..e4bbdf4 100644
--- a/rott/rt_scale.c
+++ b/rott/rt_scale.c
@@ -149,7 +149,7 @@ void SetLightLevel (int height)
       }
    if (fog)
       {
-      i=(height>>normalshade)+minshade;
+      i=((height*200/iGLOBAL_SCREENHEIGHT)>>normalshade)+minshade;
       if (i>maxshade) i=maxshade;
       shadingtable=colormap+(i<<8);
       }
@@ -861,7 +861,7 @@ void ScaleWeapon (int xoff, int y, int shapenum)
                 return;         // off the left side
 
    dc_iscale=0xffffffffu/(unsigned)dc_invscale;
-   dc_texturemid=(((p->origsize>>1)+p->topoffset)<<SFRACBITS)+(SFRACUNIT>>1);
+   dc_texturemid=(((p->origsize>>1)+p->topoffset)<<SFRACBITS)+(SFRACUNIT>>2);
    sprtopoffset=(centeryclipped<<16) - FixedMul(dc_texturemid,dc_invscale);
 
 //
diff --git a/rott/rt_ted.c b/rott/rt_ted.c
index a9a76d1..8a79d55 100644
--- a/rott/rt_ted.c
+++ b/rott/rt_ted.c
@@ -115,7 +115,7 @@ static cachetype * cachelist;
 static word cacheindex;
 static boolean CachingStarted=false;
 static char * ROTTMAPS = STANDARDGAMELEVELS;
-static char * BATTMAPS = STANDARDBATTLELEVELS;
+char * BATTMAPS;
 
 static char NormalWeaponTiles[ 10 ] =
    {
@@ -1669,8 +1669,7 @@ void GetMapFileName ( char * filename )
 void SetBattleMapFileName ( char * filename )
 {
    BattleLevels.avail = true;
-   memset (&(BattleLevels.file[0]), 0, sizeof (BattleLevels.file));
-   strcpy (&(BattleLevels.file[0]), filename);
+   BattleLevels.file = strdup(filename);
 }
 
 /*
diff --git a/rott/rt_util.c b/rott/rt_util.c
index 20177f9..e455b5f 100644
--- a/rott/rt_util.c
+++ b/rott/rt_util.c
@@ -1851,7 +1851,7 @@ boolean UL_ChangeDirectory (char *path)
 
    return (true);
 #else
-	if (!*path) {
+	if (!path || !*path) {
 		return true;
 	}
 	
diff --git a/rott/rt_view.c b/rott/rt_view.c
index 57ca868..5d8f911 100644
--- a/rott/rt_view.c
+++ b/rott/rt_view.c
@@ -386,19 +386,12 @@ void SetViewSize
    //   SetTextMode (  );
    //   viewheight=viewheight;
    height = viewheight;
-   if ( height > 168 )
+   if ( height > 168*iGLOBAL_SCREENHEIGHT/200 )
    {
         // Prevent weapon from being scaled too big
-	    height = 168;
-	  	if ( iGLOBAL_SCREENWIDTH == 640) {
-			height = 260;
-		}else if ( iGLOBAL_SCREENWIDTH == 800) {
-			height = 360;
-		}
+	    height = 168*iGLOBAL_SCREENHEIGHT/200;
    }
 
-   if ((G_weaponscale > 150)&&(G_weaponscale <600)){height = G_weaponscale;}
-   if ( iGLOBAL_SCREENWIDTH == 320) {G_weaponscale=G_weaponscale/2;}
    weaponscale = ( height << 16 ) / 168;//( height << 16 ) = 170 * 65536
 
   

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/rott.git



More information about the Pkg-games-commits mailing list