home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-07-28 | 53.1 KB | 1,408 lines |
- Newsgroups: comp.sources.x
- Path: uunet!uunet!darwin.sura.net!mips!msi!dcmartin
- From: Nathan Sidwell <nathan@inmos.co.uk>
- Subject: v18i072: xmris version 2.00, Patch1, Part01/05
- Message-ID: <1992Jul29.181005.15530@msi.com>
- Originator: dcmartin@fascet
- Sender: dcmartin@msi.com (David C. Martin - Moderator)
- Organization: Molecular Simulations, Inc.
- References: <csx-18i072-xmris@uunet.UU.NET>
- Date: Wed, 29 Jul 1992 18:10:05 GMT
- Approved: dcmartin@msi.com
- Lines: 1394
-
- Submitted-by: Nathan Sidwell <nathan@inmos.co.uk>
- Posting-number: Volume 18, Issue 72
- Archive-name: xmris/patch1.01
- Patch-To: xmris: Volume XXX, Issue XXX
-
- CHANGES FROM V1.01 to V2.00 (in no particular order)
-
- Note, Imakefile & Makefile.std have changed. You'll have to do the
- appropriate change to them.
-
- There is now a high score table and file. The file can be
- disabled, if you don't want that. Multiple xmris's can
- access the score file concurrently, without getting tangled up.
- The xdefault scores and the argument -scores can be used to
- override the default. If different users are to use this file
- it must be writable to by them, or use setgid or setuid.
-
- Many people requested user selectable keys, so I've added them,
- you can select from the keyboard. I've expanded the manual
- section on how to use the keyboard, 'cos many people had trouble
- changing direction.
-
- Added .Xdefault capability
- takes xmris.{up,down,left,right,throw,pause,quit,iconize,keyboard,font,scores}.
-
- Apparently DECstation's K&R compiler doesn't like macro arguments
- split across lines. Darrin Chaney <mdchaney@ucs.indiana.edu> told
- me about this. It effects a few large asserts. I've split these.
-
- Added SYSV capabilty into timer.c, as told by Christopher C. Davis
- <davis@nuwave.b11.ingr.com>. (Make sure you have -DSYSV in your
- compiler switches.)
-
- I've added switches so it knows if memmove is available. If you
- haven't got memmove, then supply -DUSEBCOPY or -DUSEMEMCPY as
- you require,
-
- Added XIOerror handling.
-
- The -iconic argument works now.
-
- There is an iconize key (by default i), with an xresource (iconize)
- which will immediatly iconize and pause the game, (for when you
- want to look busy).
-
- Tracks the pointer entering and leaving the window. This might fix
- the problem with some window managers that it never selects the
- keyboard input. It also pauses the game as soon as the pointer
- leaves the window.
-
- Stopped it from crashing when the last argument doesn't have a '-'
- at the front. James Vera <vera@fanaraaken.stanford.edu> found this
- one.
-
- Tidied up the source putting casts in the right place, as advised
- by gcc. DATE macro is now taken from patchlevel.h.
- Fixed bug on apple falling, not breaking through thin bits of
- hedge.
-
- I received a lot of comments from Paul Winser
- <paul@prl.pjilips.co.uk>, who obviously spent too much time at
- the arcade playing the game. Some of his suggestions have been
- incorporated. Namely that the monsters run away from you when
- you throw the ball, and the xtra drones are less protective of
- the xtra monster.
-
- You can now go round corners, with a monster right behind you,
- without dying. Its also easier to stop before a thin section
- of wall, without breaking through it. This allows you to throw
- the ball through the wall.
-
- You can now change the way you're facing without moving, and
- you don't die and shoot a monster at the same time.
-
- Normal monsters now panic if they notice an apple about
- to fall on them.
-
- It is easier to stop just before a thin git of wall and shoot
- through it.
-
- Mouse control is scrapped, cos its a pile of poo.
-
- #!/bin/sh
- # This is a shell archive (produced by shar 3.50)
- # To extract the files from this archive, save it to a file, remove
- # everything above the "!/bin/sh" line above, and type "sh file_name".
- #
- # made 07/29/1992 18:08 UTC by dcmartin@fascet
- # Source directory /home/fascet/dcmartin/csx/src/xmris
- #
- # existing files will NOT be overwritten unless -c is specified
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 3117 -rw-r--r-- CHANGES
- # 222994 -rw-r--r-- patch.v2.00
- # 262 -rw-r--r-- xmris.def
- #
- if test -r _shar_seq_.tmp; then
- echo 'Must unpack archives in sequence!'
- echo Please unpack part `cat _shar_seq_.tmp` next
- exit 1
- fi
- # ============= CHANGES ==============
- if test -f 'CHANGES' -a X"$1" != X"-c"; then
- echo 'x - skipping CHANGES (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting CHANGES (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'CHANGES' &&
- The source can be requested from me by email with a subject
- "xmris request" a replyto line may be in the mail to change
- the default reply, if you know that doesn't work. Ie
- X
- replyto nathan@inmos.co.uk
- X
- CHANGES FROM V1.01 to V2.00 (in no particular order)
- X
- Note, Imakefile & Makefile.std have changed. You'll have to do the
- appropriate change to them.
- X
- There is now a high score table and file. The file can be
- disabled, if you don't want that. Multiple xmris's can
- access the score file concurrently, without getting tangled up.
- The xdefault scores and the argument -scores can be used to
- override the default. If different users are to use this file
- it must be writable to by them, or use setgid or setuid.
- X
- Many people requested user selectable keys, so I've added them,
- you can select from the keyboard. I've expanded the manual
- section on how to use the keyboard, 'cos many people had trouble
- changing direction.
- X
- Added .Xdefault capability
- takes xmris.{up,down,left,right,throw,pause,quit,iconize,keyboard,font,scores}.
- X
- Apparently DECstation's K&R compiler doesn't like macro arguments
- split across lines. Darrin Chaney <mdchaney@ucs.indiana.edu> told
- me about this. It effects a few large asserts. I've split these.
- X
- Added SYSV capabilty into timer.c, as told by Christopher C. Davis
- <davis@nuwave.b11.ingr.com>. (Make sure you have -DSYSV in your
- compiler switches.)
- X
- I've added switches so it knows if memmove is available. If you
- haven't got memmove, then supply -DUSEBCOPY or -DUSEMEMCPY as
- you require,
- X
- Added XIOerror handling.
- X
- The -iconic argument works now.
- X
- There is an iconize key (by default i), with an xresource (iconize)
- which will immediatly iconize and pause the game, (for when you
- want to look busy).
- X
- Tracks the pointer entering and leaving the window. This might fix
- the problem with some window managers that it never selects the
- keyboard input. It also pauses the game as soon as the pointer
- leaves the window.
- X
- Stopped it from crashing when the last argument doesn't have a '-'
- at the front. James Vera <vera@fanaraaken.stanford.edu> found this
- one.
- X
- Tidied up the source putting casts in the right place, as advised
- by gcc. DATE macro is now taken from patchlevel.h.
- Fixed bug on apple falling, not breaking through thin bits of
- hedge.
- X
- I received a lot of comments from Paul Winser
- <paul@prl.pjilips.co.uk>, who obviously spent too much time at
- the arcade playing the game. Some of his suggestions have been
- incorporated. Namely that the monsters run away from you when
- you throw the ball, and the xtra drones are less protective of
- the xtra monster.
- X
- You can now go round corners, with a monster right behind you,
- without dying. Its also easier to stop before a thin section
- of wall, without breaking through it. This allows you to throw
- the ball through the wall.
- X
- You can now change the way you're facing without moving, and
- you don't die and shoot a monster at the same time.
- X
- Normal monsters now panic if they notice an apple about
- to fall on them.
- X
- It is easier to stop just before a thin git of wall and shoot
- through it.
- X
- Mouse control is scrapped, cos its a pile of poo.
- X
- X
- SHAR_EOF
- chmod 0644 CHANGES ||
- echo 'restore of CHANGES failed'
- Wc_c="`wc -c < 'CHANGES'`"
- test 3117 -eq "$Wc_c" ||
- echo 'CHANGES: original size 3117, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= patch.v2.00 ==============
- if test -f 'patch.v2.00' -a X"$1" != X"-c"; then
- echo 'x - skipping patch.v2.00 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting patch.v2.00 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'patch.v2.00' &&
- diff -c -r exp.v1.01/COMPILATION exp.v2.00/COMPILATION
- *** exp.v1.01/COMPILATION Fri Jul 24 09:55:52 1992
- --- exp.v2.00/COMPILATION Fri Jul 24 13:42:58 1992
- ***************
- *** 17,27 ****
- --- 17,41 ----
- X down by increasing the frame rate. This can be done by fiddling with
- X the FRAME variable in the Imakefile
- X
- + If you've a System V flavour of unix make sure you supply -DSYSV to
- + the compiler.
- +
- + Set the SCORE_DIR to point to the default high score directory. If this
- + is not defined, then the high score file code will not be included, and
- + you'll get a warning when you try to start xmris with a high score file.
- + Note that the score file uses lockf by default. You might need to change
- + this for different unices.
- +
- X To make on your system type
- X
- X xmkmf
- X make depend
- X make all
- +
- + don't forget to touch the score file into existance if you want it.
- +
- + xmris.def is an example Xdefault module, so you can use the arrow keys,
- + append it to your .Xdefaults and re-read it in with xrdb if you want.
- X
- X To install into your X bin use make install, but note that this only
- X installs xmris, not xmsit.
- diff -c -r exp.v1.01/COPYRIGHT exp.v2.00/COPYRIGHT
- *** exp.v1.01/COPYRIGHT Fri Jul 24 09:55:50 1992
- --- exp.v2.00/COPYRIGHT Fri Jul 24 13:42:59 1992
- ***************
- *** 2,10 ****
- X ---------------
- X (C) 1992 Nathan Sidwell
- X
- ! This program is copyright (C) 1992 Nathan Sidwell. This software and
- ! documentation is in the public domain. Permission is granted to
- ! distribute and compile verbatim copies of this software for
- X non-commercial, non-profit use, without fee. The software may be
- X modified, provided that both the above copyright notice and this
- X permission notice appear.
- --- 2,9 ----
- X ---------------
- X (C) 1992 Nathan Sidwell
- X
- ! This program is copyright (C) 1992 Nathan Sidwell. Permission is
- ! granted to distribute and compile verbatim copies of this software for
- X non-commercial, non-profit use, without fee. The software may be
- X modified, provided that both the above copyright notice and this
- X permission notice appear.
- diff -c -r exp.v1.01/Imakefile exp.v2.00/Imakefile
- *** exp.v1.01/Imakefile Fri Jul 24 09:55:53 1992
- --- exp.v2.00/Imakefile Fri Jul 24 13:42:59 1992
- ***************
- *** 1,30 ****
- ! /**/# I need special include directories for gcc
- X STD_INCLUDES = -I/inmos/arch/lib/gcc-ansi
- X /**/# select your compiler
- ! CC = gcc -ansi -pedantic -nostdinc -Wall -Wpointer-arith -Wwrite-strings
- ! /**/#CC = gcc -traditional -nostdinc -Wall -Wpointer-arith -Wwrite-strings
- X /**/# uncomment and fiddle with the following lines if you want
- X /**/# default game gender 0 = male, 1 = female
- X /**/#GENDER = -DGAME_GENDER=1
- X /**/# frame rate in microseconds
- X /**/#FRAME = -DFRAME_RATE=37000
- ! /**/# font name
- X /**/#FONT = -DFONT_NAME="-*-courier-*-r-*-*-18-*-*-*-*-*-*-*"
- X /**/# do you trust the code?
- ! /**/# NDEBUG = -DNDEBUG
- ! /**/# K&R doesn't have __DATE__ so we supply it here
- ! DATE = -DDATE="\"`date '+%h %d 19%y'`\""
- X /**/# Allow debugging?
- X /**/#CDEBUGFLAGS = -g
- X
- ! DEFINES = $(DATE) $(GENDER) $(FRAME) $(FONT) $(NDEBUG)
- X SRCS = apple.c create.c demo.c draw.c monster.c move.c player.c timer.c xmris.c
- X OBJS = apple.o create.o demo.o draw.o monster.o move.o player.o timer.o xmris.o
- X LOCAL_LIBRARIES = $(XLIB)
- !
- X ComplexProgramTarget(xmris)
- X
- ! all :: xmris xmsit
- X
- X xmsit: xmris
- X ln -s xmris xmsit
- --- 1,45 ----
- ! /**/# I need special include directories for gcc, if you don't
- ! /**/# the comment it out
- X STD_INCLUDES = -I/inmos/arch/lib/gcc-ansi
- X /**/# select your compiler
- ! CC = gcc -ansi -pedantic -nostdinc -Wall -Wpointer-arith -Wwrite-strings -Wconversion
- ! /**/#CC = gcc -traditional -nostdinc -Wall -Wpointer-arith -Wwrite-strings -Wconversion -fno-builtin
- X /**/# uncomment and fiddle with the following lines if you want
- X /**/# default game gender 0 = male, 1 = female
- X /**/#GENDER = -DGAME_GENDER=1
- X /**/# frame rate in microseconds
- X /**/#FRAME = -DFRAME_RATE=37000
- ! /**/# font name (must be fixed width)
- X /**/#FONT = -DFONT_NAME="-*-courier-*-r-*-*-18-*-*-*-*-*-*-*"
- + /**/# where is the high score file, comment if you don't want them
- + #define HIGH_SCORE_FILE /u/nathan/games/xmris.scores
- + #ifdef HIGH_SCORE_FILE
- + SCORE= HIGH_SCORE_FILE
- + SCORE_FILE = -DSCORE_FILE=\"$(SCORE)\"
- + #endif
- + /**/# don't you have memcpy?
- + /**/#COPY = -DUSEBCOPY
- + /**/#COPY = -DUSEMEMCPY
- X /**/# do you trust the code?
- ! /**/#NDEBUG = -DNDEBUG
- X /**/# Allow debugging?
- X /**/#CDEBUGFLAGS = -g
- X
- ! DEFINES = $(GENDER) $(FRAME) $(FONT) $(NDEBUG) $(SCORE_FILE) $(COPY)
- X SRCS = apple.c create.c demo.c draw.c monster.c move.c player.c timer.c xmris.c
- X OBJS = apple.o create.o demo.o draw.o monster.o move.o player.o timer.o xmris.o
- X LOCAL_LIBRARIES = $(XLIB)
- ! DEPLIBS = $(DEPXLIB)
- X ComplexProgramTarget(xmris)
- X
- ! all :: xmris xmsit $(SCORE)
- X
- X xmsit: xmris
- X ln -s xmris xmsit
- +
- + #ifdef HIGH_SCORE_FILE
- + $(SCORE) :
- + touch $(SCORE)
- + chmod 666 $(SCORE)
- +
- + #endif
- diff -c -r exp.v1.01/Makefile.std exp.v2.00/Makefile.std
- *** exp.v1.01/Makefile.std Fri Jul 24 09:55:54 1992
- --- exp.v2.00/Makefile.std Fri Jul 24 13:43:00 1992
- ***************
- *** 225,253 ****
- X ###########################################################################
- X # start of Imakefile
- X
- ! # I need special include directories for gcc
- X #STD_INCLUDES = -I/inmos/arch/lib/gcc-ansi
- X # select your compiler
- ! #CC = gcc -ansi -pedantic -nostdinc -Wall -Wpointer-arith -Wwrite-strings
- ! #CC = gcc -traditional -nostdinc -Wall -Wpointer-arith -Wwrite-strings
- X # uncomment and fiddle with the following lines if you want
- X # default game gender 0 = male, 1 = female
- X #GENDER = -DGAME_GENDER=1
- X # frame rate in microseconds
- X #FRAME = -DFRAME_RATE=37000
- ! # font name
- X #FONT = -DFONT_NAME="-*-courier-*-r-*-*-18-*-*-*-*-*-*-*"
- X # do you trust the code?
- ! # NDEBUG = -DNDEBUG
- ! # K&R doesn't have __DATE__ so we supply it here
- ! DATE = -DDATE="\"`date '+%h %d 19%y'`\""
- X # Allow debugging?
- X #CDEBUGFLAGS = -g
- X
- ! DEFINES = $(DATE) $(GENDER) $(FRAME) $(FONT) $(NDEBUG)
- X SRCS = apple.c create.c demo.c draw.c monster.c move.c player.c timer.c xmris.c
- X OBJS = apple.o create.o demo.o draw.o monster.o move.o player.o timer.o xmris.o
- X LOCAL_LIBRARIES = $(XLIB)
- X
- X PROGRAM = xmris
- X
- --- 225,261 ----
- X ###########################################################################
- X # start of Imakefile
- X
- ! # I need special include directories for gcc, if you don't
- ! # the comment it out
- X #STD_INCLUDES = -I/inmos/arch/lib/gcc-ansi
- X # select your compiler
- ! #CC = gcc -ansi -pedantic -nostdinc -Wall -Wpointer-arith -Wwrite-strings -Wconversion
- ! #CC = gcc -traditional -nostdinc -Wall -Wpointer-arith -Wwrite-strings -Wconversion -fno-builtin
- X # uncomment and fiddle with the following lines if you want
- X # default game gender 0 = male, 1 = female
- X #GENDER = -DGAME_GENDER=1
- X # frame rate in microseconds
- X #FRAME = -DFRAME_RATE=37000
- ! # font name (must be fixed width)
- X #FONT = -DFONT_NAME="-*-courier-*-r-*-*-18-*-*-*-*-*-*-*"
- + # where is the high score file, comment if you don't want them
- +
- + SCORE= /u/nathan/games/xmris.scores
- + SCORE_FILE = -DSCORE_FILE=\"$(SCORE)\"
- +
- + # don't you have memcpy?
- + #COPY = -DUSEBCOPY
- + #COPY = -DUSEMEMCPY
- X # do you trust the code?
- ! #NDEBUG = -DNDEBUG
- X # Allow debugging?
- X #CDEBUGFLAGS = -g
- X
- ! DEFINES = $(GENDER) $(FRAME) $(FONT) $(NDEBUG) $(SCORE_FILE) $(COPY)
- X SRCS = apple.c create.c demo.c draw.c monster.c move.c player.c timer.c xmris.c
- X OBJS = apple.o create.o demo.o draw.o monster.o move.o player.o timer.o xmris.o
- X LOCAL_LIBRARIES = $(XLIB)
- + DEPLIBS = $(DEPXLIB)
- X
- X PROGRAM = xmris
- X
- ***************
- *** 280,290 ****
- X clean::
- X $(RM) $(PROGRAM)
- X
- ! all :: xmris xmsit
- X
- X xmsit: xmris
- X ln -s xmris xmsit
- X
- X ###########################################################################
- X # common rules for all Makefiles - do not edit
- X
- --- 288,302 ----
- X clean::
- X $(RM) $(PROGRAM)
- X
- ! all :: xmris xmsit $(SCORE)
- X
- X xmsit: xmris
- X ln -s xmris xmsit
- X
- + $(SCORE) :
- + touch $(SCORE)
- + chmod 666 $(SCORE)
- +
- X ###########################################################################
- X # common rules for all Makefiles - do not edit
- X
- ***************
- *** 326,364 ****
- X ###########################################################################
- X # dependencies generated by makedepend
- X
- ! # DO NOT DELETE THIS LINE -- make depend depends on it.
- X
- ! apple.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! apple.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! apple.o: /usr/include/stdio.h /usr/include/assert.h
- ! apple.o: /usr/include/string.h /usr/include/ctype.h
- X apple.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! apple.o: /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h
- ! apple.o: /usr/include/X11/X.h /usr/include/X11/Xutil.h
- ! create.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! create.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! create.o: /usr/include/stdio.h /usr/include/assert.h
- ! create.o: /usr/include/string.h /usr/include/ctype.h
- X create.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- - create.o: /usr/include/sys/stdtypes.h
- X create.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! create.o: /usr/include/X11/Xutil.h bitmaps/icon/mris.h bitmaps/icon/msit.h
- ! create.o: bitmaps/icon/cursor.h bitmaps/icon/cursorm.h bitmaps/icon/solidm.h
- ! create.o: bitmaps/icon/solidr.h bitmaps/icon/solidi.h bitmaps/icon/solids.h
- ! create.o: bitmaps/icon/solidt.h bitmaps/icon/shellm.h bitmaps/icon/shellr.h
- ! create.o: bitmaps/icon/shelli.h bitmaps/icon/shells.h bitmaps/icon/shellt.h
- ! create.o: bitmaps/icon/bigm.h bitmaps/icon/bigr.h bitmaps/icon/bigi.h
- ! create.o: bitmaps/icon/bigs.h bitmaps/icon/bigt.h bitmaps/board/oblong.h
- ! create.o: bitmaps/board/rect.h bitmaps/board/munchtb.h
- ! create.o: bitmaps/board/munchlr.h bitmaps/board/edgetb.h
- ! create.o: bitmaps/board/edgelr.h bitmaps/board/fill0.h bitmaps/board/fill1.h
- ! create.o: bitmaps/board/fill2.h bitmaps/board/fill3.h bitmaps/board/digits.h
- ! create.o: bitmaps/board/digitsm.h bitmaps/board/cherry.h
- ! create.o: bitmaps/board/cherrym.h bitmaps/apple/apple.h
- ! create.o: bitmaps/apple/applem.h bitmaps/apple/rock.h bitmaps/apple/rockm.h
- ! create.o: bitmaps/apple/split.h bitmaps/apple/splitm.h bitmaps/apple/decay.h
- ! create.o: bitmaps/apple/decaym.h bitmaps/apple/rot.h bitmaps/apple/rotm.h
- ! create.o: bitmaps/player/ball.h bitmaps/player/plyrrt1.h
- X create.o: bitmaps/player/plyrrt1m.h bitmaps/player/plyrrt2.h
- X create.o: bitmaps/player/plyrrt2m.h bitmaps/player/plyrup1.h
- X create.o: bitmaps/player/plyrup1m.h bitmaps/player/plyrup2.h
- --- 338,377 ----
- X ###########################################################################
- X # dependencies generated by makedepend
- X
- ! # DO NOT DELETE
- X
- ! apple.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! apple.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! apple.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! apple.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X apple.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! apple.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! apple.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! apple.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! create.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! create.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! create.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! create.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X create.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- X create.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! create.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! create.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! create.o: bitmaps/icon/mris.h bitmaps/icon/msit.h bitmaps/icon/cursor.h
- ! create.o: bitmaps/icon/cursorm.h bitmaps/icon/solidm.h bitmaps/icon/solidr.h
- ! create.o: bitmaps/icon/solidi.h bitmaps/icon/solids.h bitmaps/icon/solidt.h
- ! create.o: bitmaps/icon/shellm.h bitmaps/icon/shellr.h bitmaps/icon/shelli.h
- ! create.o: bitmaps/icon/shells.h bitmaps/icon/shellt.h bitmaps/icon/bigm.h
- ! create.o: bitmaps/icon/bigr.h bitmaps/icon/bigi.h bitmaps/icon/bigs.h
- ! create.o: bitmaps/icon/bigt.h bitmaps/board/oblong.h bitmaps/board/rect.h
- ! create.o: bitmaps/board/munchtb.h bitmaps/board/munchlr.h
- ! create.o: bitmaps/board/edgetb.h bitmaps/board/edgelr.h bitmaps/board/fill0.h
- ! create.o: bitmaps/board/fill1.h bitmaps/board/fill2.h bitmaps/board/fill3.h
- ! create.o: bitmaps/board/digits.h bitmaps/board/digitsm.h
- ! create.o: bitmaps/board/cherry.h bitmaps/board/cherrym.h
- ! create.o: bitmaps/apple/apple.h bitmaps/apple/applem.h bitmaps/apple/rock.h
- ! create.o: bitmaps/apple/rockm.h bitmaps/apple/split.h bitmaps/apple/splitm.h
- ! create.o: bitmaps/apple/decay.h bitmaps/apple/decaym.h bitmaps/apple/rot.h
- ! create.o: bitmaps/apple/rotm.h bitmaps/player/ball.h bitmaps/player/plyrrt1.h
- X create.o: bitmaps/player/plyrrt1m.h bitmaps/player/plyrrt2.h
- X create.o: bitmaps/player/plyrrt2m.h bitmaps/player/plyrup1.h
- X create.o: bitmaps/player/plyrup1m.h bitmaps/player/plyrup2.h
- ***************
- *** 390,450 ****
- X create.o: bitmaps/prize/brolly.h bitmaps/prize/brollym.h
- X create.o: bitmaps/prize/mushrm.h bitmaps/prize/mushrmm.h
- X create.o: bitmaps/prize/clock.h bitmaps/prize/clockm.h
- ! demo.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! demo.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! demo.o: /usr/include/stdio.h /usr/include/assert.h
- ! demo.o: /usr/include/string.h /usr/include/ctype.h
- X demo.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! demo.o: /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h
- ! demo.o: /usr/include/X11/X.h /usr/include/X11/Xutil.h
- ! draw.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! draw.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! draw.o: /usr/include/stdio.h /usr/include/assert.h
- ! draw.o: /usr/include/string.h /usr/include/ctype.h
- X draw.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! draw.o: /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h
- ! draw.o: /usr/include/X11/X.h /usr/include/X11/Xutil.h
- X draw.o: /usr/include/time.h
- ! monster.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! monster.o: /usr/include/stddef.h
- ! monster.o: /usr/include/stdlib.h /usr/include/stdio.h
- ! monster.o: /usr/include/assert.h
- ! monster.o: /usr/include/string.h /usr/include/ctype.h
- X monster.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- - monster.o: /usr/include/sys/stdtypes.h
- X monster.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! monster.o: /usr/include/X11/Xutil.h
- ! move.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! move.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! move.o: /usr/include/stdio.h /usr/include/assert.h
- ! move.o: /usr/include/string.h /usr/include/ctype.h
- X move.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! move.o: /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h
- ! move.o: /usr/include/X11/X.h /usr/include/X11/Xutil.h
- ! player.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! player.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! player.o: /usr/include/stdio.h /usr/include/assert.h
- ! player.o: /usr/include/string.h /usr/include/ctype.h
- X player.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- - player.o: /usr/include/sys/stdtypes.h
- X player.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! player.o: /usr/include/X11/Xutil.h
- ! timer.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! timer.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! timer.o: /usr/include/stdio.h /usr/include/assert.h
- ! timer.o: /usr/include/string.h /usr/include/ctype.h
- X timer.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! timer.o: /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h
- ! timer.o: /usr/include/X11/X.h /usr/include/X11/Xutil.h
- ! timer.o: /usr/include/time.h /usr/include/sys/time.h
- ! timer.o: /usr/include/signal.h
- ! timer.o: /usr/include/sys/signal.h
- ! timer.o: /usr/include/vm/faultcode.h
- ! xmris.o: xmris.h patchlevel.h /usr/include/varargs.h
- ! xmris.o: /usr/include/stddef.h /usr/include/stdlib.h
- ! xmris.o: /usr/include/stdio.h /usr/include/assert.h
- ! xmris.o: /usr/include/string.h /usr/include/ctype.h
- X xmris.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! xmris.o: /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h
- ! xmris.o: /usr/include/X11/X.h /usr/include/X11/Xutil.h
- X xmris.o: /usr/include/time.h
- --- 403,466 ----
- X create.o: bitmaps/prize/brolly.h bitmaps/prize/brollym.h
- X create.o: bitmaps/prize/mushrm.h bitmaps/prize/mushrmm.h
- X create.o: bitmaps/prize/clock.h bitmaps/prize/clockm.h
- ! demo.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! demo.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! demo.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! demo.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X demo.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! demo.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! demo.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! demo.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! demo.o: /usr/include/time.h
- ! draw.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! draw.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! draw.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! draw.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X draw.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! draw.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! draw.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! draw.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- X draw.o: /usr/include/time.h
- ! monster.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! monster.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! monster.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! monster.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X monster.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- X monster.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! monster.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! monster.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! move.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! move.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! move.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! move.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X move.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! move.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! move.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! move.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! player.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! player.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! player.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! player.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X player.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- X player.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! player.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! player.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! timer.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! timer.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! timer.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! timer.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X timer.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! timer.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! timer.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! timer.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- ! timer.o: /usr/include/time.h /usr/include/sys/time.h /usr/include/signal.h
- ! timer.o: /usr/include/sys/signal.h /usr/include/vm/faultcode.h
- ! xmris.o: xmris.h patchlevel.h /usr/include/varargs.h /usr/include/stddef.h
- ! xmris.o: /usr/include/sys/stdtypes.h /usr/include/stdlib.h
- ! xmris.o: /usr/include/stdio.h /usr/include/assert.h /usr/include/string.h
- ! xmris.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/ctype.h
- X xmris.o: /usr/include/X11/Xlib.h /usr/include/sys/types.h
- ! xmris.o: /usr/include/sys/sysmacros.h /usr/include/X11/X.h
- ! xmris.o: /usr/include/X11/Xutil.h /usr/include/X11/keysym.h
- ! xmris.o: /usr/include/X11/keysymdef.h /usr/include/unistd.h
- X xmris.o: /usr/include/time.h
- diff -c -r exp.v1.01/README exp.v2.00/README
- *** exp.v1.01/README Fri Jul 24 09:55:51 1992
- --- exp.v2.00/README Fri Jul 24 13:42:57 1992
- ***************
- *** 1,12 ****
- ! X M R I S V1.01
- X
- X (C) 1992 Nathan Sidwell
- X
- ! This program is copyright (C) 1992 Nathan Sidwell. This software and
- ! documentation is in the public domain. Permission is granted to
- ! distribute and compile verbatim copies of this software for
- ! non-commercial, non-profit use, without fee. The software may be
- ! modified, provided that both the above copyright notice and this
- X permission notice appear.
- X
- X No guarantee is given as to the robustness or suitability of this
- --- 1,11 ----
- ! X M R I S V2.00
- X
- X (C) 1992 Nathan Sidwell
- X
- ! This program is copyright (C) 1992 Nathan Sidwell. Permission is
- ! granted to distribute and compile verbatim copies of this software
- ! for non-commercial, non-profit use, without fee. The software may
- ! be modified, provided that both the above copyright notice and this
- X permission notice appear.
- X
- X No guarantee is given as to the robustness or suitability of this
- diff -c -r exp.v1.01/apple.c exp.v2.00/apple.c
- *** exp.v1.01/apple.c Fri Jul 24 09:56:00 1992
- --- exp.v2.00/apple.c Fri Jul 24 13:43:06 1992
- ***************
- *** 1,21 ****
- ! /*{{{ (C) 1992 Nathan Sidwell*/
- ! /*****************************************************************************
- ! X M R I S V1.01
- ! ---------------
- ! (C) 1992 Nathan Sidwell
- !
- ! This program is copyright (C) 1992 Nathan Sidwell. This software and documentation
- ! is in the public domain. Permission is granted to distribute and compile
- ! verbatim copies of this software for non-commercial, non-profit use,
- ! without fee. The software may be modified, provided that both the above copyright
- ! notice and this permission notice appear.
- !
- ! No guarantee is given as to the robustness or suitability of this
- ! software for your computer.
- !
- ! Nathan Sidwell INMOS UK | | nathan@inmos.co.uk DoD#0390
- ! *****************************************************************************/
- ! /*}}}*/
- X #include "xmris.h"
- X /*{{{ APPLE *apple_search(x, y, width, height, found)*/
- X extern APPLE *apple_search FUNCARGLIST((x, y, width, height, found))
- --- 1,4 ----
- ! /* (C) 1992 Nathan Sidwell */
- X #include "xmris.h"
- X /*{{{ APPLE *apple_search(x, y, width, height, found)*/
- X extern APPLE *apple_search FUNCARGLIST((x, y, width, height, found))
- ***************
- *** 67,73 ****
- X unsigned i;
- X APPLE *aptr;
- X int px, py;
- !
- X px = mptr->pixel.x;
- X py = mptr->pixel.y;
- X for(aptr = apple.list, i = apple.apples; i--; aptr++)
- --- 50,56 ----
- X unsigned i;
- X APPLE *aptr;
- X int px, py;
- !
- X px = mptr->pixel.x;
- X py = mptr->pixel.y;
- X for(aptr = apple.list, i = apple.apples; i--; aptr++)
- ***************
- *** 130,136 ****
- X CELL *cptr;
- X
- X aptr = apple_search(x, y,
- ! width + CELL_WIDTH / 2, 2 * (CELL_HEIGHT - VEL_Y), found);
- X if(!aptr)
- X break;
- X else if(aptr->state > 3 || aptr->push ||
- --- 113,119 ----
- X CELL *cptr;
- X
- X aptr = apple_search(x, y,
- ! (unsigned)width + CELL_WIDTH / 2, 2 * (CELL_HEIGHT - VEL_Y), found);
- X if(!aptr)
- X break;
- X else if(aptr->state > 3 || aptr->push ||
- ***************
- *** 150,160 ****
- X final = aptr;
- X found |= 1 << (aptr - apple.list);
- X width = aptr->pixel.x - x + 1;
- X aptr->maypush = width;
- X x = aptr->pixel.x - CELL_WIDTH + 1 - width;
- X if(aptr->state != 2 && aptr->offset.y > 0 &&
- X apple_search(x, aptr->pixel.y - aptr->offset.y +
- ! CELL_HEIGHT, width, aptr->offset.y, found))
- X {
- X stop = 1;
- X break;
- --- 133,144 ----
- X final = aptr;
- X found |= 1 << (aptr - apple.list);
- X width = aptr->pixel.x - x + 1;
- + assert(width >= 0);
- X aptr->maypush = width;
- X x = aptr->pixel.x - CELL_WIDTH + 1 - width;
- X if(aptr->state != 2 && aptr->offset.y > 0 &&
- X apple_search(x, aptr->pixel.y - aptr->offset.y +
- ! CELL_HEIGHT, (unsigned)width, (unsigned)aptr->offset.y, found))
- X {
- X stop = 1;
- X break;
- ***************
- *** 173,179 ****
- X unsigned i;
- X MONSTER *mptr;
- X MONSTER *list;
- !
- X list = NULL;
- X for(mptr = monster.list, i = monster.monsters; i--; mptr++)
- X {
- --- 157,163 ----
- X unsigned i;
- X MONSTER *mptr;
- X MONSTER *list;
- !
- X list = NULL;
- X for(mptr = monster.list, i = monster.monsters; i--; mptr++)
- X {
- ***************
- *** 195,201 ****
- X else if(mptr->type == 0)
- X {
- X CELL *cptr;
- !
- X cptr = BOARDCELL(mptr->cell.x, mptr->cell.y);
- X if(cptr->depths[2] <= mptr->offset.x - width ||
- X ((cptr->depths[1] || cptr->depths[0]) &&
- --- 179,185 ----
- X else if(mptr->type == 0)
- X {
- X CELL *cptr;
- !
- X cptr = BOARDCELL(mptr->cell.x, mptr->cell.y);
- X if(cptr->depths[2] <= mptr->offset.x - width ||
- X ((cptr->depths[1] || cptr->depths[0]) &&
- ***************
- *** 221,227 ****
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++, found >>= 1)
- X if(found & 1)
- X aptr->push = -aptr->maypush;
- --- 205,211 ----
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++, found >>= 1)
- X if(found & 1)
- X aptr->push = -aptr->maypush;
- ***************
- *** 251,257 ****
- X APPLE *aptr;
- X
- X aptr = apple_search(x - CELL_WIDTH / 2, y,
- ! width + CELL_WIDTH / 2, 2 * (CELL_HEIGHT - VEL_Y), found);
- X if(!aptr)
- X break;
- X else if(aptr->state > 3 || aptr->push ||
- --- 235,241 ----
- X APPLE *aptr;
- X
- X aptr = apple_search(x - CELL_WIDTH / 2, y,
- ! (unsigned)width + CELL_WIDTH / 2, 2 * (CELL_HEIGHT - VEL_Y), found);
- X if(!aptr)
- X break;
- X else if(aptr->state > 3 || aptr->push ||
- ***************
- *** 271,281 ****
- X final = aptr;
- X found |= 1 << (aptr - apple.list);
- X width -= aptr->pixel.x - x;
- X aptr->maypush = width;
- X x = aptr->pixel.x + CELL_WIDTH;
- X if(aptr->state != 2 && aptr->offset.y > 0 &&
- X apple_search(x, aptr->pixel.y - aptr->offset.y +
- ! CELL_HEIGHT, width, aptr->offset.y, found))
- X {
- X stop = 1;
- X break;
- --- 255,266 ----
- X final = aptr;
- X found |= 1 << (aptr - apple.list);
- X width -= aptr->pixel.x - x;
- + assert(width >= 0);
- X aptr->maypush = width;
- X x = aptr->pixel.x + CELL_WIDTH;
- X if(aptr->state != 2 && aptr->offset.y > 0 &&
- X apple_search(x, aptr->pixel.y - aptr->offset.y +
- ! CELL_HEIGHT, (unsigned)width, (unsigned)aptr->offset.y, found))
- X {
- X stop = 1;
- X break;
- ***************
- *** 340,346 ****
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++, found >>= 1)
- X if(found & 1)
- X aptr->push = aptr->maypush;
- --- 325,331 ----
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++, found >>= 1)
- X if(found & 1)
- X aptr->push = aptr->maypush;
- ***************
- *** 377,383 ****
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++)
- X {
- X if(aptr->pixel.x - mptr->pixel.x <= CELL_WIDTH / 2 &&
- --- 362,368 ----
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++)
- X {
- X if(aptr->pixel.x - mptr->pixel.x <= CELL_WIDTH / 2 &&
- ***************
- *** 399,405 ****
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++)
- X {
- X if(aptr->pixel.x - mptr->pixel.x <= CELL_WIDTH / 2 &&
- --- 384,390 ----
- X {
- X unsigned i;
- X APPLE *aptr;
- !
- X for(aptr = apple.list, i = apple.apples; i--; aptr++)
- X {
- X if(aptr->pixel.x - mptr->pixel.x <= CELL_WIDTH / 2 &&
- ***************
- *** 502,508 ****
- X add_score(squish_scores[aptr->monsters >= SQUISH_SCORES ?
- X SQUISH_SCORES - 1 : aptr->monsters],
- X aptr->pixel.x + CELL_WIDTH / 2,
- ! aptr->pixel.y + apple_sizes[4].size.y / 2);
- X aptr->state = 6;
- X }
- X else
- --- 487,493 ----
- X add_score(squish_scores[aptr->monsters >= SQUISH_SCORES ?
- X SQUISH_SCORES - 1 : aptr->monsters],
- X aptr->pixel.x + CELL_WIDTH / 2,
- ! aptr->pixel.y + (int)(apple_sizes[4].size.y / 2));
- X aptr->state = 6;
- X }
- X else
- ***************
- *** 544,550 ****
- X if(aptr->state == 2)
- X {
- X MONSTER *mptr;
- !
- X aptr->count = APPLE_ACC;
- X aptr->distance = 0;
- X if(!cptr[0].visit)
- --- 529,535 ----
- X if(aptr->state == 2)
- X {
- X MONSTER *mptr;
- !
- X aptr->count = APPLE_ACC;
- X aptr->distance = 0;
- X if(!cptr[0].visit)
- ***************
- *** 571,581 ****
- X aptr->state = 0;
- X aptr->list = NULL;
- X }
- ! for(mptr = aptr->list; mptr; mptr = mptr->list)
- X {
- ! mptr->apple = aptr;
- ! aptr->monsters++;
- ! aptr->distance = APPLE_FALL_SPLIT;
- X }
- X }
- X else
- --- 556,571 ----
- X aptr->state = 0;
- X aptr->list = NULL;
- X }
- ! if(aptr->state == 2)
- X {
- ! for(mptr = aptr->list; mptr; mptr = mptr->list)
- ! {
- ! mptr->apple = aptr;
- ! aptr->monsters++;
- ! aptr->distance = APPLE_FALL_SPLIT;
- ! }
- ! panic_monsters(aptr->cell.x, aptr->cell.y,
- ! BOARDCELL(aptr->cell.x, aptr->cell.y));
- X }
- X }
- X else
- ***************
- *** 588,594 ****
- X unsigned j;
- X APPLE *optr;
- X COORD pixel;
- !
- X /*{{{ horizontal movement*/
- X if(aptr->push)
- X {
- --- 578,584 ----
- X unsigned j;
- X APPLE *optr;
- X COORD pixel;
- !
- X /*{{{ horizontal movement*/
- X if(aptr->push)
- X {
- ***************
- *** 633,641 ****
- X /*{{{ bashes into another?*/
- X {
- X int x, y;
- !
- X x = aptr->pixel.x - CELL_WIDTH;
- ! y = pixel.y + aptr->offset.y;
- X for(optr = apple.list, j = apple.apples; j--; optr++)
- X if(optr != aptr &&
- X optr->pixel.x - x > 0 &&
- --- 623,631 ----
- X /*{{{ bashes into another?*/
- X {
- X int x, y;
- !
- X x = aptr->pixel.x - CELL_WIDTH;
- ! y = aptr->pixel.y;
- X for(optr = apple.list, j = apple.apples; j--; optr++)
- X if(optr != aptr &&
- X optr->pixel.x - x > 0 &&
- ***************
- *** 660,685 ****
- X aptr->state = 3;
- X aptr->count = APPLE_SPLIT_DELAY;
- X }
- ! else if(aptr->offset.y >= cptr[0].depths[1])
- X {
- ! if(drop_apple(aptr, cptr))
- ! /*EMPTY*/;
- ! else if(aptr->distance >= APPLE_FALL_SPLIT ||
- ! aptr->cell.y == CELLS_DOWN - 1)
- ! /*{{{ fell too far*/
- X {
- ! aptr->state = 3;
- ! aptr->count = APPLE_SPLIT_DELAY;
- X aptr->offset.y = cptr[0].depths[1];
- X }
- X /*}}}*/
- X else
- ! /*{{{ only fell a short way*/
- ! {
- ! aptr->state = 0;
- ! aptr->offset.y = cptr[0].depths[1];
- ! }
- ! /*}}}*/
- X }
- X else if(aptr->offset.y > 0 && cptr[CELL_STRIDE].depths[0])
- X /*{{{ fall into next cell*/
- --- 650,677 ----
- X aptr->state = 3;
- X aptr->count = APPLE_SPLIT_DELAY;
- X }
- ! else if(aptr->offset.y > cptr[0].depths[1])
- X {
- ! CELL *nptr;
- !
- ! nptr = drop_apple(aptr, cptr);
- ! if(!nptr)
- ! /*{{{ stop falling*/
- X {
- ! aptr->pixel.y += cptr[0].depths[1] - aptr->offset.y;
- X aptr->offset.y = cptr[0].depths[1];
- + if(aptr->distance > APPLE_FALL_SPLIT ||
- + aptr->cell.y == CELLS_DOWN - 1)
- + {
- + aptr->state = 3;
- + aptr->count = APPLE_SPLIT_DELAY;
- + }
- + else
- + aptr->state = 0;
- X }
- X /*}}}*/
- X else
- ! panic_monsters(aptr->cell.x, aptr->cell.y, nptr);
- X }
- X else if(aptr->offset.y > 0 && cptr[CELL_STRIDE].depths[0])
- X /*{{{ fall into next cell*/
- ***************
- *** 686,692 ****
- X {
- X aptr->cell.y += 1;
- X aptr->offset.y -= CELL_HEIGHT + GAP_HEIGHT;
- - pixel.y += CELL_HEIGHT + GAP_HEIGHT;
- X }
- X /*}}}*/
- X /*{{{ crushed someone?*/
- --- 678,683 ----
- ***************
- *** 694,702 ****
- X unsigned i;
- X MONSTER *mptr;
- X int x, y;
- !
- ! x = pixel.x + aptr->offset.x - CELL_WIDTH + VEL_X;
- ! y = pixel.y + aptr->offset.y - APPLE_VEL_Y;
- X for(mptr = monster.list, i = monster.monsters; i--; mptr++)
- X if(!mptr->apple && !mptr->shot && mptr->type != 5 &&
- X mptr->pixel.x - x > 0 &&
- --- 685,693 ----
- X unsigned i;
- X MONSTER *mptr;
- X int x, y;
- !
- ! x = aptr->pixel.x - CELL_WIDTH + VEL_X;
- ! y = aptr->pixel.y - APPLE_VEL_Y;
- X for(mptr = monster.list, i = monster.monsters; i--; mptr++)
- X if(!mptr->apple && !mptr->shot && mptr->type != 5 &&
- X mptr->pixel.x - x > 0 &&
- ***************
- *** 731,737 ****
- X }
- X }
- X /*}}}*/
- - aptr->pixel.y = pixel.y + aptr->offset.y;
- X break;
- X }
- X /*}}}*/
- --- 722,727 ----
- ***************
- *** 745,751 ****
- X add_score(squish_scores[aptr->monsters >= SQUISH_SCORES ?
- X SQUISH_SCORES - 1 : aptr->monsters],
- X aptr->pixel.x + CELL_WIDTH / 2,
- ! aptr->pixel.y + apple_sizes[4].size.y / 2);
- X }
- X break;
- X /*}}}*/
- --- 735,741 ----
- X add_score(squish_scores[aptr->monsters >= SQUISH_SCORES ?
- X SQUISH_SCORES - 1 : aptr->monsters],
- X aptr->pixel.x + CELL_WIDTH / 2,
- ! aptr->pixel.y + (int)(apple_sizes[4].size.y / 2));
- X }
- X break;
- X /*}}}*/
- ***************
- *** 772,777 ****
- --- 762,802 ----
- X aptr->waspushed = aptr->push;
- X aptr->push = 0;
- X }
- + return;
- + }
- + /*}}}*/
- + /*{{{ void panic_monsters(cx, cy, cptr)*/
- + extern void panic_monsters FUNCARGLIST((cx, cy, cptr))
- + int cx FUNCARGSEP
- + int cy FUNCARGSEP
- + CELL *cptr FUNCARGTERM
- + /*
- + * looks underneath a newly falling apple and
- + * sees if there are any normal monsters to panic
- + */
- + {
- + MONSTER *mptr;
- + unsigned count;
- +
- + for(mptr = &monster.list[1], count = monster.monsters - 1; count--; mptr++)
- + if(mptr->apple || mptr->shot || mptr->type || mptr->panic)
- + /*EMPTY*/;
- + else if(mptr->cell.x != cx || mptr->cell.y <= cy)
- + /*EMPTY*/;
- + else if((mptr->offset.x < 0 && mptr->dir == 2) ||
- + (mptr->offset.y > 0 && mptr->dir == 3))
- + /*EMPTY*/;
- + else
- + {
- + CELL *ptr;
- + int count;
- +
- + for(ptr = cptr, count = mptr->cell.y - cy; count--; ptr += CELL_STRIDE)
- + if(!ptr->depths[1] || !ptr[CELL_STRIDE].visit)
- + break;
- + if(count < 0)
- + mptr->panic = 1;
- + }
- X return;
- X }
- X /*}}}*/
- Common subdirectories: exp.v1.01/bitmaps and exp.v2.00/bitmaps
- diff -c -r exp.v1.01/create.c exp.v2.00/create.c
- *** exp.v1.01/create.c Fri Jul 24 09:56:03 1992
- --- exp.v2.00/create.c Fri Jul 24 13:43:09 1992
- ***************
- *** 1,21 ****
- ! /*{{{ (C) 1992 Nathan Sidwell*/
- ! /*****************************************************************************
- ! X M R I S V1.01
- ! ---------------
- ! (C) 1992 Nathan Sidwell
- !
- ! This program is copyright (C) 1992 Nathan Sidwell. This software and documentation
- ! is in the public domain. Permission is granted to distribute and compile
- ! verbatim copies of this software for non-commercial, non-profit use,
- ! without fee. The software may be modified, provided that both the above copyright
- ! notice and this permission notice appear.
- !
- ! No guarantee is given as to the robustness or suitability of this
- ! software for your computer.
- !
- ! Nathan Sidwell INMOS UK | | nathan@inmos.co.uk DoD#0390
- ! *****************************************************************************/
- ! /*}}}*/
- X #define EXTERN
- X #include "xmris.h"
- X /*{{{ bitmaps*/
- --- 1,4 ----
- ! /* (C) 1992 Nathan Sidwell */
- X #define EXTERN
- X #include "xmris.h"
- X /*{{{ bitmaps*/
- ***************
- *** 165,170 ****
- --- 148,162 ----
- X unsigned long const *bgp; /* background colour pointer */
- X } CONTEXT;
- X /*}}}*/
- + /*{{{ typedef struct Default*/
- + typedef struct Default
- + /* Xdefault definer */
- + {
- + char const *name; /* xdefault field */
- + int type; /* type */
- + char const **text; /* text pointer */
- + } DEFAULT;
- + /*}}}*/
- X /*{{{ gcsdefine*/
- X static CONTEXT gcsdefine[GCS] =
- X {
- ***************
- *** 192,376 ****
- X {"iconic", 1, &flags.iconic, "Start iconic"},
- X {"mris", 0, &flags.gender, "Male version"},
- X {"msit", 1, &flags.gender, "Female version"},
- X {NULL}
- X };
- X /*}}}*/
- X /*{{{ SPRITE sprites[] =*/
- X SPRITE sprites[] =
- X {
- X /*{{{ 2:center masks (oblong, rect)*/
- ! {NULL, oblong_bits, oblong_width, oblong_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, rect_bits, rect_width, rect_height, {CELL_WIDTH, CELL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 2:munch masks (tb,lr)*/
- ! {NULL, munchtb_bits, munchtb_width, munchtb_height, {CELL_WIDTH, MUNCH_HEIGHT}},
- ! {NULL, munchlr_bits, munchlr_width, munchlr_height, {MUNCH_WIDTH, CELL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 2:edge masks (tb, lr)*/
- ! {NULL, edgetb_bits, edgetb_width, edgetb_height, {GAP_WIDTH * 5, EDGE_HEIGHT}},
- ! {NULL, edgelr_bits, edgelr_width, edgelr_height, {EDGE_WIDTH, GAP_HEIGHT * 5}},
- X /*}}}*/
- X /*{{{ 4:fills (0,1,2,3)*/
- ! {fill0_bits, NULL, fill0_width, fill0_height, {0, 0}},
- ! {fill1_bits, NULL, fill1_width, fill1_height, {0, 0}},
- ! {fill2_bits, NULL, fill2_width, fill2_height, {0, 0}},
- ! {fill3_bits, NULL, fill3_width, fill3_height, {0, 0}},
- X /*}}}*/
- X /*{{{ 1:digits (0,1,2,3,4,5,6,7,8,9,' ')*/
- ! {digits_bits, digitsm_bits, digits_width, digits_height, {DIGIT_WIDTH * 11, DIGIT_HEIGHT}},
- X /*}}}*/
- X /*{{{ 1:cherry*/
- ! {cherry_bits, cherrym_bits, cherry_width, cherry_height, {CELL_WIDTH, CELL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 1:den*/
- ! {den_bits, denm_bits, den_width, den_height, {CELL_WIDTH, CELL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 1:ball*/
- ! {ball_bits, ball_bits, ball_width, ball_height, {BALL_WIDTH, BALL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 6:apples (apple, rock, apple, split, decay, rot)*/
- ! {apple_bits, applem_bits, apple_width, apple_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {rock_bits, rockm_bits, rock_width, rock_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_APPLE, 0},
- ! {split_bits, splitm_bits, split_width, split_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {decay_bits, decaym_bits, decay_width, decay_height, {DECAY_WIDTH, DECAY_HEIGHT}},
- ! {rot_bits, rotm_bits, rot_width, rot_height, {ROT_WIDTH, ROT_HEIGHT}},
- X /*}}}*/
- X /*{{{ 2:extra (bold, faint)*/
- ! {xtrbold_bits, xtrbold_bits, xtrbold_width, xtrbold_height, {CELL_WIDTH / 2 * 5, CELL_HEIGHT / 2}},
- ! {xtrfaint_bits, xtrbold_bits, xtrfaint_width, xtrfaint_height, {CELL_WIDTH / 2 * 5, CELL_HEIGHT / 2}},
- X /*}}}*/
- X /*{{{ 2:xtra source*/
- ! {xtra1_bits, xtra1m_bits, xtra1_width, xtra1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {xtra2_bits, xtra2m_bits, xtra2_width, xtra2_height, {CELL_WIDTH, CELL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 12:normal (ul, dr, l, r, ur, dl)*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 8, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 9, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 8, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 9, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 6, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 7, 1},
- ! {normrt1_bits, normrt1m_bits, normrt1_width, normrt1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {normrt2_bits, normrt2m_bits, normrt2_width, normrt2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {normup1_bits, normup1m_bits, normup1_width, normup1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {normup2_bits, normup2m_bits, normup2_width, normup1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 0, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_NORMAL + 1, 2},
- X /*}}}*/
- X /*{{{ 12:muncher (ul, dr, l, r, ur, dl)*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 8, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 9, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 8, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 9, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 6, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 7, 1},
- ! {mnchrt1_bits, mnchrt1m_bits, mnchrt1_width, mnchrt1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {mnchrt2_bits, mnchrt2m_bits, mnchrt2_width, mnchrt2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {mnchup1_bits, mnchup1m_bits, mnchup1_width, mnchup1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {mnchup2_bits, mnchup2m_bits, mnchup2_width, mnchup2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 0, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_MUNCHER + 1, 2},
- X /*}}}*/
- X /*{{{ 12:xtra (ul, dr, l, r, ur, dl)*/
- ! {xtra1_bits, xtra1m_bits, xtra1_width, xtra1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {xtra2_bits, xtra2m_bits, xtra2_width, xtra2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 0, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 1, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 0, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 1, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 0, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 1, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 0, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 1, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 0, 0},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_XTRA + 1, 0},
- X /*}}}*/
- X /*{{{ 12:drone (ul, dr, l, r, ur, dl)*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 8, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 9, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 8, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 9, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 6, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 7, 1},
- ! {dronrt1_bits, dronrt1m_bits, dronrt1_width, dronrt1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {dronrt2_bits, dronrt2m_bits, dronrt2_width, dronrt2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {dronup1_bits, dronup1m_bits, dronup1_width, dronup1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {dronup2_bits, dronup2m_bits, dronup2_width, dronup2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 0, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_DRONE + 1, 2},
- X /*}}}*/
- X /*{{{ 12:player (ul, dr, l, r, ur, dl)*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 8, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 9, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 8, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 9, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 6, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 7, 1},
- ! {plyrrt1_bits, plyrrt1m_bits, plyrrt1_width, plyrrt1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {plyrrt2_bits, plyrrt2m_bits, plyrrt2_width, plyrrt2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {plyrup1_bits, plyrup1m_bits, plyrup1_width, plyrup1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {plyrup2_bits, plyrup2m_bits, plyrup2_width, plyrup2_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 0, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 1, 2},
- X /*}}}*/
- X /*{{{ 4:player push (l, r)*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER_PUSH + 2, 1},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER_PUSH + 3, 1},
- ! {plyrps1_bits, plyrps1m_bits, plyrps1_width, plyrps1_height, {CELL_WIDTH, CELL_HEIGHT}},
- ! {plyrps2_bits, plyrps2m_bits, plyrps2_width, plyrps2_height, {CELL_WIDTH, CELL_HEIGHT}},
- X /*}}}*/
- X /*{{{ 2:player dead (l, r)*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 4, 2},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_PLAYER + 6, 2},
- X /*}}}*/
- X /*{{{ 10:squished*/
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_SQUISHED + 1, 1},
- ! {normsq_bits, normsqm_bits, normsq_width, normsq_height, {CELL_WIDTH, CELL_HEIGHT / 4}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_SQUISHED + 3, 1},
- ! {mnchsq_bits, mnchsqm_bits, mnchsq_width, mnchsq_height, {CELL_WIDTH, CELL_HEIGHT / 4}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_SQUISHED + 5, 0},
- ! {xtrasq_bits, xtrasqm_bits, xtrasq_width, xtrasq_height, {CELL_WIDTH, CELL_HEIGHT / 4}},
- ! {NULL, NULL, 0, 0, {0, 0}, SPRITE_SQUISHED + 7, 1},
- SHAR_EOF
- true || echo 'restore of patch.v2.00 failed'
- fi
- echo 'End of part 1'
- echo 'File patch.v2.00 is continued in part 2'
- echo 2 > _shar_seq_.tmp
- exit 0
- --
- Senior Systems Scientist mail: dcmartin@msi.com
- Molecular Simulations, Inc. uucp: uunet!dcmartin
- 796 North Pastoria Avenue at&t: 408/522-9236
- Sunnyvale, California 94086 fax: 408/732-0831
-