initial import of moria-5.5.2:

--
The game is set in Moria and the goal is to kill off the balrog.
Apart from this, the game is almost completely based on Dungeons &
Dragons. The game is a true classic and every true gamer should
have played it.

It was originally written by Robert Alan Koeneke with some help
from Jimmy Wayne Todd. Further development of the game has almost
ceased, but The Pits of Angband, which is based on its code, is
still very much in development.

WWW: http://www-math.bgsu.edu/~grabine/moria.html
This commit is contained in:
lebel 2001-07-04 16:57:50 +00:00
parent 50157aef27
commit 649cd09245
13 changed files with 548 additions and 0 deletions

38
games/moria/Makefile Normal file
View File

@ -0,0 +1,38 @@
# $OpenBSD: Makefile,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
COMMENT= "The Dungeons of Moria"
V= 5.5.2
DISTNAME= um$V
PKGNAME= moria-$V
CATEGORIES= games
MASTER_SITES= ftp://ftp.greyhelm.com/pub/Games/Moria/source/
EXTRACT_SUFX= .tar.Z
NEED_VERSION= 1.402
HOMEPAGE= http://www-math.bgsu.edu/~grabine/moria.html
MAINTAINER= David Lebel <lebel@openbsd.org>
PERMIT_PACKAGE_CDROM= No
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= No
PERMIT_DISTFILES_FTP= Yes
WRKDIST= ${WRKDIR}/umoria
WRKSRC= ${WRKDIST}
SEPARATE_BUILD= concurrent
MAKE_ENV= CC="${CC}" CFLAGS="${CFLAGS}"
do-build:
@cd ${WRKBUILD}; for i in ${WRKSRC}/source/*; do ln -sf $$i; done; \
for i in ${WRKSRC}/unix/*; do ln -sf $$i; done; \
ln -sf ${WRKSRC}/files; \
${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} PREFIX="${PREFIX}"
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/moria
@cd ${WRKBUILD}; ${MAKE_PROGRAM} ${FAKE_FLAGS} install
.include <bsd.port.mk>

3
games/moria/files/md5 Normal file
View File

@ -0,0 +1,3 @@
MD5 (um5.5.2.tar.Z) = 04a2852864302c702e82992023d97184
RMD160 (um5.5.2.tar.Z) = 1556c76f151d7ea29da79071a57398f63d0b138b
SHA1 (um5.5.2.tar.Z) = 69c7a7bf4e2c5be123ee7a82f5ad12ad5d0f5b08

View File

@ -0,0 +1,49 @@
$OpenBSD: patch-source_config_h,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/config.h.orig Wed Jul 4 12:42:19 2001
+++ source/config.h Wed Jul 4 12:42:21 2001
@@ -6,6 +6,19 @@
not for profit purposes provided that this copyright and statement are
included in all such copies. */
+/* OpenBSD includes */
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+/* OpenBSD prototypes */
+int check_input(int);
+void user_name(char *);
+
#define CONFIG_H_INCLUDED
#ifdef CONSTANT_H_INCLUDED
Constant.h should always be included after config.h, because it uses
@@ -200,16 +213,15 @@ some of the system defines set up here.
/* This must be unix; change MORIA_LIB as appropriate. */
#define MORIA_SAV "moria.save"
-#define MORIA_LIB(xxx) "/home/math/grabiner/moria/files/xxx"
-#define MORIA_HOU MORIA_LIB(hours)
-#define MORIA_MOR MORIA_LIB(news)
-#define MORIA_TOP MORIA_LIB(scores)
-#define MORIA_HELP MORIA_LIB(roglcmds.hlp)
-#define MORIA_ORIG_HELP MORIA_LIB(origcmds.hlp)
-#define MORIA_WIZ_HELP MORIA_LIB(rwizcmds.hlp)
-#define MORIA_OWIZ_HELP MORIA_LIB(owizcmds.hlp)
-#define MORIA_WELCOME MORIA_LIB(welcome.hlp)
-#define MORIA_VER MORIA_LIB(version.hlp)
+#define MORIA_HOU PREFIX "/share/moria/hours"
+#define MORIA_MOR PREFIX "/share/moria/news"
+#define MORIA_TOP PREFIX "/share/moria/scores"
+#define MORIA_HELP PREFIX "/share/moria/roglcmds.hlp"
+#define MORIA_ORIG_HELP PREFIX "/share/moria/origcmds.hlp"
+#define MORIA_WIZ_HELP PREFIX "/share/moria/rwizcmds.hlp"
+#define MORIA_OWIZ_HELP PREFIX "/share/moria/owizcmds.hlp"
+#define MORIA_WELCOME PREFIX "/share/moria/welcome.hlp"
+#define MORIA_VER PREFIX "/share/moria/version.hlp"
#endif
#endif

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-source_death_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/death.c.orig Wed Jul 4 11:34:09 2001
+++ source/death.c Wed Jul 4 11:35:09 2001
@@ -126,7 +126,6 @@ static void kingly(void);
#ifndef VMS
#ifndef MAC
#if !defined(ATARIST_MWC) && !defined(AMIGA)
-long time();
#endif
#endif
#endif
@@ -144,9 +143,9 @@ char *day;
#ifdef MAC
clockvar = time((time_t *) 0);
#else
- clockvar = time((long *) 0);
+ clockvar = time((time_t *) 0);
#endif
- tmp = ctime(&clockvar);
+ tmp = ctime((time_t *)&clockvar);
tmp[10] = '\0';
(void) strcpy(day, tmp);
}

