aboutsummaryrefslogtreecommitdiff
path: root/games/mvdsv
diff options
context:
space:
mode:
authorMax Khon <fjoe@FreeBSD.org>2003-06-03 19:36:13 +0000
committerMax Khon <fjoe@FreeBSD.org>2003-06-03 19:36:13 +0000
commitd69541c26ca2be2e04410f684789050232174880 (patch)
tree3858bf6d456ae76556fea84e00970c1107c8f2dd /games/mvdsv
parentc639d1ee55c27543e99f8b99a76b9a3428ae11b4 (diff)
downloadports-d69541c26ca2be2e04410f684789050232174880.tar.gz
ports-d69541c26ca2be2e04410f684789050232174880.zip
New port: mvdsv
Enhanced QuakeWorld server with multi-view demos capability. Submitted by: Alexey Dokuchaev
Notes
Notes: svn path=/head/; revision=82209
Diffstat (limited to 'games/mvdsv')
-rw-r--r--games/mvdsv/Makefile32
-rw-r--r--games/mvdsv/distinfo1
-rw-r--r--games/mvdsv/files/Makefile78
-rw-r--r--games/mvdsv/files/patch-sv_demo.c17
-rw-r--r--games/mvdsv/files/patch-sv_login.c47
-rw-r--r--games/mvdsv/files/patch-sv_sv_main.c54
-rw-r--r--games/mvdsv/files/patch-sv_sys_unix.c27
-rw-r--r--games/mvdsv/pkg-descr7
-rw-r--r--games/mvdsv/pkg-message6
-rw-r--r--games/mvdsv/pkg-plist1
10 files changed, 270 insertions, 0 deletions
diff --git a/games/mvdsv/Makefile b/games/mvdsv/Makefile
new file mode 100644
index 000000000000..d39cc035b851
--- /dev/null
+++ b/games/mvdsv/Makefile
@@ -0,0 +1,32 @@
+# New ports collection makefile for: MVDSV
+# Date created: 03 Jun 2003
+# Whom: Alexey Dokuchaev <danfe@regency.nsu.ru>
+#
+# $FreeBSD$
+#
+
+PORTNAME= mvdsv
+PORTVERSION= 0.165b
+CATEGORIES= games
+MASTER_SITES= http://www.wsb.poznan.pl/~pawel/q/q/ktpro/develop/ \
+ http://freebsd.nsu.ru/distfiles/
+DISTNAME= qwex_src-${PORTVERSION}
+
+MAINTAINER= danfe@regency.nsu.ru
+COMMENT= Enhanced QuakeWorld server with multi-view demos capability
+
+MAKEFILE= ${FILESDIR}/Makefile
+WRKSRC= ${WRKDIR}/mvdsrc/source
+
+pre-everything::
+.if !defined(WITHOUT_X86_ASM)
+ @${ECHO_MSG} "Define WITHOUT_X86_ASM to disable x86 assembly code"
+.endif
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
+
+post-install:
+ @${SED} -e 's#$${PREFIX}#${PREFIX}#g' ${PKGMESSAGE}
+
+.include <bsd.port.mk>
diff --git a/games/mvdsv/distinfo b/games/mvdsv/distinfo
new file mode 100644
index 000000000000..f2219dd1a81f
--- /dev/null
+++ b/games/mvdsv/distinfo
@@ -0,0 +1 @@
+MD5 (qwex_src-0.165b.tar.gz) = 69329a418fedafb43277acae8d5aca10
diff --git a/games/mvdsv/files/Makefile b/games/mvdsv/files/Makefile
new file mode 100644
index 000000000000..962d9ab418ff
--- /dev/null
+++ b/games/mvdsv/files/Makefile
@@ -0,0 +1,78 @@
+#
+# $FreeBSD$
+#
+# QuakeWorld/MVDSV Makefile for FreeBSD
+#
+# - now should build on non-x86
+# - no longer requires gmake(1)
+# - debug targets support axed out
+# - couple of useful knobs added
+#
+# Created on Wednesday, May 21 2003 by Alexey Dokuchaev <danfe@regency.nsu.ru>
+#
+
+DO_CFLAGS = ${CFLAGS} -funsigned-char -I${LOCALBASE}/include -DSERVERONLY
+
+.if ${MACHINE_ARCH} == "i386" && !defined(WITHOUT_X86_ASM)
+DO_CFLAGS += -Did386
+.endif
+
+.if defined(WITH_OPTIMIZED_CFLAGS)
+DO_CFLAGS += -O9 -pipe -s -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations
+.endif
+
+########################################################################
+
+SV_OBJS = \
+ pr_cmds.o \
+ pr_edict.o \
+ pr_exec.o \
+\
+ sv_ccmds.o \
+ sv_demo.o \
+ sv_ents.o \
+ sv_init.o \
+ sv_login.o \
+ sv_main.o \
+ sv_model.o \
+ sv_move.o \
+ sv_nchan.o \
+ sv_phys.o \
+ sv_send.o \
+ sv_sys_unix.o \
+ sv_user.o \
+\
+ cmd.o \
+ common.o \
+ crc.o \
+ cvar.o \
+ mathlib.o \
+ mdfour.o \
+ net_chan.o \
+ net_udp.o \
+ pmove.o \
+ pmovetst.o \
+ version.o \
+ world.o \
+ zone.o
+
+.if ${MACHINE_ARCH} == "i386" && !defined(WITHOUT_X86_ASM)
+SV_AS_OBJS = \
+ math.o \
+ sys_x86.o \
+ worlda.o
+.endif
+
+SV_LIBS = -lm
+
+.c.o:
+ ${CC} ${DO_CFLAGS} -c $< -o $*.o
+
+.s.o:
+ ${CC} ${DO_CFLAGS} -DELF -x assembler-with-cpp -c $< -o $*.o
+
+all: ${SV_OBJS} ${SV_AS_OBJS}
+ ${CC} ${CFLAGS} -o mvdsv ${SV_OBJS} ${SV_AS_OBJS} ${SV_LIBS}
+
+clean:
+ -rm -f *.o *.core
diff --git a/games/mvdsv/files/patch-sv_demo.c b/games/mvdsv/files/patch-sv_demo.c
new file mode 100644
index 000000000000..c2a5f7fef26b
--- /dev/null
+++ b/games/mvdsv/files/patch-sv_demo.c
@@ -0,0 +1,17 @@
+--- sv_demo.c.orig Tue Jun 3 17:50:02 2003
++++ sv_demo.c Tue Jun 3 17:53:09 2003
+@@ -607,12 +607,12 @@
+ {
+ if (!USACACHE)
+ {
+- dwrite = &fwrite;
++ dwrite = (void *)&fwrite;
+ demo.dest = demo.file;
+ demo.disk = true;
+ } else
+ {
+- dwrite = &memwrite;
++ dwrite = (void *)&memwrite;
+ demo.mfile = svs.demomem;
+ demo.dest = &demo.mfile;
+ }
diff --git a/games/mvdsv/files/patch-sv_login.c b/games/mvdsv/files/patch-sv_login.c
new file mode 100644
index 000000000000..cc7e5106b940
--- /dev/null
+++ b/games/mvdsv/files/patch-sv_login.c
@@ -0,0 +1,47 @@
+--- sv_login.c.orig Tue Jun 3 17:47:04 2003
++++ sv_login.c Tue Jun 3 17:48:21 2003
+@@ -244,7 +244,7 @@
+ continue;
+ }
+
+- if (!stricmp(accounts[i].login, Cmd_Argv(1)) || (use == use_ip && !stricmp(accounts[i].login, Cmd_Argv(2))))
++ if (!strcasecmp(accounts[i].login, Cmd_Argv(1)) || (use == use_ip && !strcasecmp(accounts[i].login, Cmd_Argv(2))))
+ break;
+
+ c++;
+@@ -298,7 +298,7 @@
+ if (accounts[i].state == a_free)
+ continue;
+
+- if (!stricmp(accounts[i].login, Cmd_Argv(1)))
++ if (!strcasecmp(accounts[i].login, Cmd_Argv(1)))
+ {
+ if (accounts[i].inuse)
+ SV_Logout(&svs.clients[accounts[i].inuse -1]);
+@@ -365,7 +365,7 @@
+ if (accounts[i].state == a_free)
+ continue;
+
+- if (!stricmp(accounts[i].login, Cmd_Argv(1)))
++ if (!strcasecmp(accounts[i].login, Cmd_Argv(1)))
+ {
+ if (block)
+ {
+@@ -434,7 +434,7 @@
+ continue;
+
+ if (use == accounts[i].use &&
+- /*use == use_log && accounts[i].use == use_log && */!stricmp(log, accounts[i].login))
++ /*use == use_log && accounts[i].use == use_log && */!strcasecmp(log, accounts[i].login))
+ {
+ if (accounts[i].inuse && accounts[i].use == use_log)
+ return -1;
+@@ -442,7 +442,7 @@
+ if (accounts[i].state == a_blocked)
+ return -2;
+
+- if (use == use_ip || !stricmp(pass, accounts[i].pass)) {
++ if (use == use_ip || !strcasecmp(pass, accounts[i].pass)) {
+ accounts[i].failures = 0;
+ accounts[i].inuse++;
+ return i+1;
diff --git a/games/mvdsv/files/patch-sv_sv_main.c b/games/mvdsv/files/patch-sv_sv_main.c
new file mode 100644
index 000000000000..4ced211b2cce
--- /dev/null
+++ b/games/mvdsv/files/patch-sv_sv_main.c
@@ -0,0 +1,54 @@
+--- sv_main.c.orig Tue Jun 3 17:53:39 2003
++++ sv_main.c Tue Jun 3 17:56:11 2003
+@@ -646,7 +646,7 @@
+ vip = SV_VIPbyIP(net_from);
+
+ if (spectator_password.string[0] &&
+- stricmp(spectator_password.string, "none") &&
++ strcasecmp(spectator_password.string, "none") &&
+ strcmp(spectator_password.string, s) )
+ { // failed
+ spass = false;
+@@ -671,7 +671,7 @@
+ vip = SV_VIPbyIP(net_from);
+
+ if (!vip && password.string[0] &&
+- stricmp(password.string, "none") &&
++ strcasecmp(password.string, "none") &&
+ strcmp(password.string, s) )
+ {
+ Con_Printf ("%s:password failed\n", NET_AdrToString (net_from));
+@@ -1403,13 +1403,13 @@
+ {
+ int i;
+
+- if (!vip_password.string[0] || !stricmp(vip_password.string, "none"))
++ if (!vip_password.string[0] || !strcasecmp(vip_password.string, "none"))
+ return 0;
+
+ Cmd_TokenizeString(vip_password.string);
+
+ for (i = 0; i < Cmd_Argc(); i++)
+- if (!strcmp(Cmd_Argv(i), pass) && stricmp(Cmd_Argv(i), "none"))
++ if (!strcmp(Cmd_Argv(i), pass) && strcasecmp(Cmd_Argv(i), "none"))
+ return i+1;
+
+ return 0;
+@@ -2205,7 +2205,7 @@
+ val = Info_ValueForKey (cl->userinfo, "name");
+ }
+
+- if (!val[0] || !stricmp(val, "console")) {
++ if (!val[0] || !strcasecmp(val, "console")) {
+ Info_SetValueForKey (cl->userinfo, "name", "unnamed", MAX_INFO_STRING);
+ val = Info_ValueForKey (cl->userinfo, "name");
+ }
+@@ -2215,7 +2215,7 @@
+ for (i=0, client = svs.clients ; i<MAX_CLIENTS ; i++, client++) {
+ if (client->state != cs_spawned || client == cl)
+ continue;
+- if (!stricmp(client->name, val))
++ if (!strcasecmp(client->name, val))
+ break;
+ }
+ if (i != MAX_CLIENTS) { // dup name
diff --git a/games/mvdsv/files/patch-sv_sys_unix.c b/games/mvdsv/files/patch-sv_sys_unix.c
new file mode 100644
index 000000000000..06de97204c5a
--- /dev/null
+++ b/games/mvdsv/files/patch-sv_sys_unix.c
@@ -0,0 +1,27 @@
+--- sv_sys_unix.c.orig Tue Jun 3 17:53:55 2003
++++ sv_sys_unix.c Tue Jun 3 17:59:41 2003
+@@ -24,7 +24,7 @@
+ #include <libc.h>
+ #endif
+
+-#if defined(__linux__) || defined(sun) || defined(__GNUC__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(sun) || defined(__GNUC__)
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <sys/time.h>
+@@ -364,7 +364,7 @@
+ =============
+ */
+
+-void main (int argc, char *argv[])
++int main (int argc, char *argv[])
+ {
+ double time, oldtime, newtime;
+ quakeparms_t parms;
+@@ -444,5 +444,6 @@
+ usleep (sys_extrasleep.value);
+ }
+ #endif
++ return (1); /* should never reach here */
+ }
+
diff --git a/games/mvdsv/pkg-descr b/games/mvdsv/pkg-descr
new file mode 100644
index 000000000000..be891d84e2b6
--- /dev/null
+++ b/games/mvdsv/pkg-descr
@@ -0,0 +1,7 @@
+MVDSV is popular QuakeWorld server with new amazing possibilities, most
+notably, of course, being multi-view demos. MVD demos are probably the
+biggest step in QuakeWorld since Qizmo release. MVDSV is also the best
+server to use with KTeams Pro deathmatch mod, and in fact is requited
+for latter's full functionality.
+
+WWW: http://www.wsb.poznan.pl/~pawel/q/q/ktpro/develop/
diff --git a/games/mvdsv/pkg-message b/games/mvdsv/pkg-message
new file mode 100644
index 000000000000..db56e7f90f5c
--- /dev/null
+++ b/games/mvdsv/pkg-message
@@ -0,0 +1,6 @@
+==========================================================
+
+ Make sure to provide required run-time environment
+ and server configuration file first before running
+
+==========================================================
diff --git a/games/mvdsv/pkg-plist b/games/mvdsv/pkg-plist
new file mode 100644
index 000000000000..51959c0dc85c
--- /dev/null
+++ b/games/mvdsv/pkg-plist
@@ -0,0 +1 @@
+bin/mvdsv