Add f)lirt command. All it does right now is shoot a tilde.
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Fri, 5 Apr 2013 09:12:57 +0000 (11:12 +0200)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Fri, 5 Apr 2013 09:12:57 +0000 (11:12 +0200)
Makefile
command.c
init.c
romance.c [new file with mode: 0644]

index d34d01a6069123aa950a36c6a78bc296565d8124..27bca984618b2530cd27226a6fa521563ea96806 100644 (file)
--- a/Makefile
+++ b/Makefile
-#\r
-# Makefile for rogue\r
-# %W% (Berkeley) %G%\r
-#\r
-# Rogue: Exploring the Dungeons of Doom\r
-# Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman\r
-# All rights reserved.\r
-#\r
-# See the file LICENSE.TXT for full copyright and licensing information.\r
-#\r
-\r
-DISTNAME=rogue3.6.3\r
-PROGRAM=rogue36\r
-\r
-O=o\r
-\r
-HDRS=  rogue.h machdep.h\r
-\r
-OBJS1 = vers.$(O) armor.$(O) chase.$(O) command.$(O) daemon.$(O) daemons.$(O) \\r
-        fight.$(O) init.$(O) io.$(O) list.$(O) main.$(O) mdport.$(O) \\r
-       misc.$(O) monsters.$(O) move.$(O) newlevel.$(O) options.$(O) \r
-OBJS2 =        pack.$(O) passages.$(O) potions.$(O) rings.$(O) rip.$(O) rooms.$(O) \\r
-       save.$(O) scrolls.$(O) state.$(O) sticks.$(O) things.$(O) \\r
-       weapons.$(O) wizard.$(O) xcrypt.$(O)\r
-OBJS  = $(OBJS1) $(OBJS2)\r
-\r
-CFILES= vers.c armor.c chase.c command.c daemon.c daemons.c fight.c \\r
-       init.c io.c list.c main.c mdport.c misc.c monsters.c move.c newlevel.c \\r
-       options.c pack.c passages.c potions.c rings.c rip.c rooms.c \\r
-       save.c scrolls.c state.c sticks.c things.c weapons.c wizard.c xcrypt.c\r
-\r
-\r
-MISC_C=\r
-DOCSRC= rogue.6 rogue.r\r
-DOCS  = $(PROGRAM).doc $(PROGRAM).cat $(PROGRAM).html readme36.html\r
-MISC  =        Makefile $(MISC_C) LICENSE.TXT $(PROGRAM).sln $(PROGRAM).vcproj $(DOCS)\\r
-       $(DOCSRC)\r
-\r
-CC    = gcc\r
-ROPTS =\r
-COPTS = -g\r
-CFLAGS= $(COPTS) $(ROPTS)\r
-LIBS  = -lcurses\r
-RM    = rm -f\r
-LD    = $(CC)\r
-LDOUT = -o \r
-\r
-.SUFFIXES: .obj\r
-\r
-.c.obj:\r
-       $(CC) $(CFLAGS) /c $*.c\r
-\r
-$(PROGRAM)$(EXE): $(HDRS) $(OBJS)\r
-       $(LD) $(LDFLAGS) $(OBJS) $(LIBS) $(LDOUT)$@\r
-\r
-clean:\r
-       $(RM) $(OBJS1)\r
-       $(RM) $(OBJS2)\r
-       $(RM) core $(PROGRAM) $(PROGRAM).exe $(DISTNAME).tar $(DISTNAME).tar.gz \r
-       $(RM) $(DISTNAME).zip\r
-\r
-dist.src:\r
-       make clean\r
-       tar cf $(DISTNAME)-src.tar $(CFILES) $(HDRS) $(MISC) $(DOCS)\r
-       gzip -f $(DISTNAME)-src.tar\r
-\r
-dist.irix:\r
-       @$(MAKE) clean\r
-       @$(MAKE) CC=cc CFLAGS="-woff 1116 -O3" $(PROGRAM)\r
-#      tbl rogue.r | nroff -ms | colcrt - > $(PROGRAM).doc\r
-#      nroff -man rogue.6 | colcrt - > $(PROGRAM).cat\r
-       tar cf $(DISTNAME)-irix.tar $(PROGRAM) LICENSE.TXT $(DOCS)\r
-       gzip -f $(DISTNAME)-irix.tar\r
-\r
-dist.aix:\r
-       @$(MAKE) clean\r
-       @$(MAKE) CC=xlc CFLAGS="-qmaxmem=16768 -O3 -qstrict" $(PROGRAM)\r
-#      tbl rogue.r | nroff -ms | colcrt - > $(ROGUE).doc\r
-#      nroff -man rogue.6 | colcrt - > $(ROGUE).cat\r
-       tar cf $(DISTNAME)-aix.tar $(PROGRAM) LICENSE.TXT $(DOCS)\r
-       gzip -f $(DISTNAME)-aix.tar\r
-\r
-dist.linux:\r
-       @$(MAKE) clean\r
-       @$(MAKE) $(PROGRAM)\r
-#      groff -P-c -t -ms -Tascii rogue.r | sed -e 's/.\x08//g' > $(PROGRAM).doc\r
-#      groff -man rogue.6 | sed -e 's/.\x08//g' > $(PROGRAM).cat\r
-       tar cf $(DISTNAME)-linux.tar $(PROGRAM) LICENSE.TXT $(DOCS)\r
-       gzip -f $(DISTNAME)-linux.tar\r
-       \r
-dist.interix: \r
-       @$(MAKE) clean\r
-       @$(MAKE) COPTS="-ansi" $(PROGRAM)\r
-#      groff -P-b -P-u -t -ms -Tascii rogue.r > $(PROGRAM).doc\r
-#      groff -P-b -P-u -man -Tascii rogue.6 > $(PROGRAM).cat\r
-       tar cf $(DISTNAME)-interix.tar $(PROGRAM) LICENSE.TXT $(DOCS)\r
-       gzip -f $(DISTNAME)-interix.tar \r
-\r
-dist.cygwin:\r
-       @$(MAKE) --no-print-directory clean\r
-       @$(MAKE) COPTS="-I/usr/include/ncurses" --no-print-directory $(PROGRAM)\r
-#      groff -P-c -t -ms -Tascii rogue.r | sed -e 's/.\x08//g' > $(PROGRAM).doc\r
-#      groff -P-c -man -Tascii rogue.6 | sed -e 's/.\x08//g' > $(PROGRAM).cat\r
-       tar cf $(DISTNAME)-cygwin.tar $(PROGRAM).exe LICENSE.TXT $(DOCS)\r
-       gzip -f $(DISTNAME)-cygwin.tar\r
-\r
-#\r
-# Use MINGW32-MAKE to build this target\r
-#\r
-dist.mingw32:\r
-       @$(MAKE) --no-print-directory RM="cmd /c del" clean\r
-       @$(MAKE) --no-print-directory COPTS="-I../pdcurses" LIBS="../pdcurses/pdcurses.a" $(PROGRAM)\r
-       cmd /c del $(DISTNAME)-mingw32.zip\r
-       zip $(DISTNAME)-mingw32.zip $(PROGRAM).exe LICENSE.TXT $(DOCS)\r
-       \r
-#\r
-# Seperate doc targets for DJGPP prevent strange SIGSEGV in groff\r
-# in that environment.\r
-#\r
-doc.djgpp:\r
-       groff -t -ms -Tascii rogue.r | sed -e 's/.\x08//g' > $(PROGRAM).doc\r
-\r
-cat.djgpp:\r
-       groff -man -Tascii rogue.6 | sed -e 's/.\x08//g' > $(PROGRAM).cat\r
-\r
-dist.djgpp: \r
-       @$(MAKE) --no-print-directory clean\r
-       @$(MAKE) --no-print-directory LDFLAGS="-L$(DJDIR)/LIB" \\r
-               LIBS="-lpdcur" $(PROGRAM)\r
-#      @$(MAKE) --no-print-directory doc.djgpp\r
-#      @$(MAKE) --no-print-directory cat.djgpp\r
-       rm -f $(DISTNAME)-djgpp.zip\r
-       zip $(DISTNAME)-djgpp.zip $(PROGRAM) LICENSE.TXT $(DOCS)\r
-\r
-#\r
-# Use NMAKE to build this target\r
-#\r
-dist.win32:\r
-       @$(MAKE) /NOLOGO O="obj" RM="-del" clean\r
-       @$(MAKE) /NOLOGO O="obj" CC="@CL" LD="link" LDOUT="/OUT:" EXE=".exe"\\r
-           LIBS="/NODEFAULTLIB:LIBC ..\pdcurses\pdcurses.lib shell32.lib user32.lib Advapi32.lib" \\r
-           COPTS="-nologo -D_CRT_SECURE_NO_DEPRECATE -I..\pdcurses \\r
-           -Ox -wd4033 -wd4716" $(PROGRAM).exe\r
-       -del $(DISTNAME)-win32.zip\r
-       zip $(DISTNAME)-win32.zip $(PROGRAM).exe LICENSE.TXT $(DOCS)\r
+#
+# Makefile for rogue
+# %W% (Berkeley) %G%
+#
+# Rogue: Exploring the Dungeons of Doom
+# Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
+# All rights reserved.
+#
+# See the file LICENSE.TXT for full copyright and licensing information.
+#
+
+DISTNAME=rogue3.6.3
+PROGRAM=rogue36
+
+O=o
+
+HDRS=  rogue.h machdep.h
+
+OBJS1 = vers.$(O) armor.$(O) chase.$(O) command.$(O) daemon.$(O) daemons.$(O) \
+        fight.$(O) init.$(O) io.$(O) list.$(O) main.$(O) mdport.$(O) \
+       misc.$(O) monsters.$(O) move.$(O) newlevel.$(O) options.$(O) 
+OBJS2 =        pack.$(O) passages.$(O) potions.$(O) rings.$(O) rip.$(O) romance.$(O) \
+       rooms.$(O) save.$(O) scrolls.$(O) state.$(O) sticks.$(O) things.$(O) \
+       weapons.$(O) wizard.$(O) xcrypt.$(O)
+OBJS  = $(OBJS1) $(OBJS2)
+
+CFILES= vers.c armor.c chase.c command.c daemon.c daemons.c fight.c \
+       init.c io.c list.c main.c mdport.c misc.c monsters.c move.c newlevel.c \
+       options.c pack.c passages.c potions.c rings.c rip.c rooms.c \
+       save.c scrolls.c state.c sticks.c things.c weapons.c wizard.c xcrypt.c
+
+
+MISC_C=
+DOCSRC= rogue.6 rogue.r
+DOCS  = $(PROGRAM).doc $(PROGRAM).cat $(PROGRAM).html readme36.html
+MISC  =        Makefile $(MISC_C) LICENSE.TXT $(PROGRAM).sln $(PROGRAM).vcproj $(DOCS)\
+       $(DOCSRC)
+
+CC    = gcc
+ROPTS =
+COPTS = -g
+CFLAGS= $(COPTS) $(ROPTS)
+LIBS  = -lcurses
+RM    = rm -f
+LD    = $(CC)
+LDOUT = -o 
+
+.SUFFIXES: .obj
+
+.c.obj:
+       $(CC) $(CFLAGS) /c $*.c
+
+$(PROGRAM)$(EXE): $(HDRS) $(OBJS)
+       $(LD) $(LDFLAGS) $(OBJS) $(LIBS) $(LDOUT)$@
+
+clean:
+       $(RM) $(OBJS1)
+       $(RM) $(OBJS2)
+       $(RM) core $(PROGRAM) $(PROGRAM).exe $(DISTNAME).tar $(DISTNAME).tar.gz 
+       $(RM) $(DISTNAME).zip
+
+dist.src:
+       make clean
+       tar cf $(DISTNAME)-src.tar $(CFILES) $(HDRS) $(MISC) $(DOCS)
+       gzip -f $(DISTNAME)-src.tar
+
+dist.irix:
+       @$(MAKE) clean
+       @$(MAKE) CC=cc CFLAGS="-woff 1116 -O3" $(PROGRAM)
+#      tbl rogue.r | nroff -ms | colcrt - > $(PROGRAM).doc
+#      nroff -man rogue.6 | colcrt - > $(PROGRAM).cat
+       tar cf $(DISTNAME)-irix.tar $(PROGRAM) LICENSE.TXT $(DOCS)
+       gzip -f $(DISTNAME)-irix.tar
+
+dist.aix:
+       @$(MAKE) clean
+       @$(MAKE) CC=xlc CFLAGS="-qmaxmem=16768 -O3 -qstrict" $(PROGRAM)
+#      tbl rogue.r | nroff -ms | colcrt - > $(ROGUE).doc
+#      nroff -man rogue.6 | colcrt - > $(ROGUE).cat
+       tar cf $(DISTNAME)-aix.tar $(PROGRAM) LICENSE.TXT $(DOCS)
+       gzip -f $(DISTNAME)-aix.tar
+
+dist.linux:
+       @$(MAKE) clean
+       @$(MAKE) $(PROGRAM)
+#      groff -P-c -t -ms -Tascii rogue.r | sed -e 's/.\x08//g' > $(PROGRAM).doc
+#      groff -man rogue.6 | sed -e 's/.\x08//g' > $(PROGRAM).cat
+       tar cf $(DISTNAME)-linux.tar $(PROGRAM) LICENSE.TXT $(DOCS)
+       gzip -f $(DISTNAME)-linux.tar
+
+dist.interix: 
+       @$(MAKE) clean
+       @$(MAKE) COPTS="-ansi" $(PROGRAM)
+#      groff -P-b -P-u -t -ms -Tascii rogue.r > $(PROGRAM).doc
+#      groff -P-b -P-u -man -Tascii rogue.6 > $(PROGRAM).cat
+       tar cf $(DISTNAME)-interix.tar $(PROGRAM) LICENSE.TXT $(DOCS)
+       gzip -f $(DISTNAME)-interix.tar 
+
+dist.cygwin:
+       @$(MAKE) --no-print-directory clean
+       @$(MAKE) COPTS="-I/usr/include/ncurses" --no-print-directory $(PROGRAM)
+#      groff -P-c -t -ms -Tascii rogue.r | sed -e 's/.\x08//g' > $(PROGRAM).doc
+#      groff -P-c -man -Tascii rogue.6 | sed -e 's/.\x08//g' > $(PROGRAM).cat
+       tar cf $(DISTNAME)-cygwin.tar $(PROGRAM).exe LICENSE.TXT $(DOCS)
+       gzip -f $(DISTNAME)-cygwin.tar
+
+#
+# Use MINGW32-MAKE to build this target
+#
+dist.mingw32:
+       @$(MAKE) --no-print-directory RM="cmd /c del" clean
+       @$(MAKE) --no-print-directory COPTS="-I../pdcurses" LIBS="../pdcurses/pdcurses.a" $(PROGRAM)
+       cmd /c del $(DISTNAME)-mingw32.zip
+       zip $(DISTNAME)-mingw32.zip $(PROGRAM).exe LICENSE.TXT $(DOCS)
+
+#
+# Seperate doc targets for DJGPP prevent strange SIGSEGV in groff
+# in that environment.
+#
+doc.djgpp:
+       groff -t -ms -Tascii rogue.r | sed -e 's/.\x08//g' > $(PROGRAM).doc
+
+cat.djgpp:
+       groff -man -Tascii rogue.6 | sed -e 's/.\x08//g' > $(PROGRAM).cat
+
+dist.djgpp: 
+       @$(MAKE) --no-print-directory clean
+       @$(MAKE) --no-print-directory LDFLAGS="-L$(DJDIR)/LIB" \
+               LIBS="-lpdcur" $(PROGRAM)
+#      @$(MAKE) --no-print-directory doc.djgpp
+#      @$(MAKE) --no-print-directory cat.djgpp
+       rm -f $(DISTNAME)-djgpp.zip
+       zip $(DISTNAME)-djgpp.zip $(PROGRAM) LICENSE.TXT $(DOCS)
+
+#
+# Use NMAKE to build this target
+#
+dist.win32:
+       @$(MAKE) /NOLOGO O="obj" RM="-del" clean
+       @$(MAKE) /NOLOGO O="obj" CC="@CL" LD="link" LDOUT="/OUT:" EXE=".exe"\
+           LIBS="/NODEFAULTLIB:LIBC ..\pdcurses\pdcurses.lib shell32.lib user32.lib Advapi32.lib" \
+           COPTS="-nologo -D_CRT_SECURE_NO_DEPRECATE -I..\pdcurses \
+           -Ox -wd4033 -wd4716" $(PROGRAM).exe
+       -del $(DISTNAME)-win32.zip
+       zip $(DISTNAME)-win32.zip $(PROGRAM).exe LICENSE.TXT $(DOCS)
index 6b8033b1417ec8d9c68e9ac9f43c164e7ebd2ab2..c85020a14e66ef810906a7b6d3d808e4c789b553 100644 (file)
--- a/command.c
+++ b/command.c
@@ -101,26 +101,6 @@ command()
                        count = 0;\r
                }\r
            }\r
