aboutsummaryrefslogtreecommitdiff
path: root/games/asc
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2001-02-17 21:51:31 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2001-02-17 21:51:31 +0000
commit9937c7f036f476a572a778bc1611f7b9efd8de0e (patch)
treef353fc809ca8bc063d7c4939b16b1d1247c87168 /games/asc
parent73fc3e35045c58651664473b50477c0ae26d9db2 (diff)
downloadports-9937c7f036f476a572a778bc1611f7b9efd8de0e.tar.gz
ports-9937c7f036f476a572a778bc1611f7b9efd8de0e.zip
Add Advanced Strategic Command 1.3.8, a turn based, multiplayer strategic
game with a very nice and professionally-looking graphics.
Notes
Notes: svn path=/head/; revision=38443
Diffstat (limited to 'games/asc')
-rw-r--r--games/asc/Makefile49
-rw-r--r--games/asc/distinfo2
-rw-r--r--games/asc/files/patch-configure26
-rw-r--r--games/asc/files/patch-source::Makefile.in23
-rw-r--r--games/asc/files/patch-source::artint.cpp13
-rw-r--r--games/asc/files/patch-source::basegfx.cpp42
-rw-r--r--games/asc/files/patch-source::basestrm.cpp40
-rw-r--r--games/asc/files/patch-source::controls.cpp24
-rw-r--r--games/asc/files/patch-source::gamedlg.cpp100
-rw-r--r--games/asc/files/patch-source::gameoptions.cpp21
-rw-r--r--games/asc/files/patch-source::mapedit::Makefile.in27
-rw-r--r--games/asc/files/patch-source::oldlzw.cpp45
-rw-r--r--games/asc/files/patch-source::replay.cpp14
-rw-r--r--games/asc/files/patch-source::sdl::events.cpp14
-rw-r--r--games/asc/files/patch-source::sdl::sound.cpp16
-rw-r--r--games/asc/files/patch-source::sdl::testSound.cpp14
-rw-r--r--games/asc/files/patch-source::sg.cpp34
-rw-r--r--games/asc/files/patch-source::tools::linux::Makefile.in16
-rw-r--r--games/asc/files/patch-source::unix::fileio.h14
-rw-r--r--games/asc/files/patch-source::unix::global_os.h14
-rw-r--r--games/asc/pkg-comment1
-rw-r--r--games/asc/pkg-descr4
-rw-r--r--games/asc/pkg-plist7
23 files changed, 560 insertions, 0 deletions
diff --git a/games/asc/Makefile b/games/asc/Makefile
new file mode 100644
index 000000000000..22c3f1867fcb
--- /dev/null
+++ b/games/asc/Makefile
@@ -0,0 +1,49 @@
+# New ports collection makefile for: asc
+# Date created: 16 February 2000
+# Whom: Maxim Sobolev <sobomax@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= asc
+PORTVERSION= 1.3.8
+CATEGORIES= games
+MASTER_SITES= ftp://asc-hq.sourceforge.net/pub/asc-hq/develop/ \
+ ftp://asc-hq.sourceforge.net/pub/asc-hq/ \
+ http://www.asc-hq.org/develop/ \
+ http://www.asc-hq.org/
+DISTNAME= ${PORTNAME}-${PORTVERSION}-beta.src
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DATAFILE}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= sobomax@FreeBSD.org
+
+LIB_DEPENDS= SDL-1.1.3:${PORTSDIR}/devel/sdl-devel \
+ SDL_image.10:${PORTSDIR}/graphics/sdl_image \
+ bz2.1:${PORTSDIR}/archivers/bzip2
+
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-beta
+
+SDL_CONFIG?= ${LOCALBASE}/bin/sdl11-config
+
+USE_GMAKE= yes
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= SDL_CONFIG="${SDL_CONFIG}" \
+ CPPFLAGS="`${SDL_CONFIG} --cflags`" \
+ LIBS="`${SDL_CONFIG} --libs` -lm"
+
+DATAFILE= main.con
+
+pre-patch:
+ @${PERL} -pi -e 's|-lpthread|-pthread|g' ${WRKSRC}/configure
+ @find ${WRKSRC} \( -name "*.cpp" -or -name "*.h" \) | xargs \
+ ${PERL} -pi -e 's|malloc\.h|stdlib.h|g'
+
+pre-configure:
+ @${RM} -f ${WRKSRC}/config.cache
+
+post-install:
+ ${MKDIR} ${PREFIX}/share/asc
+ ${INSTALL_DATA} ${DISTDIR}/${DATAFILE} ${PREFIX}/share/asc
+
+.include <bsd.port.mk>
diff --git a/games/asc/distinfo b/games/asc/distinfo
new file mode 100644
index 000000000000..6859f175298d
--- /dev/null
+++ b/games/asc/distinfo
@@ -0,0 +1,2 @@
+MD5 (asc-1.3.8-beta.src.tar.gz) = 00cb3bdb3f68b6c357d7667f0f55e146
+MD5 (main.con) = 2b4a443d138fc5ae02498f47b603f464
diff --git a/games/asc/files/patch-configure b/games/asc/files/patch-configure
new file mode 100644
index 000000000000..3ca03d60571e
--- /dev/null
+++ b/games/asc/files/patch-configure
@@ -0,0 +1,26 @@
+
+$FreeBSD$
+
+--- configure 2001/02/16 21:42:44 1.1
++++ configure 2001/02/16 21:43:07
+@@ -1624,16 +1624,16 @@
+
+
+
+-ac_safe=`echo "SDL/SDL.h" | sed 'y%./+-%__p_%'`
+-echo $ac_n "checking for SDL/SDL.h""... $ac_c" 1>&6
+-echo "configure:1630: checking for SDL/SDL.h" >&5
++ac_safe=`echo "SDL.h" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for SDL.h""... $ac_c" 1>&6
++echo "configure:1630: checking for SDL.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+ #line 1635 "configure"
+ #include "confdefs.h"
+-#include <SDL/SDL.h>
++#include <SDL.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ { (eval echo configure:1640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
diff --git a/games/asc/files/patch-source::Makefile.in b/games/asc/files/patch-source::Makefile.in
new file mode 100644
index 000000000000..e24655b5e827
--- /dev/null
+++ b/games/asc/files/patch-source::Makefile.in
@@ -0,0 +1,23 @@
+
+$FreeBSD$
+
+--- source/Makefile.in 2001/02/17 15:51:24 1.1
++++ source/Makefile.in 2001/02/17 16:16:56
+@@ -73,7 +73,7 @@
+ asc_SOURCES = unitctrl.cpp soundList.cpp weather.cpp typen.cpp strtmesg.cpp stack.cpp spfst.cpp sgstream.cpp sg.cpp pd.cpp palette.cpp newfont.cpp network.cpp missions.cpp misc.cpp loadpcxc.cpp loaders.cpp loadbi3.cpp gui.cpp gamedlg.cpp dlg_box.cpp dialog.cpp controls.cpp building.cpp basestrm.cpp basegfx.cpp attack.cpp artint.cpp CLoadable.cpp Property.cpp PropertyGroup.cpp gameoptions.cpp Named.cpp astar2.cpp vehicletype.cpp buildingtype.cpp containerbase.cpp mapalgorithms.cpp viewcalculation.cpp gamemap.cpp password.cpp password_dialog.cpp replay.cpp research.cpp mapdisplay.cpp resourcenet.cpp dashboard.cpp ascstring.cpp graphicset.cpp
+
+
+-asc_LDADD = ./sdl/libsdl.a ./libs/triangul/libtriangul.a -lSDL -lpthread -lSDL_image @LDADDLIBBZ2@
++asc_LDADD = ./sdl/libsdl.a ./libs/triangul/libtriangul.a -lSDL_image @LDADDLIBBZ2@
+
+
+ SUBDIRS = docs sdl libs mapedit tools
+@@ -88,7 +88,7 @@
+
+
+ DEFS = @DEFS@ -I. -I$(srcdir) -I..
+-CPPFLAGS = @CPPFLAGS@
++CPPFLAGS = @CPPFLAGS@ -DPREFIX=\"$(prefix)\"
+ LDFLAGS = @LDFLAGS@
+ LIBS = @LIBS@
+ asc_OBJECTS = unitctrl.o soundList.o weather.o typen.o strtmesg.o \
diff --git a/games/asc/files/patch-source::artint.cpp b/games/asc/files/patch-source::artint.cpp
new file mode 100644
index 000000000000..3ac998e0de9b
--- /dev/null
+++ b/games/asc/files/patch-source::artint.cpp
@@ -0,0 +1,13 @@
+
+$FreeBSD$
+
+--- source/artint.cpp 2001/02/17 15:35:48 1.1
++++ source/artint.cpp 2001/02/17 15:36:28
+@@ -136,6 +136,7 @@
+ #include <math.h>
+ #include <algorithm>
+ #include <memory>
++#include <machine/float.h>
+
+ #include "artint.h"
+
diff --git a/games/asc/files/patch-source::basegfx.cpp b/games/asc/files/patch-source::basegfx.cpp
new file mode 100644
index 000000000000..db0021ee44cd
--- /dev/null
+++ b/games/asc/files/patch-source::basegfx.cpp
@@ -0,0 +1,42 @@
+
+$FreeBSD$
+
+--- source/basegfx.cpp 2001/02/17 13:59:07 1.1
++++ source/basegfx.cpp 2001/02/17 14:00:16
+@@ -409,7 +406,7 @@
+ wp[1] = hd->y / 2;
+
+ if ( ( wp[0] + 1 ) * ( wp[1] + 1 ) + 4 >= xlatbuffersize )
+- throw fatalgraphicserror ( "halfpict : picture larger than buffer ! " );
++ goto except;
+
+ dest += 4;
+
+@@ -449,7 +446,7 @@
+ }
+ }
+ if ( (int)dest - (int)xlatbuffer > xlatbuffersize )
+- throw fatalgraphicserror ( "halfpict : picture larger than buffer ! " );
++ goto except;
+
+ }
+ } else {
+@@ -462,7 +459,7 @@
+ wp[1] = wp2[1] / 2;
+
+ if ( ( wp[0] + 1 ) * ( wp[1] + 1 ) + 4 >= xlatbuffersize )
+- throw fatalgraphicserror ( "halfpict : picture larger than buffer ! " );
++ goto except;
+
+ dest += 4;
+ buf += 4;
+@@ -482,6 +479,9 @@
+
+ }
+ return xlatbuffer;
++
++except:
++ throw fatalgraphicserror ( "halfpict : picture larger than buffer ! " );
+ }
+
+
diff --git a/games/asc/files/patch-source::basestrm.cpp b/games/asc/files/patch-source::basestrm.cpp
new file mode 100644
index 000000000000..460d80532798
--- /dev/null
+++ b/games/asc/files/patch-source::basestrm.cpp
@@ -0,0 +1,40 @@
+
+$FreeBSD$
+
+--- source/basestrm.cpp 2001/02/17 15:08:39 1.1
++++ source/basestrm.cpp 2001/02/17 15:08:54
+@@ -895,7 +892,7 @@
+ while (actpos2 < size) {
+ if (datasize == 0)
+ if ( excpt ) {
+- throw treadafterend ( getDeviceName() );
++ goto except1;
+ }
+ else
+ return actpos2;
+@@ -915,6 +912,9 @@
+ }
+
+ return actpos2;
++
++except1:
++ throw treadafterend ( getDeviceName() );
+ }
+
+
+@@ -945,10 +945,14 @@
+ }
+ else
+ if (actmempos > memsize)
+- throw tinternalerror ( __FILE__, __LINE__ );
++ goto except1;
+
+ actpos2 += s;
+ }
++ return;
++
++except1:
++ throw tinternalerror ( __FILE__, __LINE__ );
+ }
+
+
diff --git a/games/asc/files/patch-source::controls.cpp b/games/asc/files/patch-source::controls.cpp
new file mode 100644
index 000000000000..a738b3dbf60a
--- /dev/null
+++ b/games/asc/files/patch-source::controls.cpp
@@ -0,0 +1,24 @@
+
+$FreeBSD$
+
+--- source/controls.cpp 2001/02/17 15:52:35 1.1
++++ source/controls.cpp 2001/02/17 15:54:41
+@@ -3039,7 +3039,7 @@
+ displaymessage("no human players found !", 1 );
+ delete actmap;
+ actmap = NULL;
+- throw NoMapLoaded();
++ goto except1;
+ }
+
+ } while ( actmap->player[actmap->actplayer].stat != ps_human ); /* enddo */
+@@ -3048,6 +3048,9 @@
+
+ if (bb)
+ cursor.display();
++
++except1:
++ throw NoMapLoaded();
+ }
+
+ void initNetworkGame ( void )
diff --git a/games/asc/files/patch-source::gamedlg.cpp b/games/asc/files/patch-source::gamedlg.cpp
new file mode 100644
index 000000000000..1490a2208dc5
--- /dev/null
+++ b/games/asc/files/patch-source::gamedlg.cpp
@@ -0,0 +1,100 @@
+
+$FreeBSD$
+
+--- source/gamedlg.cpp 2001/02/17 16:01:39 1.1
++++ source/gamedlg.cpp 2001/02/17 16:06:51
+@@ -1233,7 +1233,7 @@
+ displaymessage("no human players found !", 1 );
+ delete actmap;
+ actmap = NULL;
+- throw NoMapLoaded();
++ goto except1;
+ }
+ } while ( actmap->player[actmap->actplayer].stat != ps_human ); /* enddo */
+
+@@ -1242,26 +1242,29 @@
+ catch ( InvalidID err ) {
+ displaymessage( err.getMessage().c_str(), 1 );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+ catch ( tinvalidversion err ) {
+ displaymessage( "File %s has invalid version.\nExpected version %d\nFound version %d\n", 1, err.filename, err.expected, err.found );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+ catch ( tfileerror err) {
+ displaymessage( "error reading map filename %s ", 1, err.filename );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+ catch ( ASCexception ) {
+ displaymessage( "error loading map", 1 );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+
+ removemessage();
++ return;
+
++except1:
++ throw NoMapLoaded();
+ }
+
+
+@@ -1722,7 +1725,7 @@
+ displaymessage ( "no human players found !", 1 );
+ delete actmap;
+ actmap = NULL;
+- throw NoMapLoaded();
++ goto except1;
+ }
+
+ if ( human > 1 )
+@@ -1743,7 +1746,7 @@
+ displaymessage("no human players found !", 1 );
+ delete actmap;
+ actmap = NULL;
+- throw NoMapLoaded();
++ goto except1;
+ }
+ } while ( actmap->player[actmap->actplayer].stat != ps_human ); /* enddo */
+
+@@ -1752,25 +1755,29 @@
+ catch ( InvalidID err ) {
+ displaymessage( err.getMessage().c_str(), 1 );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+ catch ( tinvalidversion err ) {
+ displaymessage( "File %s has invalid version.\nExpected version %d\nFound version %d\n", 1, err.filename, err.expected, err.found );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+ catch ( tfileerror err) {
+ displaymessage( "error reading map filename %s ", 1, err.filename );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+ catch ( ASCexception ) {
+ displaymessage( "error loading map", 1 );
+ if ( !actmap || actmap->xsize <= 0)
+- throw NoMapLoaded();
++ goto except1;
+ } /* endcatch */
+
+ }
++ return;
++
++except1:
++ throw NoMapLoaded();
+ }
+
+
diff --git a/games/asc/files/patch-source::gameoptions.cpp b/games/asc/files/patch-source::gameoptions.cpp
new file mode 100644
index 000000000000..7d5db8f24a1c
--- /dev/null
+++ b/games/asc/files/patch-source::gameoptions.cpp
@@ -0,0 +1,21 @@
+
+$FreeBSD$
+
+--- source/gameoptions.cpp.orig Sat Feb 17 20:16:39 2001
++++ source/gameoptions.cpp Sat Feb 17 20:18:31 2001
+@@ -96,13 +96,13 @@
+
+ defaultSuperVisorPassword.setName ( "" );
+
+- #if USE_HOME_DIRECTORY == 0
++ #ifndef _UNIX_
+ searchPath[0].setName ( ".\\" );
+ for ( int i = 1; i < getSearchPathNum(); i++ )
+ searchPath[i].setName ( NULL );
+ #else
+ searchPath[0].setName ( "~/.asc/" );
+- searchPath[1].setName ( "/var/local/games/asc/" );
++ searchPath[1].setName ( PREFIX "/share/asc/" );
+ searchPath[2].setName ( "/var/games/asc/" );
+ searchPath[3].setName ( "/usr/local/share/games/asc/" );
+ searchPath[4].setName ( "/usr/share/games/asc/" );
diff --git a/games/asc/files/patch-source::mapedit::Makefile.in b/games/asc/files/patch-source::mapedit::Makefile.in
new file mode 100644
index 000000000000..37beaa311c0f
--- /dev/null
+++ b/games/asc/files/patch-source::mapedit::Makefile.in
@@ -0,0 +1,27 @@
+
+$FreeBSD$
+
+--- source/mapedit/Makefile.in.orig Mon Jan 29 01:11:06 2001
++++ source/mapedit/Makefile.in Sat Feb 17 18:19:08 2001
+@@ -76,10 +76,10 @@
+ bin_PROGRAMS = ascmapedit ascmap2pcx
+
+ ascmapedit_SOURCES = edevents.cpp edgen.cpp edglobal.cpp edmain.cpp edselfnt.cpp edmisc.cpp weather.cpp typen.cpp strtmesg.cpp stack.cpp spfst.cpp sgstream.cpp pd.cpp palette.cpp newfont.cpp misc.cpp loadpcxc.cpp loaders.cpp loadbi3.cpp dlg_box.cpp dialog.cpp basestrm.cpp basegfx.cpp attack.cpp CLoadable.cpp Property.cpp PropertyGroup.cpp gameoptions.cpp Named.cpp buildingtype.cpp vehicletype.cpp containerbase.cpp mapalgorithms.cpp viewcalculation.cpp gamemap.cpp password.cpp password_dialog.cpp research.cpp mapdisplay.cpp ascstring.cpp graphicset.cpp
+-ascmapedit_LDADD = ../sdl/libsdl.a ../libs/triangul/libtriangul.a -lSDL -lpthread @LDADDLIBBZ2@
++ascmapedit_LDADD = ../sdl/libsdl.a ../libs/triangul/libtriangul.a @LDADDLIBBZ2@
+
+ ascmap2pcx_SOURCES = map2pcx.cpp weather.cpp typen.cpp strtmesg.cpp stack.cpp spfst.cpp sgstream.cpp pd.cpp palette.cpp newfont.cpp misc.cpp loadpcxc.cpp loaders.cpp loadbi3.cpp dlg_box.cpp dialog.cpp basestrm.cpp basegfx.cpp attack.cpp CLoadable.cpp Property.cpp PropertyGroup.cpp gameoptions.cpp Named.cpp buildingtype.cpp vehicletype.cpp containerbase.cpp mapalgorithms.cpp viewcalculation.cpp gamemap.cpp password.cpp password_dialog.cpp research.cpp mapdisplay.cpp ascstring.cpp graphicset.cpp
+-ascmap2pcx_LDADD = ../sdl/libsdl.a ../libs/triangul/libtriangul.a -lSDL -lpthread -lSDL_image @LDADDLIBBZ2@
++ascmap2pcx_LDADD = ../sdl/libsdl.a ../libs/triangul/libtriangul.a -lSDL_image @LDADDLIBBZ2@
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../../config.h
+ CONFIG_CLEAN_FILES =
+@@ -87,7 +87,7 @@
+
+
+ DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+-CPPFLAGS = @CPPFLAGS@
++CPPFLAGS = @CPPFLAGS@ -DPREFIX=\"$(prefix)\"
+ LDFLAGS = @LDFLAGS@
+ LIBS = @LIBS@
+ ascmapedit_OBJECTS = edevents.o edgen.o edglobal.o edmain.o edselfnt.o \
diff --git a/games/asc/files/patch-source::oldlzw.cpp b/games/asc/files/patch-source::oldlzw.cpp
new file mode 100644
index 000000000000..20ea8db57abd
--- /dev/null
+++ b/games/asc/files/patch-source::oldlzw.cpp
@@ -0,0 +1,45 @@
+
+$FreeBSD$
+
+--- source/oldlzw.cpp 2001/02/17 15:08:39 1.1
++++ source/oldlzw.cpp 2001/02/17 15:08:54
+@@ -342,7 +339,7 @@
+ DecodeBuffer = (unsigned char *) realloc ( DecodeBuffer, DecodeBufferSize + 1000 );
+
+ if ( ! DecodeBuffer )
+- throw toutofmem ( DecodeBufferSize + 1000 );
++ goto except1;
+ else
+ DecodeBufferSize += 1000;
+ }
+@@ -350,6 +347,9 @@
+ }
+ DecodeBuffer[ count++ ] = code;
+ return ( count );
++
++except1:
++ throw toutofmem ( DecodeBufferSize + 1000 );
+ }
+
+
+@@ -464,7 +464,7 @@
+ count = LZWLoadBuffer ( 0, incode );
+
+ if ( count == 0 )
+- throw ASCexception();
++ goto except1;
+
+ inchar = DecodeBuffer[ count - 1 ];
+ while ( count )
+@@ -492,7 +492,10 @@
+ return pos;
+ }
+
+- // return 0;
++ return 0;
++
++except1:
++ throw ASCexception();
+ }
+
+
diff --git a/games/asc/files/patch-source::replay.cpp b/games/asc/files/patch-source::replay.cpp
new file mode 100644
index 000000000000..846b52343104
--- /dev/null
+++ b/games/asc/files/patch-source::replay.cpp
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- source/replay.cpp 2001/02/17 15:46:05 1.1
++++ source/replay.cpp 2001/02/17 15:49:13
+@@ -22,6 +22,8 @@
+ * *
+ ***************************************************************************/
+
++#include <stdarg.h>
++
+ #include "replay.h"
+ #include "typen.h"
+ #include "buildingtype.h"
diff --git a/games/asc/files/patch-source::sdl::events.cpp b/games/asc/files/patch-source::sdl::events.cpp
new file mode 100644
index 000000000000..a3a357289b19
--- /dev/null
+++ b/games/asc/files/patch-source::sdl::events.cpp
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- source/sdl/events.cpp 2001/02/16 21:38:57 1.1
++++ source/sdl/events.cpp 2001/02/16 21:39:12
+@@ -150,7 +150,7 @@
+ #ifdef _WIN32_
+ #include "SDL_thread.h"
+ #else
+-#include "SDL/SDL_thread.h"
++#include "SDL_thread.h"
+ #endif
+
+
diff --git a/games/asc/files/patch-source::sdl::sound.cpp b/games/asc/files/patch-source::sdl::sound.cpp
new file mode 100644
index 000000000000..9b76e5b32115
--- /dev/null
+++ b/games/asc/files/patch-source::sdl::sound.cpp
@@ -0,0 +1,16 @@
+
+$FreeBSD$
+
+--- source/sdl/sound.cpp 2001/02/16 21:38:57 1.1
++++ source/sdl/sound.cpp 2001/02/16 21:39:17
+@@ -21,8 +21,8 @@
+ #include <string.h>
+ #include <stdlib.h>
+ //#include <unistd.h>
+-//#include <SDL/SDL_audio.h>
+-//#include <SDL/SDL_error.h>
++//#include <SDL_audio.h>
++//#include <SDL_error.h>
+
+ #include "../global.h"
+ #include sdlheader
diff --git a/games/asc/files/patch-source::sdl::testSound.cpp b/games/asc/files/patch-source::sdl::testSound.cpp
new file mode 100644
index 000000000000..b7f7aa18c0d7
--- /dev/null
+++ b/games/asc/files/patch-source::sdl::testSound.cpp
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- source/sdl/testSound.cpp 2001/02/16 21:38:57 1.1
++++ source/sdl/testSound.cpp 2001/02/16 21:39:20
+@@ -14,7 +14,7 @@
+ * *
+ ***************************************************************************/
+ #include <stdio.h>
+-#include <SDL/SDL.h>
++#include <SDL.h>
+ #include <unistd.h>
+ #include <sound.h>
+
diff --git a/games/asc/files/patch-source::sg.cpp b/games/asc/files/patch-source::sg.cpp
new file mode 100644
index 000000000000..d84987dbc767
--- /dev/null
+++ b/games/asc/files/patch-source::sg.cpp
@@ -0,0 +1,34 @@
+
+$FreeBSD$
+
+--- source/sg.cpp 2001/02/17 16:28:29 1.1
++++ source/sg.cpp 2001/02/17 16:28:40
+@@ -1262,7 +1259,7 @@
+ else {
+ delete actmap;
+ actmap = NULL;
+- throw NoMapLoaded();
++ goto except1;
+ }
+ }
+ } else
+@@ -1273,7 +1270,7 @@
+ if (choice_dlg("Do you want to continue playing ?","~y~es","~n~o") == 2) {
+ delete actmap;
+ actmap = NULL;
+- throw NoMapLoaded();
++ goto except1;
+ } else {
+ actmap->continueplaying = 1;
+ if ( actmap->replayinfo ) {
+@@ -1283,6 +1280,10 @@
+ }
+ }
+ }
++ return;
++
++except1:
++ throw NoMapLoaded();
+ }
+
+
diff --git a/games/asc/files/patch-source::tools::linux::Makefile.in b/games/asc/files/patch-source::tools::linux::Makefile.in
new file mode 100644
index 000000000000..04095528c46c
--- /dev/null
+++ b/games/asc/files/patch-source::tools::linux::Makefile.in
@@ -0,0 +1,16 @@
+
+$FreeBSD$
+
+--- source/tools/linux/Makefile.in 2001/02/17 15:22:10 1.1
++++ source/tools/linux/Makefile.in 2001/02/17 15:22:33
+@@ -79,8 +79,8 @@
+
+ ascmount_SOURCES = mount.cpp basestrm.cpp misc.cpp ascstring.cpp
+
+-ascmount_LDADD = -lSDL -lpthread @LDADDLIBBZ2@
+-ascdemount_LDADD = -lSDL -lpthread @LDADDLIBBZ2@
++ascmount_LDADD = @LDADDLIBBZ2@
++ascdemount_LDADD = @LDADDLIBBZ2@
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../../../config.h
+ CONFIG_CLEAN_FILES =
diff --git a/games/asc/files/patch-source::unix::fileio.h b/games/asc/files/patch-source::unix::fileio.h
new file mode 100644
index 000000000000..79513435c5bb
--- /dev/null
+++ b/games/asc/files/patch-source::unix::fileio.h
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- source/unix/fileio.h 2001/02/17 17:39:14 1.1
++++ source/unix/fileio.h 2001/02/17 17:39:23
+@@ -65,7 +65,7 @@
+ const char* pathdelimitterstring = "/";
+
+ #define CASE_SENSITIVE_FILE_NAMES 1
+- #define USE_HOME_DIRECTORY 1
++ #define USE_HOME_DIRECTORY 0
+
+ const int maxfilenamelength = 255;
+ const char* asc_configurationfile = "~/.asc/ascrc";
diff --git a/games/asc/files/patch-source::unix::global_os.h b/games/asc/files/patch-source::unix::global_os.h
new file mode 100644
index 000000000000..55eccfcfe756
--- /dev/null
+++ b/games/asc/files/patch-source::unix::global_os.h
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- source/unix/global_os.h 2001/02/16 21:38:57 1.1
++++ source/unix/global_os.h 2001/02/16 21:39:25
+@@ -38,7 +38,7 @@
+ #define global_os_h_included
+
+ #ifndef minimalIO
+- #define sdlheader "SDL/SDL.h"
++ #define sdlheader "SDL.h"
+ #include sdlheader
+ #endif
+
diff --git a/games/asc/pkg-comment b/games/asc/pkg-comment
new file mode 100644
index 000000000000..a46399a96c1a
--- /dev/null
+++ b/games/asc/pkg-comment
@@ -0,0 +1 @@
+A turn based, multiplayer strategic game with very nice graphics
diff --git a/games/asc/pkg-descr b/games/asc/pkg-descr
new file mode 100644
index 000000000000..3068e1921b11
--- /dev/null
+++ b/games/asc/pkg-descr
@@ -0,0 +1,4 @@
+Advanced Strategic Command (ASC) - a turn-based, multiplayer network game
+with nice proffesional-looking graphics.
+
+WWW: http://www.asc-hq.org/
diff --git a/games/asc/pkg-plist b/games/asc/pkg-plist
new file mode 100644
index 000000000000..c9164d55645e
--- /dev/null
+++ b/games/asc/pkg-plist
@@ -0,0 +1,7 @@
+bin/asc
+bin/ascdemount
+bin/ascmap2pcx
+bin/ascmapedit
+bin/ascmount
+share/asc/main.con
+@dirrm share/asc