View File

@ -0,0 +1,48 @@
$OpenBSD: patch-source_io_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/io.c.orig Wed Jul 4 12:25:44 2001
+++ source/io.c Wed Jul 4 12:25:53 2001
@@ -60,7 +60,8 @@ long wgetch();
char *getenv();
#endif
-
+#include <sys/ioctl_compat.h>
+#include <curses.h>
#include <ctype.h>
#if defined(SYS_V) && defined(lint)
@@ -245,7 +246,6 @@ int suspend()
struct ltchars lcbuf;
struct tchars cbuf;
int lbuf;
- long time();
py.misc.male |= 2;
(void) ioctl(0, TIOCGETP, (char *)&tbuf);
@@ -316,7 +316,7 @@ void init_curses()
#if defined(USG) && !defined(PC_CURSES) && !defined(AMIGA)
if (initscr() == NULL)
#else
- if (initscr() == ERR)
+ if (initscr() == NULL)
#endif
{
(void) printf("Error allocating screen in curses package.\n");
@@ -334,7 +334,7 @@ void init_curses()
#ifdef __386BSD__
(void) signal (SIGTSTP, (sig_t)suspend);
#else
- (void) signal (SIGTSTP, suspend);
+ (void) signal (SIGTSTP, (sig_t)suspend);
#endif
#endif
#endif
@@ -760,7 +760,7 @@ void shell_out()
#if defined(USG) || defined(__386BSD__)
(void) wait((int *) 0);
#else
- (void) wait((union wait *) 0);
+ (void) wait((int *) 0);
#endif
#endif /* ATARI_ST */
#endif /* MSDOS }*/

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-source_main_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/main.c.orig Thu Jul 21 21:47:08 1994
+++ source/main.c Tue Jul 3 13:02:35 2001
@@ -92,7 +92,7 @@
#ifndef MAC
#ifndef GEMDOS
#ifndef AMIGA
-long time();
+//long time();
#endif
#endif
char *getenv();
@@ -363,7 +363,7 @@ char *argv[];
#ifdef MAC
birth_date = time ((time_t *)0);
#else
- birth_date = time ((long *)0);
+ birth_date = time ((time_t *)0);
#endif
char_inven_init();
py.flags.food = 7500;

View File

@ -0,0 +1,32 @@
$OpenBSD: patch-source_misc1_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/misc1.c.orig Wed Jul 4 11:39:07 2001
+++ source/misc1.c Wed Jul 4 11:40:17 2001
@@ -29,7 +29,6 @@
#endif
#if !defined(ATARIST_MWC) && !defined(MAC) && !defined(VMS) && !defined(AMIGA)
-long time();
#endif
struct tm *localtime();
@@ -48,7 +47,7 @@ int32u seed;
#ifdef MAC
clock_var = time((time_t *)0);
#else
- clock_var = time((long *)0);
+ clock_var = time((time_t *)0);
#endif
else
clock_var = seed;
@@ -95,9 +94,9 @@ int check_time()
#ifdef MAC
clock_var = time((time_t *)0);
#else
- clock_var = time((long *)0);
+ clock_var = time((time_t *)0);
#endif
- tp = localtime(&clock_var);
+ tp = localtime((time_t *)&clock_var);
if (days[tp->tm_wday][tp->tm_hour+4] == 'X')
return TRUE;
else

View File

@ -0,0 +1,38 @@
$OpenBSD: patch-source_save_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/save.c.orig Wed Jul 4 11:31:30 2001
+++ source/save.c Wed Jul 4 11:32:25 2001
@@ -105,7 +105,6 @@ static void rd_monster();
#ifdef MAC
#include <time.h>
#else
-long time();
#endif
#else
char *malloc();
@@ -334,7 +333,7 @@ static int sv_write()
#ifdef MAC
l = time((time_t *)0);
#else
- l = time((long *)0);
+ l = time((time_t *)0);
#endif
if (l < start_time)
{
@@ -1032,7 +1031,7 @@ int *generate;
#ifdef MAC
birth_date = time((time_t *)0);
#else
- birth_date = time((long *)0);
+ birth_date = time((time_t *)0);
#endif
}
if ((c = getc(fileptr)) == EOF || (l & 0x80000000L))
@@ -1256,7 +1255,7 @@ scoreboard; it will not be scored again.
#ifdef MAC
start_time = time((time_t *)0);
#else
- start_time = time((long *)0);
+ start_time = time((time_t *)0);
#endif
/* check for reasonable values of time here ... */
if (start_time < time_saved)

View File

@ -0,0 +1,158 @@
$OpenBSD: patch-source_signals_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- source/signals.c.orig Thu Jul 21 21:47:23 1994
+++ source/signals.c Wed Jul 4 11:44:57 2001
@@ -113,7 +113,7 @@ int sig;
if(error_sig >= 0) /* Ignore all second signals. */
{
if(++signal_count > 10) /* Be safe. We will die if persistent enough. */
- (void) signal(sig, SIG_DFL);
+ (void) signal(sig, (sig_t)SIG_DFL);
return;
}
error_sig = sig;
@@ -126,7 +126,7 @@ int sig;
)
{
if (death)
- (void) signal(sig, SIG_IGN); /* Can't quit after death. */
+ (void) signal(sig, (sig_t)SIG_IGN); /* Can't quit after death. */
else if (!character_saved && character_generated)
{
if (!get_check("Really commit *Suicide*?"))
@@ -137,7 +137,7 @@ int sig;
put_qio();
error_sig = -1;
#ifdef USG
- (void) signal(sig, signal_handler);/* Have to restore handler. */
+ (void) signal(sig, (sig_t)signal_handler);/* Have to restore handler. */
#else
(void) sigsetmask(smask);
#endif
@@ -179,7 +179,7 @@ int sig;
restore_term();
#if !defined(MSDOS) && !defined(AMIGA) && !defined(ATARIST_TC)
/* always generate a core dump */
- (void) signal(sig, SIG_DFL);
+ (void) signal(sig, (sig_t)SIG_DFL);
(void) kill(getpid(), sig);
(void) sleep(5);
#endif
@@ -199,7 +199,7 @@ void nosignals()
#if defined(atarist) && defined(__GNUC__)
(void) signal(SIGTSTP, (__Sigfunc)SIG_IGN);
#else
- (void) signal(SIGTSTP, SIG_IGN);
+ (void) signal(SIGTSTP, (sig_t)SIG_IGN);
#endif
#ifndef USG
mask = sigsetmask(0);
@@ -220,7 +220,7 @@ void signals()
#ifdef __386BSD__
(void) signal(SIGTSTP, (sig_t)suspend);
#else
- (void) signal(SIGTSTP, suspend);
+ (void) signal(SIGTSTP, (sig_t)suspend);
#endif
#endif
#ifndef USG
@@ -237,7 +237,7 @@ void init_signals()
{
#if !defined(ATARIST_MWC) && !defined(ATARIST_TC)
/* No signals for Atari ST compiled with MWC or TC. */
- (void) signal(SIGINT, signal_handler);
+ (void) signal(SIGINT, (sig_t)signal_handler);
#if defined(atarist) && defined(__GNUC__)
/* Atari ST compiled with GNUC has most signals, but we need a cast
@@ -259,8 +259,8 @@ void init_signals()
#else
/* Everybody except the atari st. */
- (void) signal(SIGINT, signal_handler);
- (void) signal(SIGFPE, signal_handler);
+ (void) signal(SIGINT, (sig_t)signal_handler);
+ (void) signal(SIGFPE, (sig_t)signal_handler);
#if defined(MSDOS)
/* many fewer signals under MSDOS */
@@ -278,27 +278,27 @@ void init_signals()
/* Everybody except Atari, MSDOS, and Amiga. */
/* Ignore HANGUP, and let the EOF code take care of this case. */
- (void) signal(SIGHUP, SIG_IGN);
- (void) signal(SIGQUIT, signal_handler);
- (void) signal(SIGILL, signal_handler);
- (void) signal(SIGTRAP, signal_handler);
- (void) signal(SIGIOT, signal_handler);
+ (void) signal(SIGHUP, (sig_t)SIG_IGN);
+ (void) signal(SIGQUIT, (sig_t)signal_handler);
+ (void) signal(SIGILL, (sig_t)signal_handler);
+ (void) signal(SIGTRAP, (sig_t)signal_handler);
+ (void) signal(SIGIOT, (sig_t)signal_handler);
#ifdef SIGEMT /* in BSD systems */
- (void) signal(SIGEMT, signal_handler);
+ (void) signal(SIGEMT, (sig_t)signal_handler);
#endif
#ifdef SIGDANGER /* in SYSV systems */
(void) signal(SIGDANGER, signal_handler);
#endif
- (void) signal(SIGKILL, signal_handler);
- (void) signal(SIGBUS, signal_handler);
- (void) signal(SIGSEGV, signal_handler);
+ (void) signal(SIGKILL, (sig_t)signal_handler);
+ (void) signal(SIGBUS, (sig_t)signal_handler);
+ (void) signal(SIGSEGV, (sig_t)signal_handler);
#ifdef SIGSYS
- (void) signal(SIGSYS, signal_handler);
+ (void) signal(SIGSYS, (sig_t)signal_handler);
#endif
- (void) signal(SIGTERM, signal_handler);
- (void) signal(SIGPIPE, signal_handler);
+ (void) signal(SIGTERM, (sig_t)signal_handler);
+ (void) signal(SIGPIPE, (sig_t)signal_handler);
#ifdef SIGXCPU /* BSD */
- (void) signal(SIGXCPU, signal_handler);
+ (void) signal(SIGXCPU, (sig_t)signal_handler);
#endif
#ifdef SIGPWR /* SYSV */
(void) signal(SIGPWR, signal_handler);
@@ -312,9 +312,9 @@ void init_signals()
void ignore_signals()
{
#if !defined(ATARIST_MWC)
- (void) signal(SIGINT, SIG_IGN);
+ (void) signal(SIGINT, (sig_t)SIG_IGN);
#ifdef SIGQUIT
- (void) signal(SIGQUIT, SIG_IGN);
+ (void) signal(SIGQUIT, (sig_t)SIG_IGN);
#endif
#endif
}
@@ -322,9 +322,9 @@ void ignore_signals()
void default_signals()
{
#if !defined(ATARIST_MWC)
- (void) signal(SIGINT, SIG_DFL);
+ (void) signal(SIGINT, (sig_t)SIG_DFL);
#ifdef SIGQUIT
- (void) signal(SIGQUIT, SIG_DFL);
+ (void) signal(SIGQUIT, (sig_t)SIG_DFL);
#endif
#endif
}
@@ -335,13 +335,13 @@ void restore_signals()
#if defined(atarist) && defined(__GNUC__)
(void) signal(SIGINT, (__Sigfunc)signal_handler);
#else
- (void) signal(SIGINT, signal_handler);
+ (void) signal(SIGINT, (sig_t)signal_handler);
#endif
#ifdef SIGQUIT
#if defined(atarist) && defined(__GNUC__)
(void) signal(SIGQUIT, (__Sigfunc)signal_handler);
#else
- (void) signal(SIGQUIT, signal_handler);
+ (void) signal(SIGQUIT, (sig_t)signal_handler);
#endif
#endif
#endif

View File

@ -0,0 +1,65 @@
$OpenBSD: patch-unix_Makefile,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- unix/Makefile.orig Wed Jul 4 12:31:27 2001
+++ unix/Makefile Wed Jul 4 12:31:34 2001
@@ -3,15 +3,15 @@
# LIBDIR must be the same directory defined in config.h
# OWNER is who you want the game to be chown to.
# GROUP is who you wnat the game to be chgrp to.
-BINDIR = /home/zariski/grabiner/moria
-LIBDIR = /home/zariski/grabiner/moria/files
-OWNER = grabiner
-GROUP = grad
+BINDIR = ${TRUEPREFIX}/bin
+LIBDIR = ${TRUEPREFIX}/share/moria
+OWNER = root
+GROUP = games
# For testing and debugging the program, it is best to use this line.
# CFLAGS = -g
# For playing the game, you may want to use this line
-CFLAGS = -O
+CFLAGS += -DPREFIX=\"${PREFIX}\"
# For BSD Systems
CURSES = -lcurses -ltermcap
@@ -26,8 +26,6 @@ CURSES = -lcurses -ltermcap
# Normal systems don't require anything here.
LFLAGS =
-CC = cc
-
SRCS = main.c misc1.c misc2.c misc3.c misc4.c store1.c files.c io.c \
create.c desc.c generate.c sets.c dungeon.c creature.c death.c \
eat.c help.c magic.c potions.c prayer.c save.c staffs.c wands.c \
@@ -60,19 +58,19 @@ TAGS : $(SRCS)
# you must define BINDIR and LIBDIR before installing
# assumes that BINDIR and LIBDIR exist
install:
- chmod 755 $(BINDIR)
- cp moria $(BINDIR)
- chmod 4711 $(BINDIR)/moria
- chmod 711 $(LIBDIR)
- (cd files; cp $(LIBFILES) $(LIBDIR))
- (cd $(LIBDIR); chmod 444 $(LIBFILES))
- (cd $(LIBDIR); touch scores; chmod 644 scores)
- chown $(OWNER) $(BINDIR)/moria
- chgrp $(GROUP) $(BINDIR)/moria
- (cd $(LIBDIR); chown $(OWNER) $(LIBFILES) scores)
- (cd $(LIBDIR); chgrp $(GROUP) $(LIBFILES) scores)
+ chmod 755 $(DESTDIR)$(BINDIR)
+ cp moria $(DESTDIR)$(BINDIR)
+ chown $(OWNER) $(DESTDIR)$(BINDIR)/moria
+ chgrp $(GROUP) $(DESTDIR)$(BINDIR)/moria
+ chmod 711 $(DESTDIR)$(BINDIR)/moria; chmod g+s $(DESTDIR)$(BINDIR)/moria
+ chmod 755 $(DESTDIR)$(LIBDIR)
+ (cd files; cp $(LIBFILES) $(DESTDIR)$(LIBDIR))
+ (cd $(DESTDIR)$(LIBDIR); chmod 444 $(LIBFILES))
+ (cd $(DESTDIR)$(LIBDIR); touch scores; chmod 664 scores)
+ (cd $(DESTDIR)$(LIBDIR); chown $(OWNER) $(LIBFILES) scores)
+ (cd $(DESTDIR)$(LIBDIR); chgrp $(GROUP) $(LIBFILES) scores)
# If you are short on disk space, or aren't interested in debugging moria.
-# strip $(BINDIR)/moria
+ strip $(DESTDIR)$(BINDIR)/moria
clean:
rm -r *.o

View File

@ -0,0 +1,49 @@
$OpenBSD: patch-unix_unix_c,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
--- unix/unix.c.orig Thu Jul 21 18:36:49 1994
+++ unix/unix.c Tue Jul 3 13:02:35 2001
@@ -18,7 +18,7 @@
#include "constant.h"
#include "types.h"
-#ifdef unix
+#ifdef __OpenBSD__
#if defined(SYS_V) && defined(lint)
/* for AIX, prevent hundreds of unnecessary lint errors, must define before
@@ -43,7 +43,7 @@ typedef struct { int stuff; } fpvmach;
#include <sys/param.h>
#endif
-#ifdef __linux__
+#ifdef __OpenBSD__
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
@@ -121,12 +121,12 @@ static Ioctl(i, l, p) char *p; { return
int check_input(microsec)
int microsec;
{
-#if defined(USG) && !defined(M_XENIX) && !defined(__linux__)
+#if defined(USG) && !defined(M_XENIX) && !defined(__OpenBSD__)
int arg, result;
#else
struct timeval tbuf;
int ch;
-#if defined(BSD4_3) || defined(M_XENIX) || defined(__linux__)
+#if defined(BSD4_3) || defined(M_XENIX) || defined(__OpenBSD__)
fd_set smask;
#else
int smask;
@@ -134,10 +134,10 @@ int microsec;
#endif
/* Return true if a read on descriptor 1 will not block. */
-#if !defined(USG) || defined(M_XENIX) || defined(__linux__)
+#if !defined(USG) || defined(M_XENIX) || defined(__OpenBSD__)
tbuf.tv_sec = 0;
tbuf.tv_usec = microsec;
-#if defined(BSD4_3) || defined(M_XENIX) || defined(__linux__)
+#if defined(BSD4_3) || defined(M_XENIX) || defined(__OpenBSD__)
FD_ZERO(&smask);
FD_SET(fileno(stdin), &smask);
if (select(1, &smask, (fd_set *)0, (fd_set *)0, &tbuf) == 1)

11
games/moria/pkg/DESCR Normal file
View File

@ -0,0 +1,11 @@
The game is set in Moria and the goal is to kill off the balrog.
Apart from this, the game is almost completely based on Dungeons &
Dragons. The game is a true classic and every true gamer should
have played it.
It was originally written by Robert Alan Koeneke with some help
from Jimmy Wayne Todd. Further development of the game has almost
ceased, but The Pits of Angband, which is based on its code, is
still very much in development.
WWW: ${HOMEPAGE}

13
games/moria/pkg/PLIST Normal file
View File

@ -0,0 +1,13 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2001/07/04 16:57:50 lebel Exp $
bin/moria
share/moria/hours
share/moria/news
share/moria/origcmds.hlp
share/moria/owizcmds.hlp
share/moria/roglcmds.hlp
share/moria/rwizcmds.hlp
share/moria/version.hlp
share/moria/welcome.hlp
@comment no checksum
share/moria/scores
@dirrm share/moria