-           switch (ch)\r
-           {\r
-               case 'f':\r
-                   if (!on(player, ISBLIND))\r
-                   {\r
-                       door_stop = TRUE;\r
-                       firstmove = TRUE;\r
-                   }\r
-                   if (count && !newcount)\r
-                       ch = direction;\r
-                   else\r
-                       ch = readchar(cw);\r
-                   switch (ch)\r
-                   {\r
-                       case 'h': case 'j': case 'k': case 'l':\r
-                       case 'y': case 'u': case 'b': case 'n':\r
-                           ch = toupper(ch);\r
-                   }\r
-                   direction = ch;\r
-           }\r
            newcount = FALSE;\r
            /*\r
             * execute a command\r
@@ -165,6 +145,11 @@ command()
                when 'R' : ring_off();\r
                when 'o' : option();\r
                when 'c' : call();\r
+                when 'f':\r
+                   if (!get_dir())\r
+                       after = FALSE;\r
+                   else\r
+                       flirt(delta.y, delta.x);\r
                when '>' : after = FALSE; d_level();\r
                when '<' : after = FALSE; u_level();\r
                when '?' : after = FALSE; help();\r
diff --git a/init.c b/init.c
index 031ff3e6b17bf04233034ea597b65ee9054e935e..c75f5e777de387b7849184c18bc8c7855e8d953f 100644 (file)
--- a/init.c
+++ b/init.c
@@ -559,7 +559,7 @@ struct h_list helpstr[] = {
     'B',       "       run down & left",\r
     'N',       "       run down & right",\r
     't',       "<dir>  throw something",\r
-    'f',       "<dir>  forward until find something",\r
+    'f',       "<dir>  flirt with someone",\r
     'p',       "<dir>  zap a wand in a direction",\r
     'z',       "       zap a wand or staff",\r
     '>',       "       go down a staircase",\r
diff --git a/romance.c b/romance.c
new file mode 100644 (file)
index 0000000..70a06a1
--- /dev/null
+++ b/romance.c
@@ -0,0 +1,33 @@
+/*
+ * Functions for dealing with problems of the heart
+ *
+ * @(#)romance.c       3.2 (Berkeley) 6/15/81
+ *
+ * Rogue: Exploring the Dungeons of Doom
+ * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
+ * All rights reserved.
+ *
+ * See the file LICENSE.TXT for full copyright and licensing information.
+ */
+
+#include "curses.h"
+#include <ctype.h>
+#include <string.h>
+#include "rogue.h"
+
+/*
+ * flirt:
+ *     Make eyes in the given direction
+ */
+
+flirt(ydelta, xdelta)
+int ydelta, xdelta;
+{
+    register struct linked_list *item, *nitem;
+    struct object obj;
+
+    obj.o_pos = hero;
+    obj.o_type = '~';
+    do_motion(&obj, ydelta, xdelta);
+    mvwaddch(cw, hero.y, hero.x, PLAYER);
+}