--- spellcast-1.0.orig/AC_FD_CC +++ spellcast-1.0/AC_FD_CC @@ -0,0 +1,5 @@ + +#line 101 "configure" +#include "confdefs.h" + +main(){return(0);} --- spellcast-1.0.orig/AC_FD_MSG +++ spellcast-1.0/AC_FD_MSG @@ -0,0 +1 @@ +no --- spellcast-1.0.orig/Makefile +++ spellcast-1.0/Makefile @@ -1,3 +1,4 @@ +# Generated automatically from Makefile.in by configure. # These three lines define the fonts that spellcast tries to use by default; # it looks for FONT1 first, then FONT2, then FONT3. (If a user sets # his spellcast*font resource, that is tried first, instead of FONT1.) @@ -9,29 +10,53 @@ # The next line defines the directory in which game transcripts are # stored. It should be a fully-qualified pathname, beginning (but # not ending) with a slash. -LOGDIR = \"/tmp\" +LOGDIR = \"/var/games/spellcast\" # The next lines define the directories where the executable, man page, and # spell list postscript file are installed. Change them to whatever is appropriate. -DESTDIR=/afs/andrew.cmu.edu/usr0/games -DESTBIN=$(DESTDIR)/bin/.unpriv/@sys -DESTMAN=$(DESTDIR)/man/man6 -DESTLIB=$(DESTDIR)/lib/spellcast +DESTDIR=debian/tmp +DESTBIN=$(DESTDIR)/usr/games +DESTMAN=$(DESTDIR)/usr/share/man/man6 +DESTLIB=$(DESTDIR)/usr/share/doc/spellcast + +ifndef RESOLUTION +RESOLUTION = RES1024 +endif + # If you are compiling on a Sun and you find the game crashes # all the time, try uncommenting the next line. #OTHERLIBS = -lbsdmalloc -CFLAGS = -g -I/usr/local/include -I./bitmaps -DBODYFONT=$(FONT1) \ - -DBODYFONT_ALT=$(FONT2) -DBODYFONT_ALT2=$(FONT3) -DTRANSCRIPTDIR=$(LOGDIR) +# GETTEXT support +#POFILES = @POFILES@ +#RANLIB = @RANLIB@ +#USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +#USE_NLS = @USE_NLS@ +POSUB = po +VERSION = 1.0 +PACKAGE = spellcast +LOCALEDIR = \"/usr/share/locale\" + +# Add -DCOLOUR to CFLAGS for colour support +# Add -DLINESEP to CFLAGS to separate rounds with a line +CFLAGS = -O2 -g -I/usr/X11R6/include -I./bitmaps -DBODYFONT=$(FONT1) \ + -DBODYFONT_ALT=$(FONT2) -DBODYFONT_ALT2=$(FONT3) -DTRANSCRIPTDIR=$(LOGDIR) -D$(RESOLUTION) -DCOLOUR -DPACKAGE=\"$(PACKAGE)\" -DLOCALEDIR=$(LOCALEDIR) + LFLAGS = -g +# LFLAGS = -g0 -Wall -Wno-implicit -XLIB = -L/usr/local/lib -lX11 + +# If you are running on a system with non-default library paths, set +# the environmental variable LD_RUN_PATH when you compile the binary +#XLIB = -L/usr/local/lib -L/usr/X11R6/lib -lX11 -lsocket +XLIB = -L/usr/local/lib -L/usr/X11R6/lib -lX11 OBJS = engine.o espells.o execute.o execute2.o emonster.o etran.o XOBJS = main.o xtext.o xquery.o xloop.o xgest.o xbutton.o xtalk.o all: spellcast + cd ${POSUB} && make all # spellcast: the X executable spellcast: $(OBJS) $(XOBJS) @@ -51,6 +76,7 @@ install -c spellcast.6 $(DESTMAN) -mkdir $(DESTLIB) install -c spelllist.ps $(DESTLIB) + cd ${POSUB} && make install main.o: handwave.h spelllist.h xspell.h patchlevel.h xtext.o: handwave.h spelllist.h xspell.h @@ -79,4 +105,8 @@ cat bitmaps/base.ps tmp.ps > spelllist.ps clean: - rm -f *~ *.o spellcast stupid makelist tmp.ps core + -rm -f *~ *.o stupid makelist tmp.ps core + +realclean: clean + -rm -f spellcast + cd ${POSUB} && make clean --- spellcast-1.0.orig/Makefile.in +++ spellcast-1.0/Makefile.in @@ -0,0 +1,107 @@ +# These three lines define the fonts that spellcast tries to use by default; +# it looks for FONT1 first, then FONT2, then FONT3. (If a user sets +# his spellcast*font resource, that is tried first, instead of FONT1.) +# You can change these to suit your environment. +FONT1 = \"-*-times-medium-r-*--14-*\" +FONT2 = \"-*-helvetica-medium-r-*--12-*\" +FONT3 = \"fixed\" + +# The next line defines the directory in which game transcripts are +# stored. It should be a fully-qualified pathname, beginning (but +# not ending) with a slash. +LOGDIR = \"/var/games/spellcast\" + +# The next lines define the directories where the executable, man page, and +# spell list postscript file are installed. Change them to whatever is appropriate. +DESTDIR=debian/tmp +DESTBIN=$(DESTDIR)/usr/games +DESTMAN=$(DESTDIR)/usr/share/man/man6 +DESTLIB=$(DESTDIR)/usr/share/doc/spellcast + +ifndef RESOLUTION +RESOLUTION = RES1024 +endif + + +# If you are compiling on a Sun and you find the game crashes +# all the time, try uncommenting the next line. +#OTHERLIBS = -lbsdmalloc +# Add -DCOLOUR to CFLAGS for colour support +# Add -DLINESEP to CFLAGS to separate rounds with a line + +CFLAGS = -O2 -g -I/usr/X11R6/include -I./bitmaps -DBODYFONT=$(FONT1) \ + -DBODYFONT_ALT=$(FONT2) -DBODYFONT_ALT2=$(FONT3) -DTRANSCRIPTDIR=$(LOGDIR) -D$(RESOLUTION) -DCOLOUR +LFLAGS = -g +# LFLAGS = -g0 -Wall -Wno-implicit +# +# +# Gettext +POFILES = @POFILES@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +PACKAGE = @PACKAGE@ +LOCALEDIR = \"/usr/share/locale\" + + +# If you are running on a system with non-default library paths, set +# the environmental variable LD_RUN_PATH when you compile the binary +#XLIB = -L/usr/local/lib -L/usr/X11R6/lib -lX11 -lsocket +XLIB = -L/usr/local/lib -L/usr/X11R6/lib -lX11 + +OBJS = engine.o espells.o execute.o execute2.o emonster.o etran.o +XOBJS = main.o xtext.o xquery.o xloop.o xgest.o xbutton.o xtalk.o + +all: spellcast + +# spellcast: the X executable +spellcast: $(OBJS) $(XOBJS) + $(CC) $(LFLAGS) -o spellcast $(OBJS) $(XOBJS) $(XLIB) $(OTHERLIBS) + +# stupid: the stupid stdin/stdout version of the game +stupid: stupid.o $(OBJS) + $(CC) $(LFLAGS) -o spellcast stupid.o $(OBJS) + +# makelist: a small program used to create spelllist.ps, which you +# shouldn't have to use, because spelllist.ps is already there. +makelist: makelist.o espells.o + $(CC) $(LFLAGS) -o makelist makelist.o espells.o + +install: spellcast + for i in spellcast spellcast[0-9]*; do \ + install -c -s $$i $(DESTBIN); \ + done + install -c spellcast.6 $(DESTMAN) + -mkdir $(DESTLIB) + install -c spelllist.ps $(DESTLIB) + +main.o: handwave.h spelllist.h xspell.h patchlevel.h +xtext.o: handwave.h spelllist.h xspell.h +xquery.o: handwave.h spelllist.h xspell.h +xloop.o: handwave.h spelllist.h xspell.h +xgest.o: handwave.h spelllist.h xspell.h +xbutton.o: handwave.h spelllist.h xspell.h +xtalk.o: handwave.h spelllist.h xspell.h + +internal.h: spelllist.h + +engine.o: handwave.h spelllist.h internal.h +espells.o: handwave.h spelllist.h internal.h +execute.o: handwave.h spelllist.h internal.h +execute2.o: handwave.h spelllist.h internal.h +emonster.o: handwave.h spelllist.h internal.h +etran.o: handwave.h spelllist.h internal.h + +stupid.o: stupid.c handwave.h spelllist.h + +# The following rule creates the spelllist.ps document, +# but you shouldn't have to use it, because it's already +# there. +spelllist.ps: makelist bitmaps/base.ps + ./makelist > tmp.ps + cat bitmaps/base.ps tmp.ps > spelllist.ps + +clean: + rm -f *~ *.o spellcast spellcast[0-9]* stupid makelist tmp.ps core --- spellcast-1.0.orig/README.colour +++ spellcast-1.0/README.colour @@ -0,0 +1,19 @@ + +I have added the ability for players to specify a colour. During play, +any actions performed by a player are written to the screen in their +colour. A player can specify the colour they want to use by adding this +line to their xrdb database: + + spellcast*colour: + +for example: + + spellcast*colour: SkyBlue3 + + +I have also added a separating line between each round, so that it is much +easier for each player to see what has happened within that round. Both of +these additions can be removed from the game, see the Makefile for more +details. + +F.Hendrikx, Sep 1998 --- spellcast-1.0.orig/README.resolution +++ spellcast-1.0/README.resolution @@ -0,0 +1,17 @@ + +Spellcast was written with the old Xlib interface (anyone to rewrite it +for new & improved toolkits?). This, along with having hard-wired the +definition on buttons' and text-windows sizes made it hard to work +in lower than 1024x768 resolutions. + +However, the code has been changed (adding a new xwindow.h header and +defining there different views) to enable different resoltuions. Currently +there are three resolutions available: + +- RES1024. The old interface +- RES800. A redefined interface so it can be played on 800x600 displays. +- RESVAR. A variable interface, it is not yet debugged and might not +work as expected, the idea of this interface is for window sizes to be +#def' at compile time and the rest of the attributes will adjust to it. + +In order to compile on of this resoultions must be defined --- spellcast-1.0.orig/configure.in +++ spellcast-1.0/configure.in @@ -0,0 +1,23 @@ +AC_PREREQ(2.1) +AC_REVISION($Revision: 1.2 $) +AC_INIT(main.c) +AC_CONFIG_HEADER(config.h) + +prefix=/usr +datadir=/usr/share/spellcast + +AC_PROG_CC + +ALL_LINGUAS="es" +AM_GNU_GETTEXT + +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(LDFLAGS) + + +AC_OUTPUT([ +Makefile +intl/Makefile +po/Makefile.in +]) --- spellcast-1.0.orig/debian/NEWS +++ spellcast-1.0/debian/NEWS @@ -0,0 +1,13 @@ +spellcast (1.0-2) unstable; urgency=low + + In order for the spellcast game to work, even if not using a remote + computer, your X server must be listening in port 6000. Debian default + installation (since the 'woody' distribution) disables X from doing this + by adding the "-nolisten tcp" option. You must change your configuration + (editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on + how you start your X environment) to remove that option. + + Please note: This opens up a potential security risk in your system. + + -- Javier Fernandez-Sanguino Pen~a Thu, 4 Aug 2005 19:31:56 +0200 + --- spellcast-1.0.orig/debian/README.debian +++ spellcast-1.0/debian/README.debian @@ -0,0 +1,106 @@ +spellcast for Debian +-------------------- + + Spellcast is a classic game of might and magic for the X Windowing + System. Two or more wizards duke it out with spells, summons, and + plain old poking with fingers. Good for hour[s] of fun. + + Currently, Debian provides only one binary of this game, spellcast, + which is the game adapted to be run in 1024x768 or greater + displays. + + If you want you can download the sources and recompile the program + to have a version that can work in a smaller resolution (800x600) + + Unfortunately, this game is not maintained any more. A spin off of this + game, written in Java and using a GPL license, is available at Sourceforge + here: http://spell.sourceforge.net/ + + + +FAQ: + +1.- Spellcast will not work! + +This is because the default behavior for X is to not listen for tcp connections. +You must remove "-nolisten tcp" in the X server configuration file which can +be found at /etc/X11/xinit/xserverrc + +Please note that X does not allow one to setup a TCP socket so it is restricted +to only localhost connections. Consequently, this opens up a potential security +risk in your system as it exposes a TCP socket to your X window system (your +screen basically) to any other computers that share your network (LAN, WiFi or +any other connection type) + +Alternatively, you can install the 'socat' tool and create a wrapper that sends +connections from localhost to your local socket. To do so run something like this: + + socat -d -d TCP-LISTEN:6000,fork,bind=localhost UNIX-CONNECT:/tmp/.X11-unix/X0 + +This will create local TCP socket you can connect to, which uses the existing X11 +socket. + + +2.- Why isn't spellcast GPL the main author says it can be distributed +for free? + +Some sites, like linuxbert (see +http://linuxberg.inter.net.il/games/strategy_license.html), say that +Spellcast is GPL when in fact it is not. + +The answer is more complex than you would imagine. It all boils down to +the original author of the spellbinder game, Richard A. Bartle, who +asks any derivatives who states in http://mud.co.uk/richard/spellbnd.htm: + +"None of these products are commercial, which is just as well: I retain +full rights to the game, and if any commercial incarnation appears then I +want a royalty! I have no objection to people implementing or running +derivatives of the Spellbinder so long as they make no money from it, +though. Of course, if you are interested in publishing the game +commercially, email me a proposal! " + +Andrew Plotkin acknowledged Richard Bartle's demands and the README file +states (available in the /usr/share/doc/spellcast/copyright file) that +derivative works or source code cannot be sold without permission. + +This affects not only spellcast, but a number of derivatives of the +original spellbinder game (some of them are listed at the author's webpage): + + * Firetop Mountain (a Pbem implementation) at + http://www.gamerz.net/~fm/ which holds a specific license that does not + hinder commercial use (FM Public License at http://www.gamerz.net/~fm/LICENSE) + + * spellcast at Sun's Java games-forge + https://spellcast.dev.java.net/, which holds a BSD license + + *'Spellcast: Deathmatch' a reimplementation with Java applets at + Sourceforge (http://spell.sourceforge.net/) which is GPL but has an + annotation for commercial use which + obviously does not make it GPL, http://spell.sourceforge.net/README.txt + + * "Spellcast", the X window version package in Debian + (http://www.eblong.com/zarf/spellcast.html) + + * wxSpellcast, a portable version (wxWindows) written by Dennis + Taylor (http://www.funkplanet.com/spellcast/), using the same ambiguous + "free" license from the X implementation. + + Of course, the original author of Spellbind can limit the use of the + original game (if trademarked) and of writing of the original rules. + But implementations of this game really don't need to be limited + for non-commercial use, it's just that some authors have accepted + Richard Bartle limitations on use. It is enlightening to read + http://www.wizards.com/default.asp?x=contactinfo/legal + which provides the legal information from Wizards of the Coast, + the provider fo the Magic The Gathering (R) game. The game is patented + and, so, they can limit implementations of the game. Spellbinder, however, + is not patented and thus, no implementation can be hindered by the + original author as long as no of his original work is copied (like, + for example, if the original rules were included verbatim in the + implementation) + +Ben Gertzfield , +Wed, 23 Sep 1998 18:43:26 -0700 +Javier Fernández-Sanguino Peña +Sun, 19 Oct 2003 11:57:15 +0200 + --- spellcast-1.0.orig/debian/TODO +++ spellcast-1.0/debian/TODO @@ -0,0 +1,9 @@ + +- Add manpages for spellcast1024 and spellcast800 +- Make only one binary which can adjust itself to current window size +- Use toolkit (like gtk) instead of Xlib +- Separate in client and server +- Check that the colour is correctly set (patch of F. Hendrikx) +- Add new spells :) + +Javier Fernández-Sanguino Peña --- spellcast-1.0.orig/debian/changelog +++ spellcast-1.0/debian/changelog @@ -0,0 +1,204 @@ +spellcast (1.0-22) unstable; urgency=medium + + * After 10 years without changes, this new version introduces some general + changes to use newer debhelper compatibility versions. Maybe it will + be sufficient to keep this old game in the archive for years to come. + (Closes: #817676) + * debian/control: + - Update Standards Version + - Upgrade to debhelper version 9 + - Update maintainer's name, use proper UTF-8 encoding + * debian/NEWS: proper formatting + * debian/README.debian: + - Changes to reflect the current situation (only 1024x768 version + shipped) + - Provide an alternative way to run the program without opening + an X11 TCP socket using socat. + - Point to the content to reflect that this version is not being + updated any more but other alternatives exist. + * spellcast.6: Add a link to the original's author webpage of this game + * debian/spellcast.docs: List all the documents to install + * debian/spellcast.manpages: List the manpages to install + * debian/spellcast.man.html: Remove as this is not really required this day + and age. + * debian/rules: + - Adapt to use debhelper with only a few overrides + - Do not ship a version for 800x600 displays anymore, just keep the + default (1024x768) + * debian/postinst: Fix lintian warnings + * spellcast.6: Remove undefined macro + + -- Javier Fernández-Sanguino Peña Mon, 29 Aug 2016 16:37:56 +0200 + +spellcast (1.0-21) unstable; urgency=low + + * Remove xlibs-dev dependancy and added libx11-dev instead (Closes: #346930) + * Move debian/po to debian/po.deprecated as it is no longer used (Closes: #338167) + * Added sweden translation of the debconf templates, provided by + Daniel Nylander, in any case (if NEWS files get i18n support it might + be a start point). (Closes: #33043) + + -- Javier Fernandez-Sanguino Pen~a Sun, 15 Jan 2006 13:53:19 +0100 + +spellcast (1.0-20) unstable; urgency=low + + * Remove debconf dependancy and debian/config as we don't use it anymore. + + -- Javier Fernandez-Sanguino Pen~a Thu, 1 Sep 2005 09:45:47 +0200 + +spellcast (1.0-19) unstable; urgency=low + + * Removed the debconf note and converted it into a NEWS file. + (Closes: #129771, #268159) + * Use debhelper compatibility version 4 + * Added Czech translation of the debconf note (Closes: #319854) + [ Unfortunately, since the NEWS file cannot be translated the translation + will not be seen. Sorry ] + + -- Javier Fernandez-Sanguino Pen~a Thu, 4 Aug 2005 19:32:45 +0200 + +spellcast (1.0-18) unstable; urgency=low + + * Added Danish translation provided by Morten Brix Pedersen (Closes: #240818) + * Fixed header of the program's spanish po file. + * Fixed lintian warnings + + -- Javier Fernandez-Sanguino Pen~a Thu, 26 Aug 2004 17:12:39 +0200 + +spellcast (1.0-17) unstable; urgency=low + + * Applied the patch provided by Michel Grentzinger to add po-debconf support + (Closes: #202427). + * Added french translation provided by Michel Grentzinger (Closes: #202428) + * Small changes in spanish es.po file. + + -- Javier Fernandez-Sanguino Pen~a Tue, 28 Oct 2003 01:39:39 +0100 + +spellcast (1.0-16) unstable; urgency=low + + * Added a rant on why spellcast is not GPL describing the issue + in the README.Debian file with more detail than the information + available in the copyright file. + + -- Javier Fernandez-Sanguino Pen~a Sun, 19 Oct 2003 11:57:37 +0200 + +spellcast (1.0-15) unstable; urgency=high + + * Moved to non-free due to licensing which was incorrectly + considered free by the previous maintainer. See + http://lists.debian.org/debian-legal/2003/debian-legal-200310/msg00136.html + (Closes: #214478) + + -- Javier Fernandez-Sanguino Pen~a Tue, 7 Oct 2003 20:46:59 +0200 + +spellcast (1.0-14) unstable; urgency=low + + * Added russian template (Closes: #137687) + * Fixed old man dialog in the manpage (Closes: #175164) + + -- Javier Fernandez-Sanguino Pen~a Mon, 20 Jan 2003 21:55:37 +0100 + +spellcast (1.0-13) unstable; urgency=low + + * Patched stupid.c with a patch provided by Dave A. Walker (it did not + build due to the gettext patch) + * Introduced some more translations in the spanish po file (still + incomplete) + + -- Javier Fernandez-Sanguino Pen~a Mon, 11 Nov 2002 00:30:36 +0100 + +spellcast (1.0-12) unstable; urgency=low + + * Fixed Build-Depends (Closes: #129618) + + -- Javier Fernandez-Sanguino Pen~a Thu, 17 Jan 2002 09:54:42 +0100 + +spellcast (1.0-11) unstable; urgency=low + + * Fixed debconf issues. + + -- Javier Fernandez-Sanguino Pen~a Tue, 15 Jan 2002 18:40:21 +0100 + +spellcast (1.0-10) unstable; urgency=low + + * Updated standards + * Removed suidregister + * Added Build-Depends + * Fixed URL in copyright file + * Added internationalisation support contributed by jorge@toa.magma.com.ni + (Jorge León) + * Included an (mostly unstralated) es.mo + * Added a note regarding the use of spellcast when X is not listening on the + tcp 6000 socket + * Fixed compilation so windows definitions are loaded in properly (Closes: #129360) + + -- Javier Fernandez-Sanguino Pen~a Tue, 15 Jan 2002 13:19:08 +0100 + +spellcast (1.0-9) unstable; urgency=low + + * Added setgid bit to all spellcast binaries so they can access the + scores. + * Fixed priority + + -- Javier Fernandez-Sanguino Pen~a Mon, 11 Jun 2001 21:47:02 +0200 + +spellcast (1.0-8) unstable; urgency=low + + * Moved /var/lib/games to /var/games (Closes: #92503) + + -- Javier Fernandez-Sanguino Pen~a Mon, 2 Apr 2001 08:50:41 +0200 + +spellcast (1.0-7) unstable; urgency=low + + * Taking up the package, new maintainer. + + -- Javier Fernandez-Sanguino Pen~a Sun, 27 Feb 2000 16:08:16 +0100 + +spellcast (1.0-6) unstable; urgency=low + + * Added new resolution (RESSMALL) taken from patched source code in the Internet + * Added the manpage converted to html for the documentation + * Added patch for colour made by Ragnar Hojland + + -- Javier Fernandez-Sanguino Pen~a Wed, 16 Feb 2000 08:33:07 -0800 + +spellcast (1.0-5) unstable; urgency=low + + * Modified spellcast so it can be played in resolutions under 1024, added + new targets to allow for it to compile and changed debian/rules (Fixes: #58001) + * New file explaining changes in README.resolution + * FIX: The changes in the source make it complain a lot + + -- Javier Fernandez-Sanguino Pen~a Tue, 15 Feb 2000 12:56:12 -0800 + +spellcast (1.0-4) unstable; urgency=low + + * Wow, it's been a year since I touched spellcast. + * Update man page to advocate xhost +hostname (Fixes: #41661) + * /usr/share/man for manpage, /usr/share/doc for docs. + * Update man page to reflect that Charm Monster really does + work on elementals, though it won't do much ;) + + -- Ben Gertzfield Wed, 20 Oct 1999 23:20:14 -0700 + +spellcast (1.0-3) unstable; urgency=low + + * After discussion with the author on adding an 'okay to sell' + clause to debian/copyright, I'm hereby moving spellcast to + main. Hooray! + + -- Ben Gertzfield Fri, 9 Oct 1998 18:26:50 -0700 + +spellcast (1.0-2) unstable; urgency=low + + * Use dh_fixperms -X to tell it to leave our poor little sgid + binary and transcript directory alone. Fixes #27429 + + -- Ben Gertzfield Mon, 5 Oct 1998 00:05:56 -0700 + +spellcast (1.0-1) unstable; urgency=low + + * Initial Release. + + -- Ben Gertzfield Wed, 23 Sep 1998 18:43:26 -0700 + --- spellcast-1.0.orig/debian/compat +++ spellcast-1.0/debian/compat @@ -0,0 +1 @@ +9 --- spellcast-1.0.orig/debian/control +++ spellcast-1.0/debian/control @@ -0,0 +1,16 @@ +Source: spellcast +Section: non-free/games +Priority: optional +Maintainer: Javier Fernández-Sanguino Peña +Build-Depends: debhelper (>=9), libx11-dev +Standards-Version: 3.9.6 +Homepage: http://www.eblong.com/zarf/spellcast.html + +Package: spellcast +Architecture: any +Depends: gettext, ${shlibs:Depends}, ${misc:Depends} +Description: Classic hand-waving multi-player game of spellcasting + Spellcast is a classic game of might and magic for the X Windowing System + based on the pen and pencil game Spellbinder, published in 1997. In the game, + two or more wizards duke it out with spells, summoning monsters, and plain old + poking with fingers. --- spellcast-1.0.orig/debian/copyright +++ spellcast-1.0/debian/copyright @@ -0,0 +1,50 @@ +This package was debianized by Ben Gertzfield che@debian.org on +Wed, 23 Sep 1998 18:43:26 -0700. + +It was downloaded from +http://www.eblong.com/zarf/spellcast.html + + +Original Copyright: + +The original paper-and-pencil version of this game was +created by Richard Bartle (76703.3042@compuserve.com). +This implementation is by Andrew Plotkin +(ap1i+@andrew.cmu.edu). It is copyright 1993 by Andrew +Plotkin. The source code may be freely copied, distributed, +and modified, as long as this copyright notice is retained. The +source code and any derivative works may not be sold for +profit without the permission of Andrew Plotkin and Richard +Bartle. + +After discussion with Richard Bartle and Andrew Plotkin via email, +they decided it was okay to charge a nominal copying fee if Spellcast +was sold as part of a CD set. Here's the relevant emails: + +From: RBartle@aol.com +Subject: Re: spellcast +To: che@debian.org +Date: 06 Oct 1998 02:42:27 -0700 + +BEN - + + >The license of a Debian component may not restrict any party from + >selling or giving away the software as a component of an aggregate + >software distribution containing programs from several different + >sources. The license may not require a royalty or other fee for such + >sale. +I have no problem with this. What I don't want is for some commercial game +company to produce a version of my game and not pay me royalties for it. +If it's part of a general collection of games, and it's OK by Andrew, then +yes, +his implementation can go on your distribution disc. + + >I believe the intention of the license to Spellcast as it is intends to make +it free + >software +Yes, but the intention was that it be TOTALLY free. If people sell it for +profit, then it's not totally free; if they charge for it to cover +distribution costs, +well, OK. + + --- spellcast-1.0.orig/debian/dirs +++ spellcast-1.0/debian/dirs @@ -0,0 +1,4 @@ +usr/games +usr/share/man/man6 +usr/share/doc/spellcast +var/games/spellcast --- spellcast-1.0.orig/debian/docs +++ spellcast-1.0/debian/docs @@ -0,0 +1 @@ +README --- spellcast-1.0.orig/debian/menu +++ spellcast-1.0/debian/menu @@ -0,0 +1,2 @@ +?package(spellcast):needs="X11" section="Games/Strategy"\ + title="spellcast" command="/usr/games/spellcast" --- spellcast-1.0.orig/debian/package.suid +++ spellcast-1.0/debian/package.suid @@ -0,0 +1 @@ +usr/games/spellcast --- spellcast-1.0.orig/debian/po.deprecated/POTFILES.in +++ spellcast-1.0/debian/po.deprecated/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates --- spellcast-1.0.orig/debian/po.deprecated/cs.po +++ spellcast-1.0/debian/po.deprecated/cs.po @@ -0,0 +1,55 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: spellcast\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: 2005-07-23 18:42+0200\n" +"Last-Translator: Katarina Machalkova \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "" +"Aby spellcast fungoval, potøebuje X server naslouchající " +"na portu 6000." + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" +"Aby hra spellcast fungovala, musí vá¹ X server naslouchat na portu 6000 " +"(a to i v pøípadì, ¾e nepou¾íváte vzdálený poèítaè). Výchozí instalace " +"Debianu (od verze 'Woody') toto X serveru nedovolí, proto¾e pøidává " +"volbu \"-nolisten tcp\". Musíte zmìnit va¹i konfiguraci (úpravou souboru " +"/etc/X11/gdm/gdm.conf, nebo /etc/X11/xinit/xserverrc v závislosti na tom, " +"jak spou¹títe prostøedí X Window) a tuto volbu odstranit." + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "" +"Prosím v¹imnìte si: Takto vzniká potenciální bezpeènostní riziko " +"pro vá¹ systém." --- spellcast-1.0.orig/debian/po.deprecated/da.po +++ spellcast-1.0/debian/po.deprecated/da.po @@ -0,0 +1,51 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: spellcast\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: 2004-03-29 15:02+0200\n" +"Last-Translator: Morten Brix Pedersen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "Spellcast kræver at X lytter pÃ¥ port 6000 for at virke" + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" +"For at spellcast spillet skal virke, selv hvis du ikke bruger en fjerncomputer" +", skal din X-server lytte pÃ¥ port 6000. Debians standardinstallation, " +"deaktiverer dette fra X ved at tilføje \"-nolisten tcp\" indstillingen. Du " +"skal ændre din opsætning (redigér /etc/X11/gdm/gdm.conf, eller /etc/X11/xinit" +"/xserverrc afhængig af hvordan du starter X) for at fjerne den indstilling." + + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "Bemærk: Dette Ã¥bner op for en potentiel sikkerhedsrisiko pÃ¥ dit system." --- spellcast-1.0.orig/debian/po.deprecated/es.po +++ spellcast-1.0/debian/po.deprecated/es.po @@ -0,0 +1,54 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: spellcast 1.0-17\n" +"Report-Msgid-Bugs-To: spellcast@packages.debian.org\n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: 2003-10-28 01:42+0200\n" +"Last-Translator: Javier Fernandez-Sanguino \n" +"Language-Team: Debian Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "Spellcast necesita que las X estén a la escucha en el puerto 6000" + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" +"Su servidor de X debe estar escuchando en el puerto 6000 para que el juego " +"spellcast funcione correctamente, aunque no esté utilizando un ordenador " +"remoto. La instalación por defecto de Debian (desde la distribución 'woody') " +"inhabilita que el servidor de X haga esto añadiendo la opción \"-nolisten tcp" +"\". Debe cambiar su configuración (editando /etc/X11/gdm/gdm.conf, o /etc/X11/" +"xinit/xserverrc dependiendo de como arranque su entorno X) para eliminar " +"esta opción." + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "" +"Por favor, tenga en cuenta que hacer esto introduce un problema potencial de " +"seguridad en su sistema." --- spellcast-1.0.orig/debian/po.deprecated/fr.po +++ spellcast-1.0/debian/po.deprecated/fr.po @@ -0,0 +1,52 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: spellcast_1.0-14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: 2003-07-20 19:29+0200\n" +"Last-Translator: Michel Grentzinger \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "Pour que spellcast fonctionne, X doit écouter sur le port 6000." + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" +"Afin que le jeu spellcast puisse fonctionner, même s'il n'est pas utilisé " +"depuis un hôte distant, votre serveur X doit écouter sur le port 6000. Les " +"installations par défaut de Debian (à partir de la distribution « Woody »), " +"empêchent le serveur X de faire cela en ajoutant l'option « -nolisten tcp ». " +"Vous devez modifier votre configuration (en modifiant /etc/X11/gdm/gdm.conf, " +"ou /etc/X11/xinit/xserverrc selon la façon dont vous démarrez votre " +"environnement X) afin de supprimer cette option." + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "" +"Veuillez noter que cela introduit une faille de sécurité potentielle sur " +"votre système." --- spellcast-1.0.orig/debian/po.deprecated/ru.po +++ spellcast-1.0/debian/po.deprecated/ru.po @@ -0,0 +1,55 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=KOI8-R\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "äÌÑ ÒÁÂÏÔÙ Spellcast ÎÕÖÎÏ, ÞÔÏÂÙ X ÓÌÕÛÁÌ ÐÏÒÔ 6000" + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" +"äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÇÒÁ spellcast ÍÏÇÌÁ ÒÁÂÏÔÁÔØ, ÄÁÖÅ ÅÓÌÉ ÕÄÁÌÅÎÎÙÅ " +"ËÏÍÐØÀÔÅÒÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ, ×ÁÛ ÓÅÒ×ÅÒ X ÄÏÌÖÅÎ ÓÌÕÛÁÔØ ÐÏÒÔ 6000. õÓÔÁÎÏ×ËÁ " +"× Debian ÐÏ ÕÍÏÌÞÁÎÉÀ (ÎÁÞÉÎÁÑ Ó ÄÉÓÔÒÉÂÕÔÉ×Á 'woody') ÚÁÐÒÅÝÁÅÔ X ÄÅÌÁÔØ " +"ÜÔÏ ÄÏÂÁ×ÌÅÎÉÅÍ ÏÐÃÉÉ \"-nolisten tcp\" × ÓÔÒÏËÕ ÚÁÐÕÓËÁ. ÷Ù ÄÏÌÖÎÙ ÉÚÍÅÎÉÔØ " +"×ÁÛÕ ÎÁÓÔÒÏÊËÕ (ÏÔÒÅÄÁËÔÉÒÏ×Á× /etc/X11/gdm/gdm.conf, ÉÌÉ /etc/X11/xinit/" +"xserverrc × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÍÅÔÏÄÁ ÚÁÐÕÓËÁ ×ÁÛÅÇÏ X ÏËÒÕÖÅÎÉÑ) ÄÌÑ ÕÄÁÌÅÎÉÑ " +"ÜÔÏÊ ÏÐÃÉÉ." + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "" +"ðÏÖÁÌÕÊÓÔÁ, ÚÁÍÅÔØÔÅ: üÔÏ ÏÔËÒÙ×ÁÅÔ ÐÏÔÅÎÃÉÁÌØÎÕÀ ÄÙÒÕ × ÚÁÝÉÔÅ ×ÁÛÅÊ " +"ÓÉÓÔÅÍÙ." --- spellcast-1.0.orig/debian/po.deprecated/sv.po +++ spellcast-1.0/debian/po.deprecated/sv.po @@ -0,0 +1,46 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: spellcast 1.0-20\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: 2005-09-28 03:03-0700\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "X måste lyssna på port 6000 för att Spellcast ska fungera normalt" + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" +"För att spellcast-spelet ska fungera normalt (även om det inte körs på ett fjärrsystem) måste X-servern lyssna på port 6000. Debian's standardinstallation (sedan 'woody' distributionen) har detta avaktiverat genom att använda \"-nolisten tcp\" inställningen. Du måste ändra detta i din konfiguration (ändra /etc/X11/gdm/gdm.conf eller /etc/X11/xinit/xserverrc beroende på hur du startar din X-miljö) för att aktivera denna funktion." + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "Notera: Detta öppnar upp ett potentiellt säkerhetshål och risken ökar mot ditt system." + --- spellcast-1.0.orig/debian/po.deprecated/templates.pot +++ spellcast-1.0/debian/po.deprecated/templates.pot @@ -0,0 +1,46 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:28+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Description +#: ../templates:3 +msgid "Spellcast needs X listening on port 6000 to work" +msgstr "" + +#. Description +#: ../templates:3 +msgid "" +"In order for the spellcast game to work, even if not using a remote " +"computer, your X server must be listening in port 6000. Debian default " +"installation (since the 'woody' distribution) disables X from doing this by " +"adding the \"-nolisten tcp\" option. You must change your configuration " +"(editing /etc/X11/gdm/gdm.conf, or /etc/X11/xinit/xserverrc depending on how " +"you start your X environment) to remove that option." +msgstr "" + +#. Description +#: ../templates:3 +msgid "Please note: This opens up a potential security risk in your system." +msgstr "" --- spellcast-1.0.orig/debian/postinst +++ spellcast-1.0/debian/postinst @@ -0,0 +1,20 @@ +#!/bin/sh + +# Movement of /var/lib/games to /var/games as per policy... +# (dpkg should give a warning to users the first time...) +# Movement should only be made when updating from <-8 to =>-8 +if [ -d /var/lib/games/spellcast ]; then + if [ ! -d /var/games/spellcast ] ; then + mkdir /var/games/spellcast + fi + # Are there any files here? + if [ ! -z "`ls /var/lib/games/spellcast/*`" ] ; then + mv /var/lib/games/spellcast/* /var/games/spellcast + fi + rmdir /var/lib/games/spellcast + chown -R games:games /var/games/spellcast + chmod 0755 /var/games/spellcast +fi + + +#DEBHELPER# --- spellcast-1.0.orig/debian/rules +++ spellcast-1.0/debian/rules @@ -0,0 +1,21 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +%: + dh $@ + +override_dh_auto_build: + RESOLUTION=RES1024 make + +override_dh_auto_clean: + dh_auto_clean + -$(MAKE) realclean + + +override_dh_install: + dh_install + $(MAKE) install DESTDIR=`pwd`/debian/spellcast --- spellcast-1.0.orig/debian/spellcast.docs +++ spellcast-1.0/debian/spellcast.docs @@ -0,0 +1,3 @@ +README +README.resolution +README.colour --- spellcast-1.0.orig/debian/spellcast.manpages +++ spellcast-1.0/debian/spellcast.manpages @@ -0,0 +1 @@ +spellcast.6 --- spellcast-1.0.orig/emonster.c +++ spellcast-1.0/emonster.c @@ -1,9 +1,19 @@ #include #include +#include +#include #include "handwave.h" #include "internal.h" +#include +#define _(String) gettext (String) + + +char *pro_he(int gender); +char *pro_his(int gender); +char *pro_him(int gender); +char *pro_himself(int gender); static char bigbuf[2048]; static char bigbuf2[2048]; @@ -115,34 +125,34 @@ case Creature_GOBLIN: thud->max_hitpoints = 1; snaffi_name(); - strcat(bigbuf, " the Goblin"); + strcat(bigbuf, _(" the Goblin")); break; case Creature_OGRE: thud->max_hitpoints = 2; kuruk_name(); - strcat(bigbuf, " the Ogre"); + strcat(bigbuf, _(" the Ogre")); break; case Creature_TROLL: thud->max_hitpoints = 3; kuruk_name(); - strcat(bigbuf, " the Troll"); + strcat(bigbuf, _(" the Troll")); break; case Creature_GIANT: thud->max_hitpoints = 4; kuruk_name(); - strcat(bigbuf, " the Giant"); + strcat(bigbuf, _(" the Giant")); break; case Creature_FIREL: thud->max_hitpoints = 3; thud->nocorpse = 1; kuruk_name(); - strcat(bigbuf, " the Fiery"); + strcat(bigbuf, _(" the Fiery")); break; case Creature_ICEL: thud->max_hitpoints = 3; thud->nocorpse = 1; kuruk_name(); - strcat(bigbuf, " the Icy"); + strcat(bigbuf, _(" the Icy")); break; } thud->hitpoints = thud->max_hitpoints; @@ -153,7 +163,7 @@ void execute_monsters(self) struct realgame *self; { - int ix, cx, jx, kx, numattacks, qtype, qnum; + int ix, cx, jx, kx, numattacks = 0, qtype, qnum; int target, targettype; struct creature *thud; @@ -178,7 +188,7 @@ numattacks = 1; break; default: - PrintMsg("ERROR: wrong type of turn in execute_monsters()\n"); + PrintMsg(_("ERROR: wrong type of turn in execute_monsters()\n")); break; } for (jx=0; jxname); + sprintf(bigbuf, _("%s suddenly looks confused.\n"), thud->name); PrintMsg(bigbuf); } break; case SP__PARALYSIS: qtype = Qu_NoQuery; if (jx==0) { - sprintf(bigbuf, "%s is paralyzed and cannot attack.\n", thud->name); + sprintf(bigbuf, _("%s is paralyzed and cannot attack.\n"), thud->name); PrintMsg(bigbuf); } break; case SP__AMNESIA: qtype = Qu_NoQuery; if (jx==0) { - sprintf(bigbuf, "%s looks around blankly.\n", thud->name); + sprintf(bigbuf, _("%s looks around blankly.\n"), thud->name); PrintMsg(bigbuf); } break; @@ -296,7 +306,7 @@ targettype = ival & QuVal_Target_MASK; } } - /*printf("### attack of %s: %d, %d\n", thud->name, targettype, target);*/ + /*printf(_("### attack of %s: %d, %d\n"), thud->name, targettype, target);*/ thud->last_targettype = targettype; thud->last_target = target; switch (targettype) { @@ -317,7 +327,7 @@ for (ix=0; ixnumcres; ix++) { thud = &(self->cre[ix]); if (thud->alive) { - /*printf("### cycling %s: %d => %d\n", thud->name, thud->mind_spell, + /*printf(_("### cycling %s: %d => %d\n"), thud->name, thud->mind_spell, thud->nowm_spell);*/ if (self->turntype==Turn_TIMESTOP && !thud->timestop) { /* do not cycle */ @@ -349,7 +359,7 @@ /* say nothing */ } else { - sprintf(bigbuf, "%s refuses to attack %s.\n", thud->name, + sprintf(bigbuf, _("%s refuses to attack %s.\n"), thud->name, pro_himself(fred->both.gender)); PrintMsg(bigbuf); } @@ -358,8 +368,8 @@ if (!(thud->type==Creature_FIREL || thud->type==Creature_ICEL) && fred->both.invisibility) { - sprintf(bigbuf, "%s tries to attack you, but cannot see you.\n", thud->name); - sprintf(bigbuf2, "%s tries to attack %s, but cannot see %s.\n", thud->name, + sprintf(bigbuf, _("%s tries to attack you, but cannot see you.\n"), thud->name); + sprintf(bigbuf2, _("%s tries to attack %s, but cannot see %s.\n"), thud->name, fred->both.name, pro_him(fred->both.gender)); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); @@ -369,8 +379,8 @@ } if (zapl[SP__SHIELD]) { - sprintf(bigbuf, "The attack of %s is blocked by your Shield.\n", thud->name); - sprintf(bigbuf2, "The attack of %s is blocked by %s's Shield.\n", thud->name, + sprintf(bigbuf, _("The attack of %s is blocked by your Shield.\n"), thud->name); + sprintf(bigbuf2, _("The attack of %s is blocked by %s's Shield.\n"), thud->name, fred->both.name); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); @@ -381,9 +391,9 @@ if (thud->type==Creature_FIREL) { if (fred->both.fl_resist_heat) { - sprintf(bigbuf, "%s reaches towards you, but you feel only a warm breeze.\n", + sprintf(bigbuf, _("%s reaches towards you, but you feel only a warm breeze.\n"), thud->name); - sprintf(bigbuf2, "%s reaches toward %s, but cannot penetrate %s blue aura.\n", + sprintf(bigbuf2, _("%s reaches toward %s, but cannot penetrate %s blue aura.\n"), thud->name, fred->both.name, pro_his(fred->both.gender)); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); @@ -391,8 +401,8 @@ PrintMsg(bigbuf2); } else { - sprintf(bigbuf, "%s hurls tongues of fire at you.\n", thud->name); - sprintf(bigbuf2, "%s hurls fire at %s.\n", thud->name, fred->both.name); + sprintf(bigbuf, _("%s hurls tongues of fire at you.\n"), thud->name); + sprintf(bigbuf2, _("%s hurls fire at %s.\n"), thud->name, fred->both.name); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); else @@ -402,9 +412,9 @@ } else if (thud->type==Creature_ICEL) { if (fred->both.fl_resist_cold) { - sprintf(bigbuf, "%s reaches towards you, but you feel only a chill breeze.\n", + sprintf(bigbuf, _("%s reaches towards you, but you feel only a chill breeze.\n"), thud->name); - sprintf(bigbuf2, "%s reaches toward %s, but cannot penetrate %s pink aura.\n", + sprintf(bigbuf2, _("%s reaches toward %s, but cannot penetrate %s pink aura.\n"), thud->name, fred->both.name, pro_his(fred->both.gender)); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); @@ -412,8 +422,8 @@ PrintMsg(bigbuf2); } else { - sprintf(bigbuf, "%s hurls splinters of ice at you.\n", thud->name); - sprintf(bigbuf2, "%s hurls ice at %s.\n", thud->name, fred->both.name); + sprintf(bigbuf, _("%s hurls splinters of ice at you.\n"), thud->name); + sprintf(bigbuf2, _("%s hurls ice at %s.\n"), thud->name, fred->both.name); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); else @@ -424,13 +434,13 @@ else { /* other creature types */ if (fred==(union being *)thud) { - sprintf(bigbuf, "%s attacks %s!\n", thud->name, + sprintf(bigbuf, _("%s attacks %s!\n"), thud->name, pro_himself(fred->both.gender)); PrintMsg(bigbuf); } else { - sprintf(bigbuf, "%s attacks you.\n", thud->name); - sprintf(bigbuf2, "%s attacks %s.\n", thud->name, fred->both.name); + sprintf(bigbuf, _("%s attacks you.\n"), thud->name); + sprintf(bigbuf2, _("%s attacks %s.\n"), thud->name, fred->both.name); if (wizflag) PrintMsg2(cnum, bigbuf, bigbuf2); else --- spellcast-1.0.orig/engine.c +++ spellcast-1.0/engine.c @@ -1,11 +1,18 @@ #include #include +#include +#include #include "handwave.h" #include "internal.h" + +#include +#define _(String) gettext (String) + + static char bigbuf[2048], bigbuf2[2048]; -static char smallbuf[512]; +/* static char smallbuf[512]; */ extern void find_castspells(); extern void execute_spells(), execute_monsters(); @@ -112,28 +119,28 @@ { switch (val) { case Gesture_DIGIT: - return "digit"; + return _("digit"); break; case Gesture_FINGERS: - return "fingers"; + return _("fingers"); break; case Gesture_PALM: - return "palm"; + return _("palm"); break; case Gesture_WAVE: - return "wave"; + return _("wave"); break; case Gesture_CLAPHALF: - return "clap"; + return _("clap"); break; case Gesture_SNAP: - return "snap"; + return _("snap"); break; case Gesture_KNIFE: - return "stab"; + return _("stab"); break; case Gesture_NOTHING: - return "nothing"; + return _("nothing"); break; default: return "ERROR:UNKNOWN"; @@ -189,7 +196,7 @@ struct realgame *self = (struct realgame *)malloc(sizeof(struct realgame)); int ix; - srandom(getpid() + rock + numplayers); + srandom((unsigned int) (getpid() + rock + numplayers)); if (!self) return NULL; @@ -203,7 +210,7 @@ init_transcript(self); if (numplayers > MAXPLAYERS) { - PrintMsg("Too many players requested.\n"); + PrintMsg(_("Too many players requested.\n")); return NULL; } @@ -214,7 +221,7 @@ self->wiz[ix]->hitpoints = 15; self->wiz[ix]->max_hitpoints = 15; - self->wiz[ix]->name = names[ix]; + self->wiz[ix]->name = _(names[ix]); self->wiz[ix]->gender = genders[ix]; self->wiz[ix]->numgests = 0; @@ -228,8 +235,8 @@ self->wiz[ix]->delay_time = 0; self->wiz[ix]->delay_bank = (-1); - sprintf(bigbuf, "%s strides defiantly into the arena. The referee casts the formal Dispel Magic and Anti-Spell on %s....\n", self->wiz[ix]->name, pro_him(self->wiz[ix]->gender)); - PrintMsg2(ix, "You advance confidently into the arena. The referee casts the formal Dispel Magic and Anti-Spell on you....\n", bigbuf); + sprintf(bigbuf, _("%s strides defiantly into the arena. The referee casts the formal Dispel Magic and Anti-Spell on %s....\n"), self->wiz[ix]->name, pro_him(self->wiz[ix]->gender)); + PrintMsg2(ix, _("You advance confidently into the arena. The referee casts the formal Dispel Magic and Anti-Spell on you....\n"), bigbuf); } self->cre_size = 4; @@ -254,7 +261,7 @@ ix = 1; while (1) { create_creature(self, ix, 0); - printf("%s\n", self->cre[self->numcres-1].name); + printf(_("%s\n"), self->cre[self->numcres-1].name); ix++; if (ix==7) ix=1; } @@ -305,7 +312,7 @@ case SP__AMNESIA: wiz->gests[gnum].did[0] = previous_gesture(wiz, gnum, 0); wiz->gests[gnum].did[1] = previous_gesture(wiz, gnum, 1); - sprintf(bigbuf, "In a fit of absent-mindedness, %s repeats %s gestures from last turn: %s with the left hand, %s with the right.\n", wiz->name, pro_his(wiz->gender), gesture_name(wiz->gests[gnum].did[0]), gesture_name(wiz->gests[gnum].did[1])); + sprintf(bigbuf, _("In a fit of absent-mindedness, %s repeats %s gestures from last turn: %s with the left hand, %s with the right.\n"), wiz->name, pro_his(wiz->gender), gesture_name(wiz->gests[gnum].did[0]), gesture_name(wiz->gests[gnum].did[1])); PrintMsg(bigbuf); break; case SP__CONFUSION: @@ -320,7 +327,7 @@ if (wiz->mind_caster==1 && wiz->perm.mind_spell==SP__CONFUSION) { wiz->perm.mind_detail = wiz->gests[gnum].did[jx] | (jx ? QuVal_Hand_Right : QuVal_Hand_Left); } - sprintf(bigbuf, "%s accidentally makes a %s with %s %s hand.\n", wiz->name, gesture_name(wiz->gests[gnum].did[jx]), pro_his(wiz->gender), (jx?"right":"left")); + sprintf(bigbuf, _("%s accidentally makes a %s with %s %s hand.\n"), wiz->name, gesture_name(wiz->gests[gnum].did[jx]), pro_his(wiz->gender), (jx?_("right"):_("left"))); PrintMsg(bigbuf); break; case SP__CHARM_PERSON: @@ -349,7 +356,7 @@ if ((wiz->mind_caster & 1024) && wiz->perm.mind_spell==SP__CHARM_PERSON) { wiz->perm.mind_detail = wiz->gests[gnum].did[jx] | (jx ? QuVal_Hand_Right : QuVal_Hand_Left); } - sprintf(bigbuf, "%s mysteriously makes a %s with %s %s hand.\n", wiz->name, gesture_name(wiz->gests[gnum].did[jx]), pro_his(wiz->gender), (jx?"right":"left")); + sprintf(bigbuf, _("%s mysteriously makes a %s with %s %s hand.\n"), wiz->name, gesture_name(wiz->gests[gnum].did[jx]), pro_his(wiz->gender), (jx?_("right"):_("left"))); PrintMsg(bigbuf); break; case SP__FEAR: @@ -366,16 +373,16 @@ } switch (jx) { case 1: - sprintf(bigbuf, "Terrified, %s does nothing with %s left hand.\n", wiz->name, pro_his(wiz->gender)); + sprintf(bigbuf, _("Terrified, %s does nothing with %s left hand.\n"), wiz->name, pro_his(wiz->gender)); break; case 2: - sprintf(bigbuf, "Terrified, %s does nothing with %s right hand.\n", wiz->name, pro_his(wiz->gender)); + sprintf(bigbuf, _("Terrified, %s does nothing with %s right hand.\n"), wiz->name, pro_his(wiz->gender)); break; case 3: - sprintf(bigbuf, "Terrified, %s does nothing with either hand.\n", wiz->name); + sprintf(bigbuf, _("Terrified, %s does nothing with either hand.\n"), wiz->name); break; case 0: - sprintf(bigbuf, "%s is terrified, but manages %s gestures anyway.\n", wiz->name, pro_his(wiz->gender)); + sprintf(bigbuf, _("%s is terrified, but manages %s gestures anyway.\n"), wiz->name, pro_his(wiz->gender)); break; } PrintMsg(bigbuf); @@ -402,13 +409,13 @@ val = Gesture_NOTHING; break; default: - PrintMsg("ERROR: paralysis previous_gesture returned bad value.\n"); + PrintMsg(_("ERROR: paralysis previous_gesture returned bad value.\n")); val = Gesture_NOTHING; break; } wiz->gests[gnum].did[jx] = val; wiz->hand_paralyzed = jx; - sprintf(bigbuf, "%s's %s hand is frozen in a %s.\n", wiz->name, (jx?"right":"left"), gesture_name(wiz->gests[gnum].did[jx])); + sprintf(bigbuf, _("%s's %s hand is frozen in a %s.\n"), wiz->name, (jx?_("right"):_("left")), gesture_name(wiz->gests[gnum].did[jx])); PrintMsg(bigbuf); break; default: @@ -423,7 +430,7 @@ /* move this down? */ if (wiz->gests[gnum].did[0] == Gesture_KNIFE && wiz->gests[gnum].did[1] == Gesture_KNIFE) { - PrintMsg2(ix, "You cannot stab with both hands!\n", NULL); + PrintMsg2(ix, _("You cannot stab with both hands!\n"), NULL); wiz->gests[gnum].did[1] = Gesture_NOTHING; } } /* end if self->turnactive[ix] */ @@ -442,14 +449,14 @@ if (foundlist[SP__SURRENDER]) { foundlist[SP__SURRENDER] = 0; self->wiz[ix]->surrendered = 1; - sprintf(bigbuf, "%s makes the gesture of surrender!\n", self->wiz[ix]->name); - PrintMsg2(ix, "Oh, dear. You seem to have surrendered.\n", bigbuf); + sprintf(bigbuf, _("%s makes the gesture of surrender!\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("Oh, dear. You seem to have surrendered.\n"), bigbuf); } restrict_gestures(self, ix); } /* end if self->turnactive[ix] */ - Queries(self->numqueries, self->querylist); /* "what spell do you want ot cast with your * hand?" questions. */ + Queries(self->numqueries, self->querylist); /* _("what spell do you want ot cast with your * hand?") questions. */ build_cast_list(self); if (self->turntype == Turn_HASTE) { self->hastelist = self->castlist; @@ -503,12 +510,12 @@ self->wiz[ix]->timestop--; if (self->wiz[ix]->timestop) { jx++; - sprintf(bigbuf, "%s accelerates into a flickering blur.\n", self->wiz[ix]->name); - PrintMsg2(ix, "Everything around you stops dead. The world is silent and motionless.\n", bigbuf); + sprintf(bigbuf, _("%s accelerates into a flickering blur.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("Everything around you stops dead. The world is silent and motionless.\n"), bigbuf); } else { - sprintf(bigbuf, "%s reappears, moving at normal speed.\n", self->wiz[ix]->name); - PrintMsg2(ix, "Everything begins moving again.\n", bigbuf); + sprintf(bigbuf, _("%s reappears, moving at normal speed.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("Everything begins moving again.\n"), bigbuf); } } } @@ -517,11 +524,11 @@ self->cre[ix].timestop--; if (self->cre[ix].timestop) { jx++; - sprintf(bigbuf, "%s accelerates into a flickering blur.\n", self->cre[ix].name); + sprintf(bigbuf, _("%s accelerates into a flickering blur.\n"), self->cre[ix].name); PrintMsg(bigbuf); } else { - sprintf(bigbuf, "%s reappears, moving at normal speed.\n", self->cre[ix].name); + sprintf(bigbuf, _("%s reappears, moving at normal speed.\n"), self->cre[ix].name); PrintMsg(bigbuf); } } @@ -538,17 +545,17 @@ if (self->wiz[ix]->haste==4) { self->wiz[ix]->haste--; jx++; - sprintf(bigbuf, "%s begins moving very quickly.\n", self->wiz[ix]->name); - PrintMsg2(ix, "Everyone else begins moving very slowly.\n", bigbuf); + sprintf(bigbuf, _("%s begins moving very quickly.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("Everyone else begins moving very slowly.\n"), bigbuf); } else if (self->wiz[ix]->haste) { jx++; - sprintf(bigbuf, "%s is still moving quickly.\n", self->wiz[ix]->name); - PrintMsg2(ix, "Everyone else is still moving slowly.\n", bigbuf); + sprintf(bigbuf, _("%s is still moving quickly.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("Everyone else is still moving slowly.\n"), bigbuf); } else { - sprintf(bigbuf, "%s slows down to normal speed.\n", self->wiz[ix]->name); - PrintMsg2(ix, "Everyone comes back up to normal speed.\n", bigbuf); + sprintf(bigbuf, _("%s slows down to normal speed.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("Everyone comes back up to normal speed.\n"), bigbuf); } } } @@ -558,16 +565,16 @@ if (self->cre[ix].haste==4) { self->cre[ix].haste--; jx++; - sprintf(bigbuf, "%s begins moving very quickly.\n", self->cre[ix].name); + sprintf(bigbuf, _("%s begins moving very quickly.\n"), self->cre[ix].name); PrintMsg(bigbuf); } else if (self->cre[ix].haste) { jx++; - sprintf(bigbuf, "%s is still moving quickly.\n", self->cre[ix].name); + sprintf(bigbuf, _("%s is still moving quickly.\n"), self->cre[ix].name); PrintMsg(bigbuf); } else { - sprintf(bigbuf, "%s slows down to normal speed.\n", self->cre[ix].name); + sprintf(bigbuf, _("%s slows down to normal speed.\n"), self->cre[ix].name); PrintMsg(bigbuf); } } @@ -724,19 +731,19 @@ if (targettype==QuVal_Target_Wizard) { if (targetnum >= 0 && targetnum < self->numtargets[0]) return self->targetlist[0][targetnum].name; - return "ERROR:NOBODY-wiz"; + return _("ERROR:NOBODY-wiz"); } else if (targettype==QuVal_Target_Creature) { if (targetnum >= 0 && targetnum < self->numtargets[1]) return self->targetlist[1][targetnum].name; - return "ERROR:NOBODY-cre"; + return _("ERROR:NOBODY-cre"); } else if (targettype==QuVal_Target_Corpse) { if (targetnum >= 0 && targetnum < self->numtargets[2]) return self->targetlist[2][targetnum].name; - return "ERROR:NOBODY-corpse"; + return _("ERROR:NOBODY-corpse"); } - else return "ERROR:NOBODY-atall"; + else return _("ERROR:NOBODY-atall"); } @@ -941,7 +948,7 @@ } break; default: - PrintMsg("ERROR: Unknown turn type\n"); + PrintMsg(_("ERROR: Unknown turn type\n")); break; } } @@ -990,7 +997,7 @@ rlist[rcount] = jx | QuVal_Hand_Both; break; default: - PrintMsg("ERROR in restrict_gestures\n"); + PrintMsg(_("ERROR in restrict_gestures\n")); break; } } @@ -1163,17 +1170,17 @@ (*ppt) && (*ppt)!=res; ppt = (&((*ppt)->next))); if (!(*ppt)) { - PrintMsg("ERROR: Unable to find Delayed spell.\n"); + PrintMsg(_("ERROR: Unable to find Delayed spell.\n")); } else { *ppt = res->next; res->next = NULL; - sprintf(bigbuf, "You cast %s; the spell is caught in the web of your Delayed Effect. It rises to hover by your head.\n", spelllist[res->spellnum].name); - sprintf(bigbuf2, "%s casts %s; the spell is caught in the web of %s Delayed Effect.\n", wiz->name, spelllist[res->spellnum].name, pro_his(wiz->gender)); + sprintf(bigbuf, _("You cast %s; the spell is caught in the web of your Delayed Effect. It rises to hover by your head.\n"), _(spelllist[res->spellnum].name)); + sprintf(bigbuf2, _("%s casts %s; the spell is caught in the web of %s Delayed Effect.\n"), wiz->name, _(spelllist[res->spellnum].name), pro_his(wiz->gender)); PrintMsg2(wiznum, bigbuf, bigbuf2); if (wiz->delay_bank != (-1)) { - sprintf(bigbuf, "The %s spell that you had caught previously is lost.\n", spelllist[wiz->delay_bank].name); - sprintf(bigbuf2, "The %s spell that %s had caught previously is lost.\n", spelllist[wiz->delay_bank].name, wiz->name); + sprintf(bigbuf, _("The %s spell that you had caught previously is lost.\n"), _(spelllist[wiz->delay_bank].name)); + sprintf(bigbuf2, _("The %s spell that %s had caught previously is lost.\n"), _(spelllist[wiz->delay_bank].name), wiz->name); PrintMsg2(wiznum, bigbuf, bigbuf2); wiz->delay_bank = (-1); } @@ -1214,7 +1221,7 @@ if (res) { res->permanent = 1; - sprintf(bigbuf, "Your Permanency spell wraps itself around your %s spell.\n", spelllist[res->spellnum].name); + sprintf(bigbuf, _("Your Permanency spell wraps itself around your %s spell.\n"), _(spelllist[res->spellnum].name)); PrintMsg2(wiznum, bigbuf, NULL); wiz->perm_time = 0; } @@ -1237,7 +1244,7 @@ add_query(self, tmp->caster, spelltargetlist[tmp->spellnum], tmp->spellnum | orval); } - Queries(self->numqueries, self->querylist); /* "who do you want to cast X on?" queries */ + Queries(self->numqueries, self->querylist); /* _("who do you want to cast X on?") queries */ for (tmp=self->castlist, jx=0; tmp; tmp=tmp->next, jx++) { if (spelltargetlist[tmp->spellnum]==Qu_NoQuery) { tmp->targettype = (-1); @@ -1274,37 +1281,37 @@ /* message already printed */ break; case 4: - sprintf(bigbuf, "%s starts to look hot and flushed.\n", fred->both.name); + sprintf(bigbuf, _("%s starts to look hot and flushed.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You begin to feel somewhat feverish.\n", bigbuf); + PrintMsg2(cnum, _("You begin to feel somewhat feverish.\n"), bigbuf); else PrintMsg(bigbuf); break; case 3: - sprintf(bigbuf, "%s looks even more flushed.\n", fred->both.name); + sprintf(bigbuf, _("%s looks even more flushed.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Your fever is growing worse.\n", bigbuf); + PrintMsg2(cnum, _("Your fever is growing worse.\n"), bigbuf); else PrintMsg(bigbuf); break; case 2: - sprintf(bigbuf, "%s is flushed and sweating, and seems to be somewhat unsteady on %s feet.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(bigbuf, _("%s is flushed and sweating, and seems to be somewhat unsteady on %s feet.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "You are very hot and somewhat dizzy, and your bones are starting to ache.\n", bigbuf); + PrintMsg2(cnum, _("You are very hot and somewhat dizzy, and your bones are starting to ache.\n"), bigbuf); else PrintMsg(bigbuf); break; case 1: - sprintf(bigbuf, "%s is both flushed and shivering violently.\n", fred->both.name); + sprintf(bigbuf, _("%s is both flushed and shivering violently.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are feverish and shivering at the same time, and you ache all over.\n", bigbuf); + PrintMsg2(cnum, _("You are feverish and shivering at the same time, and you ache all over.\n"), bigbuf); else PrintMsg(bigbuf); break; case 0: - sprintf(bigbuf, "%s crumples to the ground, agony on %s sweating features.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(bigbuf, _("%s crumples to the ground, agony on %s sweating features.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "Your knees give way and you fall to the ground. Your head pounds unmercifully as consciousness slips away....\n", bigbuf); + PrintMsg2(cnum, _("Your knees give way and you fall to the ground. Your head pounds unmercifully as consciousness slips away....\n"), bigbuf); else PrintMsg(bigbuf); fred->both.alive = 0; @@ -1366,8 +1373,8 @@ for (ix=0; ixnumplayers; ix++) { if (self->wiz[ix]->alive && self->wiz[ix]->hitpoints <= 0) { - sprintf(bigbuf, "%s has died!\n", self->wiz[ix]->name); - PrintMsg2(ix, "You have died!\n", bigbuf); + sprintf(bigbuf, _("%s has died!\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("You have died!\n"), bigbuf); self->wiz[ix]->alive = 0; clear_out_spells(self->wiz[ix], 1); write_gestures(self, self->wiz[ix], Gesture_NOTHING, Gesture_NOTHING); @@ -1380,8 +1387,8 @@ if (self->wiz[ix]->delay_time) { self->wiz[ix]->delay_time--; if (self->wiz[ix]->delay_time==0) { - sprintf(bigbuf, "The Delayed Effect spell hovering around %s dies away.\n", self->wiz[ix]->name); - PrintMsg2(ix, "The Delayed Effect spell hovering around you dies away.\n", bigbuf); + sprintf(bigbuf, _("The Delayed Effect spell hovering around %s dies away.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("The Delayed Effect spell hovering around you dies away.\n"), bigbuf); } } } @@ -1389,15 +1396,15 @@ if (self->wiz[ix]->perm_time) { self->wiz[ix]->perm_time--; if (self->wiz[ix]->perm_time==0) { - sprintf(bigbuf, "The Permanency spell hovering around %s dies away.\n", self->wiz[ix]->name); - PrintMsg2(ix, "The Permanency spell hovering around you dies away.\n", bigbuf); + sprintf(bigbuf, _("The Permanency spell hovering around %s dies away.\n"), self->wiz[ix]->name); + PrintMsg2(ix, _("The Permanency spell hovering around you dies away.\n"), bigbuf); } } } } for (ix=0; ixnumcres; ix++) { if (self->cre[ix].alive && self->cre[ix].hitpoints <= 0) { - sprintf(bigbuf, "%s has died.\n", self->cre[ix].name); + sprintf(bigbuf, _("%s has died.\n"), self->cre[ix].name); PrintMsg(bigbuf); self->cre[ix].alive = 0; clear_out_spells(&(self->cre[ix]), 0); @@ -1421,18 +1428,18 @@ break; if (numsurr==0) { - sprintf(bigbuf, "%s is the sole survivor!\n", self->wiz[ix]->name); + sprintf(bigbuf, _("%s is the sole survivor!\n"), self->wiz[ix]->name); PrintMsg(bigbuf); } else if (numsurr==1) { for (jx=0; jxnumplayers; jx++) if (self->wiz[jx]->alive && self->wiz[jx]->surrendered) break; - sprintf(bigbuf, "%s has surrendered to %s!\n", self->wiz[jx]->name, self->wiz[ix]->name); + sprintf(bigbuf, _("%s has surrendered to %s!\n"), self->wiz[jx]->name, self->wiz[ix]->name); PrintMsg(bigbuf); } else { - sprintf(bigbuf, "All of %s's opponents have surrendered!\n", self->wiz[ix]->name); + sprintf(bigbuf, _("All of %s's opponents have surrendered!\n"), self->wiz[ix]->name); PrintMsg(bigbuf); } @@ -1441,7 +1448,7 @@ else { /* nobody left alive (and unsurrendered) */ if (numsurr==0) { - PrintMsg("Everyone is dead!\n"); + PrintMsg(_("Everyone is dead!\n")); return MAXPLAYERS; } @@ -1449,15 +1456,15 @@ for (jx=0; jxnumplayers; jx++) if (self->wiz[jx]->alive && self->wiz[jx]->surrendered) break; - sprintf(bigbuf, "%s finds that there is nobody left to surrender to!\n", self->wiz[jx]->name); + sprintf(bigbuf, _("%s finds that there is nobody left to surrender to!\n"), self->wiz[jx]->name); PrintMsg(bigbuf); return jx; } if (numdead) - PrintMsg("The survivors have all surrendered to each other!\n"); + PrintMsg(_("The survivors have all surrendered to each other!\n")); else - PrintMsg("Everyone has surrendered to each other!\n"); + PrintMsg(_("Everyone has surrendered to each other!\n")); return MAXPLAYERS; } } --- spellcast-1.0.orig/espells.c +++ spellcast-1.0/espells.c @@ -3,6 +3,10 @@ #include "handwave.h" #include "internal.h" +#include +#define _(String) gettext (String) +#define gettext_noop(String) (String) + /* the following are purely for readability */ #define P Gesture_PALM #define D Gesture_DIGIT @@ -17,50 +21,51 @@ #define C2 (Gesture_CLAPHALF | Gesture_DOUBLE) #define S2 (Gesture_SNAP | Gesture_DOUBLE) +/* Have to put this into a initialization during startup of the program */ struct spelldef spelllist[NUMSPELLS] = { - {4, {C2, D, P, W}, 0, 1, "Dispel Magic"}, - {5, {C2, S, W, W, S}, 0, 1, "Summon Elemental"}, - {2, {C2, W2}, 0, 1, "Magic Mirror"}, - {5, {D, F, F, D, D}, 0, 0, "Lightning Bolt"}, - {4, {D, F, P, W}, 0, 1, "Cure Heavy Wounds"}, - {3, {D, F, W}, 0, 1, "Cure Light Wounds"}, - {3, {D, P, P}, 1, 0, "Amnesia"}, - {3, {D, S, F}, 1, 0, "Confusion"}, - {6, {D, S, F, F, F, C2},0, 0,"Disease"}, - {5, {D, W, F, F, D2}, 1, 0, "Blindness"}, - {6, {D, W, S, S, S, P},0, 1, "Delayed Effect"}, - {6, {D, W, W, F, W, C2},0, 1,"Raise Dead"}, - {6, {D, W, W, F, W, D},0, 0, "Poison"}, - {3, {F, F, F}, 1, 0, "Paralysis"}, - {5, {F, P, S, F, W}, 0, 1, "Summon Troll"}, - {5, {F, S, S, D, D}, 0, 0, "Fireball"}, - {1, {P}, 0, 1, "Shield"}, - {1, {P2}, 0, 0, "SURRENDER"}, - {4, {P, D, W, P}, 0, 1, "Remove Enchantment"}, - {4, {P, P, W2, S2}, 1, 1, "Invisibility"}, - {4, {P, S, D, D}, 1, 0, "Charm Monster"}, - {4, {P, S, D, F}, 1, 0, "Charm Person"}, - {4, {P, S, F, W}, 0, 1, "Summon Ogre"}, - {8, {P, W, P, F, S, S, S, D},0,0,"Finger of Death"}, - {6, {P, W, P, W, W, C2},1, 1,"Haste"}, - {2, {S, D}, 0, 0, "Missile"}, - {3, {S, F, W}, 0, 1, "Summon Goblin"}, - {3, {S, P, F}, 0, 0, "Anti-Spell"}, - {7, {S, P, F, P, S, D, W},0,1,"Permanency"}, - {4, {S, P, P, C2}, 0, 1, "Time Stop"}, - {4, {S, S, F, P}, 1, 1, "Resist Cold"}, - {3, {S, W, D}, 1, 0, "Fear"}, - {4, {S, W, W, C2}, 0, 0, "Fire Storm"}, - {4, {W, D, D, C2}, 0, 0, "Lightning Bolt"}, - {3, {W, F, P}, 0, 0, "Cause Light Wounds"}, - {6, {W, F, P, S, F, W},0, 1, "Summon Giant"}, - {4, {W, P, F, D}, 0, 0, "Cause Heavy Wounds"}, - {3, {W, P, P}, 0, 0, "Counter-Spell"}, - {4, {W, S, S, C2}, 0, 0, "Ice Storm"}, - {4, {W, W, F, P}, 1, 1, "Resist Heat"}, - {3, {W, W, P}, 1, 1, "Protection From Evil"}, - {3, {W, W, S}, 0, 0, "Counter-Spell"}, - {1, {Gesture_KNIFE}, 0, 0, "stab"} + {4, {C2, D, P, W}, 0, 1, gettext_noop("Dispel Magic")}, + {5, {C2, S, W, W, S}, 0, 1, gettext_noop("Summon Elemental")}, + {2, {C2, W2}, 0, 1, gettext_noop("Magic Mirror")}, + {5, {D, F, F, D, D}, 0, 0, gettext_noop("Lightning Bolt")}, + {4, {D, F, P, W}, 0, 1, gettext_noop("Cure Heavy Wounds")}, + {3, {D, F, W}, 0, 1, gettext_noop("Cure Light Wounds")}, + {3, {D, P, P}, 1, 0, gettext_noop("Amnesia")}, + {3, {D, S, F}, 1, 0, gettext_noop("Confusion")}, + {6, {D, S, F, F, F, C2},0, 0, gettext_noop("Disease")}, + {5, {D, W, F, F, D2}, 1, 0, gettext_noop("Blindness")}, + {6, {D, W, S, S, S, P},0, 1, gettext_noop("Delayed Effect")}, + {6, {D, W, W, F, W, C2},0, 1, gettext_noop("Raise Dead")}, + {6, {D, W, W, F, W, D},0, 0, gettext_noop("Poison")}, + {3, {F, F, F}, 1, 0, gettext_noop("Paralysis")}, + {5, {F, P, S, F, W}, 0, 1, gettext_noop("Summon Troll")}, + {5, {F, S, S, D, D}, 0, 0, gettext_noop("Fireball")}, + {1, {P}, 0, 1, gettext_noop("Shield")}, + {1, {P2}, 0, 0, gettext_noop("SURRENDER")}, + {4, {P, D, W, P}, 0, 1, gettext_noop("Remove Enchantment")}, + {4, {P, P, W2, S2}, 1, 1, gettext_noop("Invisibility")}, + {4, {P, S, D, D}, 1, 0, gettext_noop("Charm Monster")}, + {4, {P, S, D, F}, 1, 0, gettext_noop("Charm Person")}, + {4, {P, S, F, W}, 0, 1, gettext_noop("Summon Ogre")}, + {8, {P, W, P, F, S, S, S, D},0,0, gettext_noop("Finger of Death")}, + {6, {P, W, P, W, W, C2},1, 1, gettext_noop("Haste")}, + {2, {S, D}, 0, 0, gettext_noop("Missile")}, + {3, {S, F, W}, 0, 1, gettext_noop("Summon Goblin")}, + {3, {S, P, F}, 0, 0, gettext_noop("Anti-Spell")}, + {7, {S, P, F, P, S, D, W},0,1, gettext_noop("Permanency")}, + {4, {S, P, P, C2}, 0, 1, gettext_noop("Time Stop")}, + {4, {S, S, F, P}, 1, 1, gettext_noop("Resist Cold")}, + {3, {S, W, D}, 1, 0, gettext_noop("Fear")}, + {4, {S, W, W, C2}, 0, 0, gettext_noop("Fire Storm")}, + {4, {W, D, D, C2}, 0, 0, gettext_noop("Lightning Bolt")}, + {3, {W, F, P}, 0, 0, gettext_noop("Cause Light Wounds")}, + {6, {W, F, P, S, F, W},0, 1, gettext_noop("Summon Giant")}, + {4, {W, P, F, D}, 0, 0, gettext_noop("Cause Heavy Wounds")}, + {3, {W, P, P}, 0, 0, gettext_noop("Counter-Spell")}, + {4, {W, S, S, C2}, 0, 0, gettext_noop("Ice Storm")}, + {4, {W, W, F, P}, 1, 1, gettext_noop("Resist Heat")}, + {3, {W, W, P}, 1, 1, gettext_noop("Protection From Evil")}, + {3, {W, W, S}, 0, 0, gettext_noop("Counter-Spell")}, + {1, {Gesture_KNIFE}, 0, 0, gettext_noop("stab")} }; #undef P --- spellcast-1.0.orig/etran.c +++ spellcast-1.0/etran.c @@ -1,9 +1,15 @@ #include #include +#include #include "handwave.h" #include "internal.h" + +#include +#define _(String) gettext (String) + + static char bigbuf[512]; void log_text(); @@ -16,7 +22,7 @@ strcpy(self->gamelog, ""); self->gamelog_pos = 0; - log_text(self, "Spellcast Game Transcript\n\n"); + log_text(self, _("Spellcast Game Transcript\n\n")); } void log_text(self, str) @@ -81,17 +87,17 @@ switch (self->turntype) { case Turn_TIMESTOP: - cx = " (Time Stop)"; + cx = _(" (Time Stop)"); break; case Turn_HASTE: - cx = " (Haste)"; + cx = _(" (Haste)"); break; default: cx = ""; break; } - sprintf(bigbuf, "\n\tTurn %d%s:\n", self->turn, cx); + sprintf(bigbuf, _("\n\tTurn %d%s:\n"), self->turn, cx); log_text(self, bigbuf); for (ix=0; ixnumplayers; ix++) { @@ -99,12 +105,12 @@ if (wiz->alive) { if (self->turnactive[ix]) { gnum = wiz->numgests-1; - sprintf(bigbuf, "%s (%d): %c %c\n", wiz->name, wiz->hitpoints, + sprintf(bigbuf, _("%s (%d): %c %c\n"), wiz->name, wiz->hitpoints, cheap_untranslate(wiz->gests[gnum].did[0]), cheap_untranslate(wiz->gests[gnum].did[1])); } else { - sprintf(bigbuf, "%s (%d): [no gestures]\n", wiz->name, + sprintf(bigbuf, _("%s (%d): [no gestures]\n"), wiz->name, wiz->hitpoints); } log_text(self, bigbuf); @@ -113,11 +119,11 @@ for (ix=0; ixnumcres; ix++) { struct creature *thud = &(self->cre[ix]); if (thud->alive) { - sprintf(bigbuf, "%s (%d)\n", thud->name, thud->hitpoints); + sprintf(bigbuf, _("%s (%d)\n"), thud->name, thud->hitpoints); log_text(self, bigbuf); } } - log_text(self, "\n"); + log_text(self, _("\n")); } #define ABBREVLEN (8) --- spellcast-1.0.orig/execute.c +++ spellcast-1.0/execute.c @@ -4,6 +4,10 @@ #include "handwave.h" #include "internal.h" +#include +#define _(String) gettext (String) +#define _(String) gettext (String) + char exbuf[2048], exbuf2[2048], exbuf3[2048]; static char smallbuf[512]; static int summonelq; @@ -104,7 +108,7 @@ perm->fl_blindness = 1; break; default: - printf("ERROR: do not know how to permanent %d.\n", spelnum); + printf(_("ERROR: do not know how to permanent %d.\n"), spelnum); break; } } @@ -115,15 +119,15 @@ { switch (gender) { case Gender_NONE: - return "itself"; + return _("itself"); case Gender_MALE: - return "himself"; + return _("himself"); case Gender_FEMALE: - return "herself"; + return _("herself"); case Gender_NEUTER: - return "hirself"; + return _("hirself"); default: - return "ERROR-himself"; + return _("ERROR-himself"); } } @@ -132,15 +136,15 @@ { switch (gender) { case Gender_NONE: - return "it"; + return _("it"); case Gender_MALE: - return "him"; + return _("him"); case Gender_FEMALE: - return "her"; + return _("her"); case Gender_NEUTER: - return "hir"; + return _("hir"); default: - return "ERROR-him"; + return _("ERROR-him"); } } @@ -149,15 +153,15 @@ { switch (gender) { case Gender_NONE: - return "it"; + return _("it"); case Gender_MALE: - return "he"; + return _("he"); case Gender_FEMALE: - return "she"; + return _("she"); case Gender_NEUTER: - return "ke"; + return _("ke"); default: - return "ERROR-he"; + return _("ERROR-he"); } } @@ -166,15 +170,15 @@ { switch (gender) { case Gender_NONE: - return "its"; + return _("its"); case Gender_MALE: - return "his"; + return _("his"); case Gender_FEMALE: - return "her"; + return _("her"); case Gender_NEUTER: - return "hir"; + return _("hir"); default: - return "ERROR-his"; + return _("ERROR-his"); } } @@ -185,29 +189,29 @@ switch (num) { case 0: - return "zero"; + return _("zero"); case 1: - return "one"; + return _("one"); case 2: - return "two"; + return _("two"); case 3: - return "three"; + return _("three"); case 4: - return "four"; + return _("four"); case 5: - return "five"; + return _("five"); case 6: - return "six"; + return _("six"); case 7: - return "seven"; + return _("seven"); case 8: - return "eight"; + return _("eight"); case 9: - return "nine"; + return _("nine"); case 10: - return "ten"; + return _("ten"); default: - sprintf(buf, "%d", num); + sprintf(buf, _("%d"), num); return buf; } } @@ -228,10 +232,10 @@ strcat(buf, ", "); any = 1; if (zapl[spel]==1) { - strcat(buf, spelllist[spel].name); + strcat(buf, _(spelllist[spel].name)); } else { - sprintf(smallbuf, "%s %s", number_name(zapl[spel]), spelllist[spel].name); + sprintf(smallbuf, _("%s %s"), number_name(zapl[spel]), _(spelllist[spel].name)); strcat(buf, smallbuf); } } @@ -249,9 +253,9 @@ if ((union being *)mcaster != mtarget && (mtarget->both.invisibility || mcaster->blindness)) { - sprintf(exbuf, "You are unable to see %s; your %s goes wild.\n", mtarget->both.name, spelllist[ctmp->spellnum].name); - sprintf(exbuf2, "%s is unable to see you; %s %s goes wild.\n", mcaster->name, pro_his(mcaster->gender), spelllist[ctmp->spellnum].name); - sprintf(exbuf3, "%s is unable to see %s; %s %s goes wild.\n", mcaster->name, mtarget->both.name, pro_his(mcaster->gender), spelllist[ctmp->spellnum].name); + sprintf(exbuf, _("You are unable to see %s; your %s goes wild.\n"), mtarget->both.name, _(spelllist[ctmp->spellnum].name)); + sprintf(exbuf2, _("%s is unable to see you; %s %s goes wild.\n"), mcaster->name, pro_his(mcaster->gender), _(spelllist[ctmp->spellnum].name)); + sprintf(exbuf3, _("%s is unable to see %s; %s %s goes wild.\n"), mcaster->name, mtarget->both.name, pro_his(mcaster->gender), _(spelllist[ctmp->spellnum].name)); if (ctmp->targettype==QuVal_Target_Wizard) PrintMsg3(ctmp->caster, ctmp->target, exbuf, exbuf2, exbuf3); else @@ -274,34 +278,34 @@ char *handage; switch (ctmp->handage) { case MASK_LEFT: - handage = "with the left hand"; + handage = _("with the left hand"); break; case MASK_RIGHT: - handage = "with the right hand"; + handage = _("with the right hand"); break; case MASK_TWOHAND: - handage = "with both hands"; + handage = _("with both hands"); break; case 0: - handage = "from a Delayed Effect"; + handage = _("from a Delayed Effect"); break; case MASK_LEFT|MASK_RIGHT: - handage = "ERROR:BOTH??? hands"; + handage = _("ERROR:BOTH??? hands"); break; default: - handage = "ERROR:NEITHER??? hand"; + handage = _("ERROR:NEITHER??? hand"); break; } switch (ctmp->targettype) { case -1: - strcpy(smallbuf, "over the arena"); + strcpy(smallbuf, _("over the arena")); break; case 0: - strcpy(smallbuf, "up into the air"); + strcpy(smallbuf, _("up into the air")); break; default: if (ctmp->targettype==QuVal_Target_Wizard && ctmp->target==ctmp->caster) { - strcpy(smallbuf, "at "); + strcpy(smallbuf, _("at ")); strcat(smallbuf, pro_himself(self->wiz[ctmp->caster]->gender)); } else { @@ -316,14 +320,14 @@ mtarget = NULL; break; } - sprintf(smallbuf, "at %s", mtarget->both.name); + sprintf(smallbuf, _("at %s"), mtarget->both.name); } break; } if (ctmp->spellnum == SP__STAB) - sprintf(exbuf, "%s stabs (%s) %s.\n", self->wiz[ctmp->caster]->name, handage, smallbuf); + sprintf(exbuf, _("%s stabs (%s) %s.\n"), self->wiz[ctmp->caster]->name, handage, smallbuf); else - sprintf(exbuf, "%s casts %s%s (%s) %s.\n", self->wiz[ctmp->caster]->name, ((ctmp->permanent)?"Permanent ":""), spelllist[ctmp->spellnum].name, handage, smallbuf); + sprintf(exbuf, _("%s casts %s%s (%s) %s.\n"), self->wiz[ctmp->caster]->name, ((ctmp->permanent)?_("Permanent "):""), _(spelllist[ctmp->spellnum].name), handage, smallbuf); PrintMsg(exbuf); } @@ -375,7 +379,7 @@ } if (self->fl_dispelmagic) - PrintMsg("The magical energies in the arena fade away.\n"); + PrintMsg(_("The magical energies in the arena fade away.\n")); /* EXECUTE DISPEL MAGIC, MAGIC MIRROR, COUNTER_SPELL : all beings and corpses. This sets the zapl[] for those spells. */ for (ix=0; ixnumplayers; ix++) { @@ -424,7 +428,7 @@ /* check for dispel magic */ if (self->fl_dispelmagic) { - sprintf(exbuf, "The %s is dispelled.\n", spelllist[ctmp->spellnum].name); + sprintf(exbuf, _("The %s is dispelled.\n"), _(spelllist[ctmp->spellnum].name)); PrintMsg(exbuf); break; } @@ -441,8 +445,8 @@ /* check for counterspell */ if (mtarget->both.zaplist[SP__COUNTER_SPELL]) { - sprintf(exbuf, "The %s is destroyed by your Counter-Spell.\n", spelllist[ctmp->spellnum].name); - sprintf(exbuf2, "The %s is destroyed by the Counter-Spell around %s.\n", spelllist[ctmp->spellnum].name, mtarget->both.name); + sprintf(exbuf, _("The %s is destroyed by your Counter-Spell.\n"), _(spelllist[ctmp->spellnum].name)); + sprintf(exbuf2, _("The %s is destroyed by the Counter-Spell around %s.\n"), _(spelllist[ctmp->spellnum].name), mtarget->both.name); if (ctmp->targettype==QuVal_Target_Wizard) PrintMsg2(ctmp->target, exbuf, exbuf2); else @@ -492,15 +496,15 @@ ctmp->spellnum = SP__LIGHTNING_BOLT; } else { - sprintf(exbuf2, "%s's Lightning Bolt fizzles.\n", mcaster->name); - PrintMsg2(ctmp->caster, "Since you have already cast Lightning Bolt with that formulation, the spell fizzles.\n", exbuf2); + sprintf(exbuf2, _("%s's Lightning Bolt fizzles.\n"), mcaster->name); + PrintMsg2(ctmp->caster, _("Since you have already cast Lightning Bolt with that formulation, the spell fizzles.\n"), exbuf2); break; } } /* check for dispel magic */ if (self->fl_dispelmagic) { - sprintf(exbuf, "The %s is dispelled.\n", spelllist[ctmp->spellnum].name); + sprintf(exbuf, _("The %s is dispelled.\n"), _(spelllist[ctmp->spellnum].name)); PrintMsg(exbuf); break; } @@ -518,8 +522,8 @@ /* check for counterspell */ if (ctmp->spellnum != SP__FINGER_OF_DEATH) { if (mtarget->both.zaplist[SP__COUNTER_SPELL]) { - sprintf(exbuf, "The %s is destroyed by your Counter-Spell.\n", spelllist[ctmp->spellnum].name); - sprintf(exbuf2, "The %s is destroyed by the Counter-Spell around %s.\n", spelllist[ctmp->spellnum].name, mtarget->both.name); + sprintf(exbuf, _("The %s is destroyed by your Counter-Spell.\n"), _(spelllist[ctmp->spellnum].name)); + sprintf(exbuf2, _("The %s is destroyed by the Counter-Spell around %s.\n"), _(spelllist[ctmp->spellnum].name), mtarget->both.name); if (ctmp->targettype==QuVal_Target_Wizard) PrintMsg2(ctmp->target, exbuf, exbuf2); else @@ -536,9 +540,9 @@ /* check to see if caster has mirror too */ if (mcaster->zaplist[SP__MAGIC_MIRROR]) { - sprintf(exbuf, "Your %s is reflected back and forth between %s's Magic Mirror and your own! It rapidly decays and dissipates.\n", spelllist[ctmp->spellnum].name, mtarget->both.name); - sprintf(exbuf2, "%s's %s is reflected back and forth between your Magic Mirror and %s own! It rapidly decays and dissipates.\n", mcaster->name, spelllist[ctmp->spellnum].name, pro_his(mcaster->gender)); - sprintf(exbuf3, "%s's %s is reflected back and forth between %s's Magic Mirror and %s own! It rapidly decays and dissipates.\n", mcaster->name, spelllist[ctmp->spellnum].name, mtarget->both.name, pro_his(mcaster->gender)); + sprintf(exbuf, _("Your %s is reflected back and forth between %s's Magic Mirror and your own! It rapidly decays and dissipates.\n"), _(spelllist[ctmp->spellnum].name), mtarget->both.name); + sprintf(exbuf2, _("%s's %s is reflected back and forth between your Magic Mirror and %s own! It rapidly decays and dissipates.\n"), mcaster->name, _(spelllist[ctmp->spellnum].name), pro_his(mcaster->gender)); + sprintf(exbuf3, _("%s's %s is reflected back and forth between %s's Magic Mirror and %s own! It rapidly decays and dissipates.\n"), mcaster->name, _(spelllist[ctmp->spellnum].name), mtarget->both.name, pro_his(mcaster->gender)); if (ctmp->targettype==QuVal_Target_Wizard) PrintMsg3(ctmp->caster, ctmp->target, exbuf, exbuf2, exbuf3); else @@ -546,9 +550,9 @@ break; /* spell is lost */ } - sprintf(exbuf, "Your %s is reflected from %s's Magic Mirror back at you.\n", spelllist[ctmp->spellnum].name, mtarget->both.name); - sprintf(exbuf2, "%s's %s reflects from your Magic Mirror back at %s.\n", mcaster->name, spelllist[ctmp->spellnum].name, pro_him(mcaster->gender)); - sprintf(exbuf3, "%s's %s reflects from %s's Magic Mirror back at %s.\n", mcaster->name, spelllist[ctmp->spellnum].name, mtarget->both.name, pro_him(mcaster->gender)); + sprintf(exbuf, _("Your %s is reflected from %s's Magic Mirror back at you.\n"), _(spelllist[ctmp->spellnum].name), mtarget->both.name); + sprintf(exbuf2, _("%s's %s reflects from your Magic Mirror back at %s.\n"), mcaster->name, _(spelllist[ctmp->spellnum].name), pro_him(mcaster->gender)); + sprintf(exbuf3, _("%s's %s reflects from %s's Magic Mirror back at %s.\n"), mcaster->name, _(spelllist[ctmp->spellnum].name), mtarget->both.name, pro_him(mcaster->gender)); if (ctmp->targettype==QuVal_Target_Wizard) PrintMsg3(ctmp->caster, ctmp->target, exbuf, exbuf2, exbuf3); else @@ -564,8 +568,8 @@ /* now, check AGAIN for counterspell */ if (ctmp->spellnum != SP__FINGER_OF_DEATH) { if (mcaster->zaplist[SP__COUNTER_SPELL]) { - sprintf(exbuf, "The reflected %s is destroyed by your Counter-Spell.\n", spelllist[ctmp->spellnum].name); - sprintf(exbuf2, "The reflected %s is destroyed by the Counter-Spell around %s.\n", spelllist[ctmp->spellnum].name, mcaster->name); + sprintf(exbuf, _("The reflected %s is destroyed by your Counter-Spell.\n"), _(spelllist[ctmp->spellnum].name)); + sprintf(exbuf2, _("The reflected %s is destroyed by the Counter-Spell around %s.\n"), _(spelllist[ctmp->spellnum].name), mcaster->name); if (ctmp->targettype==QuVal_Target_Wizard) PrintMsg2(ctmp->target, exbuf, exbuf2); else @@ -584,7 +588,7 @@ /* area-effect spell; mtarget is NULL */ /* check for dispel magic */ if (self->fl_dispelmagic) { - sprintf(exbuf, "The %s is dispelled.\n", spelllist[ctmp->spellnum].name); + sprintf(exbuf, _("The %s is dispelled.\n"), _(spelllist[ctmp->spellnum].name)); PrintMsg(exbuf); break; } @@ -594,7 +598,7 @@ /* area-effect spell; mtarget is NULL */ /* check for dispel magic */ if (self->fl_dispelmagic) { - sprintf(exbuf, "The %s is dispelled.\n", spelllist[ctmp->spellnum].name); + sprintf(exbuf, _("The %s is dispelled.\n"), _(spelllist[ctmp->spellnum].name)); PrintMsg(exbuf); break; } @@ -602,7 +606,7 @@ break; case SP__SURRENDER: - PrintMsg("ERROR: Surrender got through to spell table setup\n"); + PrintMsg(_("ERROR: Surrender got through to spell table setup\n")); break; case SP__COUNTER_SPELL: @@ -613,7 +617,7 @@ break; default: - PrintMsg("ERROR: Unknown spell in spell table setup\n"); + PrintMsg(_("ERROR: Unknown spell in spell table setup\n")); break; } } @@ -704,24 +708,24 @@ /*{ for (jx=0; jxboth.name); + printf(_(" : %s\n"), fred->both.name); }*/ if (self->fl_dispelmagic) { /* dispel magic in effect: neutralize counter_spells and magic mirrors */ if (zapl[SP__COUNTER_SPELL]) { zapl[SP__COUNTER_SPELL] = 0; - sprintf(exbuf, "The Counter-Spell on %s is dispelled.\n", fred->both.name); + sprintf(exbuf, _("The Counter-Spell on %s is dispelled.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Counter-Spell on you is dispelled.\n", exbuf); + PrintMsg2(cnum, _("The Counter-Spell on you is dispelled.\n"), exbuf); else PrintMsg(exbuf); } if (zapl[SP__MAGIC_MIRROR]) { zapl[SP__MAGIC_MIRROR] = 0; - sprintf(exbuf, "The Magic Mirror on %s is dispelled.\n", fred->both.name); + sprintf(exbuf, _("The Magic Mirror on %s is dispelled.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Magic Mirror on you is dispelled.\n", exbuf); + PrintMsg2(cnum, _("The Magic Mirror on you is dispelled.\n"), exbuf); else PrintMsg(exbuf); } @@ -729,13 +733,13 @@ if (!wizflag) { struct creature *cre = (struct creature *)fred; if (cre->alive) { - sprintf(exbuf, "The Dispel Magic starts to tear %s apart.\n", cre->name); + sprintf(exbuf, _("The Dispel Magic starts to tear %s apart.\n"), cre->name); PrintMsg(exbuf); cre->hitpoints = (-100); cre->nocorpse = 1; } else if (!cre->nocorpse) { - sprintf(exbuf, "The corpse of %s disintegrates, destroyed by the Dispel Magic.\n", cre->name); + sprintf(exbuf, _("The corpse of %s disintegrates, destroyed by the Dispel Magic.\n"), cre->name); PrintMsg(exbuf); cre->nocorpse = 1; } @@ -746,18 +750,18 @@ if (zapl[SP__COUNTER_SPELL]) { zapl[SP__SHIELD]++; /* auto-shield */ - sprintf(exbuf, "A Counter-Spell flares around %s.\n", fred->both.name); + sprintf(exbuf, _("A Counter-Spell flares around %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Your magical senses go numb as a Counter-Spell surrounds you.\n", exbuf); + PrintMsg2(cnum, _("Your magical senses go numb as a Counter-Spell surrounds you.\n"), exbuf); else PrintMsg(exbuf); if (zapl[SP__MAGIC_MIRROR]) { /* counterspell beats mirror */ zapl[SP__MAGIC_MIRROR] = 0; - sprintf(exbuf, "The Magic Mirror on %s is destroyed by the Counter-Spell.\n", fred->both.name); + sprintf(exbuf, _("The Magic Mirror on %s is destroyed by the Counter-Spell.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Magic Mirror on you is destroyed by the Counter-Spell.\n", exbuf); + PrintMsg2(cnum, _("The Magic Mirror on you is destroyed by the Counter-Spell.\n"), exbuf); else PrintMsg(exbuf); } @@ -766,9 +770,9 @@ if (zapl[SP__MAGIC_MIRROR]) { - sprintf(exbuf, "A Magic Mirror swirls around %s.\n", fred->both.name); + sprintf(exbuf, _("A Magic Mirror swirls around %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The bright haze of a Magic Mirror surrounds you.\n", exbuf); + PrintMsg2(cnum, _("The bright haze of a Magic Mirror surrounds you.\n"), exbuf); else PrintMsg(exbuf); @@ -787,22 +791,23 @@ char *elm; /* counterspell, dispel magic, magic mirror have already been taken care of. */ static int summonspells[4] = {SP__SUMMON_GOBLIN, SP__SUMMON_OGRE, SP__SUMMON_TROLL, SP__SUMMON_GIANT}; + /* have to put this into startup initialization */ static char *summonnames[4] = {"Goblin", "Ogre", "Troll", "Giant"}; for (ix=0; ix<4; ix++) { spelnum = summonspells[ix]; if (zapl[spelnum]) { if (zapl[spelnum]==1) { - sprintf(exbuf, "Your %s materializes by your side.\n", summonnames[ix]); - sprintf(exbuf2, "%s's %s appears by %s side.\n", fred->both.name, summonnames[ix], pro_his(fred->both.gender)); + sprintf(exbuf, _("Your %s materializes by your side.\n"), summonnames[ix]); + sprintf(exbuf2, _("%s's %s appears by %s side.\n"), fred->both.name, summonnames[ix], pro_his(fred->both.gender)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "Your %s %ss materialize by your side.\n", number_name(zapl[spelnum]), summonnames[ix]); - sprintf(exbuf2, "%s's %s %ss appear by %s side.\n", fred->both.name, number_name(zapl[spelnum]), summonnames[ix], pro_his(fred->both.gender)); + sprintf(exbuf, _("Your %s %ss materialize by your side.\n"), number_name(zapl[spelnum]), summonnames[ix]); + sprintf(exbuf2, _("%s's %s %ss appear by %s side.\n"), fred->both.name, number_name(zapl[spelnum]), summonnames[ix], pro_his(fred->both.gender)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -817,12 +822,12 @@ ix = self->querylist[summonelq].answer; /* 0 fire, 1 ice */ summonelq++; if (!ix) { - sprintf(exbuf, "A blazing Fire Elemental materializes above you.\n"); - sprintf(exbuf2, "A blazing Fire Elemental materializes above %s.\n", fred->both.name); + sprintf(exbuf, _("A blazing Fire Elemental materializes above you.\n")); + sprintf(exbuf2, _("A blazing Fire Elemental materializes above %s.\n"), fred->both.name); } else { - sprintf(exbuf, "A glittering Ice Elemental materializes above you.\n"); - sprintf(exbuf2, "A glittering Ice Elemental materializes above %s.\n", fred->both.name); + sprintf(exbuf, _("A glittering Ice Elemental materializes above you.\n")); + sprintf(exbuf2, _("A glittering Ice Elemental materializes above %s.\n"), fred->both.name); } if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); @@ -869,11 +874,11 @@ } } if (num_fire>1) { - sprintf(exbuf, "The %s Fire Elementals merge into single raging form.\n", number_name(num_fire)); + sprintf(exbuf, _("The %s Fire Elementals merge into single raging form.\n"), number_name(num_fire)); PrintMsg(exbuf); } if (num_ice>1) { - sprintf(exbuf, "The %s Ice Elementals merge into single whirling form.\n", number_name(num_ice)); + sprintf(exbuf, _("The %s Ice Elementals merge into single whirling form.\n"), number_name(num_ice)); PrintMsg(exbuf); } @@ -884,55 +889,55 @@ switch (ix) { case 5: /* 0101 */ - PrintMsg("The Fire Elemental is dispersed into the Fire Storm.\n"); + PrintMsg(_("The Fire Elemental is dispersed into the Fire Storm.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; break; case 10: /* 1010 */ - PrintMsg("The Ice Elemental is dispersed into the Ice Storm.\n"); + PrintMsg(_("The Ice Elemental is dispersed into the Ice Storm.\n")); self->cre[icel].nocorpse = 1; self->cre[icel].alive = 0; break; case 12: /* 1100 */ - PrintMsg("The Fire and Ice Storms tear each other into shreds of vapor.\n"); + PrintMsg(_("The Fire and Ice Storms tear each other into shreds of vapor.\n")); self->fl_firestorm = 0; self->fl_icestorm = 0; break; case 3: /* 0011 */ - PrintMsg("The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments.\n"); + PrintMsg(_("The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; self->cre[icel].nocorpse = 1; self->cre[icel].alive = 0; break; case 6: /* 0110 */ - PrintMsg("The Ice Elemental is dispersed into the Fire Storm, destroying both.\n"); + PrintMsg(_("The Ice Elemental is dispersed into the Fire Storm, destroying both.\n")); self->cre[icel].nocorpse = 1; self->cre[icel].alive = 0; self->fl_firestorm = 0; break; case 9: /* 1001 */ - PrintMsg("The Fire Elemental is dispersed into the Ice Storm, destroying both.\n"); + PrintMsg(_("The Fire Elemental is dispersed into the Ice Storm, destroying both.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; self->fl_icestorm = 0; break; case 13: /* 1101 */ - PrintMsg("The Fire and Ice Storms tear each other into shreds of vapor, destroying the Fire Elemental as well.\n"); + PrintMsg(_("The Fire and Ice Storms tear each other into shreds of vapor, destroying the Fire Elemental as well.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; self->fl_firestorm = 0; self->fl_icestorm = 0; break; case 14: /* 1110 */ - PrintMsg("The Fire and Ice Storms tear each other into shreds of vapor, destroying the Ice Elemental as well.\n"); + PrintMsg(_("The Fire and Ice Storms tear each other into shreds of vapor, destroying the Ice Elemental as well.\n")); self->cre[icel].nocorpse = 1; self->cre[icel].alive = 0; self->fl_firestorm = 0; self->fl_icestorm = 0; break; case 11: /* 1011 */ - PrintMsg("The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments. The Ice Storm is absorbed as well.\n"); + PrintMsg(_("The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments. The Ice Storm is absorbed as well.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; self->cre[icel].nocorpse = 1; @@ -940,7 +945,7 @@ self->fl_icestorm = 0; break; case 7: /* 0111 */ - PrintMsg("The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments. The Fire Storm is absorbed as well.\n"); + PrintMsg(_("The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments. The Fire Storm is absorbed as well.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; self->cre[icel].nocorpse = 1; @@ -948,7 +953,7 @@ self->fl_firestorm = 0; break; case 15: /* 1111 */ - PrintMsg("The Fire and Ice Elementals whirl into each other, screaming in fury, and the Fire and Ice storms shriek in response. The column of Elemental energy rises to meet the cloud of vapor that descends over the arena. You are buffeted by the conflicting energies; but within moments, nothing remains.\n"); + PrintMsg(_("The Fire and Ice Elementals whirl into each other, screaming in fury, and the Fire and Ice storms shriek in response. The column of Elemental energy rises to meet the cloud of vapor that descends over the arena. You are buffeted by the conflicting energies; but within moments, nothing remains.\n")); self->cre[firel].nocorpse = 1; self->cre[firel].alive = 0; self->cre[icel].nocorpse = 1; @@ -965,30 +970,30 @@ if (self->cre[ix].type==Creature_FIREL) { if (!nukit && zapl[SP__RESIST_HEAT]) { - sprintf(exbuf, "%s gutters and flickers out under the influence of the Resist Heat.\n", self->cre[ix].name); + sprintf(exbuf, _("%s gutters and flickers out under the influence of the Resist Heat.\n"), self->cre[ix].name); PrintMsg(exbuf); nukit = 1; } } if (self->cre[ix].type==Creature_ICEL) { if (!nukit && zapl[SP__RESIST_COLD]) { - sprintf(exbuf, "%s melts away under the influence of the Resist Cold.\n", self->cre[ix].name); + sprintf(exbuf, _("%s melts away under the influence of the Resist Cold.\n"), self->cre[ix].name); PrintMsg(exbuf); nukit = 1; } if (!nukit && zapl[SP__FIREBALL]) { - sprintf(exbuf, "%s is vaporized by the Fireball.\n", self->cre[ix].name); + sprintf(exbuf, _("%s is vaporized by the Fireball.\n"), self->cre[ix].name); PrintMsg(exbuf); nukit = 1; } } if (!nukit && zapl[SP__BLINDNESS]) { - sprintf(exbuf, "Under the stress of the Blindness, %s shivers and disintegrates into random energies.\n", self->cre[ix].name); + sprintf(exbuf, _("Under the stress of the Blindness, %s shivers and disintegrates into random energies.\n"), self->cre[ix].name); PrintMsg(exbuf); nukit = 1; } if (!nukit && zapl[SP__INVISIBILITY]) { - sprintf(exbuf, "Under the stress of the Invisibility, %s shivers and disintegrates into random energies.\n", self->cre[ix].name); + sprintf(exbuf, _("Under the stress of the Invisibility, %s shivers and disintegrates into random energies.\n"), self->cre[ix].name); PrintMsg(exbuf); nukit = 1; } @@ -1000,7 +1005,7 @@ /* dispel magic was taken care of earlier */ if (self->cre[ix].alive && zapl[SP__REMOVE_ENCHANTMENT]) { - sprintf(exbuf, "The Remove Enchantment starts to tear %s apart.\n", self->cre[ix].name); + sprintf(exbuf, _("The Remove Enchantment starts to tear %s apart.\n"), self->cre[ix].name); PrintMsg(exbuf); self->cre[ix].hitpoints = (-100); self->cre[ix].nocorpse = 1; @@ -1020,9 +1025,9 @@ /* counterspell, dispel magic, magic mirror have already been taken care of. */ if (zapl[SP__RAISE_DEAD] && zapl[SP__FINGER_OF_DEATH]) { - sprintf(exbuf2, "The Finger of Death and Raise Dead spells aimed at %s cancel each other.\n", fred->both.name); + sprintf(exbuf2, _("The Finger of Death and Raise Dead spells aimed at %s cancel each other.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "For a moment, you feel a sudden pressure in your chest, as if an iron band was squeezing your heart. Then it fades, as the Raise Dead spell burns through you.\n", exbuf2); + PrintMsg2(cnum, _("For a moment, you feel a sudden pressure in your chest, as if an iron band was squeezing your heart. Then it fades, as the Raise Dead spell burns through you.\n"), exbuf2); else PrintMsg(exbuf2); zapl[SP__RAISE_DEAD]=0; @@ -1030,9 +1035,9 @@ } if (zapl[SP__FIREBALL] && self->fl_icestorm) { - sprintf(exbuf2, "The Fireball hurtling towards %s is snuffed by the Ice Storm, leaving %s enveloped in a cloud of steam.\n", fred->both.name, pro_him(fred->both.gender)); + sprintf(exbuf2, _("The Fireball hurtling towards %s is snuffed by the Ice Storm, leaving %s enveloped in a cloud of steam.\n"), fred->both.name, pro_him(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Fireball hurtling towards you is snuffed by the Ice Storm, leaving you enveloped in warm steam.\n", exbuf2); + PrintMsg2(cnum, _("The Fireball hurtling towards you is snuffed by the Ice Storm, leaving you enveloped in warm steam.\n"), exbuf2); else PrintMsg(exbuf2); zapl[SP__FIREBALL]=0; @@ -1053,8 +1058,8 @@ /* all mind spells cancel. */ list_mind_spells(exbuf3, zapl); - sprintf(exbuf, "The mind-control spells (%s) aimed at you interfere with each other and fizzle, leaving you with a pounding headache.\n", exbuf3); - sprintf(exbuf2, "The mind-control spells (%s) aimed at %s interfere with each other and fizzle.\n", exbuf3, fred->both.name); + sprintf(exbuf, _("The mind-control spells (%s) aimed at you interfere with each other and fizzle, leaving you with a pounding headache.\n"), exbuf3); + sprintf(exbuf2, _("The mind-control spells (%s) aimed at %s interfere with each other and fizzle.\n"), exbuf3, fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -1085,17 +1090,17 @@ /* don't bother checking permanency -- it doesn't change anything */ if (zapl[SP__RESIST_HEAT]) { if (!fred->both.resistant_heat) { - sprintf(exbuf2, "The Resist Heat shrouds %s in a cool blue veil.\n", fred->both.name); + sprintf(exbuf2, _("The Resist Heat shrouds %s in a cool blue veil.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Resist Heat wraps you in a pleasant blue coolness.\n", exbuf2); + PrintMsg2(cnum, _("The Resist Heat wraps you in a pleasant blue coolness.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.resistant_heat = 1; } else { - sprintf(exbuf2, "%s's veil of Resist Heat continues to glow coolly.\n", fred->both.name); + sprintf(exbuf2, _("%s's veil of Resist Heat continues to glow coolly.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Your veil of Resist Heat continues to glow coolly.\n", exbuf2); + PrintMsg2(cnum, _("Your veil of Resist Heat continues to glow coolly.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -1104,17 +1109,17 @@ /* don't bother checking permanency -- it doesn't change anything */ if (zapl[SP__RESIST_COLD]) { if (!fred->both.resistant_cold) { - sprintf(exbuf2, "The Resist Cold shrouds %s in a warm pink veil.\n", fred->both.name); + sprintf(exbuf2, _("The Resist Cold shrouds %s in a warm pink veil.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Resist Cold wraps you in a pleasant pink warmth.\n", exbuf2); + PrintMsg2(cnum, _("The Resist Cold wraps you in a pleasant pink warmth.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.resistant_cold = 1; } else { - sprintf(exbuf2, "%s's veil of Resist Cold continues to glow warmly.\n", fred->both.name); + sprintf(exbuf2, _("%s's veil of Resist Cold continues to glow warmly.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Your veil of Resist Cold continues to glow warmly.\n", exbuf2); + PrintMsg2(cnum, _("Your veil of Resist Cold continues to glow warmly.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -1122,16 +1127,16 @@ if (zapl[SP__PROTECTION_FROM_EVIL] || perm->fl_prot_evil) { if (!fred->both.prot_from_evil) { - sprintf(exbuf, "A white circle of Protection from Evil springs up around you. You feel the Shield aura cloaking your skin.\n"); - sprintf(exbuf2, "A white circle of Protection from Evil springs up around %s.\n", fred->both.name); + sprintf(exbuf, _("A white circle of Protection from Evil springs up around you. You feel the Shield aura cloaking your skin.\n")); + sprintf(exbuf2, _("A white circle of Protection from Evil springs up around %s.\n"), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "Your circle of Protection from Evil flares back to full strength.\n"); - sprintf(exbuf2, "%s's circle of Protection from Evil flares back to full strength.\n", fred->both.name); + sprintf(exbuf, _("Your circle of Protection from Evil flares back to full strength.\n")); + sprintf(exbuf2, _("%s's circle of Protection from Evil flares back to full strength.\n"), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -1150,20 +1155,20 @@ case 4: default: doit = 0; - /*sprintf(exbuf, "Your circle of Protection from Evil is still glowing strongly.\n"); - sprintf(exbuf2, "%s's circle of Protection from Evil is still glowing strongly.\n", fred->both.name);*/ + /*sprintf(exbuf, _("Your circle of Protection from Evil is still glowing strongly.\n")); + sprintf(exbuf2, _("%s's circle of Protection from Evil is still glowing strongly.\n"), fred->both.name);*/ break; case 3: - sprintf(exbuf, "Your circle of Protection from Evil is beginning to fade.\n"); - sprintf(exbuf2, "%s's circle of Protection from Evil is beginning to fade.\n", fred->both.name); + sprintf(exbuf, _("Your circle of Protection from Evil is beginning to fade.\n")); + sprintf(exbuf2, _("%s's circle of Protection from Evil is beginning to fade.\n"), fred->both.name); break; case 2: - sprintf(exbuf, "Your circle of Protection from Evil is dimmer now.\n"); - sprintf(exbuf2, "%s's circle of Protection from Evil is dimmer now.\n", fred->both.name); + sprintf(exbuf, _("Your circle of Protection from Evil is dimmer now.\n")); + sprintf(exbuf2, _("%s's circle of Protection from Evil is dimmer now.\n"), fred->both.name); break; case 1: - sprintf(exbuf, "Your circle of Protection from Evil is nearly gone.\n"); - sprintf(exbuf2, "%s's circle of Protection from Evil is nearly gone.\n", fred->both.name); + sprintf(exbuf, _("Your circle of Protection from Evil is nearly gone.\n")); + sprintf(exbuf2, _("%s's circle of Protection from Evil is nearly gone.\n"), fred->both.name); break; } if (doit) --- spellcast-1.0.orig/execute2.c +++ spellcast-1.0/execute2.c @@ -4,6 +4,9 @@ #include "handwave.h" #include "internal.h" +#include +#define _(String) gettext (String) + extern char exbuf[2048], exbuf2[2048]; extern char *number_name(); @@ -23,9 +26,9 @@ /* fred->both.mind_caster = unused */ if (fred->both.enchant_ppend) perm->mind_spell = SP__AMNESIA; - sprintf(exbuf2, "The Amnesia spell curls around %s's mind.\n", fred->both.name); + sprintf(exbuf2, _("The Amnesia spell curls around %s's mind.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Amnesia spell curls around your mind.\n", exbuf2); + PrintMsg2(cnum, _("The Amnesia spell curls around your mind.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -38,9 +41,9 @@ perm->mind_detail = (-1); fred->both.mind_caster = 1; } - sprintf(exbuf2, "The Confusion spell curls around %s's mind.\n", fred->both.name); + sprintf(exbuf2, _("The Confusion spell curls around %s's mind.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Confusion spell curls around your mind.\n", exbuf2); + PrintMsg2(cnum, _("The Confusion spell curls around your mind.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -50,9 +53,9 @@ /* fred->both.mind_caster = unused */ if (fred->both.enchant_ppend) perm->mind_spell = SP__FEAR; - sprintf(exbuf2, "The Fear spell curls around %s's mind.\n", fred->both.name); + sprintf(exbuf2, _("The Fear spell curls around %s's mind.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Fear spell curls around your mind.\n", exbuf2); + PrintMsg2(cnum, _("The Fear spell curls around your mind.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -61,8 +64,8 @@ if (wizflag) { /* cast on a wizard */ if (fred->both.enchant_caster == (-1)) { - sprintf(exbuf2, "Not knowing which of %s's hands to strike, the Paralysis spell fizzles.\n", fred->both.name); - PrintMsg2(cnum, "Not knowing which of your hands to strike, the Paralysis spell fizzles.\n", exbuf2); + sprintf(exbuf2, _("Not knowing which of %s's hands to strike, the Paralysis spell fizzles.\n"), fred->both.name); + PrintMsg2(cnum, _("Not knowing which of your hands to strike, the Paralysis spell fizzles.\n"), exbuf2); } else { fred->both.mind_spell = SP__PARALYSIS; @@ -82,8 +85,8 @@ perm->mind_detail = handnum; } - sprintf(exbuf, "The Paralysis spell curls around your %s hand.\n", (handnum?"right":"left")); - sprintf(exbuf2, "The Paralysis spell curls around %s's %s hand.\n", fred->both.name, (handnum?"right":"left")); + sprintf(exbuf, _("The Paralysis spell curls around your %s hand.\n"), (handnum?"right":"left")); + sprintf(exbuf2, _("The Paralysis spell curls around %s's %s hand.\n"), fred->both.name, (handnum?"right":"left")); PrintMsg2(cnum, exbuf, exbuf2); } } @@ -93,7 +96,7 @@ /* fred->both.mind_caster = unused */ if (fred->both.enchant_ppend) perm->mind_spell = SP__PARALYSIS; - sprintf(exbuf2, "The Paralysis spell curls around %s's mind.\n", fred->both.name); + sprintf(exbuf2, _("The Paralysis spell curls around %s's mind.\n"), fred->both.name); PrintMsg(exbuf2); } } @@ -101,13 +104,13 @@ if (zapl[SP__CHARM_MONSTER]) { if (wizflag) { /* cast on a wizard */ - sprintf(exbuf2, "The Charm Monster spell swirls around %s's mind, but cannot sink in.\n", fred->both.name); - PrintMsg2(cnum, "The Charm Monster spell swirls around your mind, but cannot sink in.\n", exbuf2); + sprintf(exbuf2, _("The Charm Monster spell swirls around %s's mind, but cannot sink in.\n"), fred->both.name); + PrintMsg2(cnum, _("The Charm Monster spell swirls around your mind, but cannot sink in.\n"), exbuf2); } else { /* cast on a monster */ if (fred->both.enchant_caster == (-1)) { - sprintf(exbuf, "The Charm Monster spell strikes %s, and then seems to freeze. Referees stomp into the arena and glare at the spell. Then they glare at each other. Then they glare at the spell again. They huddle together, muttering and glowering. Eventually they pick the spell up bodily and carry it off the field.\n", fred->both.name); + sprintf(exbuf, _("The Charm Monster spell strikes %s, and then seems to freeze. Referees stomp into the arena and glare at the spell. Then they glare at each other. Then they glare at the spell again. They huddle together, muttering and glowering. Eventually they pick the spell up bodily and carry it off the field.\n"), fred->both.name); PrintMsg(exbuf); } else { @@ -118,7 +121,7 @@ perm->mind_detail = fred->both.enchant_caster; } fred->cre.owner = fred->both.enchant_caster; - sprintf(exbuf2, "The Charm Monster spell curls around %s, and %s smiles dopily at %s.\n", fred->both.name, pro_he(fred->both.gender), self->wiz[fred->cre.owner]->name); + sprintf(exbuf2, _("The Charm Monster spell curls around %s, and %s smiles dopily at %s.\n"), fred->both.name, pro_he(fred->both.gender), self->wiz[fred->cre.owner]->name); PrintMsg(exbuf2); } } @@ -128,8 +131,8 @@ if (wizflag) { /* cast on a wizard */ if (fred->both.enchant_caster == (-1)) { - sprintf(exbuf2, "Not knowing which of %s's hands to strike, the Charm Person spell fizzles.\n", fred->both.name); - PrintMsg2(cnum, "Not knowing which of your hands to strike, the Charm Person spell fizzles.\n", exbuf2); + sprintf(exbuf2, _("Not knowing which of %s's hands to strike, the Charm Person spell fizzles.\n"), fred->both.name); + PrintMsg2(cnum, _("Not knowing which of your hands to strike, the Charm Person spell fizzles.\n"), exbuf2); } else { fred->both.mind_spell = SP__CHARM_PERSON; @@ -146,14 +149,14 @@ fred->both.mind_caster |= 1024; } - sprintf(exbuf, "The Charm Person spell curls around your %s hand.\n", (handnum?"right":"left")); - sprintf(exbuf2, "The Charm Person spell curls around %s's %s hand.\n", fred->both.name, (handnum?"right":"left")); + sprintf(exbuf, _("The Charm Person spell curls around your %s hand.\n"), (handnum?"right":"left")); + sprintf(exbuf2, _("The Charm Person spell curls around %s's %s hand.\n"), fred->both.name, (handnum?"right":"left")); PrintMsg2(cnum, exbuf, exbuf2); } } else { /* cast on a monster */ - sprintf(exbuf2, "The Charm Person spell swirls around %s's mind, but cannot sink in.\n", fred->both.name); + sprintf(exbuf2, _("The Charm Person spell swirls around %s's mind, but cannot sink in.\n"), fred->both.name); PrintMsg(exbuf2); } } @@ -163,17 +166,17 @@ switch (perm->mind_spell) { case SP__AMNESIA: fred->both.mind_spell = SP__AMNESIA; - sprintf(exbuf2, "%s is still afflicted with Amnesia.\n", fred->both.name); + sprintf(exbuf2, _("%s is still afflicted with Amnesia.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are still afflicted with Amnesia.\n", exbuf2); + PrintMsg2(cnum, _("You are still afflicted with Amnesia.\n"), exbuf2); else PrintMsg(exbuf2); break; case SP__FEAR: fred->both.mind_spell = SP__FEAR; - sprintf(exbuf2, "%s is still afflicted with Fear.\n", fred->both.name); + sprintf(exbuf2, _("%s is still afflicted with Fear.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are still afflicted with Fear.\n", exbuf2); + PrintMsg2(cnum, _("You are still afflicted with Fear.\n"), exbuf2); else PrintMsg(exbuf2); break; @@ -182,16 +185,16 @@ fred->both.mind_spell = SP__CHARM_MONSTER; fred->both.mind_caster = perm->mind_detail; fred->cre.owner = perm->mind_detail; - sprintf(exbuf2, "%s is still enamoured of %s.\n", fred->both.name, self->wiz[fred->cre.owner]->name); + sprintf(exbuf2, _("%s is still enamoured of %s.\n"), fred->both.name, self->wiz[fred->cre.owner]->name); PrintMsg(exbuf2); } break; case SP__CONFUSION: fred->both.mind_spell = SP__CONFUSION; fred->both.mind_caster = 1; - sprintf(exbuf2, "%s is still afflicted with Confusion.\n", fred->both.name); + sprintf(exbuf2, _("%s is still afflicted with Confusion.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are still afflicted with Confusion.\n", exbuf2); + PrintMsg2(cnum, _("You are still afflicted with Confusion.\n"), exbuf2); else PrintMsg(exbuf2); break; @@ -199,20 +202,20 @@ if (wizflag) { fred->both.mind_spell = SP__CHARM_PERSON; fred->both.mind_caster = 1024; - sprintf(exbuf2, "%s is still Charmed.\n", fred->both.name); - PrintMsg2(cnum, "You are still Charmed.\n", exbuf2); + sprintf(exbuf2, _("%s is still Charmed.\n"), fred->both.name); + PrintMsg2(cnum, _("You are still Charmed.\n"), exbuf2); } break; case SP__PARALYSIS: fred->both.mind_spell = SP__PARALYSIS; fred->both.mind_caster = perm->mind_detail; if (wizflag) { - sprintf(exbuf2, "%s's %s hand is still Paralyzed.\n", fred->both.name, ((perm->mind_detail)?"right":"left")); - sprintf(exbuf, "Your %s hand is still Paralyzed.\n", ((perm->mind_detail)?"right":"left")); + sprintf(exbuf2, _("%s's %s hand is still Paralyzed.\n"), fred->both.name, ((perm->mind_detail)?"right":"left")); + sprintf(exbuf, _("Your %s hand is still Paralyzed.\n"), ((perm->mind_detail)?"right":"left")); PrintMsg2(cnum, exbuf, exbuf2); } else { - sprintf(exbuf2, "%s is still afflicted with Paralysis.\n", fred->both.name); + sprintf(exbuf2, _("%s is still afflicted with Paralysis.\n"), fred->both.name); PrintMsg(exbuf2); } break; @@ -220,7 +223,7 @@ /* no permanent mind spell */ break; default: - printf("ERROR: unknown perm->mind_spell %d\n", perm->mind_spell); + printf(_("ERROR: unknown perm->mind_spell %d\n"), perm->mind_spell); break; } } @@ -229,9 +232,9 @@ if (fred->both.disease_time == (-1)) { /* not yet diseased */ fred->both.disease_time = 6; - sprintf(exbuf2, "%s sneezes loudly.\n", fred->both.name); + sprintf(exbuf2, _("%s sneezes loudly.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You sneeze loudly.\n", exbuf2); + PrintMsg2(cnum, _("You sneeze loudly.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -241,9 +244,9 @@ if (fred->both.poison_time == (-1)) { /* not yet poisoned */ fred->both.poison_time = 6; - sprintf(exbuf2, "%s suddenly looks somewhat pale.\n", fred->both.name); + sprintf(exbuf2, _("%s suddenly looks somewhat pale.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "A flash of pain lances along your bones, and then fades away.\n", exbuf2); + PrintMsg2(cnum, _("A flash of pain lances along your bones, and then fades away.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -252,21 +255,21 @@ if (zapl[SP__ANTI_SPELL]) { if (zapl[SP__REMOVE_ENCHANTMENT]) { /* cancelled */ - sprintf(exbuf2, "The Anti-Spell fizzes away into nothing as it approaches %s.\n", fred->both.name); + sprintf(exbuf2, _("The Anti-Spell fizzes away into nothing as it approaches %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Anti-Spell fizzes away into nothing as it approaches you.\n", exbuf2); + PrintMsg2(cnum, _("The Anti-Spell fizzes away into nothing as it approaches you.\n"), exbuf2); else PrintMsg(exbuf2); } else { if (!wizflag) { - sprintf(exbuf, "The Anti-Spell whizzes through %s without any effect.\n", fred->both.name); + sprintf(exbuf, _("The Anti-Spell whizzes through %s without any effect.\n"), fred->both.name); PrintMsg(exbuf); } else { struct wizard *wiz = &(fred->wiz); - sprintf(exbuf2, "The Anti-Spell jolts %s, causing the magical energies around %s hands to flicker.\n", wiz->name, pro_his(wiz->gender)); - PrintMsg2(cnum, "The Anti-Spell jolts you, interrupting the flow of magical energy in your hands.\n", exbuf2); + sprintf(exbuf2, _("The Anti-Spell jolts %s, causing the magical energies around %s hands to flicker.\n"), wiz->name, pro_his(wiz->gender)); + PrintMsg2(cnum, _("The Anti-Spell jolts you, interrupting the flow of magical energy in your hands.\n"), exbuf2); write_gestures(self, wiz, Gesture_ANTISPELL, Gesture_ANTISPELL); } @@ -276,21 +279,21 @@ if (zapl[SP__DELAYED_EFFECT]) { if (zapl[SP__REMOVE_ENCHANTMENT]) { /* cancelled */ - sprintf(exbuf2, "The Delayed Effect fizzes away into nothing as it approaches %s.\n", fred->both.name); + sprintf(exbuf2, _("The Delayed Effect fizzes away into nothing as it approaches %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Delayed Effect fizzes away into nothing as it approaches you.\n", exbuf2); + PrintMsg2(cnum, _("The Delayed Effect fizzes away into nothing as it approaches you.\n"), exbuf2); else PrintMsg(exbuf2); } else { if (!wizflag) { - sprintf(exbuf, "The Delayed Effect whizzes through %s without any effect.\n", fred->both.name); + sprintf(exbuf, _("The Delayed Effect whizzes through %s without any effect.\n"), fred->both.name); PrintMsg(exbuf); } else { struct wizard *wiz = &(fred->wiz); - sprintf(exbuf2, "The Delayed Effect spreads out around %s.\n", wiz->name); - PrintMsg2(cnum, "The Delayed Effect spreads out in a cloud around you, waiting for you to complete a spell.\n", exbuf2); + sprintf(exbuf2, _("The Delayed Effect spreads out around %s.\n"), wiz->name); + PrintMsg2(cnum, _("The Delayed Effect spreads out in a cloud around you, waiting for you to complete a spell.\n"), exbuf2); wiz->delay_time = 4; } } @@ -299,21 +302,21 @@ if (zapl[SP__PERMANENCY]) { if (zapl[SP__REMOVE_ENCHANTMENT]) { /* cancelled */ - sprintf(exbuf2, "The Permanency fizzes away into nothing as it approaches %s.\n", fred->both.name); + sprintf(exbuf2, _("The Permanency fizzes away into nothing as it approaches %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Permanency fizzes away into nothing as it approaches you.\n", exbuf2); + PrintMsg2(cnum, _("The Permanency fizzes away into nothing as it approaches you.\n"), exbuf2); else PrintMsg(exbuf2); } else { if (!wizflag) { - sprintf(exbuf, "The Permanency whizzes through %s without any effect.\n", fred->both.name); + sprintf(exbuf, _("The Permanency whizzes through %s without any effect.\n"), fred->both.name); PrintMsg(exbuf); } else { struct wizard *wiz = &(fred->wiz); - sprintf(exbuf2, "The Permanency spreads out around %s.\n", wiz->name); - PrintMsg2(cnum, "The Permanency spreads out in a cloud around you, waiting for you to complete a spell.\n", exbuf2); + sprintf(exbuf2, _("The Permanency spreads out around %s.\n"), wiz->name); + PrintMsg2(cnum, _("The Permanency spreads out in a cloud around you, waiting for you to complete a spell.\n"), exbuf2); wiz->perm_time = 4; } } @@ -322,17 +325,17 @@ if (zapl[SP__BLINDNESS] || perm->fl_blindness) { if (fred->both.blindness == 0) { /* not yet blind */ - sprintf(exbuf2, "%s blinks, then stumbles slightly as %s eyes turn milky.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("%s blinks, then stumbles slightly as %s eyes turn milky.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "A haze suddenly appears before your eyes. The world dims rapidly, and you are shortly enveloped in total darkness.\n", exbuf2); + PrintMsg2(cnum, _("A haze suddenly appears before your eyes. The world dims rapidly, and you are shortly enveloped in total darkness.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.blindness = 4; } else { - sprintf(exbuf2, "%s is still blind.\n", fred->both.name); + sprintf(exbuf2, _("%s is still blind.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are still blind.\n", exbuf2); + PrintMsg2(cnum, _("You are still blind.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.blindness = 4; @@ -342,9 +345,9 @@ if (fred->both.blindness) { fred->both.blindness--; if (fred->both.blindness==0) { - sprintf(exbuf2, "The milky cast fades from %s's eyes.\n", fred->both.name); + sprintf(exbuf2, _("The milky cast fades from %s's eyes.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The dark veil falls away from your eyes.\n", exbuf2); + PrintMsg2(cnum, _("The dark veil falls away from your eyes.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -353,17 +356,17 @@ if (zapl[SP__INVISIBILITY] || perm->fl_invisibility) { if (fred->both.invisibility == 0) { /* not yet invisible */ - sprintf(exbuf2, "%s turns quietly translucent, and fades from view.\n", fred->both.name); + sprintf(exbuf2, _("%s turns quietly translucent, and fades from view.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The world becomes strangely misted in front of your eyes. Looking down, you see that your hands are no longer visible.\n", exbuf2); + PrintMsg2(cnum, _("The world becomes strangely misted in front of your eyes. Looking down, you see that your hands are no longer visible.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.invisibility = 4; } else { - sprintf(exbuf2, "%s is still invisible.\n", fred->both.name); + sprintf(exbuf2, _("%s is still invisible.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are still invisible.\n", exbuf2); + PrintMsg2(cnum, _("You are still invisible.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.invisibility = 4; @@ -373,9 +376,9 @@ if (fred->both.invisibility) { fred->both.invisibility--; if (fred->both.invisibility==0) { - sprintf(exbuf2, "A %s-shaped shadow appears, and %s rapidly becomes fully visible.\n", fred->both.name, pro_he(fred->both.gender)); + sprintf(exbuf2, _("A %s-shaped shadow appears, and %s rapidly becomes fully visible.\n"), fred->both.name, pro_he(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "Your limbs have become visible again.\n", exbuf2); + PrintMsg2(cnum, _("Your limbs have become visible again.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -400,16 +403,16 @@ /* remove enchantments is obviously last. takes out mind_* also, and nowm_* for monsters. */ if (zapl[SP__REMOVE_ENCHANTMENT]) { - sprintf(exbuf2, "The Remove Enchantment whirls its dissipative energies around %s.\n", fred->both.name); + sprintf(exbuf2, _("The Remove Enchantment whirls its dissipative energies around %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Remove Enchantment whirls its dissipative energies around you.\n", exbuf2); + PrintMsg2(cnum, _("The Remove Enchantment whirls its dissipative energies around you.\n"), exbuf2); else PrintMsg(exbuf2); } if (fred->both.mind_spell != (-1)) { - sprintf(exbuf, "You are freed of the %s.\n", spelllist[fred->both.mind_spell].name); - sprintf(exbuf2, "%s is freed of the %s.\n", fred->both.name, spelllist[fred->both.mind_spell].name); + sprintf(exbuf, _("You are freed of the %s.\n"), _(spelllist[fred->both.mind_spell].name)); + sprintf(exbuf2, _("%s is freed of the %s.\n"), fred->both.name, _(spelllist[fred->both.mind_spell].name)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -419,15 +422,15 @@ if (!wizflag) { struct creature *thud = &(fred->cre); if (thud->nowm_spell != (-1)) { - sprintf(exbuf2, "%s is freed of the %s.\n", thud->name, spelllist[thud->nowm_spell].name); + sprintf(exbuf2, _("%s is freed of the %s.\n"), thud->name, _(spelllist[thud->nowm_spell].name)); PrintMsg(exbuf2); thud->nowm_spell = (-1); } } if (fred->both.resistant_heat) { - sprintf(exbuf, "Your blue aura of Resist Heat fades away.\n"); - sprintf(exbuf2, "%s's blue aura of Resist Heat fades away.\n", fred->both.name); + sprintf(exbuf, _("Your blue aura of Resist Heat fades away.\n")); + sprintf(exbuf2, _("%s's blue aura of Resist Heat fades away.\n"), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -437,8 +440,8 @@ fred->both.fl_resist_heat = 0; if (fred->both.resistant_cold) { - sprintf(exbuf, "Your pink aura of Resist Cold fades away.\n"); - sprintf(exbuf2, "%s's pink aura of Resist Cold fades away.\n", fred->both.name); + sprintf(exbuf, _("Your pink aura of Resist Cold fades away.\n")); + sprintf(exbuf2, _("%s's pink aura of Resist Cold fades away.\n"), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -448,18 +451,18 @@ fred->both.fl_resist_cold = 0; if (fred->both.disease_time != (-1)) { - sprintf(exbuf2, "%s seems to have stopped shivering, and %s skin is no longer flushed and damp.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("%s seems to have stopped shivering, and %s skin is no longer flushed and damp.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "Your fever suddenly abates. You feel much better.\n", exbuf2); + PrintMsg2(cnum, _("Your fever suddenly abates. You feel much better.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.disease_time = (-1); } if (fred->both.poison_time != (-1)) { - sprintf(exbuf2, "%s's color improves dramatically.\n", fred->both.name); + sprintf(exbuf2, _("%s's color improves dramatically.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The numbness and heaviness falls from your limbs. You feel much better.\n", exbuf2); + PrintMsg2(cnum, _("The numbness and heaviness falls from your limbs. You feel much better.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.poison_time = (-1); @@ -467,17 +470,17 @@ if (wizflag) { if (fred->wiz.delay_time != 0) { - sprintf(exbuf2, "The Delayed Effect spell hovering around %s disintegrates.\n", fred->both.name); + sprintf(exbuf2, _("The Delayed Effect spell hovering around %s disintegrates.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Delayed Effect spell hovering around you disintegrates.\n", exbuf2); + PrintMsg2(cnum, _("The Delayed Effect spell hovering around you disintegrates.\n"), exbuf2); else PrintMsg(exbuf2); fred->wiz.delay_time = 0; } /* and kill any banked spell */ if (fred->wiz.delay_bank != (-1)) { - sprintf(exbuf, "The %s spell that you had caught in a Delayed Effect is lost.\n", spelllist[fred->wiz.delay_bank].name); - sprintf(exbuf2, "The %s spell that %s had caught in a Delayed Effect is lost.\n", spelllist[fred->wiz.delay_bank].name, fred->wiz.name); + sprintf(exbuf, _("The %s spell that you had caught in a Delayed Effect is lost.\n"), _(spelllist[fred->wiz.delay_bank].name)); + sprintf(exbuf2, _("The %s spell that %s had caught in a Delayed Effect is lost.\n"), _(spelllist[fred->wiz.delay_bank].name), fred->wiz.name); PrintMsg2(cnum, exbuf, exbuf2); fred->wiz.delay_bank = (-1); } @@ -485,9 +488,9 @@ if (wizflag) { if (fred->wiz.perm_time != 0) { - sprintf(exbuf2, "The Permanency spell hovering around %s disintegrates.\n", fred->both.name); + sprintf(exbuf2, _("The Permanency spell hovering around %s disintegrates.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Permanency spell hovering around you disintegrates.\n", exbuf2); + PrintMsg2(cnum, _("The Permanency spell hovering around you disintegrates.\n"), exbuf2); else PrintMsg(exbuf2); fred->wiz.perm_time = 0; @@ -495,9 +498,9 @@ } if (fred->both.prot_from_evil) { - sprintf(exbuf2, "%s's circle of Protection flickers out.\n", fred->both.name); + sprintf(exbuf2, _("%s's circle of Protection flickers out.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Your circle of Protection flickers out.\n", exbuf2); + PrintMsg2(cnum, _("Your circle of Protection flickers out.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.prot_from_evil = 0; @@ -509,16 +512,16 @@ if (fred->both.haste) { if (fred->both.haste!=5) { - sprintf(exbuf, "%s slows down to normal speed.\n", fred->both.name); + sprintf(exbuf, _("%s slows down to normal speed.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Everyone comes back up to normal speed.\n", exbuf); + PrintMsg2(cnum, _("Everyone comes back up to normal speed.\n"), exbuf); else PrintMsg(exbuf); } else { - sprintf(exbuf, "The Haste on %s is nulled.\n", fred->both.name); + sprintf(exbuf, _("The Haste on %s is nulled.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Haste on you is nulled.\n", exbuf); + PrintMsg2(cnum, _("The Haste on you is nulled.\n"), exbuf); else PrintMsg(exbuf); } @@ -526,27 +529,27 @@ } if (fred->both.timestop) { - sprintf(exbuf, "The Time Stop on %s is nulled.\n", fred->both.name); + sprintf(exbuf, _("The Time Stop on %s is nulled.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Time Stop on you is nulled.\n", exbuf); + PrintMsg2(cnum, _("The Time Stop on you is nulled.\n"), exbuf); else PrintMsg(exbuf); fred->both.timestop = 0; } if (fred->both.invisibility) { - sprintf(exbuf2, "%s becomes visible again, rather suddenly.\n", fred->both.name); + sprintf(exbuf2, _("%s becomes visible again, rather suddenly.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Your body tingles and becomes visible again.\n", exbuf2); + PrintMsg2(cnum, _("Your body tingles and becomes visible again.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.invisibility = 0; } if (fred->both.blindness) { - sprintf(exbuf2, "%s's eyes abruptly clear.\n", fred->both.name); + sprintf(exbuf2, _("%s's eyes abruptly clear.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "Sight bursts in upon you again.\n", exbuf2); + PrintMsg2(cnum, _("Sight bursts in upon you again.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.blindness = 0; @@ -570,16 +573,16 @@ if (zapl[SP__SHIELD]) { /* shield protects */ if (zapl[SP__STAB]==1) { - sprintf(exbuf2, "The knife slides off of %s's Shield.\n", fred->both.name); + sprintf(exbuf2, _("The knife slides off of %s's Shield.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The knife slides off of your Shield.\n", exbuf2); + PrintMsg2(cnum, _("The knife slides off of your Shield.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf2, "The knives slide off of %s's Shield.\n", fred->both.name); + sprintf(exbuf2, _("The knives slide off of %s's Shield.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The knives slide off of your Shield.\n", exbuf2); + PrintMsg2(cnum, _("The knives slide off of your Shield.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -587,15 +590,15 @@ else { /* hit */ if (zapl[SP__STAB]==1) { - sprintf(exbuf2, "The knife strikes %s.\n", fred->both.name); + sprintf(exbuf2, _("The knife strikes %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The knife strikes you.\n", exbuf2); + PrintMsg2(cnum, _("The knife strikes you.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s knives strike you.\n", number_name(zapl[SP__STAB])); - sprintf(exbuf2, "The %s knives strike %s.\n", number_name(zapl[SP__STAB]), fred->both.name); + sprintf(exbuf, _("The %s knives strike you.\n"), number_name(zapl[SP__STAB])); + sprintf(exbuf2, _("The %s knives strike %s.\n"), number_name(zapl[SP__STAB]), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -609,16 +612,16 @@ if (zapl[SP__SHIELD]) { /* shield protects */ if (zapl[SP__MISSILE]==1) { - sprintf(exbuf2, "The Missile shatters on %s's Shield.\n", fred->both.name); + sprintf(exbuf2, _("The Missile shatters on %s's Shield.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Missile shatters on your Shield.\n", exbuf2); + PrintMsg2(cnum, _("The Missile shatters on your Shield.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf2, "The Missiles shatter on %s's Shield.\n", fred->both.name); + sprintf(exbuf2, _("The Missiles shatter on %s's Shield.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Missiles shatter on your Shield.\n", exbuf2); + PrintMsg2(cnum, _("The Missiles shatter on your Shield.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -626,15 +629,15 @@ else { /* hit */ if (zapl[SP__MISSILE]==1) { - sprintf(exbuf2, "The Missile strikes %s.\n", fred->both.name); + sprintf(exbuf2, _("The Missile strikes %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Missile strikes you.\n", exbuf2); + PrintMsg2(cnum, _("The Missile strikes you.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Missiles strike you.\n", number_name(zapl[SP__MISSILE])); - sprintf(exbuf2, "The %s Missiles strike %s.\n", number_name(zapl[SP__MISSILE]), fred->both.name); + sprintf(exbuf, _("The %s Missiles strike you.\n"), number_name(zapl[SP__MISSILE])); + sprintf(exbuf2, _("The %s Missiles strike %s.\n"), number_name(zapl[SP__MISSILE]), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -647,15 +650,15 @@ if (zapl[SP__CAUSE_LIGHT_WOUNDS]) { /* hit */ if (zapl[SP__CAUSE_LIGHT_WOUNDS]==1) { - sprintf(exbuf2, "The Cause Light Wounds spell tears into %s.\n", fred->both.name); + sprintf(exbuf2, _("The Cause Light Wounds spell tears into %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Cause Light Wounds spell tears into you.\n", exbuf2); + PrintMsg2(cnum, _("The Cause Light Wounds spell tears into you.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Cause Light Wounds spells tear into you.\n", number_name(zapl[SP__CAUSE_LIGHT_WOUNDS])); - sprintf(exbuf2, "The %s Cause Light Wounds spells tear into %s.\n", number_name(zapl[SP__CAUSE_LIGHT_WOUNDS]), fred->both.name); + sprintf(exbuf, _("The %s Cause Light Wounds spells tear into you.\n"), number_name(zapl[SP__CAUSE_LIGHT_WOUNDS])); + sprintf(exbuf2, _("The %s Cause Light Wounds spells tear into %s.\n"), number_name(zapl[SP__CAUSE_LIGHT_WOUNDS]), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -667,15 +670,15 @@ if (zapl[SP__CAUSE_HEAVY_WOUNDS]) { /* hit */ if (zapl[SP__CAUSE_HEAVY_WOUNDS]==1) { - sprintf(exbuf2, "The Cause Heavy Wounds spell tears into %s.\n", fred->both.name); + sprintf(exbuf2, _("The Cause Heavy Wounds spell tears into %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Cause Heavy Wounds spell tears painfully into you.\n", exbuf2); + PrintMsg2(cnum, _("The Cause Heavy Wounds spell tears painfully into you.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Cause Heavy Wounds spells tear painfully into you.\n", number_name(zapl[SP__CAUSE_HEAVY_WOUNDS])); - sprintf(exbuf2, "The %s Cause Heavy Wounds spells tear into %s.\n", number_name(zapl[SP__CAUSE_HEAVY_WOUNDS]), fred->both.name); + sprintf(exbuf, _("The %s Cause Heavy Wounds spells tear painfully into you.\n"), number_name(zapl[SP__CAUSE_HEAVY_WOUNDS])); + sprintf(exbuf2, _("The %s Cause Heavy Wounds spells tear into %s.\n"), number_name(zapl[SP__CAUSE_HEAVY_WOUNDS]), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -687,15 +690,15 @@ if (zapl[SP__LIGHTNING_BOLT]) { /* hit */ if (zapl[SP__LIGHTNING_BOLT]==1) { - sprintf(exbuf2, "The Lightning Bolt staggers %s.\n", fred->both.name); + sprintf(exbuf2, _("The Lightning Bolt staggers %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Lightning Bolt strikes you, staggering and nearly deafening you.\n", exbuf2); + PrintMsg2(cnum, _("The Lightning Bolt strikes you, staggering and nearly deafening you.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Lightning Bolts crash into you; the concussions nearly knock you off your feet.\n", number_name(zapl[SP__LIGHTNING_BOLT])); - sprintf(exbuf2, "The %s Lightning Bolts strike %s, staggering %s.\n", number_name(zapl[SP__LIGHTNING_BOLT]), fred->both.name, pro_him(fred->both.gender)); + sprintf(exbuf, _("The %s Lightning Bolts crash into you; the concussions nearly knock you off your feet.\n"), number_name(zapl[SP__LIGHTNING_BOLT])); + sprintf(exbuf2, _("The %s Lightning Bolts strike %s, staggering %s.\n"), number_name(zapl[SP__LIGHTNING_BOLT]), fred->both.name, pro_him(fred->both.gender)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -708,16 +711,16 @@ if (fred->both.fl_resist_heat) { /* heat-resistant */ if (zapl[SP__FIREBALL]==1) { - sprintf(exbuf2, "The Fireball strikes %s, but the flames slide off %s Resist Heat aura.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("The Fireball strikes %s, but the flames slide off %s Resist Heat aura.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Fireball strikes you, but you feel only a slight warmth.\n", exbuf2); + PrintMsg2(cnum, _("The Fireball strikes you, but you feel only a slight warmth.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf2, "The Fireballs strike %s, but the flames slide off %s Resist Heat aura.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("The Fireballs strike %s, but the flames slide off %s Resist Heat aura.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Fireballs strike you, but you feel only a slight warmth.\n", exbuf2); + PrintMsg2(cnum, _("The Fireballs strike you, but you feel only a slight warmth.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -725,15 +728,15 @@ else { /* hit */ if (zapl[SP__FIREBALL]==1) { - sprintf(exbuf2, "The Fireball strikes %s.\n", fred->both.name); + sprintf(exbuf2, _("The Fireball strikes %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Fireball strikes you with a roar of flame.\n", exbuf2); + PrintMsg2(cnum, _("The Fireball strikes you with a roar of flame.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Fireballs blast into you, surrounding you with blinding flame.\n", number_name(zapl[SP__FIREBALL])); - sprintf(exbuf2, "The %s Fireballs strike %s.\n", number_name(zapl[SP__FIREBALL]), fred->both.name); + sprintf(exbuf, _("The %s Fireballs blast into you, surrounding you with blinding flame.\n"), number_name(zapl[SP__FIREBALL])); + sprintf(exbuf2, _("The %s Fireballs strike %s.\n"), number_name(zapl[SP__FIREBALL]), fred->both.name); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -746,25 +749,25 @@ if (self->fl_firestorm) { if (zapl[SP__COUNTER_SPELL]) { /* counterspelled */ - sprintf(exbuf2, "The Counter-Spell around %s cancels the Fire Storm near %s.\n", fred->both.name, pro_him(fred->both.gender)); + sprintf(exbuf2, _("The Counter-Spell around %s cancels the Fire Storm near %s.\n"), fred->both.name, pro_him(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Counter-Spell cancels the Fire Storm in your vicinity.\n", exbuf2); + PrintMsg2(cnum, _("The Counter-Spell cancels the Fire Storm in your vicinity.\n"), exbuf2); else PrintMsg(exbuf2); } else if (fred->both.fl_resist_heat) { /* heat-resistant */ - sprintf(exbuf2, "The Fire Storm washes over %s, who remains unharmed inside %s blue aura.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("The Fire Storm washes over %s, who remains unharmed inside %s blue aura.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Fire Storm washes over you, but you feel only a gentle warmth.\n", exbuf2); + PrintMsg2(cnum, _("The Fire Storm washes over you, but you feel only a gentle warmth.\n"), exbuf2); else PrintMsg(exbuf2); } else { /* hit */ - sprintf(exbuf2, "The Fire Storm washes over %s.\n", fred->both.name); + sprintf(exbuf2, _("The Fire Storm washes over %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Fire Storm washes over you.\n", exbuf2); + PrintMsg2(cnum, _("The Fire Storm washes over you.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.hitpoints -= 5; @@ -774,9 +777,9 @@ if (self->fl_icestorm) { if (zapl[SP__COUNTER_SPELL]) { /* counterspelled */ - sprintf(exbuf2, "The Counter-Spell around %s cancels the Ice Storm near %s.\n", fred->both.name, pro_him(fred->both.gender)); + sprintf(exbuf2, _("The Counter-Spell around %s cancels the Ice Storm near %s.\n"), fred->both.name, pro_him(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Counter-Spell cancels the Ice Storm in your vicinity.\n", exbuf2); + PrintMsg2(cnum, _("The Counter-Spell cancels the Ice Storm in your vicinity.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -785,17 +788,17 @@ } else if (fred->both.fl_resist_cold) { /* cold-resistant */ - sprintf(exbuf2, "The Ice Storm washes over %s, who remains unharmed inside %s pink aura.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("The Ice Storm washes over %s, who remains unharmed inside %s pink aura.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Ice Storm washes over you, but you feel only a gentle coolness.\n", exbuf2); + PrintMsg2(cnum, _("The Ice Storm washes over you, but you feel only a gentle coolness.\n"), exbuf2); else PrintMsg(exbuf2); } else { /* hit */ - sprintf(exbuf2, "The Ice Storm lashes at %s.\n", fred->both.name); + sprintf(exbuf2, _("The Ice Storm lashes at %s.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "The Ice Storm lashes at you.\n", exbuf2); + PrintMsg2(cnum, _("The Ice Storm lashes at you.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.hitpoints -= 5; @@ -804,9 +807,9 @@ if (zapl[SP__FINGER_OF_DEATH]) { /* hit */ - sprintf(exbuf2, "%s turns very pale and drops to %s knees, clutching at %s chest....\n", fred->both.name, pro_his(fred->both.gender), pro_his(fred->both.gender)); + sprintf(exbuf2, _("%s turns very pale and drops to %s knees, clutching at %s chest....\n"), fred->both.name, pro_his(fred->both.gender), pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "You feel a sudden pressure in your chest, as if an iron band was squeezing your heart. You fall to your knees as the world dims....\n", exbuf2); + PrintMsg2(cnum, _("You feel a sudden pressure in your chest, as if an iron band was squeezing your heart. You fall to your knees as the world dims....\n"), exbuf2); else PrintMsg(exbuf2); fred->both.hitpoints = (-100); @@ -830,15 +833,15 @@ if (zapl[SP__CURE_LIGHT_WOUNDS]) { if (zapl[SP__CURE_LIGHT_WOUNDS]==1) { - sprintf(exbuf2, "The Cure Light Wounds spell weaves around %s, and %s wounds fade.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("The Cure Light Wounds spell weaves around %s, and %s wounds fade.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Cure Light Wounds spell weaves around you, and the pain of your wounds lessens.\n", exbuf2); + PrintMsg2(cnum, _("The Cure Light Wounds spell weaves around you, and the pain of your wounds lessens.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Cure Light Wounds spells weave around you, and the pain of your wounds lessens.\n", number_name(zapl[SP__CURE_LIGHT_WOUNDS])); - sprintf(exbuf2, "The %s Cure Light Wounds spells weave around %s, and %s wounds fade.\n", number_name(zapl[SP__CURE_LIGHT_WOUNDS]), fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf, _("The %s Cure Light Wounds spells weave around you, and the pain of your wounds lessens.\n"), number_name(zapl[SP__CURE_LIGHT_WOUNDS])); + sprintf(exbuf2, _("The %s Cure Light Wounds spells weave around %s, and %s wounds fade.\n"), number_name(zapl[SP__CURE_LIGHT_WOUNDS]), fred->both.name, pro_his(fred->both.gender)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -850,15 +853,15 @@ if (zapl[SP__CURE_HEAVY_WOUNDS]) { if (zapl[SP__CURE_HEAVY_WOUNDS]==1) { - sprintf(exbuf2, "The Cure Heavy Wounds spell weaves around %s, and %s wounds heal.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("The Cure Heavy Wounds spell weaves around %s, and %s wounds heal.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Cure Heavy Wounds spell weaves around you, and your wounds heal considerably.\n", exbuf2); + PrintMsg2(cnum, _("The Cure Heavy Wounds spell weaves around you, and your wounds heal considerably.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Cure Heavy Wounds spells weave around you, and your wounds heal considerably.\n", number_name(zapl[SP__CURE_HEAVY_WOUNDS])); - sprintf(exbuf2, "The %s Cure Heavy Wounds spells weave around %s, and %s wounds heal.\n", number_name(zapl[SP__CURE_HEAVY_WOUNDS]), fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf, _("The %s Cure Heavy Wounds spells weave around you, and your wounds heal considerably.\n"), number_name(zapl[SP__CURE_HEAVY_WOUNDS])); + sprintf(exbuf2, _("The %s Cure Heavy Wounds spells weave around %s, and %s wounds heal.\n"), number_name(zapl[SP__CURE_HEAVY_WOUNDS]), fred->both.name, pro_his(fred->both.gender)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -868,9 +871,9 @@ /* cure disease (not poison) */ if (fred->both.disease_time != (-1)) { - sprintf(exbuf2, "%s seems to have stopped shivering, and %s skin is no longer flushed and damp.\n", fred->both.name, pro_his(fred->both.gender)); + sprintf(exbuf2, _("%s seems to have stopped shivering, and %s skin is no longer flushed and damp.\n"), fred->both.name, pro_his(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "Your fever suddenly abates. You feel much better.\n", exbuf2); + PrintMsg2(cnum, _("Your fever suddenly abates. You feel much better.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.disease_time = (-1); @@ -879,15 +882,15 @@ if (zapl[SP__RAISE_DEAD]) { if (zapl[SP__RAISE_DEAD]==1) { - sprintf(exbuf2, "The Raise Dead spell burns through %s. Although %s is not dead, the spell has a powerful healing effect.\n", fred->both.name, pro_he(fred->both.gender)); + sprintf(exbuf2, _("The Raise Dead spell burns through %s. Although %s is not dead, the spell has a powerful healing effect.\n"), fred->both.name, pro_he(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "The Raise Dead spell burns through you. Although you aren't dead, the spell has a powerful healing influence.\n", exbuf2); + PrintMsg2(cnum, _("The Raise Dead spell burns through you. Although you aren't dead, the spell has a powerful healing influence.\n"), exbuf2); else PrintMsg(exbuf2); } else { - sprintf(exbuf, "The %s Raise Dead spells burn through you. Although you aren't dead, the spells have a powerful healing influence.\n", number_name(zapl[SP__RAISE_DEAD])); - sprintf(exbuf2, "The %s Raise Dead spells burn through %s. Although %s is not dead, the spells have a powerful healing effect.\n", number_name(zapl[SP__RAISE_DEAD]), fred->both.name, pro_he(fred->both.gender)); + sprintf(exbuf, _("The %s Raise Dead spells burn through you. Although you aren't dead, the spells have a powerful healing influence.\n"), number_name(zapl[SP__RAISE_DEAD])); + sprintf(exbuf2, _("The %s Raise Dead spells burn through %s. Although %s is not dead, the spells have a powerful healing effect.\n"), number_name(zapl[SP__RAISE_DEAD]), fred->both.name, pro_he(fred->both.gender)); if (wizflag) PrintMsg2(cnum, exbuf, exbuf2); else @@ -900,9 +903,9 @@ if ((fred->both.hitpoints > fred->both.max_hitpoints) || (fred->both.hitpoints == fred->both.max_hitpoints && fred->both.hitpoints != orighp)) { fred->both.hitpoints = fred->both.max_hitpoints; - sprintf(exbuf2, "%s is in perfect health again.\n", fred->both.name); + sprintf(exbuf2, _("%s is in perfect health again.\n"), fred->both.name); if (wizflag) - PrintMsg2(cnum, "You are in perfect health again.\n", exbuf2); + PrintMsg2(cnum, _("You are in perfect health again.\n"), exbuf2); else PrintMsg(exbuf2); } @@ -910,9 +913,9 @@ else { /* not alive */ if (zapl[SP__RAISE_DEAD]) { - sprintf(exbuf2, "%s twitches, glows, and then jumps to %s feet! Except for a bit of incipient mold, %s is in perfect health again.\n", fred->both.name, pro_his(fred->both.gender), pro_he(fred->both.gender)); + sprintf(exbuf2, _("%s twitches, glows, and then jumps to %s feet! Except for a bit of incipient mold, %s is in perfect health again.\n"), fred->both.name, pro_his(fred->both.gender), pro_he(fred->both.gender)); if (wizflag) - PrintMsg2(cnum, "You are suddenly aware of a blast of energy running down every nerve! This is something of a shock, since you had just gotten used to being dead. Oh, well -- you'll be back eventually.\n", exbuf2); + PrintMsg2(cnum, _("You are suddenly aware of a blast of energy running down every nerve! This is something of a shock, since you had just gotten used to being dead. Oh, well -- you'll be back eventually.\n"), exbuf2); else PrintMsg(exbuf2); fred->both.alive = 1; --- spellcast-1.0.orig/main.c +++ spellcast-1.0/main.c @@ -3,6 +3,22 @@ and modified, as long as this copyright notice is retained. */ +/* Modified and took out bugs from the original version + * 1997 Ragnar Hojland Espinosa + * tech.support@redestb.es, ragnar@dfyre.ccon.net + */ + +/* + * Colour Modifications made by F.Hendrikx, 1998 + * To enable colour support, compile with flag + * -DCOLOUR (see Makefile for more details). + */ +/* + * Modificacions made by Javier Fernández-Sanguino Peña, 2000 + * all information on the window sizes has been moved to xwindow.h + * so multiple displays can be defined at compile time -DRESxxx + * (see Makefile for more details) + */ #include #include @@ -14,8 +30,14 @@ #include "patchlevel.h" #include "xspell.h" - -int win_wid, win_hgt; +#include +#define _(String) gettext (String) +#define gettext_noop(String) (String) + +int win_wid; +/* Now win_hgt has been moved to xwindow.h so we can define + * for each of the displays available */ +/* int win_hgt; */ struct player *players; int numplayers; @@ -24,12 +46,21 @@ game *gameval = NULL; static int defaultnum = 0; -static char *defaultnamelist[10] = {"White", "Black", "Red", "Green", "Blue", - "Yellow", "Orange", "Purple", "Grey", "Charteuse"}; +static char *defaultnamelist[10] = {gettext_noop ("White"),gettext_noop ("Black"), + gettext_noop ("Red"), gettext_noop ("Green"), gettext_noop ("Blue"), + gettext_noop ("Yellow"), gettext_noop ("Orange"), gettext_noop ("Purple"), + gettext_noop ("Grey"), gettext_noop ("Charteuse")}; +#ifdef COLOUR +char *namelist[MAXPLAYERS] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; +#else static char *namelist[MAXPLAYERS] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; +#endif static char *displist[MAXPLAYERS] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; static int genderlist[MAXPLAYERS] = {Gender_MALE, Gender_MALE, Gender_MALE, Gender_MALE, Gender_MALE, Gender_MALE, Gender_MALE, Gender_MALE}; +#ifdef COLOUR +long col_list[MAXPLAYERS] = {0, 0, 0, 0, 0, 0, 0, 0}; +#endif static struct query savequery = { 0, @@ -42,6 +73,7 @@ extern void redraw(); extern void XQueries(); +int main(argc, argv) int argc; char *argv[]; @@ -54,13 +86,19 @@ struct player *py; int movelist[MAXPLAYERS*2]; + /* i18n and i10n */ + setlocale (LC_MESSAGES, ""); + setlocale (LC_CTYPE, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + procs.proc_PrintMsg = PrintMsg; procs.proc_PrintMsg2 = PrintMsg2; procs.proc_PrintMsg3 = PrintMsg3; procs.proc_Queries = XQueries; if (argc==1) { - printf("usage: spellcast RemoteDisplay [ RemoteDisplay2 ... ]\n"); + printf(_("usage: spellcast RemoteDisplay [ RemoteDisplay2 ... ]\n")); exit(12); } @@ -83,26 +121,25 @@ } if (numplayers < 2) { - printf("You have listed only %d players!\n", numplayers); + printf(_("You have listed only %d players!\n"), numplayers); exit(12); } if (numplayers > MAXPLAYERS) { - printf("There is a maximum of %d players!\n", MAXPLAYERS); + printf(_("There is a maximum of %d players!\n"), MAXPLAYERS); exit(12); } players = (struct player *)malloc(sizeof(struct player) * numplayers); - win_wid = 832; + win_wid = WIN_WID; if (numplayers > 3) win_wid += (numplayers-3) * (2*GEST_SIZE + 20); - win_hgt = 750; turnstate = State_Init; for (ix=0; ixturn_active) switch (val) { case Turn_HASTE: - add_answer(py, "Enter your gestures for your Hastened move.", + add_answer(py, _("Enter your gestures for your Hastened move."), "", 1, 0, NULL, 0); break; case Turn_TIMESTOP: - add_answer(py, "Enter your gestures for your Time-Stopped move.", + add_answer(py, _("Enter your gestures for your Time-Stopped move."), "", 1, 0, NULL, 0); break; default: add_answer(py, -"Enter your gestures for this move, at the bottom of your gesture list.", +_("Enter your gestures for this move, at the bottom of your gesture list."), "", 1, 0, NULL, 0); break; } else switch (val) { case Turn_HASTE: - add_answer(py, "Other people are Hastened this turn.", + add_answer(py, _("Other people are Hastened this turn."), "", 1, 0, NULL, 0); break; case Turn_TIMESTOP: - add_answer(py, "You are frozen in time.", "", 1, 0, NULL, 0); + add_answer(py, _("You are frozen in time."), "", 1, 0, NULL, 0); break; default: - add_answer(py, "You are out of the game.", "", 1, 0, NULL, 0); + add_answer(py, _("You are out of the game."), "", 1, 0, NULL, 0); break; } redraw_column(py); @@ -156,6 +193,12 @@ redraw_queries_only(py, 0); /*update_statlist(py);*/ } +#ifdef LINESEP + /* F.Hendrikx, 1998 */ + PrintMsg("--------------------\n", gameval, &ignorerock); + /* TODO: this should be fixed to check the number of chars in + * the text window and put enough */ +#endif mainloop(); for (ix=0; ixdpy = XOpenDisplay(displist[pnum]); if (!py->dpy) { - fprintf(stderr, "spellcast: could not open display for player %d.\n", pnum); + fprintf(stderr, _("spellcast: could not open display for player %d.\n"), pnum); return 0; } py->scn = DefaultScreen(py->dpy); py->win = XCreateSimpleWindow(py->dpy, DefaultRootWindow(py->dpy), 100, 100, - win_wid, win_hgt, 1, BlackPixel(py->dpy, py->scn), + win_wid, WIN_HGT, 1, BlackPixel(py->dpy, py->scn), WhitePixel(py->dpy, py->scn)); - py->backpm = XCreatePixmap(py->dpy, py->win, win_wid, win_hgt, + py->backpm = XCreatePixmap(py->dpy, py->win, win_wid, WIN_HGT, DefaultDepth(py->dpy, py->scn)); py->backstore = 0; @@ -287,7 +338,7 @@ namelist[pnum] = name; } else { - namelist[pnum] = defaultnamelist[defaultnum]; + namelist[pnum] = _(defaultnamelist[defaultnum]); defaultnum++; } @@ -295,9 +346,9 @@ val = 0; if (strlen(namelist[pnum])<1) val = 1; - if (!strcmp(namelist[pnum], "nobody")) + if (!strcmp(namelist[pnum], _("nobody"))) val = 1; - if (!strcmp(namelist[pnum], "Nobody")) + if (!strcmp(namelist[pnum], _("Nobody"))) val = 1; for (ix=0; ixfont) { fprintf(stderr, -"spellcast: could not find font %s for player %d. Switching to %s...\n", +_("spellcast: could not find font %s for player %d. Switching to %s...\n"), fontname, pnum, BODYFONT_ALT); py->font = XLoadQueryFont(py->dpy, BODYFONT_ALT); if (!py->font) { fprintf(stderr, -"spellcast: could not find font %s for player %d. Switching to %s...\n", +_("spellcast: could not find font %s for player %d. Switching to %s...\n"), BODYFONT_ALT, pnum, BODYFONT_ALT2); py->font = XLoadQueryFont(py->dpy, BODYFONT_ALT2); if (!py->font) { - fprintf(stderr, "spellcast: could not find font %s for player %d.\n", + fprintf(stderr, _("spellcast: could not find font %s for player %d.\n"), BODYFONT_ALT2, pnum); return 0; @@ -356,7 +407,31 @@ py->whitegc = XCreateGC(py->dpy, py->win, GCForeground|GCBackground|GCFont, &gcvalues); XSetGraphicsExposures(py->dpy, py->whitegc, 0); +#ifdef COLOUR + /* F.Hendrikx, 1998 */ + + cmap = DefaultColormap(py->dpy, DefaultScreen(py->dpy)); + + col = XGetDefault(py->dpy, "spellcast", _("colour")); + if (col){ + fprintf(stderr, _("spellcast: font colour is %s\n"), col); + + if (XParseColor(py->dpy, cmap, col, &play_col)){ + + if (XAllocColor(py->dpy, cmap, &play_col)){ + + col_list[pnum] = play_col.pixel; + } + } + } + + /* if no colour found, then set to default black */ + + if (col_list[pnum] == 0){ + col_list[pnum] = BlackPixel(py->dpy, py->scn); + } +#endif init_bitmaps(py); init_xtext(pnum); init_query(py); @@ -375,8 +450,8 @@ { if (mrec->x+mrec->w >= win_wid-POPUP_ELBOW) mrec->x = win_wid-POPUP_ELBOW - mrec->w; - if (mrec->y+mrec->h >= win_hgt-POPUP_ELBOW) - mrec->y = win_hgt-POPUP_ELBOW - mrec->h; + if (mrec->y+mrec->h >= WIN_HGT-POPUP_ELBOW) + mrec->y = WIN_HGT-POPUP_ELBOW - mrec->h; if (mrec->x < POPUP_ELBOW) mrec->x = POPUP_ELBOW; if (mrec->y < POPUP_ELBOW) @@ -389,7 +464,7 @@ { py->backrec = (*mrec); if (py->backstore) { - printf("ERROR: backing store already on\n"); + printf(_("ERROR: backing store already on\n")); } py->backstore = 1; py->gotexpose = 0; @@ -401,7 +476,7 @@ struct player *py; { if (!py->backstore) { - printf("ERROR: backing store already off\n"); + printf(_("ERROR: backing store already off\n")); } py->backstore = 0; if (py->gotexpose) { --- spellcast-1.0.orig/makelist.c +++ spellcast-1.0/makelist.c @@ -2,6 +2,9 @@ #include "handwave.h" #include "internal.h" +#include +#define _(String) gettext (String) + #define MARGIN_SIDE 72 #define MARGIN_TOP 72 #define LINEHEIGHT 16 @@ -19,40 +22,40 @@ switch (val) { case Gesture_PALM: *size = GEST_SPACE; - return "showpalm"; + return _("showpalm"); case Gesture_DIGIT: *size = GEST_SPACE; - return "showdigit"; + return _("showdigit"); case Gesture_FINGERS: *size = GEST_SPACE; - return "showfinger"; + return _("showfinger"); case Gesture_WAVE: *size = GEST_SPACE; - return "showwave"; + return _("showwave"); case Gesture_SNAP: *size = GEST_SPACE; - return "showsnap"; + return _("showsnap"); case Gesture_CLAPHALF: *size = GEST_SPACE; - return "showclap"; + return _("showclap"); case Gesture_PALM | Gesture_DOUBLE: *size = 17; - return "showpalm2"; + return _("showpalm2"); case Gesture_DIGIT | Gesture_DOUBLE: *size = 17; - return "showdigit2"; + return _("showdigit2"); case Gesture_FINGERS | Gesture_DOUBLE: *size = GEST_SPACE; - return "showfinger2"; + return _("showfinger2"); case Gesture_WAVE | Gesture_DOUBLE: *size = 17; - return "showwave2"; + return _("showwave2"); case Gesture_SNAP | Gesture_DOUBLE: *size = 17; - return "showsnap2"; + return _("showsnap2"); case Gesture_CLAPHALF | Gesture_DOUBLE: *size = GEST_SPACE; - return "showclap2"; + return _("showclap2"); default: *size = GEST_SPACE; return "nullact"; @@ -81,12 +84,12 @@ for (gx=0; gxlength; gx++) { val = spel->gests[gx]; cx = psroutine(val, &hop); - printf("%d %d %s\n", xval, ypos-1, cx); + printf(_("%d %d %s\n"), xval, ypos-1, cx); xval += hop; } - printf("%d %d moveto %d %d lineto stroke\n", xval+3, ypos+4, + printf(_("%d %d moveto %d %d lineto stroke\n"), xval+3, ypos+4, xpos+TEXT_MARGIN-4, ypos+4); - printf("%d %d moveto (%s) show\n", xpos+TEXT_MARGIN, ypos, spel->name); + printf(_("%d %d moveto (%s) show\n"), xpos+TEXT_MARGIN, ypos, spel->name); } } @@ -98,14 +101,14 @@ main() { - printf("/Times-Roman findfont 12 scalefont setfont\n"); - printf("0.5 setlinewidth\n"); + printf(_("/Times-Roman findfont 12 scalefont setfont\n")); + printf(_("0.5 setlinewidth\n")); dump_list(772 - MARGIN_TOP, 0, NULL); dump_list(772 - MARGIN_TOP, 264, alphasort); - printf("/Times-Bold findfont 14 scalefont setfont\n"); + printf(_("/Times-Bold findfont 14 scalefont setfont\n")); printf("306 752 moveto\n"); - printf("(SpellCast spell lists -- sorted by gesture and name) centershow\n"); - printf("\nshowpage\n"); + printf(_("(SpellCast spell lists -- sorted by gesture and name) centershow\n")); + printf(_("\nshowpage\n")); } --- spellcast-1.0.orig/patchlevel.h +++ spellcast-1.0/patchlevel.h @@ -1 +1 @@ -#define PATCHLEVEL "2" +#define PATCHLEVEL "4" --- spellcast-1.0.orig/po/Makefile +++ spellcast-1.0/po/Makefile @@ -0,0 +1,31 @@ +INSTALL= /usr/bin/install -c +INSTALL_CMD= ${INSTALL} -m 644 +INSTALLDIR=${DESTDIR}/usr/share/locale +PACKAGE = spellcast + +CATALOGS = es.mo + +POTFILES= ../*.c ../*.h + +all: $(PACKAGE).pot $(CATALOGS) + +$(PACKAGE).pot: $(POTFILES) + xgettext --default-domain=$(PACKAGE) --add-comments --keyword=_ --keyword=S_ $(POTFILES) + if cmp -s $(PACKAGE).po $(PACKAGE).pot; then \ + rm -f $(PACKAGE).po; \ + else \ + mv $(PACKAGE).po $(PACKAGE).pot; \ + fi + +clean: + rm -f *mo $(PACKAGE).pot *~ + +install: $(CATALOGS) + for n in $(CATALOGS); do \ + l=`basename $$n .mo`; \ + $(INSTALL) -m 755 -d $(INSTALLDIR)/$$l; \ + $(INSTALL) -m 755 -d $(INSTALLDIR)/$$l/LC_MESSAGES; \ + $(INSTALL) -m 644 $$n $(INSTALLDIR)/$$l/LC_MESSAGES/$(PACKAGE).mo; \ + done +%.mo: %.po + msgfmt -o $@ $< --- spellcast-1.0.orig/po/es.po +++ spellcast-1.0/po/es.po @@ -0,0 +1,2560 @@ +# Spanish spellcast translation +# Copyright (C) 2004 Software in the Public Interest +# Javier Fernandez-Sanguino , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: Spellcast 1.0\n" +"POT-Creation-Date: 2002-01-15 17:25+0100\n" +"PO-Revision-Date: 2002-01-15 14:13+010E\n" +"Last-Translator: Javier Fernandez-Sanguino Peña \n" +"Language-Team: es \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../emonster.c:128 +msgid " the Goblin" +msgstr " el Goblin" + +#: ../emonster.c:133 +msgid " the Ogre" +msgstr " el Ogro" + +#: ../emonster.c:138 +msgid " the Troll" +msgstr " el Troll" + +#: ../emonster.c:143 +msgid " the Giant" +msgstr " el Gigante" + +#: ../emonster.c:149 +msgid " the Fiery" +msgstr " el Hada" + +#: ../emonster.c:155 +msgid " the Icy" +msgstr " el Hielo" + +#: ../emonster.c:191 +msgid "ERROR: wrong type of turn in execute_monsters()\n" +msgstr "ERROR: tipo de turno erroneo en execute_monsters()\n" + +#: ../emonster.c:204 +#, c-format +msgid "%s suddenly looks confused.\n" +msgstr "%s de pronto parece confundido.\n" + +#: ../emonster.c:211 +#, c-format +msgid "%s is paralyzed and cannot attack.\n" +msgstr "%s está paralizado y no puede atacar.\n" + +#: ../emonster.c:218 +#, c-format +msgid "%s looks around blankly.\n" +msgstr "%s mira alrededor con los ojos en blanco.\n" + +#: ../emonster.c:362 +#, c-format +msgid "%s refuses to attack %s.\n" +msgstr "%s se niega a atacar a %s.\n" + +#: ../emonster.c:371 +#, c-format +msgid "%s tries to attack you, but cannot see you.\n" +msgstr "%s intenta atacarte, pero no puede verte.\n" + +#: ../emonster.c:372 +#, c-format +msgid "%s tries to attack %s, but cannot see %s.\n" +msgstr "%s intenta atacar %s, pero no puede ver a %s.\n" + +#: ../emonster.c:382 +#, c-format +msgid "The attack of %s is blocked by your Shield.\n" +msgstr "El ataque de %s queda bloqueado por tu Escudo.\n" + +#: ../emonster.c:383 +#, c-format +msgid "The attack of %s is blocked by %s's Shield.\n" +msgstr "El ataque de %s lo bloquea el Escudo de %s.\n" + +#: ../emonster.c:394 +#, c-format +msgid "%s reaches towards you, but you feel only a warm breeze.\n" +msgstr "%s intenta atacarte, pero sólo sientes una calida brisa.\n" + +#: ../emonster.c:396 +#, c-format +msgid "%s reaches toward %s, but cannot penetrate %s blue aura.\n" +msgstr "%s intenta atacar a %s, pero no puede penetrar el aura azul de %s.\n" + +#: ../emonster.c:404 +#, c-format +msgid "%s hurls tongues of fire at you.\n" +msgstr "%s envía una lengua de fuego hacia tí.\n" + +#: ../emonster.c:405 +#, c-format +msgid "%s hurls fire at %s.\n" +msgstr "%s envía fuego hacia %s.\n" + +#: ../emonster.c:415 +#, c-format +msgid "%s reaches towards you, but you feel only a chill breeze.\n" +msgstr "" + +#: ../emonster.c:417 +#, c-format +msgid "%s reaches toward %s, but cannot penetrate %s pink aura.\n" +msgstr "%s intenga alcanzar a %s, pero no puede penetrar el aura rosa de %s.\n" + +#: ../emonster.c:425 +#, c-format +msgid "%s hurls splinters of ice at you.\n" +msgstr "%s envía astillas de hielo hacia vd.\n" + +#: ../emonster.c:426 +#, c-format +msgid "%s hurls ice at %s.\n" +msgstr "%s envía hielo hacia %s.\n" + +#: ../emonster.c:437 +#, c-format +msgid "%s attacks %s!\n" +msgstr "¡%s ataca a %s!\n" + +#: ../emonster.c:442 +#, c-format +msgid "%s attacks you.\n" +msgstr "%s le ataca.\n" + +#: ../emonster.c:443 +#, c-format +msgid "%s attacks %s.\n" +msgstr "%s ataca %s.\n" + +#: ../engine.c:122 +msgid "digit" +msgstr "digito" + +#: ../engine.c:125 +msgid "fingers" +msgstr "dedos" + +#: ../engine.c:128 +msgid "palm" +msgstr "palma" + +#: ../engine.c:131 +msgid "wave" +msgstr "onda" + +#: ../engine.c:134 +msgid "clap" +msgstr "aplauso" + +#: ../engine.c:137 +msgid "snap" +msgstr "" + +#: ../engine.c:140 ../espells.c:68 +msgid "stab" +msgstr "acuchillar" + +#: ../engine.c:143 +msgid "nothing" +msgstr "nada" + +#: ../engine.c:213 +msgid "Too many players requested.\n" +msgstr "Se solicitaron demasiados jugadores.\n" + +#: ../engine.c:238 +#, c-format +msgid "" +"%s strides defiantly into the arena. The referee casts the formal Dispel " +"Magic and Anti-Spell on %s....\n" +msgstr "%s avanza de forma desafiante hacia la arena. El árbitro ejecuta los hechizos de Destrucción de la Magia y Anti-Hechizos sobre %s....\n" + +#: ../engine.c:239 +msgid "" +"You advance confidently into the arena. The referee casts the formal Dispel " +"Magic and Anti-Spell on you....\n" +msgstr "Avanzas confiado hacia la arena. El árbitro ejecuta los hechizos de Destrucción de la Magia y Anti-Hechizos sobre %s....\n" + +#: ../engine.c:264 +#, c-format +msgid "%s\n" +msgstr "%s\n" + +#: ../engine.c:315 +#, c-format +msgid "" +"In a fit of absent-mindedness, %s repeats %s gestures from last turn: %s " +"with the left hand, %s with the right.\n" +msgstr "" +"En un arrebato de ausencia de mente. %s repite %s gestos del turno anterior: %s" +"con la mano izquierda, %s con la diestra.\n" + +#: ../engine.c:330 +#, c-format +msgid "%s accidentally makes a %s with %s %s hand.\n" +msgstr "%s accidentalmente hace un %s con la mano %s %s.\n" + +#: ../engine.c:330 ../engine.c:359 ../engine.c:418 ../xgest.c:247 +msgid "right" +msgstr "derecha" + +#: ../engine.c:330 ../engine.c:359 ../engine.c:418 ../xgest.c:247 +msgid "left" +msgstr "izquierda" + +#: ../engine.c:359 +#, c-format +msgid "%s mysteriously makes a %s with %s %s hand.\n" +msgstr "%s misteriosamente hace un %s con la mano %s %s.\n" + +#: ../engine.c:376 +#, c-format +msgid "Terrified, %s does nothing with %s left hand.\n" +msgstr "Aterrado. %s no hace nada con la mano izquierda %s.\n" + +#: ../engine.c:379 +#, c-format +msgid "Terrified, %s does nothing with %s right hand.\n" +msgstr "Aterrado. %s no hace nada con la mano derecha %s.\n" + +#: ../engine.c:382 +#, c-format +msgid "Terrified, %s does nothing with either hand.\n" +msgstr "Aterrado. %s no hace nada con ninguna mano.\n" + +#: ../engine.c:385 +#, c-format +msgid "%s is terrified, but manages %s gestures anyway.\n" +msgstr "%s está aterrado, pero consigue hacer %s gestos de todas formas.\n" + +#: ../engine.c:412 +msgid "ERROR: paralysis previous_gesture returned bad value.\n" +msgstr "ERROR: paralysis previous_gesture devolvió un valor incorrecto.\n" + +#: ../engine.c:418 +#, c-format +msgid "%s's %s hand is frozen in a %s.\n" +msgstr "%s tiene su mano %s congelada en un %s.\n" + +#: ../engine.c:433 +msgid "You cannot stab with both hands!\n" +msgstr "¡No puedes acuchillar con ambas manos!\n" + +#: ../engine.c:452 +#, c-format +msgid "%s makes the gesture of surrender!\n" +msgstr "¡%s hace el gesto de rendición!\n" + +#: ../engine.c:453 +msgid "Oh, dear. You seem to have surrendered.\n" +msgstr "O Dios mío. Parece que te has rendido.\n" + +#: ../engine.c:513 ../engine.c:527 +#, c-format +msgid "%s accelerates into a flickering blur.\n" +msgstr "%s acelera a un borrón oscilante.\n" + +#: ../engine.c:514 +msgid "Everything around you stops dead. The world is silent and motionless.\n" +msgstr "Todo alrededor suyo se queda muerto. El mundo se para y queda en silencio.\n" + +#: ../engine.c:517 ../engine.c:531 +#, c-format +msgid "%s reappears, moving at normal speed.\n" +msgstr "%s reaparece, moviéndose a velocidad normal.\n" + +#: ../engine.c:518 +msgid "Everything begins moving again.\n" +msgstr "Todo empieza a moverse de nuevo.\n" + +#: ../engine.c:548 ../engine.c:568 +#, c-format +msgid "%s begins moving very quickly.\n" +msgstr "%s empieza a moverse muy rápido.\n" + +#: ../engine.c:549 +msgid "Everyone else begins moving very slowly.\n" +msgstr "Todo lo demás empieza a moverse lentamente.\n" + +#: ../engine.c:553 ../engine.c:573 +#, c-format +msgid "%s is still moving quickly.\n" +msgstr "%s se sigue moviéndo deprisa.\n" + +#: ../engine.c:554 +msgid "Everyone else is still moving slowly.\n" +msgstr "Todo lo demás sigue moviéndose despacio.\n" + +#: ../engine.c:557 ../engine.c:577 ../execute2.c:515 +#, c-format +msgid "%s slows down to normal speed.\n" +msgstr "%s vuelve a la velocidad normal.\n" + +#: ../engine.c:558 ../execute2.c:517 +msgid "Everyone comes back up to normal speed.\n" +msgstr "" + +#: ../engine.c:734 +msgid "ERROR:NOBODY-wiz" +msgstr "" + +#: ../engine.c:739 +msgid "ERROR:NOBODY-cre" +msgstr "" + +#: ../engine.c:744 +msgid "ERROR:NOBODY-corpse" +msgstr "" + +#: ../engine.c:746 +msgid "ERROR:NOBODY-atall" +msgstr "" + +#: ../engine.c:951 +msgid "ERROR: Unknown turn type\n" +msgstr "" + +#: ../engine.c:1000 +msgid "ERROR in restrict_gestures\n" +msgstr "" + +#: ../engine.c:1173 +msgid "ERROR: Unable to find Delayed spell.\n" +msgstr "" + +#: ../engine.c:1178 +#, c-format +msgid "" +"You cast %s; the spell is caught in the web of your Delayed Effect. It rises " +"to hover by your head.\n" +msgstr "" + +#: ../engine.c:1179 +#, c-format +msgid "%s casts %s; the spell is caught in the web of %s Delayed Effect.\n" +msgstr "" + +#: ../engine.c:1182 +#, c-format +msgid "The %s spell that you had caught previously is lost.\n" +msgstr "" + +#: ../engine.c:1183 +#, c-format +msgid "The %s spell that %s had caught previously is lost.\n" +msgstr "" + +#: ../engine.c:1224 +#, c-format +msgid "Your Permanency spell wraps itself around your %s spell.\n" +msgstr "" + +#: ../engine.c:1284 +#, c-format +msgid "%s starts to look hot and flushed.\n" +msgstr "" + +#: ../engine.c:1286 +msgid "You begin to feel somewhat feverish.\n" +msgstr "" + +#: ../engine.c:1291 +#, c-format +msgid "%s looks even more flushed.\n" +msgstr "" + +#: ../engine.c:1293 +msgid "Your fever is growing worse.\n" +msgstr "" + +#: ../engine.c:1298 +#, c-format +msgid "" +"%s is flushed and sweating, and seems to be somewhat unsteady on %s feet.\n" +msgstr "" + +#: ../engine.c:1300 +msgid "" +"You are very hot and somewhat dizzy, and your bones are starting to ache.\n" +msgstr "" + +#: ../engine.c:1305 +#, c-format +msgid "%s is both flushed and shivering violently.\n" +msgstr "" + +#: ../engine.c:1307 +msgid "" +"You are feverish and shivering at the same time, and you ache all over.\n" +msgstr "" + +#: ../engine.c:1312 +#, c-format +msgid "%s crumples to the ground, agony on %s sweating features.\n" +msgstr "" + +#: ../engine.c:1314 +msgid "" +"Your knees give way and you fall to the ground. Your head pounds " +"unmercifully as consciousness slips away....\n" +msgstr "" + +#: ../engine.c:1376 +#, c-format +msgid "%s has died!\n" +msgstr "" + +#: ../engine.c:1377 +msgid "You have died!\n" +msgstr "" + +#: ../engine.c:1390 +#, c-format +msgid "The Delayed Effect spell hovering around %s dies away.\n" +msgstr "" + +#: ../engine.c:1391 +msgid "The Delayed Effect spell hovering around you dies away.\n" +msgstr "" + +#: ../engine.c:1399 +#, c-format +msgid "The Permanency spell hovering around %s dies away.\n" +msgstr "" + +#: ../engine.c:1400 +msgid "The Permanency spell hovering around you dies away.\n" +msgstr "" + +#: ../engine.c:1407 +#, c-format +msgid "%s has died.\n" +msgstr "" + +#: ../engine.c:1431 +#, c-format +msgid "%s is the sole survivor!\n" +msgstr "" + +#: ../engine.c:1438 +#, c-format +msgid "%s has surrendered to %s!\n" +msgstr "" + +#: ../engine.c:1442 +#, c-format +msgid "All of %s's opponents have surrendered!\n" +msgstr "" + +#: ../engine.c:1451 +msgid "Everyone is dead!\n" +msgstr "" + +#: ../engine.c:1459 +#, c-format +msgid "%s finds that there is nobody left to surrender to!\n" +msgstr "" + +#: ../engine.c:1465 +msgid "The survivors have all surrendered to each other!\n" +msgstr "" + +#: ../engine.c:1467 +msgid "Everyone has surrendered to each other!\n" +msgstr "" + +#: ../espells.c:26 +msgid "Dispel Magic" +msgstr "" + +#: ../espells.c:27 +msgid "Summon Elemental" +msgstr "" + +#: ../espells.c:28 +msgid "Magic Mirror" +msgstr "" + +#: ../espells.c:29 ../espells.c:59 +msgid "Lightning Bolt" +msgstr "" + +#: ../espells.c:30 +msgid "Cure Heavy Wounds" +msgstr "" + +#: ../espells.c:31 +msgid "Cure Light Wounds" +msgstr "" + +#: ../espells.c:32 +msgid "Amnesia" +msgstr "" + +#: ../espells.c:33 +msgid "Confusion" +msgstr "" + +#: ../espells.c:34 +msgid "Disease" +msgstr "" + +#: ../espells.c:35 +msgid "Blindness" +msgstr "" + +#: ../espells.c:36 +msgid "Delayed Effect" +msgstr "" + +#: ../espells.c:37 +msgid "Raise Dead" +msgstr "" + +#: ../espells.c:38 +msgid "Poison" +msgstr "" + +#: ../espells.c:39 +msgid "Paralysis" +msgstr "" + +#: ../espells.c:40 +msgid "Summon Troll" +msgstr "" + +#: ../espells.c:41 +msgid "Fireball" +msgstr "" + +#: ../espells.c:42 +msgid "Shield" +msgstr "" + +#: ../espells.c:43 +msgid "SURRENDER" +msgstr "" + +#: ../espells.c:44 +msgid "Remove Enchantment" +msgstr "" + +#: ../espells.c:45 +msgid "Invisibility" +msgstr "" + +#: ../espells.c:46 +msgid "Charm Monster" +msgstr "" + +#: ../espells.c:47 +msgid "Charm Person" +msgstr "" + +#: ../espells.c:48 +msgid "Summon Ogre" +msgstr "" + +#: ../espells.c:49 +msgid "Finger of Death" +msgstr "" + +#: ../espells.c:50 +msgid "Haste" +msgstr "" + +#: ../espells.c:51 +msgid "Missile" +msgstr "" + +#: ../espells.c:52 +msgid "Summon Goblin" +msgstr "" + +#: ../espells.c:53 +msgid "Anti-Spell" +msgstr "" + +#: ../espells.c:54 +msgid "Permanency" +msgstr "" + +#: ../espells.c:55 +msgid "Time Stop" +msgstr "" + +#: ../espells.c:56 +msgid "Resist Cold" +msgstr "" + +#: ../espells.c:57 +msgid "Fear" +msgstr "" + +#: ../espells.c:58 +msgid "Fire Storm" +msgstr "" + +#: ../espells.c:60 +msgid "Cause Light Wounds" +msgstr "" + +#: ../espells.c:61 +msgid "Summon Giant" +msgstr "" + +#: ../espells.c:62 +msgid "Cause Heavy Wounds" +msgstr "" + +#: ../espells.c:63 ../espells.c:67 +msgid "Counter-Spell" +msgstr "" + +#: ../espells.c:64 +msgid "Ice Storm" +msgstr "" + +#: ../espells.c:65 +msgid "Resist Heat" +msgstr "" + +#: ../espells.c:66 +msgid "Protection From Evil" +msgstr "" + +#: ../etran.c:25 +msgid "" +"Spellcast Game Transcript\n" +"\n" +msgstr "" + +#: ../etran.c:90 +msgid " (Time Stop)" +msgstr "" + +#: ../etran.c:93 +msgid " (Haste)" +msgstr "" + +#: ../etran.c:100 +#, c-format +msgid "" +"\n" +"\tTurn %d%s:\n" +msgstr "" + +#: ../etran.c:108 +#, c-format +msgid "%s (%d): %c %c\n" +msgstr "" + +#: ../etran.c:113 +#, c-format +msgid "%s (%d): [no gestures]\n" +msgstr "" + +#: ../etran.c:122 +#, c-format +msgid "%s (%d)\n" +msgstr "" + +#: ../etran.c:126 +msgid "\n" +msgstr "" + +#: ../execute2.c:29 +#, c-format +msgid "The Amnesia spell curls around %s's mind.\n" +msgstr "" + +#: ../execute2.c:31 +msgid "The Amnesia spell curls around your mind.\n" +msgstr "" + +#: ../execute2.c:44 +#, c-format +msgid "The Confusion spell curls around %s's mind.\n" +msgstr "" + +#: ../execute2.c:46 +msgid "The Confusion spell curls around your mind.\n" +msgstr "" + +#: ../execute2.c:56 +#, c-format +msgid "The Fear spell curls around %s's mind.\n" +msgstr "" + +#: ../execute2.c:58 +msgid "The Fear spell curls around your mind.\n" +msgstr "" + +#: ../execute2.c:67 +#, c-format +msgid "" +"Not knowing which of %s's hands to strike, the Paralysis spell fizzles.\n" +msgstr "" + +#: ../execute2.c:68 +msgid "" +"Not knowing which of your hands to strike, the Paralysis spell fizzles.\n" +msgstr "" + +#: ../execute2.c:88 +#, c-format +msgid "The Paralysis spell curls around your %s hand.\n" +msgstr "" + +#: ../execute2.c:89 +#, c-format +msgid "The Paralysis spell curls around %s's %s hand.\n" +msgstr "" + +#: ../execute2.c:99 +#, c-format +msgid "The Paralysis spell curls around %s's mind.\n" +msgstr "" + +#. cast on a wizard +#: ../execute2.c:107 +#, c-format +msgid "The Charm Monster spell swirls around %s's mind, but cannot sink in.\n" +msgstr "" + +#: ../execute2.c:108 +msgid "The Charm Monster spell swirls around your mind, but cannot sink in.\n" +msgstr "" + +#: ../execute2.c:113 +#, c-format +msgid "" +"The Charm Monster spell strikes %s, and then seems to freeze. Referees stomp " +"into the arena and glare at the spell. Then they glare at each other. Then " +"they glare at the spell again. They huddle together, muttering and " +"glowering. Eventually they pick the spell up bodily and carry it off the " +"field.\n" +msgstr "" + +#: ../execute2.c:124 +#, c-format +msgid "The Charm Monster spell curls around %s, and %s smiles dopily at %s.\n" +msgstr "" + +#: ../execute2.c:134 +#, c-format +msgid "" +"Not knowing which of %s's hands to strike, the Charm Person spell fizzles.\n" +msgstr "" + +#: ../execute2.c:135 +msgid "" +"Not knowing which of your hands to strike, the Charm Person spell fizzles.\n" +msgstr "" + +#: ../execute2.c:152 +#, c-format +msgid "The Charm Person spell curls around your %s hand.\n" +msgstr "" + +#: ../execute2.c:153 +#, c-format +msgid "The Charm Person spell curls around %s's %s hand.\n" +msgstr "" + +#. cast on a monster +#: ../execute2.c:159 +#, c-format +msgid "The Charm Person spell swirls around %s's mind, but cannot sink in.\n" +msgstr "" + +#: ../execute2.c:169 +#, c-format +msgid "%s is still afflicted with Amnesia.\n" +msgstr "" + +#: ../execute2.c:171 +msgid "You are still afflicted with Amnesia.\n" +msgstr "" + +#: ../execute2.c:177 +#, c-format +msgid "%s is still afflicted with Fear.\n" +msgstr "" + +#: ../execute2.c:179 +msgid "You are still afflicted with Fear.\n" +msgstr "" + +#: ../execute2.c:188 +#, c-format +msgid "%s is still enamoured of %s.\n" +msgstr "" + +#: ../execute2.c:195 +#, c-format +msgid "%s is still afflicted with Confusion.\n" +msgstr "" + +#: ../execute2.c:197 +msgid "You are still afflicted with Confusion.\n" +msgstr "" + +#: ../execute2.c:205 +#, c-format +msgid "%s is still Charmed.\n" +msgstr "" + +#: ../execute2.c:206 +msgid "You are still Charmed.\n" +msgstr "" + +#: ../execute2.c:213 +#, c-format +msgid "%s's %s hand is still Paralyzed.\n" +msgstr "" + +#: ../execute2.c:214 +#, c-format +msgid "Your %s hand is still Paralyzed.\n" +msgstr "" + +#: ../execute2.c:218 +#, c-format +msgid "%s is still afflicted with Paralysis.\n" +msgstr "" + +#: ../execute2.c:226 +#, c-format +msgid "ERROR: unknown perm->mind_spell %d\n" +msgstr "" + +#: ../execute2.c:235 +#, c-format +msgid "%s sneezes loudly.\n" +msgstr "" + +#: ../execute2.c:237 +msgid "You sneeze loudly.\n" +msgstr "" + +#: ../execute2.c:247 +#, c-format +msgid "%s suddenly looks somewhat pale.\n" +msgstr "" + +#: ../execute2.c:249 +msgid "A flash of pain lances along your bones, and then fades away.\n" +msgstr "" + +#. cancelled +#: ../execute2.c:258 +#, c-format +msgid "The Anti-Spell fizzes away into nothing as it approaches %s.\n" +msgstr "" + +#: ../execute2.c:260 +msgid "The Anti-Spell fizzes away into nothing as it approaches you.\n" +msgstr "" + +#: ../execute2.c:266 +#, c-format +msgid "The Anti-Spell whizzes through %s without any effect.\n" +msgstr "" + +#: ../execute2.c:271 +#, c-format +msgid "" +"The Anti-Spell jolts %s, causing the magical energies around %s hands to " +"flicker.\n" +msgstr "" + +#: ../execute2.c:272 +msgid "" +"The Anti-Spell jolts you, interrupting the flow of magical energy in your " +"hands.\n" +msgstr "" + +#. cancelled +#: ../execute2.c:282 +#, c-format +msgid "The Delayed Effect fizzes away into nothing as it approaches %s.\n" +msgstr "" + +#: ../execute2.c:284 +msgid "The Delayed Effect fizzes away into nothing as it approaches you.\n" +msgstr "" + +#: ../execute2.c:290 +#, c-format +msgid "The Delayed Effect whizzes through %s without any effect.\n" +msgstr "" + +#: ../execute2.c:295 +#, c-format +msgid "The Delayed Effect spreads out around %s.\n" +msgstr "" + +#: ../execute2.c:296 +msgid "" +"The Delayed Effect spreads out in a cloud around you, waiting for you to " +"complete a spell.\n" +msgstr "" + +#. cancelled +#: ../execute2.c:305 +#, c-format +msgid "The Permanency fizzes away into nothing as it approaches %s.\n" +msgstr "" + +#: ../execute2.c:307 +msgid "The Permanency fizzes away into nothing as it approaches you.\n" +msgstr "" + +#: ../execute2.c:313 +#, c-format +msgid "The Permanency whizzes through %s without any effect.\n" +msgstr "" + +#: ../execute2.c:318 +#, c-format +msgid "The Permanency spreads out around %s.\n" +msgstr "" + +#: ../execute2.c:319 +msgid "" +"The Permanency spreads out in a cloud around you, waiting for you to " +"complete a spell.\n" +msgstr "" + +#. not yet blind +#: ../execute2.c:328 +#, c-format +msgid "%s blinks, then stumbles slightly as %s eyes turn milky.\n" +msgstr "" + +#: ../execute2.c:330 +msgid "" +"A haze suddenly appears before your eyes. The world dims rapidly, and you " +"are shortly enveloped in total darkness.\n" +msgstr "" + +#: ../execute2.c:336 +#, c-format +msgid "%s is still blind.\n" +msgstr "" + +#: ../execute2.c:338 +msgid "You are still blind.\n" +msgstr "" + +#: ../execute2.c:348 +#, c-format +msgid "The milky cast fades from %s's eyes.\n" +msgstr "" + +#: ../execute2.c:350 +msgid "The dark veil falls away from your eyes.\n" +msgstr "" + +#. not yet invisible +#: ../execute2.c:359 +#, c-format +msgid "%s turns quietly translucent, and fades from view.\n" +msgstr "" + +#: ../execute2.c:361 +msgid "" +"The world becomes strangely misted in front of your eyes. Looking down, you " +"see that your hands are no longer visible.\n" +msgstr "" + +#: ../execute2.c:367 +#, c-format +msgid "%s is still invisible.\n" +msgstr "" + +#: ../execute2.c:369 +msgid "You are still invisible.\n" +msgstr "" + +#: ../execute2.c:379 +#, c-format +msgid "A %s-shaped shadow appears, and %s rapidly becomes fully visible.\n" +msgstr "" + +#: ../execute2.c:381 +msgid "Your limbs have become visible again.\n" +msgstr "" + +#: ../execute2.c:406 +#, c-format +msgid "The Remove Enchantment whirls its dissipative energies around %s.\n" +msgstr "" + +#: ../execute2.c:408 +msgid "The Remove Enchantment whirls its dissipative energies around you.\n" +msgstr "" + +#: ../execute2.c:414 +#, c-format +msgid "You are freed of the %s.\n" +msgstr "" + +#: ../execute2.c:415 ../execute2.c:425 +#, c-format +msgid "%s is freed of the %s.\n" +msgstr "" + +#: ../execute2.c:432 +msgid "Your blue aura of Resist Heat fades away.\n" +msgstr "" + +#: ../execute2.c:433 +#, c-format +msgid "%s's blue aura of Resist Heat fades away.\n" +msgstr "" + +#: ../execute2.c:443 +msgid "Your pink aura of Resist Cold fades away.\n" +msgstr "" + +#: ../execute2.c:444 +#, c-format +msgid "%s's pink aura of Resist Cold fades away.\n" +msgstr "" + +#: ../execute2.c:454 ../execute2.c:874 +#, c-format +msgid "" +"%s seems to have stopped shivering, and %s skin is no longer flushed and " +"damp.\n" +msgstr "" + +#: ../execute2.c:456 ../execute2.c:876 +msgid "Your fever suddenly abates. You feel much better.\n" +msgstr "" + +#: ../execute2.c:463 +#, c-format +msgid "%s's color improves dramatically.\n" +msgstr "" + +#: ../execute2.c:465 +msgid "" +"The numbness and heaviness falls from your limbs. You feel much better.\n" +msgstr "" + +#: ../execute2.c:473 +#, c-format +msgid "The Delayed Effect spell hovering around %s disintegrates.\n" +msgstr "" + +#: ../execute2.c:475 +msgid "The Delayed Effect spell hovering around you disintegrates.\n" +msgstr "" + +#: ../execute2.c:482 +#, c-format +msgid "The %s spell that you had caught in a Delayed Effect is lost.\n" +msgstr "" + +#: ../execute2.c:483 +#, c-format +msgid "The %s spell that %s had caught in a Delayed Effect is lost.\n" +msgstr "" + +#: ../execute2.c:491 +#, c-format +msgid "The Permanency spell hovering around %s disintegrates.\n" +msgstr "" + +#: ../execute2.c:493 +msgid "The Permanency spell hovering around you disintegrates.\n" +msgstr "" + +#: ../execute2.c:501 +#, c-format +msgid "%s's circle of Protection flickers out.\n" +msgstr "" + +#: ../execute2.c:503 +msgid "Your circle of Protection flickers out.\n" +msgstr "" + +#: ../execute2.c:522 +#, c-format +msgid "The Haste on %s is nulled.\n" +msgstr "" + +#: ../execute2.c:524 +msgid "The Haste on you is nulled.\n" +msgstr "" + +#: ../execute2.c:532 +#, c-format +msgid "The Time Stop on %s is nulled.\n" +msgstr "" + +#: ../execute2.c:534 +msgid "The Time Stop on you is nulled.\n" +msgstr "" + +#: ../execute2.c:541 +#, c-format +msgid "%s becomes visible again, rather suddenly.\n" +msgstr "" + +#: ../execute2.c:543 +msgid "Your body tingles and becomes visible again.\n" +msgstr "" + +#: ../execute2.c:550 +#, c-format +msgid "%s's eyes abruptly clear.\n" +msgstr "" + +#: ../execute2.c:552 +msgid "Sight bursts in upon you again.\n" +msgstr "" + +#: ../execute2.c:576 +#, c-format +msgid "The knife slides off of %s's Shield.\n" +msgstr "" + +#: ../execute2.c:578 +msgid "The knife slides off of your Shield.\n" +msgstr "" + +#: ../execute2.c:583 +#, c-format +msgid "The knives slide off of %s's Shield.\n" +msgstr "" + +#: ../execute2.c:585 +msgid "The knives slide off of your Shield.\n" +msgstr "" + +#: ../execute2.c:593 +#, c-format +msgid "The knife strikes %s.\n" +msgstr "" + +#: ../execute2.c:595 +msgid "The knife strikes you.\n" +msgstr "" + +#: ../execute2.c:600 +#, c-format +msgid "The %s knives strike you.\n" +msgstr "" + +#: ../execute2.c:601 +#, c-format +msgid "The %s knives strike %s.\n" +msgstr "" + +#: ../execute2.c:615 +#, c-format +msgid "The Missile shatters on %s's Shield.\n" +msgstr "" + +#: ../execute2.c:617 +msgid "The Missile shatters on your Shield.\n" +msgstr "" + +#: ../execute2.c:622 +#, c-format +msgid "The Missiles shatter on %s's Shield.\n" +msgstr "" + +#: ../execute2.c:624 +msgid "The Missiles shatter on your Shield.\n" +msgstr "" + +#: ../execute2.c:632 +#, c-format +msgid "The Missile strikes %s.\n" +msgstr "" + +#: ../execute2.c:634 +msgid "The Missile strikes you.\n" +msgstr "" + +#: ../execute2.c:639 +#, c-format +msgid "The %s Missiles strike you.\n" +msgstr "" + +#: ../execute2.c:640 +#, c-format +msgid "The %s Missiles strike %s.\n" +msgstr "" + +#: ../execute2.c:653 +#, c-format +msgid "The Cause Light Wounds spell tears into %s.\n" +msgstr "" + +#: ../execute2.c:655 +msgid "The Cause Light Wounds spell tears into you.\n" +msgstr "" + +#: ../execute2.c:660 +#, c-format +msgid "The %s Cause Light Wounds spells tear into you.\n" +msgstr "" + +#: ../execute2.c:661 +#, c-format +msgid "The %s Cause Light Wounds spells tear into %s.\n" +msgstr "" + +#: ../execute2.c:673 +#, c-format +msgid "The Cause Heavy Wounds spell tears into %s.\n" +msgstr "" + +#: ../execute2.c:675 +msgid "The Cause Heavy Wounds spell tears painfully into you.\n" +msgstr "" + +#: ../execute2.c:680 +#, c-format +msgid "The %s Cause Heavy Wounds spells tear painfully into you.\n" +msgstr "" + +#: ../execute2.c:681 +#, c-format +msgid "The %s Cause Heavy Wounds spells tear into %s.\n" +msgstr "" + +#: ../execute2.c:693 +#, c-format +msgid "The Lightning Bolt staggers %s.\n" +msgstr "" + +#: ../execute2.c:695 +msgid "The Lightning Bolt strikes you, staggering and nearly deafening you.\n" +msgstr "" + +#: ../execute2.c:700 +#, c-format +msgid "" +"The %s Lightning Bolts crash into you; the concussions nearly knock you off " +"your feet.\n" +msgstr "" + +#: ../execute2.c:701 +#, c-format +msgid "The %s Lightning Bolts strike %s, staggering %s.\n" +msgstr "" + +#: ../execute2.c:714 +#, c-format +msgid "" +"The Fireball strikes %s, but the flames slide off %s Resist Heat aura.\n" +msgstr "" + +#: ../execute2.c:716 +msgid "The Fireball strikes you, but you feel only a slight warmth.\n" +msgstr "" + +#: ../execute2.c:721 +#, c-format +msgid "" +"The Fireballs strike %s, but the flames slide off %s Resist Heat aura.\n" +msgstr "" + +#: ../execute2.c:723 +msgid "The Fireballs strike you, but you feel only a slight warmth.\n" +msgstr "" + +#: ../execute2.c:731 +#, c-format +msgid "The Fireball strikes %s.\n" +msgstr "" + +#: ../execute2.c:733 +msgid "The Fireball strikes you with a roar of flame.\n" +msgstr "" + +#: ../execute2.c:738 +#, c-format +msgid "The %s Fireballs blast into you, surrounding you with blinding flame.\n" +msgstr "" + +#: ../execute2.c:739 +#, c-format +msgid "The %s Fireballs strike %s.\n" +msgstr "" + +#. counterspelled +#: ../execute2.c:752 +#, c-format +msgid "The Counter-Spell around %s cancels the Fire Storm near %s.\n" +msgstr "" + +#: ../execute2.c:754 +msgid "The Counter-Spell cancels the Fire Storm in your vicinity.\n" +msgstr "" + +#. heat-resistant +#: ../execute2.c:760 +#, c-format +msgid "" +"The Fire Storm washes over %s, who remains unharmed inside %s blue aura.\n" +msgstr "" + +#: ../execute2.c:762 +msgid "The Fire Storm washes over you, but you feel only a gentle warmth.\n" +msgstr "" + +#. hit +#: ../execute2.c:768 +#, c-format +msgid "The Fire Storm washes over %s.\n" +msgstr "" + +#: ../execute2.c:770 +msgid "The Fire Storm washes over you.\n" +msgstr "" + +#. counterspelled +#: ../execute2.c:780 +#, c-format +msgid "The Counter-Spell around %s cancels the Ice Storm near %s.\n" +msgstr "" + +#: ../execute2.c:782 +msgid "The Counter-Spell cancels the Ice Storm in your vicinity.\n" +msgstr "" + +#. cold-resistant +#: ../execute2.c:791 +#, c-format +msgid "" +"The Ice Storm washes over %s, who remains unharmed inside %s pink aura.\n" +msgstr "" + +#: ../execute2.c:793 +msgid "The Ice Storm washes over you, but you feel only a gentle coolness.\n" +msgstr "" + +#. hit +#: ../execute2.c:799 +#, c-format +msgid "The Ice Storm lashes at %s.\n" +msgstr "" + +#: ../execute2.c:801 +msgid "The Ice Storm lashes at you.\n" +msgstr "" + +#. hit +#: ../execute2.c:810 +#, c-format +msgid "%s turns very pale and drops to %s knees, clutching at %s chest....\n" +msgstr "" + +#: ../execute2.c:812 +msgid "" +"You feel a sudden pressure in your chest, as if an iron band was squeezing " +"your heart. You fall to your knees as the world dims....\n" +msgstr "" + +#: ../execute2.c:836 +#, c-format +msgid "The Cure Light Wounds spell weaves around %s, and %s wounds fade.\n" +msgstr "" + +#: ../execute2.c:838 +msgid "" +"The Cure Light Wounds spell weaves around you, and the pain of your wounds " +"lessens.\n" +msgstr "" + +#: ../execute2.c:843 +#, c-format +msgid "" +"The %s Cure Light Wounds spells weave around you, and the pain of your " +"wounds lessens.\n" +msgstr "" + +#: ../execute2.c:844 +#, c-format +msgid "The %s Cure Light Wounds spells weave around %s, and %s wounds fade.\n" +msgstr "" + +#: ../execute2.c:856 +#, c-format +msgid "The Cure Heavy Wounds spell weaves around %s, and %s wounds heal.\n" +msgstr "" + +#: ../execute2.c:858 +msgid "" +"The Cure Heavy Wounds spell weaves around you, and your wounds heal " +"considerably.\n" +msgstr "" + +#: ../execute2.c:863 +#, c-format +msgid "" +"The %s Cure Heavy Wounds spells weave around you, and your wounds heal " +"considerably.\n" +msgstr "" + +#: ../execute2.c:864 +#, c-format +msgid "The %s Cure Heavy Wounds spells weave around %s, and %s wounds heal.\n" +msgstr "" + +#: ../execute2.c:885 +#, c-format +msgid "" +"The Raise Dead spell burns through %s. Although %s is not dead, the spell " +"has a powerful healing effect.\n" +msgstr "" + +#: ../execute2.c:887 +msgid "" +"The Raise Dead spell burns through you. Although you aren't dead, the spell " +"has a powerful healing influence.\n" +msgstr "" + +#: ../execute2.c:892 +#, c-format +msgid "" +"The %s Raise Dead spells burn through you. Although you aren't dead, the " +"spells have a powerful healing influence.\n" +msgstr "" + +#: ../execute2.c:893 +#, c-format +msgid "" +"The %s Raise Dead spells burn through %s. Although %s is not dead, the " +"spells have a powerful healing effect.\n" +msgstr "" + +#: ../execute2.c:906 +#, c-format +msgid "%s is in perfect health again.\n" +msgstr "" + +#: ../execute2.c:908 +msgid "You are in perfect health again.\n" +msgstr "" + +#: ../execute2.c:916 +#, c-format +msgid "" +"%s twitches, glows, and then jumps to %s feet! Except for a bit of incipient " +"mold, %s is in perfect health again.\n" +msgstr "" + +#: ../execute2.c:918 +msgid "" +"You are suddenly aware of a blast of energy running down every nerve! This " +"is something of a shock, since you had just gotten used to being dead. Oh, " +"well -- you'll be back eventually.\n" +msgstr "" + +#: ../execute.c:111 +#, c-format +msgid "ERROR: do not know how to permanent %d.\n" +msgstr "" + +#: ../execute.c:122 +msgid "itself" +msgstr "" + +#: ../execute.c:124 +msgid "himself" +msgstr "" + +#: ../execute.c:126 +msgid "herself" +msgstr "" + +#: ../execute.c:128 +msgid "hirself" +msgstr "" + +#: ../execute.c:130 +msgid "ERROR-himself" +msgstr "" + +#: ../execute.c:139 ../execute.c:156 +msgid "it" +msgstr "" + +#: ../execute.c:141 +msgid "him" +msgstr "" + +#: ../execute.c:143 ../execute.c:177 +msgid "her" +msgstr "" + +#: ../execute.c:145 ../execute.c:179 +msgid "hir" +msgstr "" + +#: ../execute.c:147 +msgid "ERROR-him" +msgstr "" + +#: ../execute.c:158 +msgid "he" +msgstr "" + +#: ../execute.c:160 +msgid "she" +msgstr "" + +#: ../execute.c:162 +msgid "ke" +msgstr "" + +#: ../execute.c:164 +msgid "ERROR-he" +msgstr "" + +#: ../execute.c:173 +msgid "its" +msgstr "" + +#: ../execute.c:175 +msgid "his" +msgstr "" + +#: ../execute.c:181 +msgid "ERROR-his" +msgstr "" + +#: ../execute.c:192 +msgid "zero" +msgstr "" + +#: ../execute.c:194 +msgid "one" +msgstr "" + +#: ../execute.c:196 +msgid "two" +msgstr "" + +#: ../execute.c:198 +msgid "three" +msgstr "" + +#: ../execute.c:200 +msgid "four" +msgstr "" + +#: ../execute.c:202 +msgid "five" +msgstr "" + +#: ../execute.c:204 +msgid "six" +msgstr "" + +#: ../execute.c:206 +msgid "seven" +msgstr "" + +#: ../execute.c:208 +msgid "eight" +msgstr "" + +#: ../execute.c:210 +msgid "nine" +msgstr "" + +#: ../execute.c:212 +msgid "ten" +msgstr "" + +#: ../execute.c:214 ../stupid.c:518 +#, c-format +msgid "%d" +msgstr "" + +#: ../execute.c:238 +#, c-format +msgid "%s %s" +msgstr "" + +#: ../execute.c:256 +#, c-format +msgid "You are unable to see %s; your %s goes wild.\n" +msgstr "" + +#: ../execute.c:257 +#, c-format +msgid "%s is unable to see you; %s %s goes wild.\n" +msgstr "" + +#: ../execute.c:258 +#, c-format +msgid "%s is unable to see %s; %s %s goes wild.\n" +msgstr "" + +#: ../execute.c:281 +msgid "with the left hand" +msgstr "" + +#: ../execute.c:284 +msgid "with the right hand" +msgstr "" + +#: ../execute.c:287 ../stupid.c:305 +msgid "with both hands" +msgstr "" + +#: ../execute.c:290 +msgid "from a Delayed Effect" +msgstr "" + +#: ../execute.c:293 +msgid "ERROR:BOTH??? hands" +msgstr "" + +#: ../execute.c:296 +msgid "ERROR:NEITHER??? hand" +msgstr "" + +#: ../execute.c:301 +msgid "over the arena" +msgstr "" + +#: ../execute.c:304 +msgid "up into the air" +msgstr "" + +#: ../execute.c:308 +msgid "at " +msgstr "" + +#: ../execute.c:323 +#, c-format +msgid "at %s" +msgstr "" + +#: ../execute.c:328 +#, c-format +msgid "%s stabs (%s) %s.\n" +msgstr "" + +#: ../execute.c:330 +#, c-format +msgid "%s casts %s%s (%s) %s.\n" +msgstr "" + +#: ../execute.c:330 +msgid "Permanent " +msgstr "" + +#: ../execute.c:382 +msgid "The magical energies in the arena fade away.\n" +msgstr "" + +#: ../execute.c:431 ../execute.c:507 ../execute.c:591 ../execute.c:601 +#, c-format +msgid "The %s is dispelled.\n" +msgstr "" + +#: ../execute.c:448 ../execute.c:525 +#, c-format +msgid "The %s is destroyed by your Counter-Spell.\n" +msgstr "" + +#: ../execute.c:449 ../execute.c:526 +#, c-format +msgid "The %s is destroyed by the Counter-Spell around %s.\n" +msgstr "" + +#: ../execute.c:499 +#, c-format +msgid "%s's Lightning Bolt fizzles.\n" +msgstr "" + +#: ../execute.c:500 +msgid "" +"Since you have already cast Lightning Bolt with that formulation, the spell " +"fizzles.\n" +msgstr "" + +#: ../execute.c:543 +#, c-format +msgid "" +"Your %s is reflected back and forth between %s's Magic Mirror and your own! " +"It rapidly decays and dissipates.\n" +msgstr "" + +#: ../execute.c:544 +#, c-format +msgid "" +"%s's %s is reflected back and forth between your Magic Mirror and %s own! It " +"rapidly decays and dissipates.\n" +msgstr "" + +#: ../execute.c:545 +#, c-format +msgid "" +"%s's %s is reflected back and forth between %s's Magic Mirror and %s own! It " +"rapidly decays and dissipates.\n" +msgstr "" + +#: ../execute.c:553 +#, c-format +msgid "Your %s is reflected from %s's Magic Mirror back at you.\n" +msgstr "" + +#: ../execute.c:554 +#, c-format +msgid "%s's %s reflects from your Magic Mirror back at %s.\n" +msgstr "" + +#: ../execute.c:555 +#, c-format +msgid "%s's %s reflects from %s's Magic Mirror back at %s.\n" +msgstr "" + +#: ../execute.c:571 +#, c-format +msgid "The reflected %s is destroyed by your Counter-Spell.\n" +msgstr "" + +#: ../execute.c:572 +#, c-format +msgid "The reflected %s is destroyed by the Counter-Spell around %s.\n" +msgstr "" + +#: ../execute.c:609 +msgid "ERROR: Surrender got through to spell table setup\n" +msgstr "" + +#: ../execute.c:620 +msgid "ERROR: Unknown spell in spell table setup\n" +msgstr "" + +#: ../execute.c:718 +#, c-format +msgid "The Counter-Spell on %s is dispelled.\n" +msgstr "" + +#: ../execute.c:720 +msgid "The Counter-Spell on you is dispelled.\n" +msgstr "" + +#: ../execute.c:726 +#, c-format +msgid "The Magic Mirror on %s is dispelled.\n" +msgstr "" + +#: ../execute.c:728 +msgid "The Magic Mirror on you is dispelled.\n" +msgstr "" + +#: ../execute.c:736 +#, c-format +msgid "The Dispel Magic starts to tear %s apart.\n" +msgstr "" + +#: ../execute.c:742 +#, c-format +msgid "The corpse of %s disintegrates, destroyed by the Dispel Magic.\n" +msgstr "" + +#. auto-shield +#: ../execute.c:753 +#, c-format +msgid "A Counter-Spell flares around %s.\n" +msgstr "" + +#: ../execute.c:755 +msgid "Your magical senses go numb as a Counter-Spell surrounds you.\n" +msgstr "" + +#: ../execute.c:762 +#, c-format +msgid "The Magic Mirror on %s is destroyed by the Counter-Spell.\n" +msgstr "" + +#: ../execute.c:764 +msgid "The Magic Mirror on you is destroyed by the Counter-Spell.\n" +msgstr "" + +#: ../execute.c:773 +#, c-format +msgid "A Magic Mirror swirls around %s.\n" +msgstr "" + +#: ../execute.c:775 +msgid "The bright haze of a Magic Mirror surrounds you.\n" +msgstr "" + +#: ../execute.c:801 +#, c-format +msgid "Your %s materializes by your side.\n" +msgstr "" + +#: ../execute.c:802 +#, c-format +msgid "%s's %s appears by %s side.\n" +msgstr "" + +#: ../execute.c:809 +#, c-format +msgid "Your %s %ss materialize by your side.\n" +msgstr "" + +#: ../execute.c:810 +#, c-format +msgid "%s's %s %ss appear by %s side.\n" +msgstr "" + +#: ../execute.c:825 +msgid "A blazing Fire Elemental materializes above you.\n" +msgstr "" + +#: ../execute.c:826 +#, c-format +msgid "A blazing Fire Elemental materializes above %s.\n" +msgstr "" + +#: ../execute.c:829 +msgid "A glittering Ice Elemental materializes above you.\n" +msgstr "" + +#: ../execute.c:830 +#, c-format +msgid "A glittering Ice Elemental materializes above %s.\n" +msgstr "" + +#: ../execute.c:877 +#, c-format +msgid "The %s Fire Elementals merge into single raging form.\n" +msgstr "" + +#: ../execute.c:881 +#, c-format +msgid "The %s Ice Elementals merge into single whirling form.\n" +msgstr "" + +#. 0101 +#: ../execute.c:892 +msgid "The Fire Elemental is dispersed into the Fire Storm.\n" +msgstr "" + +#. 1010 +#: ../execute.c:897 +msgid "The Ice Elemental is dispersed into the Ice Storm.\n" +msgstr "" + +#. 1100 +#: ../execute.c:902 +msgid "The Fire and Ice Storms tear each other into shreds of vapor.\n" +msgstr "" + +#. 0011 +#: ../execute.c:907 +msgid "" +"The Fire and Ice Elementals tear into each other, and whirl into a column of " +"steam that dissipates in moments.\n" +msgstr "" + +#. 0110 +#: ../execute.c:914 +msgid "The Ice Elemental is dispersed into the Fire Storm, destroying both.\n" +msgstr "" + +#. 1001 +#: ../execute.c:920 +msgid "The Fire Elemental is dispersed into the Ice Storm, destroying both.\n" +msgstr "" + +#. 1101 +#: ../execute.c:926 +msgid "" +"The Fire and Ice Storms tear each other into shreds of vapor, destroying the " +"Fire Elemental as well.\n" +msgstr "" + +#. 1110 +#: ../execute.c:933 +msgid "" +"The Fire and Ice Storms tear each other into shreds of vapor, destroying the " +"Ice Elemental as well.\n" +msgstr "" + +#. 1011 +#: ../execute.c:940 +msgid "" +"The Fire and Ice Elementals tear into each other, and whirl into a column of " +"steam that dissipates in moments. The Ice Storm is absorbed as well.\n" +msgstr "" + +#. 0111 +#: ../execute.c:948 +msgid "" +"The Fire and Ice Elementals tear into each other, and whirl into a column of " +"steam that dissipates in moments. The Fire Storm is absorbed as well.\n" +msgstr "" + +#. 1111 +#: ../execute.c:956 +msgid "" +"The Fire and Ice Elementals whirl into each other, screaming in fury, and " +"the Fire and Ice storms shriek in response. The column of Elemental energy " +"rises to meet the cloud of vapor that descends over the arena. You are " +"buffeted by the conflicting energies; but within moments, nothing remains.\n" +msgstr "" + +#: ../execute.c:973 +#, c-format +msgid "%s gutters and flickers out under the influence of the Resist Heat.\n" +msgstr "" + +#: ../execute.c:980 +#, c-format +msgid "%s melts away under the influence of the Resist Cold.\n" +msgstr "" + +#: ../execute.c:985 +#, c-format +msgid "%s is vaporized by the Fireball.\n" +msgstr "" + +#: ../execute.c:991 +#, c-format +msgid "" +"Under the stress of the Blindness, %s shivers and disintegrates into random " +"energies.\n" +msgstr "" + +#: ../execute.c:996 +#, c-format +msgid "" +"Under the stress of the Invisibility, %s shivers and disintegrates into " +"random energies.\n" +msgstr "" + +#: ../execute.c:1008 +#, c-format +msgid "The Remove Enchantment starts to tear %s apart.\n" +msgstr "" + +#: ../execute.c:1028 +#, c-format +msgid "" +"The Finger of Death and Raise Dead spells aimed at %s cancel each other.\n" +msgstr "" + +#: ../execute.c:1030 +msgid "" +"For a moment, you feel a sudden pressure in your chest, as if an iron band " +"was squeezing your heart. Then it fades, as the Raise Dead spell burns " +"through you.\n" +msgstr "" + +#: ../execute.c:1038 +#, c-format +msgid "" +"The Fireball hurtling towards %s is snuffed by the Ice Storm, leaving %s " +"enveloped in a cloud of steam.\n" +msgstr "" + +#: ../execute.c:1040 +msgid "" +"The Fireball hurtling towards you is snuffed by the Ice Storm, leaving you " +"enveloped in warm steam.\n" +msgstr "" + +#: ../execute.c:1061 +#, c-format +msgid "" +"The mind-control spells (%s) aimed at you interfere with each other and " +"fizzle, leaving you with a pounding headache.\n" +msgstr "" + +#: ../execute.c:1062 +#, c-format +msgid "" +"The mind-control spells (%s) aimed at %s interfere with each other and " +"fizzle.\n" +msgstr "" + +#: ../execute.c:1093 +#, c-format +msgid "The Resist Heat shrouds %s in a cool blue veil.\n" +msgstr "" + +#: ../execute.c:1095 +msgid "The Resist Heat wraps you in a pleasant blue coolness.\n" +msgstr "" + +#: ../execute.c:1101 +#, c-format +msgid "%s's veil of Resist Heat continues to glow coolly.\n" +msgstr "" + +#: ../execute.c:1103 +msgid "Your veil of Resist Heat continues to glow coolly.\n" +msgstr "" + +#: ../execute.c:1112 +#, c-format +msgid "The Resist Cold shrouds %s in a warm pink veil.\n" +msgstr "" + +#: ../execute.c:1114 +msgid "The Resist Cold wraps you in a pleasant pink warmth.\n" +msgstr "" + +#: ../execute.c:1120 +#, c-format +msgid "%s's veil of Resist Cold continues to glow warmly.\n" +msgstr "" + +#: ../execute.c:1122 +msgid "Your veil of Resist Cold continues to glow warmly.\n" +msgstr "" + +#: ../execute.c:1130 +msgid "" +"A white circle of Protection from Evil springs up around you. You feel the " +"Shield aura cloaking your skin.\n" +msgstr "" + +#: ../execute.c:1131 +#, c-format +msgid "A white circle of Protection from Evil springs up around %s.\n" +msgstr "" + +#: ../execute.c:1138 +msgid "Your circle of Protection from Evil flares back to full strength.\n" +msgstr "" + +#: ../execute.c:1139 +#, c-format +msgid "%s's circle of Protection from Evil flares back to full strength.\n" +msgstr "" + +#: ../execute.c:1162 +msgid "Your circle of Protection from Evil is beginning to fade.\n" +msgstr "" + +#: ../execute.c:1163 +#, c-format +msgid "%s's circle of Protection from Evil is beginning to fade.\n" +msgstr "" + +#: ../execute.c:1166 +msgid "Your circle of Protection from Evil is dimmer now.\n" +msgstr "" + +#: ../execute.c:1167 +#, c-format +msgid "%s's circle of Protection from Evil is dimmer now.\n" +msgstr "" + +#: ../execute.c:1170 +msgid "Your circle of Protection from Evil is nearly gone.\n" +msgstr "" + +#: ../execute.c:1171 +#, c-format +msgid "%s's circle of Protection from Evil is nearly gone.\n" +msgstr "" + +#: ../main.c:98 +msgid "usage: spellcast RemoteDisplay [ RemoteDisplay2 ... ]\n" +msgstr "modo de uso: spellcast DisplayRemoto [ DisplayRemoto2 ....]\n" + +#: ../main.c:121 ../stupid.c:491 +#, c-format +msgid "You have listed only %d players!\n" +msgstr "" + +#: ../main.c:125 ../stupid.c:495 +#, c-format +msgid "There is a maximum of %d players!\n" +msgstr "" + +#: ../main.c:139 +msgid "spellcast: exiting.\n" +msgstr "spellcast: terminando.\n" + +#: ../main.c:162 +msgid "Enter your gestures for your Hastened move." +msgstr "" + +#: ../main.c:166 +msgid "Enter your gestures for your Time-Stopped move." +msgstr "" + +#: ../main.c:171 +msgid "Enter your gestures for this move, at the bottom of your gesture list." +msgstr "" + +#: ../main.c:178 +msgid "Other people are Hastened this turn." +msgstr "Otros jugadores están acelerados este turno." + +#: ../main.c:182 +msgid "You are frozen in time." +msgstr "Está congelado en el tiempo" + +#: ../main.c:185 +msgid "You are out of the game." +msgstr "Está fuera del juego." + +#: ../main.c:210 +msgid "" +"\n" +"+++ The game is a draw +++\n" +msgstr "" +"\n" +"+++ El juego termina en empate +++\n" + +#: ../main.c:212 +#, c-format +msgid "" +"\n" +"+++ %s has won +++\n" +msgstr "" +"\n" +"+++ %s ha ganado +++\n" + +#: ../main.c:228 +msgid "Do you want to save a transcript of this game?" +msgstr "¿Quiere guardar una transcripción de este juego?" + +#: ../main.c:229 +msgid "No" +msgstr "No" + +#: ../main.c:245 +#, c-format +msgid "spellcast: unable to open %s for writing\n" +msgstr "spellcast: incapaz de abrir %s para escribir\n" + +#: ../main.c:246 +msgid "spellcast: error" +msgstr "spellcast: error" + +#: ../main.c:251 +#, c-format +msgid "Saved transcript in %s.\n" +msgstr "Salvada transcripción en %s.\n" + +#: ../main.c:280 +#, c-format +msgid "spellcast: could not open display for player %d.\n" +msgstr "" + +#: ../main.c:346 ../stupid.c:227 ../stupid.c:318 +msgid "nobody" +msgstr "nadie" + +#: ../main.c:348 +msgid "Nobody" +msgstr "Nadie" + +#: ../main.c:360 +#, c-format +msgid "spellcast: the name '%s' for player %d is taken. Switching to '%s'...\n" +msgstr "" + +#: ../main.c:377 ../main.c:382 +#, c-format +msgid "spellcast: could not find font %s for player %d. Switching to %s...\n" +msgstr "" + +#: ../main.c:386 +#, c-format +msgid "spellcast: could not find font %s for player %d.\n" +msgstr "" + +#: ../main.c:412 +msgid "colour" +msgstr "color" + +#: ../main.c:415 +#, c-format +msgid "spellcast: font colour is %s\n" +msgstr "" + +#: ../main.c:464 +msgid "ERROR: backing store already on\n" +msgstr "" + +#: ../main.c:476 +msgid "ERROR: backing store already off\n" +msgstr "" + +#: ../makelist.c:25 +msgid "showpalm" +msgstr "" + +#: ../makelist.c:28 +msgid "showdigit" +msgstr "" + +#: ../makelist.c:31 +msgid "showfinger" +msgstr "" + +#: ../makelist.c:34 +msgid "showwave" +msgstr "" + +#: ../makelist.c:37 +msgid "showsnap" +msgstr "" + +#: ../makelist.c:40 +msgid "showclap" +msgstr "" + +#: ../makelist.c:43 +msgid "showpalm2" +msgstr "" + +#: ../makelist.c:46 +msgid "showdigit2" +msgstr "" + +#: ../makelist.c:49 +msgid "showfinger2" +msgstr "" + +#: ../makelist.c:52 +msgid "showwave2" +msgstr "" + +#: ../makelist.c:55 +msgid "showsnap2" +msgstr "" + +#: ../makelist.c:58 +msgid "showclap2" +msgstr "" + +#: ../makelist.c:87 +#, c-format +msgid "%d %d %s\n" +msgstr "" + +#: ../makelist.c:90 +#, c-format +msgid "%d %d moveto %d %d lineto stroke\n" +msgstr "" + +#: ../makelist.c:92 +#, c-format +msgid "%d %d moveto (%s) show\n" +msgstr "" + +#: ../makelist.c:104 +msgid "/Times-Roman findfont 12 scalefont setfont\n" +msgstr "" + +#: ../makelist.c:105 +msgid "0.5 setlinewidth\n" +msgstr "" + +#: ../makelist.c:110 +msgid "/Times-Bold findfont 14 scalefont setfont\n" +msgstr "" + +#: ../makelist.c:112 +msgid "(SpellCast spell lists -- sorted by gesture and name) centershow\n" +msgstr "" + +#: ../makelist.c:113 +msgid "" +"\n" +"showpage\n" +msgstr "" + +#: ../stupid.c:32 ../stupid.c:48 ../stupid.c:52 +#, c-format +msgid "%d: " +msgstr "" + +#: ../stupid.c:36 +#, c-format +msgid "~%d: " +msgstr "" + +#: ../stupid.c:56 +#, c-format +msgid "~%d/~%d: " +msgstr "" + +#: ../stupid.c:85 +#, c-format +msgid "" +"%d: Do you want to release the %s from the Delayed Effect?\n" +" (0:no, 1:yes): " +msgstr "" + +#: ../stupid.c:92 ../stupid.c:132 ../stupid.c:149 ../stupid.c:166 +msgid " [Please enter 0 or 1]: " +msgstr "" + +#: ../stupid.c:102 +msgid "What spell do you want to cast with your left hand?" +msgstr "" + +#: ../stupid.c:104 +msgid "What spell do you want to cast with your right hand?" +msgstr "" + +#: ../stupid.c:106 +#, c-format +msgid "" +"%d: %s\n" +" (" +msgstr "" + +#: ../stupid.c:109 +#, c-format +msgid "%d: %s%s%s" +msgstr "" + +#: ../stupid.c:110 +msgid " [both hands]" +msgstr " [ambas manos]" + +#: ../stupid.c:117 ../stupid.c:257 ../stupid.c:286 ../stupid.c:362 +#, c-format +msgid " [Please enter a number from 0 to %d]: " +msgstr "" + +#: ../stupid.c:126 +#, c-format +msgid "" +"%d: Which type of elemental do you want to summon?\n" +" (0:fire, 1:ice): " +msgstr "" + +#: ../stupid.c:141 +#, c-format +msgid "" +"%d: Which of %s's hands do you want to paralyze?\n" +" (0:left, 1:right): " +msgstr "" + +#: ../stupid.c:158 +#, c-format +msgid "" +"%d: Which of %s's hands do you want to charm?\n" +" (0:left, 1:right): " +msgstr "" + +#: ../stupid.c:184 +#, c-format +msgid "" +"%d: What gesture do you want %s's %s hand to make?\n" +" (enter a letter): " +msgstr "" + +#: ../stupid.c:191 +msgid " [Please enter a letter]: " +msgstr " [Por favor introduzca una letra]: " + +#: ../stupid.c:206 +#, c-format +msgid "Whom do you want %s to attack?" +msgstr "¿A quién quiere que %s ataque?" + +#: ../stupid.c:211 +#, c-format +msgid "Whom do you want %s's first attack to be at?" +msgstr "¿A quién quiere que %s ataque primero?" + +#: ../stupid.c:216 +#, c-format +msgid "Whom do you want %s's second attack to be at?" +msgstr "¿Quién quiere que %s ataque después?" + +#: ../stupid.c:221 +#, c-format +msgid "ERROR: Query about %d (%d)" +msgstr "ERROR: Pregunta sobre %d (%d)" + +#: ../stupid.c:224 ../stupid.c:313 +#, c-format +msgid "%d: %s\n" +msgstr "" + +#: ../stupid.c:245 ../stupid.c:350 +msgid "ERROR: No targets available!\n" +msgstr "ERROR: ¡No hay objetivos disponibles!\n" + +#: ../stupid.c:249 +#, c-format +msgid "%d: %s%s" +msgstr "" + +#: ../stupid.c:269 +#, c-format +msgid "%d: Which spell do you want to delay?\n" +msgstr "%d: ¿Qué hechizo quiere retardar?\n" + +#: ../stupid.c:272 +#, c-format +msgid "%d: Which spell do you want to make permanent?\n" +msgstr "%d: ¿Qué hechizo quiere hacer permanente?\n" + +#: ../stupid.c:278 +#, c-format +msgid "%s%d: %s" +msgstr "" + +#: ../stupid.c:301 +msgid "with your left hand" +msgstr "con su mano izquierda" + +#: ../stupid.c:303 +msgid "with your right hand" +msgstr "con su mano derecha" + +#: ../stupid.c:307 +msgid "from the Delayed Effect" +msgstr "del Efecto Retardado" + +#: ../stupid.c:309 +#, c-format +msgid "Who do you want to stab at (%s)?" +msgstr "¿A quién quiere acuchillar (%s)?" + +#: ../stupid.c:311 +#, c-format +msgid "Who do you want to cast %s at (%s)?" +msgstr "¿A quién quiere lanzar %s a (%s)?" + +#: ../stupid.c:373 +#, c-format +msgid "ERROR: Unknown query type %d!\n" +msgstr "" + +#: ../stupid.c:422 +#, c-format +msgid "%s (%d); " +msgstr "" + +#: ../stupid.c:440 +msgid "Arnold" +msgstr "Arnold" + +#: ../stupid.c:506 +msgid "(hasted) " +msgstr "(acelerado) " + +#: ../stupid.c:509 +msgid "(timestopped) " +msgstr "(tiempo parado) " + +#: ../stupid.c:520 +msgid ": Enter moves: " +msgstr ": Introduzca movimientos: " + +#: ../stupid.c:530 +msgid "+++ the game is a draw +++\n" +msgstr "+++ el juego es un empate +++\n" + +#: ../stupid.c:532 +#, c-format +msgid "+++ %s has won +++\n" +msgstr "+++ %s ha ganado +++\n" + +#: ../xbutton.c:43 +msgid "Spell List (left button: sorted by gesture)" +msgstr "Lista de hechizos (botón izquierdo: ordenado por gesto)" + +#: ../xbutton.c:45 +msgid "Spell List (middle button: alphabetical sort)" +msgstr "Lista de hechizos (botón de enmedio: ordenado alfabéticamente)" + +#: ../xbutton.c:47 +msgid "Spell List (right button: reversed sort by gesture)" +msgstr "Lista de hechizos (botón derecho: orden inverso por gesto)" + +#: ../xbutton.c:162 +msgid "please wait...." +msgstr "por favor espera...." + +#: ../xbutton.c:165 +msgid "End Move" +msgstr "Terminar movimiento" + +#: ../xbutton.c:167 +msgid "Move ENDED." +msgstr "Fin del movimiento." + +#: ../xbutton.c:171 +msgid "Quit" +msgstr "Quit" + +#: ../xbutton.c:173 +msgid "Wait...." +msgstr "Esperar...." + +#: ../xbutton.c:177 +msgid "End Answers" +msgstr "Terminar Respuestas" + +#: ../xbutton.c:179 +msgid "Answers ENDED." +msgstr "Respuestas TERMINADAS." + +#: ../xbutton.c:185 +msgid "Spell List" +msgstr "Lista de hechizos" + +#: ../xbutton.c:238 +msgid "ERROR: unknown button thing!\n" +msgstr "" + +#: ../xbutton.c:283 +msgid "" +msgstr "<¿respuesta?>" + +#: ../xgest.c:245 +msgid "What gesture do you want to" +msgstr "¿Qué gesto quiere" + +#: ../xgest.c:246 +#, c-format +msgid "make with your %s hand?" +msgstr "" + +#: ../xloop.c:359 +#, c-format +msgid "%d %s%s%s%s%s%s%s" +msgstr "" + +# ../main.c +msgid "White" +msgstr "Blanco" + +# ../main.c +msgid "Black" +msgstr "Negro" --- spellcast-1.0.orig/po/es.po.ADD +++ spellcast-1.0/po/es.po.ADD @@ -0,0 +1,3810 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2001-10-14 18:39-0600\n" +"PO-Revision-Date: 2002-01-12 18:22--600\n" +"Last-Translator: Matthias Lehner \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#: emonster.c:21 +msgid "kur" +msgstr "" + +#: emonster.c:21 +msgid "ak" +msgstr "" + +#: emonster.c:21 +msgid "ral" +msgstr "" + +#: emonster.c:21 +msgid "ki" +msgstr "" + +#: emonster.c:21 +msgid "rel" +msgstr "" + +#: emonster.c:21 +msgid "uk" +msgstr "" + +#: emonster.c:22 +msgid "kor" +msgstr "" + +#: emonster.c:22 +msgid "kul" +msgstr "" + +#: emonster.c:22 +msgid "kas" +msgstr "" + +#: emonster.c:22 +msgid "lok" +msgstr "" + +#: emonster.c:22 +msgid "luk" +msgstr "" + +#: emonster.c:22 +msgid "las" +msgstr "" + +#: emonster.c:22 +msgid "mak" +msgstr "" + +#: emonster.c:22 +msgid "mok" +msgstr "" + +#: emonster.c:22 +msgid "mas" +msgstr "" + +#: emonster.c:22 +msgid "mos" +msgstr "" + +#: emonster.c:22 +msgid "ga" +msgstr "" + +#: emonster.c:23 +#: emonster.c:61 +msgid "tha" +msgstr "" + +#: emonster.c:23 +msgid "gul" +msgstr "" + +#: emonster.c:23 +msgid "lug" +msgstr "" + +#: emonster.c:23 +msgid "mag" +msgstr "" + +#: emonster.c:23 +msgid "mog" +msgstr "" + +#: emonster.c:23 +msgid "ug" +msgstr "" + +#: emonster.c:39 +#: emonster.c:77 +#: xloop.c:320 +#: xloop.c:354 +msgid " " +msgstr "" + +#: emonster.c:59 +msgid "sni" +msgstr "" + +#: emonster.c:59 +msgid "sna" +msgstr "" + +#: emonster.c:59 +msgid "fer" +msgstr "" + +#: emonster.c:59 +msgid "fi" +msgstr "" + +#: emonster.c:59 +msgid "fir" +msgstr "" + +#: emonster.c:60 +msgid "por" +msgstr "" + +#: emonster.c:60 +msgid "per" +msgstr "" + +#: emonster.c:60 +msgid "snu" +msgstr "" + +#: emonster.c:60 +msgid "al" +msgstr "" + +#: emonster.c:60 +msgid "an" +msgstr "" + +#: emonster.c:60 +msgid "erl" +msgstr "" + +#: emonster.c:60 +msgid "lep" +msgstr "" + +#: emonster.c:60 +msgid "fru" +msgstr "" + +#: emonster.c:60 +msgid "fri" +msgstr "" + +#: emonster.c:60 +msgid "ig" +msgstr "" + +#: emonster.c:60 +msgid "eg" +msgstr "" + +#: emonster.c:61 +msgid "thi" +msgstr "" + +#: emonster.c:121 +msgid " the Goblin" +msgstr " el goblin" + +#: emonster.c:126 +msgid " the Ogre" +msgstr " el ogro" + +#: emonster.c:131 +msgid " the Troll" +msgstr " el troll" + +#: emonster.c:136 +msgid " the Giant" +msgstr " el gigante" + +#: emonster.c:142 +msgid " the Fiery" +msgstr " la fiera" + +#: emonster.c:148 +msgid " the Icy" +msgstr "el Helador" + +#: emonster.c:184 +msgid "" +"ERROR: wrong type of turn in execute_monsters()\n" +"" +msgstr "" +"ERROR: tipo ilegal de datos en turno de execute_monsters()\n" +"" + +#: emonster.c:197 +#, c-format +msgid "" +"%s suddenly looks confused.\n" +"" +msgstr "" +"%s de repente se ve confundido.\n" +"" + +#: emonster.c:204 +#, c-format +msgid "" +"%s is paralyzed and cannot attack.\n" +"" +msgstr "" +"%s es paralisado y no puede atacar.\n" +"" + +#: emonster.c:211 +#, c-format +msgid "" +"%s looks around blankly.\n" +"" +msgstr "" +"%s tiene la mirada perdida.\n" +"" + +#: emonster.c:355 +#, c-format +msgid "" +"%s refuses to attack %s.\n" +"" +msgstr "" +"%s se rehusa a atacar %s.\n" +"" + +#: emonster.c:364 +#, c-format +msgid "" +"%s tries to attack you, but cannot see you.\n" +"" +msgstr "" +"%s trata de atacarte, pero no te puede ver.\n" +"" + +#: emonster.c:365 +#, c-format +msgid "" +"%s tries to attack %s, but cannot see %s.\n" +"" +msgstr "" +"%s trata de atacar a %s, per no puede ver %s.\n" +"" + +#: emonster.c:375 +#, c-format +msgid "" +"The attack of %s is blocked by your Shield.\n" +"" +msgstr "" +"el ataque de %s es bloqueado por tu escudo.\n" +"" + +#: emonster.c:376 +#, c-format +msgid "" +"The attack of %s is blocked by %s's Shield.\n" +"" +msgstr "" +"el ataque a %s es bloqueado por el escudo de %s.\n" +"" + +#: emonster.c:387 +#, c-format +msgid "" +"%s reaches towards you, but you feel only a warm breeze.\n" +"" +msgstr "" +"%s de alcanza pero solamente sientes una brisa caliente.\n" +"" + +#: emonster.c:389 +#, c-format +msgid "" +"%s reaches toward %s, but cannot penetrate %s blue aura.\n" +"" +msgstr "" +"%s alcanza %s, pero no puede penetrar el aura azul de %s.\n" +"" + +#: emonster.c:397 +#, c-format +msgid "" +"%s hurls tongues of fire at you.\n" +"" +msgstr "%s lanza lenguas de fuego hacia tí" + +#: emonster.c:398 +#, c-format +msgid "" +"%s hurls fire at %s.\n" +"" +msgstr "" +"%s le lanza fuego a %s.\n" +"" + +#: emonster.c:408 +#, c-format +msgid "" +"%s reaches towards you, but you feel only a chill breeze.\n" +"" +msgstr "" + +#: emonster.c:410 +#, c-format +msgid "" +"%s reaches toward %s, but cannot penetrate %s pink aura.\n" +"" +msgstr "" + +#: emonster.c:418 +#, c-format +msgid "" +"%s hurls splinters of ice at you.\n" +"" +msgstr "" +"%s te tira astillas de hielo.\n" +"" + +#: emonster.c:419 +#, c-format +msgid "" +"%s hurls ice at %s.\n" +"" +msgstr "" +"%s tira hielo a %s.\n" +"" + +#: emonster.c:430 +#, c-format +msgid "" +"%s attacks %s!\n" +"" +msgstr "" +"%s attaca %s!\n" +"" + +#: emonster.c:435 +#, c-format +msgid "" +"%s attacks you.\n" +"" +msgstr "" +"%s te attaca.\n" +"" + +#: emonster.c:436 +#, c-format +msgid "" +"%s attacks %s.\n" +"" +msgstr "" +"%s attaca %s.\n" +"" + +#: engine.c:118 +msgid "digit" +msgstr "dedo" + +#: engine.c:121 +msgid "fingers" +msgstr "dedos" + +#: engine.c:124 +msgid "palm" +msgstr "palma" + +#: engine.c:127 +msgid "wave" +msgstr "agitar" + +#: engine.c:130 +msgid "clap" +msgstr "palmear" + +#: engine.c:133 +msgid "snap" +msgstr "casqillo" + +#: engine.c:136 +#: espells.c:67 +msgid "stab" +msgstr "apuñalar" + +#: engine.c:139 +msgid "nothing" +msgstr "nada" + +#: engine.c:142 +msgid "ERROR:UNKNOWN" +msgstr "ERROR:DESCONOCIDO" + +#: engine.c:209 +msgid "" +"Too many players requested.\n" +"" +msgstr "" +"demasiados jugadores solicitados.\n" +"" + +#: engine.c:234 +#, c-format +msgid "" +"%s strides defiantly into the arena. The referee casts the formal Dispel Magic and Anti-Spell on %s....\n" +"" +msgstr "" +"%s entre desafiantemente en la arena. El árbitro murmura el hechizo formal de mágia y contrahechizo hacia %s....\n" +"" + +#: engine.c:235 +msgid "" +"You advance confidently into the arena. The referee casts the formal Dispel Magic and Anti-Spell on you....\n" +"" +msgstr "" +"Tu avancias confidentemente en la arena. El árbitro murmura el hechizo formal de mágia y contrahechizo hacia ti....\n" +"" + +#: engine.c:260 +#, c-format +msgid "" +"%s\n" +"" +msgstr "" +"%s\n" +"" + +#: engine.c:311 +#, c-format +msgid "" +"In a fit of absent-mindedness, %s repeats %s gestures from last turn: %s with the left hand, %s with the right.\n" +"" +msgstr "" +"En un momento de ausencia mental, %s repite %s gestos del ultimo turno: %s con la mano izquierda, %s con la mano derecha.\n" +"" + +#: engine.c:326 +#, c-format +msgid "" +"%s accidentally makes a %s with %s %s hand.\n" +"" +msgstr "" +"%s accidentalmente hace un %s con %s %s mano.\n" +"" + +#: engine.c:326 +#: engine.c:355 +#: engine.c:414 +#: execute2.c:88 +#: execute2.c:89 +#: execute2.c:152 +#: execute2.c:153 +#: execute2.c:213 +#: execute2.c:214 +#: stupid.c:187 +#: xgest.c:213 +#: xquery.c:362 +msgid "right" +msgstr "derecha" + +#: engine.c:326 +#: engine.c:355 +#: engine.c:414 +#: execute2.c:88 +#: execute2.c:89 +#: execute2.c:152 +#: execute2.c:153 +#: execute2.c:213 +#: execute2.c:214 +#: stupid.c:187 +#: xgest.c:213 +#: xquery.c:362 +msgid "left" +msgstr "izquierda" + +#: engine.c:355 +#, c-format +msgid "" +"%s mysteriously makes a %s with %s %s hand.\n" +"" +msgstr "" +"%s misteriosamente hace un %s con %s %s mano.\n" +"" + +#: engine.c:372 +#, c-format +msgid "" +"Terrified, %s does nothing with %s left hand.\n" +"" +msgstr "" +"Atterorizado, %s no hace nada con %s la mano izquierda.\n" +"" + +#: engine.c:375 +#, c-format +msgid "" +"Terrified, %s does nothing with %s right hand.\n" +"" +msgstr "" +"Atterorizado, %s no hace nada con %s la mano derecha.\n" +"" + +#: engine.c:378 +#, c-format +msgid "" +"Terrified, %s does nothing with either hand.\n" +"" +msgstr "" + +#: engine.c:381 +#, c-format +msgid "" +"%s is terrified, but manages %s gestures anyway.\n" +"" +msgstr "" +"%s está atterorizado pero manega %s los gestos de todos modos.\n" +"" + +#: engine.c:408 +msgid "" +"ERROR: paralysis previous_gesture returned bad value.\n" +"" +msgstr "" +"ERROR: paralysis gestión_previa retorno mal valor.\n" +"" + +#: engine.c:414 +#, c-format +msgid "" +"%s's %s hand is frozen in a %s.\n" +"" +msgstr "" +"%s's %s la mano está conjelada en un %s.\n" +"" + +#: engine.c:429 +msgid "" +"You cannot stab with both hands!\n" +"" +msgstr "" +"Tu no puedes apuñalar com ambas manos!\n" +"" + +#: engine.c:448 +#, c-format +msgid "" +"%s makes the gesture of surrender!\n" +"" +msgstr "" +"%s hace el gesto de rendimiento!\n" +"" + +#: engine.c:449 +msgid "" +"Oh, dear. You seem to have surrendered.\n" +"" +msgstr "" +"Oh guerido, parece que te rendiste.\n" +"" + +#: engine.c:509 +#: engine.c:523 +#, c-format +msgid "" +"%s accelerates into a flickering blur.\n" +"" +msgstr "" + +#: engine.c:510 +msgid "" +"Everything around you stops dead. The world is silent and motionless.\n" +"" +msgstr "" +"Todo a tu alrededor está muerto. El mundo está silencioso y inmovil.\n" +"" + +#: engine.c:513 +#: engine.c:527 +#, c-format +msgid "" +"%s reappears, moving at normal speed.\n" +"" +msgstr "" +"%s reaparece, moviendose a una velocidad normal.\n" +"" + +#: engine.c:514 +msgid "" +"Everything begins moving again.\n" +"" +msgstr "" +"Todo empieza a moverze otra vez.\n" +"" + +#: engine.c:544 +#: engine.c:564 +#, c-format +msgid "" +"%s begins moving very quickly.\n" +"" +msgstr "" +"%s empieza a moverse muy rapidamente.\n" +"" + +#: engine.c:545 +msgid "" +"Everyone else begins moving very slowly.\n" +"" +msgstr "" +"Todos los otros empiezan a moverse muy lentamente.\n" +"" + +#: engine.c:549 +#: engine.c:569 +#, c-format +msgid "" +"%s is still moving quickly.\n" +"" +msgstr "" +"%s aun se mueve rapidamente.\n" +"" + +#: engine.c:550 +msgid "" +"Everyone else is still moving slowly.\n" +"" +msgstr "" +"Todos los otros aun se mueven lentamente.\n" +"" + +#: engine.c:553 +#: engine.c:573 +#: execute2.c:515 +#, c-format +msgid "" +"%s slows down to normal speed.\n" +"" +msgstr "" +"%s baja a la velocidad normal.\n" +"" + +#: engine.c:554 +#: execute2.c:517 +msgid "" +"Everyone comes back up to normal speed.\n" +"" +msgstr "" +"Todos vuelven a la velocidad normal.\n" +"" + +#: engine.c:730 +msgid "ERROR:NOBODY-wiz" +msgstr "ERROR:NADIE-wiz" + +#: engine.c:735 +msgid "ERROR:NOBODY-cre" +msgstr "ERROR:NADIE-cre" + +#: engine.c:740 +msgid "ERROR:NOBODY-corpse" +msgstr "ERROR:NINGUN-cuerpo" + +#: engine.c:742 +msgid "ERROR:NOBODY-atall" +msgstr "ERROR:NADIE-atall" + +#: engine.c:947 +msgid "" +"ERROR: Unknown turn type\n" +"" +msgstr "" +"ERROR: Type de movida desconocida\n" +"" + +#: engine.c:996 +msgid "" +"ERROR in restrict_gestures\n" +"" +msgstr "" +"ERROR en gestión_restringida\n" +"" + +#: engine.c:1169 +msgid "" +"ERROR: Unable to find Delayed spell.\n" +"" +msgstr "" +"ERROR: Imposible hallar hechizo dilatado.\n" +"" + +#: engine.c:1174 +#, c-format +msgid "" +"You cast %s; the spell is caught in the web of your Delayed Effect. It rises to hover by your head.\n" +"" +msgstr "" + +#: engine.c:1175 +#, c-format +msgid "" +"%s casts %s; the spell is caught in the web of %s Delayed Effect.\n" +"" +msgstr "" + +#: engine.c:1178 +#, c-format +msgid "" +"The %s spell that you had caught previously is lost.\n" +"" +msgstr "" + +#: engine.c:1179 +#, c-format +msgid "" +"The %s spell that %s had caught previously is lost.\n" +"" +msgstr "" + +#: engine.c:1220 +#, c-format +msgid "" +"Your Permanency spell wraps itself around your %s spell.\n" +"" +msgstr "" + +#: engine.c:1280 +#, c-format +msgid "" +"%s starts to look hot and flushed.\n" +"" +msgstr "" + +#: engine.c:1282 +msgid "" +"You begin to feel somewhat feverish.\n" +"" +msgstr "" + +#: engine.c:1287 +#, c-format +msgid "" +"%s looks even more flushed.\n" +"" +msgstr "" + +#: engine.c:1289 +msgid "" +"Your fever is growing worse.\n" +"" +msgstr "" + +#: engine.c:1294 +#, c-format +msgid "" +"%s is flushed and sweating, and seems to be somewhat unsteady on %s feet.\n" +"" +msgstr "" + +#: engine.c:1296 +msgid "" +"You are very hot and somewhat dizzy, and your bones are starting to ache.\n" +"" +msgstr "" + +#: engine.c:1301 +#, c-format +msgid "" +"%s is both flushed and shivering violently.\n" +"" +msgstr "" + +#: engine.c:1303 +msgid "" +"You are feverish and shivering at the same time, and you ache all over.\n" +"" +msgstr "" + +#: engine.c:1308 +#, c-format +msgid "" +"%s crumples to the ground, agony on %s sweating features.\n" +"" +msgstr "" + +#: engine.c:1310 +msgid "" +"Your knees give way and you fall to the ground. Your head pounds unmercifully as consciousness slips away....\n" +"" +msgstr "" + +#: engine.c:1325 +#, c-format +msgid "" +"%s is looking pale.\n" +"" +msgstr "" +"%s se mira pálido.\n" +"" + +#: engine.c:1327 +msgid "" +"Your toes suddenly feel slightly numb.\n" +"" +msgstr "" + +#: engine.c:1332 +#, c-format +msgid "" +"%s is looking very pale and weak.\n" +"" +msgstr "" + +#: engine.c:1334 +msgid "" +"Your hands and feet are getting numb.\n" +"" +msgstr "" + +#: engine.c:1339 +#, c-format +msgid "" +"%s is white as a sheet, and seems a little unsteady.\n" +"" +msgstr "" + +#: engine.c:1341 +msgid "" +"Your limbs are heavy, and your fingers are getting clumsy.\n" +"" +msgstr "" + +#: engine.c:1346 +#, c-format +msgid "" +"%s is having difficulty staying on %s feet.\n" +"" +msgstr "" + +#: engine.c:1348 +msgid "" +"You cannot feel your hands and feet, and your vision is becoming clouded.\n" +"" +msgstr "" + +#: engine.c:1353 +#, c-format +msgid "" +"%s collapses in a heap, twitching slightly.\n" +"" +msgstr "" + +#: engine.c:1355 +msgid "" +"You stumble and fall to your knees, vision dimming. Numbness creeps through your bones, and you cannot tell if you are still breathing....\n" +"" +msgstr "" + +#: engine.c:1372 +#, c-format +msgid "" +"%s has died!\n" +"" +msgstr "" +"%s se ha muerto!\n" +"" + +#: engine.c:1373 +msgid "" +"You have died!\n" +"" +msgstr "" +"Te has muerto!\n" +"" + +#: engine.c:1386 +#, c-format +msgid "" +"The Delayed Effect spell hovering around %s dies away.\n" +"" +msgstr "" + +#: engine.c:1387 +msgid "" +"The Delayed Effect spell hovering around you dies away.\n" +"" +msgstr "" + +#: engine.c:1395 +#, c-format +msgid "" +"The Permanency spell hovering around %s dies away.\n" +"" +msgstr "" + +#: engine.c:1396 +msgid "" +"The Permanency spell hovering around you dies away.\n" +"" +msgstr "" + +#: engine.c:1403 +#, c-format +msgid "" +"%s has died.\n" +"" +msgstr "" +"%s has muerto.\n" +"" + +#: engine.c:1427 +#, c-format +msgid "" +"%s is the sole survivor!\n" +"" +msgstr "" +"%s es el único sobreviviente!\n" +"" + +#: engine.c:1434 +#, c-format +msgid "" +"%s has surrendered to %s!\n" +"" +msgstr "" + +#: engine.c:1438 +#, c-format +msgid "" +"All of %s's opponents have surrendered!\n" +"" +msgstr "" + +#: engine.c:1447 +msgid "" +"Everyone is dead!\n" +"" +msgstr "" +"Todos están muertos!\n" +"" + +#: engine.c:1455 +#, c-format +msgid "" +"%s finds that there is nobody left to surrender to!\n" +"" +msgstr "" + +#: engine.c:1461 +msgid "" +"The survivors have all surrendered to each other!\n" +"" +msgstr "" + +#: engine.c:1463 +msgid "" +"Everyone has surrendered to each other!\n" +"" +msgstr "" + +#: espells.c:25 +msgid "Dispel Magic" +msgstr "" + +#: espells.c:26 +msgid "Summon Elemental" +msgstr "enviar elemento" + +#: espells.c:27 +msgid "Magic Mirror" +msgstr "espejo mágico" + +#: espells.c:28 +#: espells.c:58 +msgid "Lightning Bolt" +msgstr "relámpago" + +#: espells.c:29 +msgid "Cure Heavy Wounds" +msgstr "curar heridas graves" + +#: espells.c:30 +msgid "Cure Light Wounds" +msgstr "curar heridas leves" + +#: espells.c:31 +msgid "Amnesia" +msgstr "amnesia" + +#: espells.c:32 +msgid "Confusion" +msgstr "confusión" + +#: espells.c:33 +msgid "Disease" +msgstr "enfermedad" + +#: espells.c:34 +msgid "Blindness" +msgstr "ceguera" + +#: espells.c:35 +msgid "Delayed Effect" +msgstr "efecto retardo" + +#: espells.c:36 +msgid "Raise Dead" +msgstr "revivir" + +#: espells.c:37 +msgid "Poison" +msgstr "veneno" + +#: espells.c:38 +msgid "Paralysis" +msgstr "parálisis" + +#: espells.c:39 +msgid "Summon Troll" +msgstr "enviar troll" + +#: espells.c:40 +msgid "Fireball" +msgstr "bola de fuego" + +#: espells.c:41 +msgid "Shield" +msgstr "escudo" + +#: espells.c:42 +msgid "SURRENDER" +msgstr "RENDIRSE" + +#: espells.c:43 +msgid "Remove Enchantment" +msgstr "levantar hechizo" + +#: espells.c:44 +msgid "Invisibility" +msgstr "invisibilidad" + +#: espells.c:45 +msgid "Charm Monster" +msgstr "embrujar monstruo" + +#: espells.c:46 +msgid "Charm Person" +msgstr "embrujar persona" + +#: espells.c:47 +msgid "Summon Ogre" +msgstr "enviar ogro" + +#: espells.c:48 +msgid "Finger of Death" +msgstr "dedo de la muerte" + +#: espells.c:49 +msgid "Haste" +msgstr "agilidad" + +#: espells.c:50 +msgid "Missile" +msgstr "misíl" + +#: espells.c:51 +msgid "Summon Goblin" +msgstr "enviar goblin" + +#: espells.c:52 +msgid "Anti-Spell" +msgstr "ante-hechizo" + +#: espells.c:53 +msgid "Permanency" +msgstr "permanente" + +#: espells.c:54 +msgid "Time Stop" +msgstr "detener tiempo" + +#: espells.c:55 +msgid "Resist Cold" +msgstr "resistir frío" + +#: espells.c:56 +msgid "Fear" +msgstr "miedo" + +#: espells.c:57 +msgid "Fire Storm" +msgstr "tormenta de fuego" + +#: espells.c:59 +msgid "Cause Light Wounds" +msgstr "causar heridas leves" + +#: espells.c:60 +msgid "Summon Giant" +msgstr "enviar gigante" + +#: espells.c:61 +msgid "Cause Heavy Wounds" +msgstr "causar heridas graves" + +#: espells.c:62 +#: espells.c:66 +msgid "Counter-Spell" +msgstr "contra-hechizo" + +#: espells.c:63 +msgid "Ice Storm" +msgstr "tormenta de hielo" + +#: espells.c:64 +msgid "Resist Heat" +msgstr "resistir calor" + +#: espells.c:65 +msgid "Protection From Evil" +msgstr "protección del mal" + +#: etran.c:22 +msgid "" +"Spellcast Game Transcript\n" +"\n" +"" +msgstr "" + +#: etran.c:87 +msgid " (Time Stop)" +msgstr "" + +#: etran.c:90 +msgid " (Haste)" +msgstr "" + +#: etran.c:97 +#, c-format +msgid "" +"\n" +"\tTurn %d%s:\n" +"" +msgstr "" + +#: etran.c:105 +#, c-format +msgid "" +"%s (%d): %c %c\n" +"" +msgstr "" + +#: etran.c:110 +#, c-format +msgid "" +"%s (%d): [no gestures]\n" +"" +msgstr "" + +#: etran.c:119 +#, c-format +msgid "" +"%s (%d)\n" +"" +msgstr "" + +#: etran.c:123 +#: main.c:185 +#: stupid.c:417 +#: stupid.c:430 +msgid "" +"\n" +"" +msgstr "" + +#: execute2.c:29 +#, c-format +msgid "" +"The Amnesia spell curls around %s's mind.\n" +"" +msgstr "" + +#: execute2.c:31 +msgid "" +"The Amnesia spell curls around your mind.\n" +"" +msgstr "" + +#: execute2.c:44 +#, c-format +msgid "" +"The Confusion spell curls around %s's mind.\n" +"" +msgstr "" + +#: execute2.c:46 +msgid "" +"The Confusion spell curls around your mind.\n" +"" +msgstr "" + +#: execute2.c:56 +#, c-format +msgid "" +"The Fear spell curls around %s's mind.\n" +"" +msgstr "" + +#: execute2.c:58 +msgid "" +"The Fear spell curls around your mind.\n" +"" +msgstr "" + +#: execute2.c:67 +#, c-format +msgid "" +"Not knowing which of %s's hands to strike, the Paralysis spell fizzles.\n" +"" +msgstr "" + +#: execute2.c:68 +msgid "" +"Not knowing which of your hands to strike, the Paralysis spell fizzles.\n" +"" +msgstr "" + +#: execute2.c:88 +#, c-format +msgid "" +"The Paralysis spell curls around your %s hand.\n" +"" +msgstr "" + +#: execute2.c:89 +#, c-format +msgid "" +"The Paralysis spell curls around %s's %s hand.\n" +"" +msgstr "" + +#: execute2.c:99 +#, c-format +msgid "" +"The Paralysis spell curls around %s's mind.\n" +"" +msgstr "" + +#: execute2.c:107 +#, c-format +msgid "" +"The Charm Monster spell swirls around %s's mind, but cannot sink in.\n" +"" +msgstr "" + +#: execute2.c:108 +msgid "" +"The Charm Monster spell swirls around your mind, but cannot sink in.\n" +"" +msgstr "" + +#: execute2.c:113 +#, c-format +msgid "" +"The Charm Monster spell strikes %s, and then seems to freeze. Referees stomp into the arena and glare at the spell. Then they glare at each other. Then they glare at the spell again. They huddle together, muttering and glowering. Eventually they pick the spell up bodily and carry it off the field.\n" +"" +msgstr "" + +#: execute2.c:124 +#, c-format +msgid "" +"The Charm Monster spell curls around %s, and %s smiles dopily at %s.\n" +"" +msgstr "" + +#: execute2.c:134 +#, c-format +msgid "" +"Not knowing which of %s's hands to strike, the Charm Person spell fizzles.\n" +"" +msgstr "" + +#: execute2.c:135 +msgid "" +"Not knowing which of your hands to strike, the Charm Person spell fizzles.\n" +"" +msgstr "" + +#: execute2.c:152 +#, c-format +msgid "" +"The Charm Person spell curls around your %s hand.\n" +"" +msgstr "" + +#: execute2.c:153 +#, c-format +msgid "" +"The Charm Person spell curls around %s's %s hand.\n" +"" +msgstr "" + +#: execute2.c:159 +#, c-format +msgid "" +"The Charm Person spell swirls around %s's mind, but cannot sink in.\n" +"" +msgstr "" + +#: execute2.c:169 +#, c-format +msgid "" +"%s is still afflicted with Amnesia.\n" +"" +msgstr "" + +#: execute2.c:171 +msgid "" +"You are still afflicted with Amnesia.\n" +"" +msgstr "" + +#: execute2.c:177 +#, c-format +msgid "" +"%s is still afflicted with Fear.\n" +"" +msgstr "" + +#: execute2.c:179 +msgid "" +"You are still afflicted with Fear.\n" +"" +msgstr "" + +#: execute2.c:188 +#, c-format +msgid "" +"%s is still enamoured of %s.\n" +"" +msgstr "" + +#: execute2.c:195 +#, c-format +msgid "" +"%s is still afflicted with Confusion.\n" +"" +msgstr "" + +#: execute2.c:197 +msgid "" +"You are still afflicted with Confusion.\n" +"" +msgstr "" + +#: execute2.c:205 +#, c-format +msgid "" +"%s is still Charmed.\n" +"" +msgstr "" + +#: execute2.c:206 +msgid "" +"You are still Charmed.\n" +"" +msgstr "" + +#: execute2.c:213 +#, c-format +msgid "" +"%s's %s hand is still Paralyzed.\n" +"" +msgstr "" + +#: execute2.c:214 +#, c-format +msgid "" +"Your %s hand is still Paralyzed.\n" +"" +msgstr "" + +#: execute2.c:218 +#, c-format +msgid "" +"%s is still afflicted with Paralysis.\n" +"" +msgstr "" + +#: execute2.c:226 +#, c-format +msgid "" +"ERROR: unknown perm->mind_spell %d\n" +"" +msgstr "" + +#: execute2.c:235 +#, c-format +msgid "" +"%s sneezes loudly.\n" +"" +msgstr "" + +#: execute2.c:237 +msgid "" +"You sneeze loudly.\n" +"" +msgstr "" + +#: execute2.c:247 +#, c-format +msgid "" +"%s suddenly looks somewhat pale.\n" +"" +msgstr "" + +#: execute2.c:249 +msgid "" +"A flash of pain lances along your bones, and then fades away.\n" +"" +msgstr "" + +#: execute2.c:258 +#, c-format +msgid "" +"The Anti-Spell fizzes away into nothing as it approaches %s.\n" +"" +msgstr "" + +#: execute2.c:260 +msgid "" +"The Anti-Spell fizzes away into nothing as it approaches you.\n" +"" +msgstr "" + +#: execute2.c:266 +#, c-format +msgid "" +"The Anti-Spell whizzes through %s without any effect.\n" +"" +msgstr "" + +#: execute2.c:271 +#, c-format +msgid "" +"The Anti-Spell jolts %s, causing the magical energies around %s hands to flicker.\n" +"" +msgstr "" + +#: execute2.c:272 +msgid "" +"The Anti-Spell jolts you, interrupting the flow of magical energy in your hands.\n" +"" +msgstr "" + +#: execute2.c:282 +#, c-format +msgid "" +"The Delayed Effect fizzes away into nothing as it approaches %s.\n" +"" +msgstr "" + +#: execute2.c:284 +msgid "" +"The Delayed Effect fizzes away into nothing as it approaches you.\n" +"" +msgstr "" + +#: execute2.c:290 +#, c-format +msgid "" +"The Delayed Effect whizzes through %s without any effect.\n" +"" +msgstr "" + +#: execute2.c:295 +#, c-format +msgid "" +"The Delayed Effect spreads out around %s.\n" +"" +msgstr "" + +#: execute2.c:296 +msgid "" +"The Delayed Effect spreads out in a cloud around you, waiting for you to complete a spell.\n" +"" +msgstr "" + +#: execute2.c:305 +#, c-format +msgid "" +"The Permanency fizzes away into nothing as it approaches %s.\n" +"" +msgstr "" + +#: execute2.c:307 +msgid "" +"The Permanency fizzes away into nothing as it approaches you.\n" +"" +msgstr "" + +#: execute2.c:313 +#, c-format +msgid "" +"The Permanency whizzes through %s without any effect.\n" +"" +msgstr "" + +#: execute2.c:318 +#, c-format +msgid "" +"The Permanency spreads out around %s.\n" +"" +msgstr "" + +#: execute2.c:319 +msgid "" +"The Permanency spreads out in a cloud around you, waiting for you to complete a spell.\n" +"" +msgstr "" + +#: execute2.c:328 +#, c-format +msgid "" +"%s blinks, then stumbles slightly as %s eyes turn milky.\n" +"" +msgstr "" + +#: execute2.c:330 +msgid "" +"A haze suddenly appears before your eyes. The world dims rapidly, and you are shortly enveloped in total darkness.\n" +"" +msgstr "" + +#: execute2.c:336 +#, c-format +msgid "" +"%s is still blind.\n" +"" +msgstr "" + +#: execute2.c:338 +msgid "" +"You are still blind.\n" +"" +msgstr "" + +#: execute2.c:348 +#, c-format +msgid "" +"The milky cast fades from %s's eyes.\n" +"" +msgstr "" + +#: execute2.c:350 +msgid "" +"The dark veil falls away from your eyes.\n" +"" +msgstr "" + +#: execute2.c:359 +#, c-format +msgid "" +"%s turns quietly translucent, and fades from view.\n" +"" +msgstr "" + +#: execute2.c:361 +msgid "" +"The world becomes strangely misted in front of your eyes. Looking down, you see that your hands are no longer visible.\n" +"" +msgstr "" + +#: execute2.c:367 +#, c-format +msgid "" +"%s is still invisible.\n" +"" +msgstr "" + +#: execute2.c:369 +msgid "" +"You are still invisible.\n" +"" +msgstr "" + +#: execute2.c:379 +#, c-format +msgid "" +"A %s-shaped shadow appears, and %s rapidly becomes fully visible.\n" +"" +msgstr "" + +#: execute2.c:381 +msgid "" +"Your limbs have become visible again.\n" +"" +msgstr "" + +#: execute2.c:406 +#, c-format +msgid "" +"The Remove Enchantment whirls its dissipative energies around %s.\n" +"" +msgstr "" + +#: execute2.c:408 +msgid "" +"The Remove Enchantment whirls its dissipative energies around you.\n" +"" +msgstr "" + +#: execute2.c:414 +#, c-format +msgid "" +"You are freed of the %s.\n" +"" +msgstr "" + +#: execute2.c:415 +#: execute2.c:425 +#, c-format +msgid "" +"%s is freed of the %s.\n" +"" +msgstr "" + +#: execute2.c:432 +msgid "" +"Your blue aura of Resist Heat fades away.\n" +"" +msgstr "" + +#: execute2.c:433 +#, c-format +msgid "" +"%s's blue aura of Resist Heat fades away.\n" +"" +msgstr "" + +#: execute2.c:443 +msgid "" +"Your pink aura of Resist Cold fades away.\n" +"" +msgstr "" + +#: execute2.c:444 +#, c-format +msgid "" +"%s's pink aura of Resist Cold fades away.\n" +"" +msgstr "" + +#: execute2.c:454 +#: execute2.c:874 +#, c-format +msgid "" +"%s seems to have stopped shivering, and %s skin is no longer flushed and damp.\n" +"" +msgstr "" + +#: execute2.c:456 +#: execute2.c:876 +msgid "" +"Your fever suddenly abates. You feel much better.\n" +"" +msgstr "" + +#: execute2.c:463 +#, c-format +msgid "" +"%s's color improves dramatically.\n" +"" +msgstr "" + +#: execute2.c:465 +msgid "" +"The numbness and heaviness falls from your limbs. You feel much better.\n" +"" +msgstr "" + +#: execute2.c:473 +#, c-format +msgid "" +"The Delayed Effect spell hovering around %s disintegrates.\n" +"" +msgstr "" + +#: execute2.c:475 +msgid "" +"The Delayed Effect spell hovering around you disintegrates.\n" +"" +msgstr "" + +#: execute2.c:482 +#, c-format +msgid "" +"The %s spell that you had caught in a Delayed Effect is lost.\n" +"" +msgstr "" + +#: execute2.c:483 +#, c-format +msgid "" +"The %s spell that %s had caught in a Delayed Effect is lost.\n" +"" +msgstr "" + +#: execute2.c:491 +#, c-format +msgid "" +"The Permanency spell hovering around %s disintegrates.\n" +"" +msgstr "" + +#: execute2.c:493 +msgid "" +"The Permanency spell hovering around you disintegrates.\n" +"" +msgstr "" + +#: execute2.c:501 +#, c-format +msgid "" +"%s's circle of Protection flickers out.\n" +"" +msgstr "" + +#: execute2.c:503 +msgid "" +"Your circle of Protection flickers out.\n" +"" +msgstr "" + +#: execute2.c:522 +#, c-format +msgid "" +"The Haste on %s is nulled.\n" +"" +msgstr "" + +#: execute2.c:524 +msgid "" +"The Haste on you is nulled.\n" +"" +msgstr "" + +#: execute2.c:532 +#, c-format +msgid "" +"The Time Stop on %s is nulled.\n" +"" +msgstr "" + +#: execute2.c:534 +msgid "" +"The Time Stop on you is nulled.\n" +"" +msgstr "" + +#: execute2.c:541 +#, c-format +msgid "" +"%s becomes visible again, rather suddenly.\n" +"" +msgstr "" + +#: execute2.c:543 +msgid "" +"Your body tingles and becomes visible again.\n" +"" +msgstr "" + +#: execute2.c:550 +#, c-format +msgid "" +"%s's eyes abruptly clear.\n" +"" +msgstr "" + +#: execute2.c:552 +msgid "" +"Sight bursts in upon you again.\n" +"" +msgstr "" + +#: execute2.c:576 +#, c-format +msgid "" +"The knife slides off of %s's Shield.\n" +"" +msgstr "" + +#: execute2.c:578 +msgid "" +"The knife slides off of your Shield.\n" +"" +msgstr "" + +#: execute2.c:583 +#, c-format +msgid "" +"The knives slide off of %s's Shield.\n" +"" +msgstr "" + +#: execute2.c:585 +msgid "" +"The knives slide off of your Shield.\n" +"" +msgstr "" + +#: execute2.c:593 +#, c-format +msgid "" +"The knife strikes %s.\n" +"" +msgstr "" + +#: execute2.c:595 +msgid "" +"The knife strikes you.\n" +"" +msgstr "" + +#: execute2.c:600 +#, c-format +msgid "" +"The %s knives strike you.\n" +"" +msgstr "" + +#: execute2.c:601 +#, c-format +msgid "" +"The %s knives strike %s.\n" +"" +msgstr "" + +#: execute2.c:615 +#, c-format +msgid "" +"The Missile shatters on %s's Shield.\n" +"" +msgstr "" + +#: execute2.c:617 +msgid "" +"The Missile shatters on your Shield.\n" +"" +msgstr "" + +#: execute2.c:622 +#, c-format +msgid "" +"The Missiles shatter on %s's Shield.\n" +"" +msgstr "" + +#: execute2.c:624 +msgid "" +"The Missiles shatter on your Shield.\n" +"" +msgstr "" + +#: execute2.c:632 +#, c-format +msgid "" +"The Missile strikes %s.\n" +"" +msgstr "" + +#: execute2.c:634 +msgid "" +"The Missile strikes you.\n" +"" +msgstr "" + +#: execute2.c:639 +#, c-format +msgid "" +"The %s Missiles strike you.\n" +"" +msgstr "" + +#: execute2.c:640 +#, c-format +msgid "" +"The %s Missiles strike %s.\n" +"" +msgstr "" + +#: execute2.c:653 +#, c-format +msgid "" +"The Cause Light Wounds spell tears into %s.\n" +"" +msgstr "" + +#: execute2.c:655 +msgid "" +"The Cause Light Wounds spell tears into you.\n" +"" +msgstr "" + +#: execute2.c:660 +#, c-format +msgid "" +"The %s Cause Light Wounds spells tear into you.\n" +"" +msgstr "" + +#: execute2.c:661 +#, c-format +msgid "" +"The %s Cause Light Wounds spells tear into %s.\n" +"" +msgstr "" + +#: execute2.c:673 +#, c-format +msgid "" +"The Cause Heavy Wounds spell tears into %s.\n" +"" +msgstr "" + +#: execute2.c:675 +msgid "" +"The Cause Heavy Wounds spell tears painfully into you.\n" +"" +msgstr "" + +#: execute2.c:680 +#, c-format +msgid "" +"The %s Cause Heavy Wounds spells tear painfully into you.\n" +"" +msgstr "" + +#: execute2.c:681 +#, c-format +msgid "" +"The %s Cause Heavy Wounds spells tear into %s.\n" +"" +msgstr "" + +#: execute2.c:693 +#, c-format +msgid "" +"The Lightning Bolt staggers %s.\n" +"" +msgstr "" + +#: execute2.c:695 +msgid "" +"The Lightning Bolt strikes you, staggering and nearly deafening you.\n" +"" +msgstr "" + +#: execute2.c:700 +#, c-format +msgid "" +"The %s Lightning Bolts crash into you; the concussions nearly knock you off your feet.\n" +"" +msgstr "" + +#: execute2.c:701 +#, c-format +msgid "" +"The %s Lightning Bolts strike %s, staggering %s.\n" +"" +msgstr "" + +#: execute2.c:714 +#, c-format +msgid "" +"The Fireball strikes %s, but the flames slide off %s Resist Heat aura.\n" +"" +msgstr "" + +#: execute2.c:716 +msgid "" +"The Fireball strikes you, but you feel only a slight warmth.\n" +"" +msgstr "" + +#: execute2.c:721 +#, c-format +msgid "" +"The Fireballs strike %s, but the flames slide off %s Resist Heat aura.\n" +"" +msgstr "" + +#: execute2.c:723 +msgid "" +"The Fireballs strike you, but you feel only a slight warmth.\n" +"" +msgstr "" + +#: execute2.c:731 +#, c-format +msgid "" +"The Fireball strikes %s.\n" +"" +msgstr "" + +#: execute2.c:733 +msgid "" +"The Fireball strikes you with a roar of flame.\n" +"" +msgstr "" + +#: execute2.c:738 +#, c-format +msgid "" +"The %s Fireballs blast into you, surrounding you with blinding flame.\n" +"" +msgstr "" + +#: execute2.c:739 +#, c-format +msgid "" +"The %s Fireballs strike %s.\n" +"" +msgstr "" + +#: execute2.c:752 +#, c-format +msgid "" +"The Counter-Spell around %s cancels the Fire Storm near %s.\n" +"" +msgstr "" + +#: execute2.c:754 +msgid "" +"The Counter-Spell cancels the Fire Storm in your vicinity.\n" +"" +msgstr "" + +#: execute2.c:760 +#, c-format +msgid "" +"The Fire Storm washes over %s, who remains unharmed inside %s blue aura.\n" +"" +msgstr "" + +#: execute2.c:762 +msgid "" +"The Fire Storm washes over you, but you feel only a gentle warmth.\n" +"" +msgstr "" + +#: execute2.c:768 +#, c-format +msgid "" +"The Fire Storm washes over %s.\n" +"" +msgstr "" + +#: execute2.c:770 +msgid "" +"The Fire Storm washes over you.\n" +"" +msgstr "" + +#: execute2.c:780 +#, c-format +msgid "" +"The Counter-Spell around %s cancels the Ice Storm near %s.\n" +"" +msgstr "" + +#: execute2.c:782 +msgid "" +"The Counter-Spell cancels the Ice Storm in your vicinity.\n" +"" +msgstr "" + +#: execute2.c:791 +#, c-format +msgid "" +"The Ice Storm washes over %s, who remains unharmed inside %s pink aura.\n" +"" +msgstr "" + +#: execute2.c:793 +msgid "" +"The Ice Storm washes over you, but you feel only a gentle coolness.\n" +"" +msgstr "" + +#: execute2.c:799 +#, c-format +msgid "" +"The Ice Storm lashes at %s.\n" +"" +msgstr "" + +#: execute2.c:801 +msgid "" +"The Ice Storm lashes at you.\n" +"" +msgstr "" + +#: execute2.c:810 +#, c-format +msgid "" +"%s turns very pale and drops to %s knees, clutching at %s chest....\n" +"" +msgstr "" + +#: execute2.c:812 +msgid "" +"You feel a sudden pressure in your chest, as if an iron band was squeezing your heart. You fall to your knees as the world dims....\n" +"" +msgstr "" + +#: execute2.c:836 +#, c-format +msgid "" +"The Cure Light Wounds spell weaves around %s, and %s wounds fade.\n" +"" +msgstr "" + +#: execute2.c:838 +msgid "" +"The Cure Light Wounds spell weaves around you, and the pain of your wounds lessens.\n" +"" +msgstr "" + +#: execute2.c:843 +#, c-format +msgid "" +"The %s Cure Light Wounds spells weave around you, and the pain of your wounds lessens.\n" +"" +msgstr "" + +#: execute2.c:844 +#, c-format +msgid "" +"The %s Cure Light Wounds spells weave around %s, and %s wounds fade.\n" +"" +msgstr "" + +#: execute2.c:856 +#, c-format +msgid "" +"The Cure Heavy Wounds spell weaves around %s, and %s wounds heal.\n" +"" +msgstr "" + +#: execute2.c:858 +msgid "" +"The Cure Heavy Wounds spell weaves around you, and your wounds heal considerably.\n" +"" +msgstr "" + +#: execute2.c:863 +#, c-format +msgid "" +"The %s Cure Heavy Wounds spells weave around you, and your wounds heal considerably.\n" +"" +msgstr "" + +#: execute2.c:864 +#, c-format +msgid "" +"The %s Cure Heavy Wounds spells weave around %s, and %s wounds heal.\n" +"" +msgstr "" + +#: execute2.c:885 +#, c-format +msgid "" +"The Raise Dead spell burns through %s. Although %s is not dead, the spell has a powerful healing effect.\n" +"" +msgstr "" + +#: execute2.c:887 +msgid "" +"The Raise Dead spell burns through you. Although you aren't dead, the spell has a powerful healing influence.\n" +"" +msgstr "" + +#: execute2.c:892 +#, c-format +msgid "" +"The %s Raise Dead spells burn through you. Although you aren't dead, the spells have a powerful healing influence.\n" +"" +msgstr "" + +#: execute2.c:893 +#, c-format +msgid "" +"The %s Raise Dead spells burn through %s. Although %s is not dead, the spells have a powerful healing effect.\n" +"" +msgstr "" + +#: execute2.c:906 +#, c-format +msgid "" +"%s is in perfect health again.\n" +"" +msgstr "" + +#: execute2.c:908 +msgid "" +"You are in perfect health again.\n" +"" +msgstr "" + +#: execute2.c:916 +#, c-format +msgid "" +"%s twitches, glows, and then jumps to %s feet! Except for a bit of incipient mold, %s is in perfect health again.\n" +"" +msgstr "" + +#: execute2.c:918 +msgid "" +"You are suddenly aware of a blast of energy running down every nerve! This is something of a shock, since you had just gotten used to being dead. Oh, well -- you'll be back eventually.\n" +"" +msgstr "" + +#: execute.c:111 +#, c-format +msgid "" +"ERROR: do not know how to permanent %d.\n" +"" +msgstr "" + +#: execute.c:122 +msgid "itself" +msgstr "" + +#: execute.c:124 +msgid "himself" +msgstr "el mismo" + +#: execute.c:126 +msgid "herself" +msgstr "ella misma" + +#: execute.c:128 +msgid "hirself" +msgstr "" + +#: execute.c:130 +msgid "ERROR-himself" +msgstr "" + +#: execute.c:139 +#: execute.c:156 +msgid "it" +msgstr "" + +#: execute.c:141 +msgid "him" +msgstr "el" + +#: execute.c:143 +#: execute.c:177 +msgid "her" +msgstr "ella" + +#: execute.c:145 +#: execute.c:179 +msgid "hir" +msgstr "" + +#: execute.c:147 +msgid "ERROR-him" +msgstr "" + +#: execute.c:158 +msgid "he" +msgstr "el" + +#: execute.c:160 +msgid "she" +msgstr "ella" + +#: execute.c:162 +msgid "ke" +msgstr "" + +#: execute.c:164 +msgid "ERROR-he" +msgstr "" + +#: execute.c:173 +msgid "its" +msgstr "su" + +#: execute.c:175 +msgid "his" +msgstr "su" + +#: execute.c:181 +msgid "ERROR-his" +msgstr "" + +#: execute.c:192 +msgid "zero" +msgstr "cero" + +#: execute.c:194 +msgid "one" +msgstr "uno" + +#: execute.c:196 +msgid "two" +msgstr "dos" + +#: execute.c:198 +msgid "three" +msgstr "tres" + +#: execute.c:200 +msgid "four" +msgstr "cuatro" + +#: execute.c:202 +msgid "five" +msgstr "cinco" + +#: execute.c:204 +msgid "six" +msgstr "seis" + +#: execute.c:206 +msgid "seven" +msgstr "siete" + +#: execute.c:208 +msgid "eight" +msgstr "ocho" + +#: execute.c:210 +msgid "nine" +msgstr "nueve" + +#: execute.c:212 +msgid "ten" +msgstr "diz" + +#: execute.c:214 +#: stupid.c:518 +#, c-format +msgid "%d" +msgstr "" + +#: execute.c:232 +#: stupid.c:111 +#: stupid.c:278 +msgid ", " +msgstr "" + +#: execute.c:238 +#, c-format +msgid "%s %s" +msgstr "" + +#: execute.c:256 +#, c-format +msgid "" +"You are unable to see %s; your %s goes wild.\n" +"" +msgstr "" + +#: execute.c:257 +#, c-format +msgid "" +"%s is unable to see you; %s %s goes wild.\n" +"" +msgstr "" + +#: execute.c:258 +#, c-format +msgid "" +"%s is unable to see %s; %s %s goes wild.\n" +"" +msgstr "" + +#: execute.c:281 +msgid "with the left hand" +msgstr "con la mano izquierda" + +#: execute.c:284 +msgid "with the right hand" +msgstr "con la mano derecha" + +#: execute.c:287 +#: stupid.c:305 +#: xquery.c:466 +msgid "with both hands" +msgstr "con ambas manos" + +#: execute.c:290 +msgid "from a Delayed Effect" +msgstr "de un efecto de retardo" + +#: execute.c:293 +msgid "ERROR:BOTH??? hands" +msgstr "" + +#: execute.c:296 +msgid "ERROR:NEITHER??? hand" +msgstr "" + +#: execute.c:301 +msgid "over the arena" +msgstr "" + +#: execute.c:304 +msgid "up into the air" +msgstr "" + +#: execute.c:308 +msgid "at " +msgstr "a" + +#: execute.c:323 +#, c-format +msgid "at %s" +msgstr "" + +#: execute.c:328 +#, c-format +msgid "" +"%s stabs (%s) %s.\n" +"" +msgstr "" + +#: execute.c:330 +#, c-format +msgid "" +"%s casts %s%s (%s) %s.\n" +"" +msgstr "" + +#: execute.c:330 +msgid "Permanent " +msgstr "" + +#: execute.c:382 +msgid "" +"The magical energies in the arena fade away.\n" +"" +msgstr "" + +#: execute.c:431 +#: execute.c:507 +#: execute.c:591 +#: execute.c:601 +#, c-format +msgid "" +"The %s is dispelled.\n" +"" +msgstr "" + +#: execute.c:448 +#: execute.c:525 +#, c-format +msgid "" +"The %s is destroyed by your Counter-Spell.\n" +"" +msgstr "" + +#: execute.c:449 +#: execute.c:526 +#, c-format +msgid "" +"The %s is destroyed by the Counter-Spell around %s.\n" +"" +msgstr "" + +#: execute.c:499 +#, c-format +msgid "" +"%s's Lightning Bolt fizzles.\n" +"" +msgstr "" + +#: execute.c:500 +msgid "" +"Since you have already cast Lightning Bolt with that formulation, the spell fizzles.\n" +"" +msgstr "" + +#: execute.c:543 +#, c-format +msgid "" +"Your %s is reflected back and forth between %s's Magic Mirror and your own! It rapidly decays and dissipates.\n" +"" +msgstr "" + +#: execute.c:544 +#, c-format +msgid "" +"%s's %s is reflected back and forth between your Magic Mirror and %s own! It rapidly decays and dissipates.\n" +"" +msgstr "" + +#: execute.c:545 +#, c-format +msgid "" +"%s's %s is reflected back and forth between %s's Magic Mirror and %s own! It rapidly decays and dissipates.\n" +"" +msgstr "" + +#: execute.c:553 +#, c-format +msgid "" +"Your %s is reflected from %s's Magic Mirror back at you.\n" +"" +msgstr "" + +#: execute.c:554 +#, c-format +msgid "" +"%s's %s reflects from your Magic Mirror back at %s.\n" +"" +msgstr "" + +#: execute.c:555 +#, c-format +msgid "" +"%s's %s reflects from %s's Magic Mirror back at %s.\n" +"" +msgstr "" + +#: execute.c:571 +#, c-format +msgid "" +"The reflected %s is destroyed by your Counter-Spell.\n" +"" +msgstr "" + +#: execute.c:572 +#, c-format +msgid "" +"The reflected %s is destroyed by the Counter-Spell around %s.\n" +"" +msgstr "" + +#: execute.c:609 +msgid "" +"ERROR: Surrender got through to spell table setup\n" +"" +msgstr "" + +#: execute.c:620 +msgid "" +"ERROR: Unknown spell in spell table setup\n" +"" +msgstr "" + +#: execute.c:718 +#, c-format +msgid "" +"The Counter-Spell on %s is dispelled.\n" +"" +msgstr "" + +#: execute.c:720 +msgid "" +"The Counter-Spell on you is dispelled.\n" +"" +msgstr "" + +#: execute.c:726 +#, c-format +msgid "" +"The Magic Mirror on %s is dispelled.\n" +"" +msgstr "" + +#: execute.c:728 +msgid "" +"The Magic Mirror on you is dispelled.\n" +"" +msgstr "" + +#: execute.c:736 +#, c-format +msgid "" +"The Dispel Magic starts to tear %s apart.\n" +"" +msgstr "" + +#: execute.c:742 +#, c-format +msgid "" +"The corpse of %s disintegrates, destroyed by the Dispel Magic.\n" +"" +msgstr "" + +#: execute.c:753 +#, c-format +msgid "" +"A Counter-Spell flares around %s.\n" +"" +msgstr "" + +#: execute.c:755 +msgid "" +"Your magical senses go numb as a Counter-Spell surrounds you.\n" +"" +msgstr "" + +#: execute.c:762 +#, c-format +msgid "" +"The Magic Mirror on %s is destroyed by the Counter-Spell.\n" +"" +msgstr "" + +#: execute.c:764 +msgid "" +"The Magic Mirror on you is destroyed by the Counter-Spell.\n" +"" +msgstr "" + +#: execute.c:773 +#, c-format +msgid "" +"A Magic Mirror swirls around %s.\n" +"" +msgstr "" + +#: execute.c:775 +msgid "" +"The bright haze of a Magic Mirror surrounds you.\n" +"" +msgstr "" + +#: execute.c:795 +msgid "Goblin" +msgstr "goblin" + +#: execute.c:795 +msgid "Ogre" +msgstr "ogro" + +#: execute.c:795 +msgid "Troll" +msgstr "troll" + +#: execute.c:795 +msgid "Giant" +msgstr "gigante" + +#: execute.c:801 +#, c-format +msgid "" +"Your %s materializes by your side.\n" +"" +msgstr "" + +#: execute.c:802 +#, c-format +msgid "" +"%s's %s appears by %s side.\n" +"" +msgstr "" + +#: execute.c:809 +#, c-format +msgid "" +"Your %s %ss materialize by your side.\n" +"" +msgstr "" + +#: execute.c:810 +#, c-format +msgid "" +"%s's %s %ss appear by %s side.\n" +"" +msgstr "" + +#: execute.c:825 +msgid "" +"A blazing Fire Elemental materializes above you.\n" +"" +msgstr "" + +#: execute.c:826 +#, c-format +msgid "" +"A blazing Fire Elemental materializes above %s.\n" +"" +msgstr "" + +#: execute.c:829 +msgid "" +"A glittering Ice Elemental materializes above you.\n" +"" +msgstr "" + +#: execute.c:830 +#, c-format +msgid "" +"A glittering Ice Elemental materializes above %s.\n" +"" +msgstr "" + +#: execute.c:877 +#, c-format +msgid "" +"The %s Fire Elementals merge into single raging form.\n" +"" +msgstr "" + +#: execute.c:881 +#, c-format +msgid "" +"The %s Ice Elementals merge into single whirling form.\n" +"" +msgstr "" + +#: execute.c:892 +msgid "" +"The Fire Elemental is dispersed into the Fire Storm.\n" +"" +msgstr "" + +#: execute.c:897 +msgid "" +"The Ice Elemental is dispersed into the Ice Storm.\n" +"" +msgstr "" + +#: execute.c:902 +msgid "" +"The Fire and Ice Storms tear each other into shreds of vapor.\n" +"" +msgstr "" + +#: execute.c:907 +msgid "" +"The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments.\n" +"" +msgstr "" + +#: execute.c:914 +msgid "" +"The Ice Elemental is dispersed into the Fire Storm, destroying both.\n" +"" +msgstr "" + +#: execute.c:920 +msgid "" +"The Fire Elemental is dispersed into the Ice Storm, destroying both.\n" +"" +msgstr "" + +#: execute.c:926 +msgid "" +"The Fire and Ice Storms tear each other into shreds of vapor, destroying the Fire Elemental as well.\n" +"" +msgstr "" + +#: execute.c:933 +msgid "" +"The Fire and Ice Storms tear each other into shreds of vapor, destroying the Ice Elemental as well.\n" +"" +msgstr "" + +#: execute.c:940 +msgid "" +"The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments. The Ice Storm is absorbed as well.\n" +"" +msgstr "" + +#: execute.c:948 +msgid "" +"The Fire and Ice Elementals tear into each other, and whirl into a column of steam that dissipates in moments. The Fire Storm is absorbed as well.\n" +"" +msgstr "" + +#: execute.c:956 +msgid "" +"The Fire and Ice Elementals whirl into each other, screaming in fury, and the Fire and Ice storms shriek in response. The column of Elemental energy rises to meet the cloud of vapor that descends over the arena. You are buffeted by the conflicting energies; but within moments, nothing remains.\n" +"" +msgstr "" + +#: execute.c:973 +#, c-format +msgid "" +"%s gutters and flickers out under the influence of the Resist Heat.\n" +"" +msgstr "" + +#: execute.c:980 +#, c-format +msgid "" +"%s melts away under the influence of the Resist Cold.\n" +"" +msgstr "" + +#: execute.c:985 +#, c-format +msgid "" +"%s is vaporized by the Fireball.\n" +"" +msgstr "" + +#: execute.c:991 +#, c-format +msgid "" +"Under the stress of the Blindness, %s shivers and disintegrates into random energies.\n" +"" +msgstr "" + +#: execute.c:996 +#, c-format +msgid "" +"Under the stress of the Invisibility, %s shivers and disintegrates into random energies.\n" +"" +msgstr "" + +#: execute.c:1008 +#, c-format +msgid "" +"The Remove Enchantment starts to tear %s apart.\n" +"" +msgstr "" + +#: execute.c:1028 +#, c-format +msgid "" +"The Finger of Death and Raise Dead spells aimed at %s cancel each other.\n" +"" +msgstr "" + +#: execute.c:1030 +msgid "" +"For a moment, you feel a sudden pressure in your chest, as if an iron band was squeezing your heart. Then it fades, as the Raise Dead spell burns through you.\n" +"" +msgstr "" + +#: execute.c:1038 +#, c-format +msgid "" +"The Fireball hurtling towards %s is snuffed by the Ice Storm, leaving %s enveloped in a cloud of steam.\n" +"" +msgstr "" + +#: execute.c:1040 +msgid "" +"The Fireball hurtling towards you is snuffed by the Ice Storm, leaving you enveloped in warm steam.\n" +"" +msgstr "" + +#: execute.c:1061 +#, c-format +msgid "" +"The mind-control spells (%s) aimed at you interfere with each other and fizzle, leaving you with a pounding headache.\n" +"" +msgstr "" + +#: execute.c:1062 +#, c-format +msgid "" +"The mind-control spells (%s) aimed at %s interfere with each other and fizzle.\n" +"" +msgstr "" + +#: execute.c:1093 +#, c-format +msgid "" +"The Resist Heat shrouds %s in a cool blue veil.\n" +"" +msgstr "" + +#: execute.c:1095 +msgid "" +"The Resist Heat wraps you in a pleasant blue coolness.\n" +"" +msgstr "" + +#: execute.c:1101 +#, c-format +msgid "" +"%s's veil of Resist Heat continues to glow coolly.\n" +"" +msgstr "" + +#: execute.c:1103 +msgid "" +"Your veil of Resist Heat continues to glow coolly.\n" +"" +msgstr "" + +#: execute.c:1112 +#, c-format +msgid "" +"The Resist Cold shrouds %s in a warm pink veil.\n" +"" +msgstr "" + +#: execute.c:1114 +msgid "" +"The Resist Cold wraps you in a pleasant pink warmth.\n" +"" +msgstr "" + +#: execute.c:1120 +#, c-format +msgid "" +"%s's veil of Resist Cold continues to glow warmly.\n" +"" +msgstr "" + +#: execute.c:1122 +msgid "" +"Your veil of Resist Cold continues to glow warmly.\n" +"" +msgstr "" + +#: execute.c:1130 +msgid "" +"A white circle of Protection from Evil springs up around you. You feel the Shield aura cloaking your skin.\n" +"" +msgstr "" + +#: execute.c:1131 +#, c-format +msgid "" +"A white circle of Protection from Evil springs up around %s.\n" +"" +msgstr "" + +#: execute.c:1138 +msgid "" +"Your circle of Protection from Evil flares back to full strength.\n" +"" +msgstr "" + +#: execute.c:1139 +#, c-format +msgid "" +"%s's circle of Protection from Evil flares back to full strength.\n" +"" +msgstr "" + +#: execute.c:1162 +msgid "" +"Your circle of Protection from Evil is beginning to fade.\n" +"" +msgstr "" + +#: execute.c:1163 +#, c-format +msgid "" +"%s's circle of Protection from Evil is beginning to fade.\n" +"" +msgstr "" + +#: execute.c:1166 +msgid "" +"Your circle of Protection from Evil is dimmer now.\n" +"" +msgstr "" + +#: execute.c:1167 +#, c-format +msgid "" +"%s's circle of Protection from Evil is dimmer now.\n" +"" +msgstr "" + +#: execute.c:1170 +msgid "" +"Your circle of Protection from Evil is nearly gone.\n" +"" +msgstr "" + +#: execute.c:1171 +#, c-format +msgid "" +"%s's circle of Protection from Evil is nearly gone.\n" +"" +msgstr "" + +#: main.c:31 +msgid "White" +msgstr "blanco" + +#: main.c:31 +msgid "Black" +msgstr "negro" + +#: main.c:31 +msgid "Red" +msgstr "rojo" + +#: main.c:31 +msgid "Green" +msgstr "verde" + +#: main.c:31 +msgid "Blue" +msgstr "azul" + +#: main.c:32 +msgid "Yellow" +msgstr "amarillo" + +#: main.c:32 +msgid "Orange" +msgstr "naranja" + +#: main.c:32 +msgid "Purple" +msgstr "púrpuro" + +#: main.c:32 +msgid "Grey" +msgstr "gris" + +#: main.c:32 +msgid "Charteuse" +msgstr "" + +#: main.c:72 +msgid "" +"usage: spellcast RemoteDisplay [ RemoteDisplay2 ... ]\n" +"" +msgstr "" + +#: main.c:85 +msgid ":0.0" +msgstr "" + +#: main.c:95 +#: stupid.c:491 +#, c-format +msgid "" +"You have listed only %d players!\n" +"" +msgstr "" + +#: main.c:99 +#: stupid.c:495 +#, c-format +msgid "" +"There is a maximum of %d players!\n" +"" +msgstr "" + +#: main.c:114 +msgid "" +"spellcast: exiting.\n" +"" +msgstr "" + +#: main.c:137 +msgid "Enter your gestures for your Hastened move." +msgstr "Ingresa tus gestos para movimientos agilizados." + +#: main.c:141 +msgid "Enter your gestures for your Time-Stopped move." +msgstr "Ingresa tus gestos para el movimiento durante el tiempo detenido." + +#: main.c:146 +msgid "Enter your gestures for this move, at the bottom of your gesture list." +msgstr "Ingresa tus gestos para este turno en el fondo de la lista de gestos." + +#: main.c:153 +msgid "Other people are Hastened this turn." +msgstr "Otra gente es agilizada en este turno." + +#: main.c:157 +msgid "You are frozen in time." +msgstr "Estas congelado en el tiempo." + +#: main.c:160 +msgid "You are out of the game." +msgstr "Estas fuera del juego." + +#: main.c:179 +msgid "" +"\n" +"+++ The game is a draw +++\n" +"" +msgstr "" + +#: main.c:181 +#, c-format +msgid "" +"\n" +"+++ %s has won +++\n" +"" +msgstr "" + +#: main.c:197 +msgid "Do you want to save a transcript of this game?" +msgstr "" + +#: main.c:198 +#: xquery.c:35 +#: xquery.c:391 +msgid "No" +msgstr "" + +#: main.c:211 +#, c-format +msgid "%s/spellcast-%d" +msgstr "" + +#: main.c:212 +msgid "w" +msgstr "" + +#: main.c:214 +#, c-format +msgid "" +"spellcast: unable to open %s for writing\n" +"" +msgstr "" + +#: main.c:215 +msgid "spellcast: error" +msgstr "" + +#: main.c:220 +#, c-format +msgid "" +"Saved transcript in %s.\n" +"" +msgstr "" + +#: main.c:241 +#, c-format +msgid "" +"spellcast: could not open display for player %d.\n" +"" +msgstr "" +"spellcast: no se puede abrir el display para el jugador %d.\n" +"" + +#: main.c:263 +#: main.c:331 +msgid "spellcast" +msgstr "" + +#: main.c:263 +msgid "name" +msgstr "nombre" + +#: main.c:307 +#: stupid.c:227 +#: stupid.c:318 +#: xquery.c:233 +#: xquery.c:234 +#: xquery.c:439 +#: xquery.c:476 +#: xquery.c:494 +msgid "nobody" +msgstr "nadie" + +#: main.c:309 +msgid "Nobody" +msgstr "Nadie" + +#: main.c:321 +#, c-format +msgid "" +"spellcast: the name '%s' for player %d is taken. Switching to '%s'...\n" +"" +msgstr "" +"spellcast: el nombre '%s' para el jugador %d ya está tomado. Usando '%s'...\n" +"" + +#: main.c:326 +#, c-format +msgid "Spellcast: %s" +msgstr "" + +#: main.c:331 +msgid "font" +msgstr "fuente de letras" + +#: main.c:338 +#: main.c:343 +#, c-format +msgid "" +"spellcast: could not find font %s for player %d. Switching to %s...\n" +"" +msgstr "" + +#: main.c:347 +#, c-format +msgid "" +"spellcast: could not find font %s for player %d.\n" +"" +msgstr "" + +#: main.c:401 +msgid "" +"ERROR: backing store already on\n" +"" +msgstr "" + +#: main.c:413 +msgid "" +"ERROR: backing store already off\n" +"" +msgstr "" + +#: makelist.c:25 +msgid "showpalm" +msgstr "muestra palma" + +#: makelist.c:28 +msgid "showdigit" +msgstr "muestra dedo" + +#: makelist.c:31 +msgid "showfinger" +msgstr "" + +#: makelist.c:34 +msgid "showwave" +msgstr "" + +#: makelist.c:37 +msgid "showsnap" +msgstr "" + +#: makelist.c:40 +msgid "showclap" +msgstr "" + +#: makelist.c:43 +msgid "showpalm2" +msgstr "" + +#: makelist.c:46 +msgid "showdigit2" +msgstr "" + +#: makelist.c:49 +msgid "showfinger2" +msgstr "" + +#: makelist.c:52 +msgid "showwave2" +msgstr "" + +#: makelist.c:55 +msgid "showsnap2" +msgstr "" + +#: makelist.c:58 +msgid "showclap2" +msgstr "" + +#: makelist.c:61 +msgid "nullact" +msgstr "" + +#: makelist.c:87 +#, c-format +msgid "" +"%d %d %s\n" +"" +msgstr "" + +#: makelist.c:90 +#, c-format +msgid "" +"%d %d moveto %d %d lineto stroke\n" +"" +msgstr "" + +#: makelist.c:92 +#, c-format +msgid "" +"%d %d moveto (%s) show\n" +"" +msgstr "" + +#: makelist.c:104 +msgid "" +"/Times-Roman findfont 12 scalefont setfont\n" +"" +msgstr "" + +#: makelist.c:105 +msgid "" +"0.5 setlinewidth\n" +"" +msgstr "" + +#: makelist.c:110 +msgid "" +"/Times-Bold findfont 14 scalefont setfont\n" +"" +msgstr "" + +#: makelist.c:111 +msgid "" +"306 752 moveto\n" +"" +msgstr "" + +#: makelist.c:112 +msgid "" +"(SpellCast spell lists -- sorted by gesture and name) centershow\n" +"" +msgstr "" + +#: makelist.c:113 +msgid "" +"\n" +"showpage\n" +"" +msgstr "" + +#: stupid.c:20 +msgid "*: " +msgstr "" + +#: stupid.c:32 +#: stupid.c:48 +#: stupid.c:52 +#, c-format +msgid "%d: " +msgstr "" + +#: stupid.c:36 +#, c-format +msgid "~%d: " +msgstr "" + +#: stupid.c:56 +#, c-format +msgid "~%d/~%d: " +msgstr "" + +#: stupid.c:85 +#, c-format +msgid "" +"%d: Do you want to release the %s from the Delayed Effect?\n" +" (0:no, 1:yes): " +msgstr "" + +#: stupid.c:92 +#: stupid.c:132 +#: stupid.c:149 +#: stupid.c:166 +msgid " [Please enter 0 or 1]: " +msgstr " [Porfavor ingresa 0 o 1]: " + +#: stupid.c:102 +#: xquery.c:323 +msgid "What spell do you want to cast with your left hand?" +msgstr "¿Cuál hechizo quieres enviar con tu mano izquierda?" + +#: stupid.c:104 +#: xquery.c:327 +msgid "What spell do you want to cast with your right hand?" +msgstr "¿Cuál hechizo quieres enviar con tu mano derecha?" + +#: stupid.c:106 +#, c-format +msgid "" +"%d: %s\n" +" (" +msgstr "" + +#: stupid.c:109 +#, c-format +msgid "%d: %s%s%s" +msgstr "" + +#: stupid.c:110 +msgid " [both hands]" +msgstr " [ambas manos]" + +#: stupid.c:111 +msgid "): " +msgstr "" + +#: stupid.c:117 +#: stupid.c:257 +#: stupid.c:286 +#: stupid.c:362 +#, c-format +msgid " [Please enter a number from 0 to %d]: " +msgstr " [Porfavor ingresa un número de 0 a %d]: " + +#: stupid.c:126 +#, c-format +msgid "" +"%d: Which type of elemental do you want to summon?\n" +" (0:fire, 1:ice): " +msgstr "" +"%d: ¿Cuál elemento quieres enviar?\n" +" (0:fuego, 1:hielo: " + +#: stupid.c:141 +#, c-format +msgid "" +"%d: Which of %s's hands do you want to paralyze?\n" +" (0:left, 1:right): " +msgstr "" + +#: stupid.c:158 +#, c-format +msgid "" +"%d: Which of %s's hands do you want to charm?\n" +" (0:left, 1:right): " +msgstr "" + +#: stupid.c:184 +#, c-format +msgid "" +"%d: What gesture do you want %s's %s hand to make?\n" +" (enter a letter): " +msgstr "" + +#: stupid.c:191 +msgid " [Please enter a letter]: " +msgstr "" + +#: stupid.c:206 +#: xquery.c:419 +#, c-format +msgid "Whom do you want %s to attack?" +msgstr "¿Quién quieres que %s ataque?" + +#: stupid.c:211 +#: xquery.c:424 +#, c-format +msgid "Whom do you want %s's first attack to be at?" +msgstr "¿Hacia quién quieres que sea el primer ataque de %s?" + +#: stupid.c:216 +#: xquery.c:429 +#, c-format +msgid "Whom do you want %s's second attack to be at?" +msgstr "" + +#: stupid.c:221 +#: xquery.c:434 +#, c-format +msgid "ERROR: Query about %d (%d)" +msgstr "" + +#: stupid.c:224 +#: stupid.c:313 +#, c-format +msgid "" +"%d: %s\n" +"" +msgstr "" + +#: stupid.c:245 +#: stupid.c:350 +msgid "" +"ERROR: No targets available!\n" +"" +msgstr "" + +#: stupid.c:247 +#: stupid.c:276 +#: stupid.c:352 +msgid " [" +msgstr "" + +#: stupid.c:249 +#: stupid.c:355 +#, c-format +msgid "%d: %s%s" +msgstr "" + +#: stupid.c:250 +msgid "), " +msgstr "" + +#: stupid.c:252 +#: stupid.c:281 +#: stupid.c:357 +msgid "]: " +msgstr "" + +#: stupid.c:269 +#, c-format +msgid "" +"%d: Which spell do you want to delay?\n" +"" +msgstr "" + +#: stupid.c:272 +#, c-format +msgid "" +"%d: Which spell do you want to make permanent?\n" +"" +msgstr "" + +#: stupid.c:278 +#, c-format +msgid "%s%d: %s" +msgstr "" + +#: stupid.c:301 +#: xquery.c:462 +msgid "with your left hand" +msgstr "con tu mano izquierda" + +#: stupid.c:303 +#: xquery.c:464 +msgid "with your right hand" +msgstr "con tu mano derecha" + +#: stupid.c:307 +#: xquery.c:468 +msgid "from the Delayed Effect" +msgstr "del efecto de retardo" + +#: stupid.c:309 +#: xquery.c:470 +#, c-format +msgid "Who do you want to stab at (%s)?" +msgstr "" + +#: stupid.c:311 +#: xquery.c:472 +#, c-format +msgid "Who do you want to cast %s at (%s)?" +msgstr "" + +#: stupid.c:355 +msgid "," +msgstr "" + +#: stupid.c:373 +#, c-format +msgid "" +"ERROR: Unknown query type %d!\n" +"" +msgstr "" + +#: stupid.c:422 +#: stupid.c:428 +#, c-format +msgid "%s (%d); " +msgstr "" + +#: stupid.c:440 +msgid "Arnold" +msgstr "Arnoldo" + +#: stupid.c:440 +msgid "Barbara" +msgstr "Bárbara" + +#: stupid.c:440 +msgid "Crash" +msgstr "" + +#: stupid.c:453 +msgid "-3" +msgstr "" + +#: stupid.c:506 +msgid "(hasted) " +msgstr "(agilizado) " + +#: stupid.c:509 +msgid "(timestopped) " +msgstr "(detenido en el tiempo) " + +#: stupid.c:520 +msgid ": Enter moves: " +msgstr ": Ingresar movimiento: " + +#: stupid.c:530 +msgid "" +"+++ the game is a draw +++\n" +"" +msgstr "" + +#: stupid.c:532 +#, c-format +msgid "" +"+++ %s has won +++\n" +"" +msgstr "" + +#: xbutton.c:53 +msgid "Spell List (left button: sorted by gesture)" +msgstr "lista de hechizos (botón izquierda: ordenado por gesto)" + +#: xbutton.c:55 +msgid "Spell List (middle button: alphabetical sort)" +msgstr "lista de hechizos (botón medio: ordenado alfabéticamente)" + +#: xbutton.c:57 +msgid "Spell List (right button: reversed sort by gesture)" +msgstr "lista de hechizos (botón derecho: ordenado inverso por gesto)" + +#: xbutton.c:172 +msgid "please wait...." +msgstr "porfavor espera...." + +#: xbutton.c:175 +msgid "End Move" +msgstr "Terminar turno" + +#: xbutton.c:177 +msgid "Move ENDED." +msgstr "Turno TERMINADO." + +#: xbutton.c:181 +msgid "Quit" +msgstr "Salir" + +#: xbutton.c:183 +msgid "Wait...." +msgstr "Espera...." + +#: xbutton.c:187 +msgid "End Answers" +msgstr "Terminar respuestas" + +#: xbutton.c:189 +msgid "Answers ENDED." +msgstr "Respuestas terminadas" + +#: xbutton.c:195 +msgid "Spell List" +msgstr "lista de hechizos" + +#: xbutton.c:248 +msgid "" +"ERROR: unknown button thing!\n" +"" +msgstr "" + +#: xbutton.c:293 +msgid "" +msgstr "<¿respuesta?>" + +#: xgest.c:211 +msgid "What gesture do you want to" +msgstr "¿Qué gesto quieres " + +#: xgest.c:212 +#, c-format +msgid "make with your %s hand?" +msgstr "hacer con tu mano %s?" + +#: xloop.c:317 +#: xloop.c:351 +msgid "*" +msgstr "" + +#: xloop.c:364 +#, c-format +msgid "%d %s%s%s%s%s%s%s" +msgstr "" + +#: xloop.c:365 +msgid "I" +msgstr "" + +#: xloop.c:366 +msgid "H" +msgstr "" + +#: xloop.c:367 +msgid "C" +msgstr "" + +#: xloop.c:368 +msgid "P" +msgstr "" + +#: xloop.c:369 +msgid "b" +msgstr "" + +#: xloop.c:370 +msgid "d" +msgstr "" + +#: xloop.c:371 +msgid "p" +msgstr "" + +#: xquery.c:33 +msgid "Fire" +msgstr "Fuego" + +#: xquery.c:33 +msgid "Ice" +msgstr "Hielo" + +#: xquery.c:34 +msgid "Left" +msgstr "Izquierda" + +#: xquery.c:34 +msgid "Right" +msgstr "Derecha" + +#: xquery.c:35 +msgid "Yes" +msgstr "Si" + +#: xquery.c:244 +#: xquery.c:263 +#: xquery.c:487 +#: xquery.c:505 +msgid " [invisible]" +msgstr " [invisible]" + +#: xquery.c:278 +msgid " [dead]" +msgstr " [muerto]" + +#: xquery.c:338 +#, c-format +msgid "%s [both hands]" +msgstr "%s [ambas manos]" + +#: xquery.c:360 +#, c-format +msgid "What gesture do you want %s's %s hand to make?" +msgstr "" + +#: xquery.c:373 +msgid "Which spell do you want to delay?" +msgstr "" + +#: xquery.c:377 +msgid "Which spell do you want to make permanent?" +msgstr "" + +#: xquery.c:389 +#, c-format +msgid "Do you want to release the %s from the Delayed Effect?" +msgstr "" + +#: xquery.c:398 +#, c-format +msgid "Which of %s's hands do you want to paralyze?" +msgstr "" + +#: xquery.c:402 +#, c-format +msgid "Which of %s's hands do you want to control?" +msgstr "" + +#: xquery.c:409 +msgid "Which type of elemental do you want to summon?" +msgstr "" + +#: xquery.c:554 +msgid "right hand" +msgstr "mano derecha" + +#: xtalk.c:114 +#, c-format +msgid "" +"You say \"%s\"\n" +"" +msgstr "" +"Tu dices \"%s\"\n" +"" + +#: xtalk.c:115 +#, c-format +msgid "" +"%s says \"%s\"\n" +"" +msgstr "" + +#: xtext.c:33 +msgid "pl" +msgstr "" + --- spellcast-1.0.orig/spellcast.6 +++ spellcast-1.0/spellcast.6 @@ -1,4 +1,3 @@ -.PU .TH SPELLCAST 6 local .SH NAME spellcast \- a game of duelling wizards @@ -23,7 +22,11 @@ .PP All other machines must add your machine to their X access lists, using -.B xhost +. +.B xhost + . +Please be careful with this since using +.B xhost + +you open a really big hole in the security of your system. You should +only allow access to trusted machines. .PP There is a maximum of seven .I remotedisplay @@ -42,17 +45,17 @@ .I namestring of the form .br -.in+4 +.TP .I name:f for a female character, -.br +.TP .I name:m for a male, -.br +.TP .I name:n for a character whose gender is ambiguous or not well-defined in human terms, and -.br +.TP .I name:x for a genderless character. .PP @@ -156,21 +159,20 @@ After that, there may be some letters indicating that certain spells are in effect: .br -.in+8 +.TP I: invisible -.br +.TP H: resistant to heat -.br +.TP C: resistant to cold -.br +.TP P: protection from evil -.br +.TP b: blind -.br +.TP d: diseased -.br +.TP p: poisoned -.in-8 .PP .B Speech window .br @@ -276,14 +278,13 @@ that gestures can be made to operate in more than one spell, provided that: .br -.in+4 +.TP a) the gestures have been made in the correct sequence without interruption; -.br +.TP b) not more than one spell is created per gesture; -.br. +.TP c) all gestures for one spell are made with the same hand. -.in-4 .PP For instance, the left hand could cast the F-F-F above and could be followed by @@ -681,7 +682,8 @@ .B P-S-D-D .PP Except for cancellation with other enchantments, this spell only -affects monsters (but not elementals). Control of the monster is +affects monsters (including elementals, though it's not very usefel +on them!). Control of the monster is transferred to the caster of the spell (or retained by him) as of this turn; i.e., the monster will attack whosoever its new controller dictates from that turn onwards including that turn. Further charms @@ -913,7 +915,7 @@ The original paper-and-pencil version of this game, entitled .I Spellbinder, -was created by Richard Bartle; it was printed in his zine +was created by Richard Bartle in 1977; it was printed in his zine .I Sauce of the Nile. He attempted to have it commercially produced, but apparently didn't get very far. @@ -930,5 +932,12 @@ Richard Bartle <76703.3042@compuserve.com> would like to point out that he is not at all dead. He has nicely given his permission to distribute this program, as long as it remains free. +.br +More information about the game is available in his web page +at http://mud.co.uk/richard/spellbnd.htm +where you will find more about the history of the game as well +as other computer programs created based on the original +.I Spellbinder +game. .SH AUTHOR Andrew Plotkin --- spellcast-1.0.orig/stupid.c +++ spellcast-1.0/stupid.c @@ -4,6 +4,9 @@ #include "handwave.h" #include "spelllist.h" +#include +#define _(String) gettext (String) + struct maingame { int ignorestuff; }; @@ -26,11 +29,11 @@ struct maingame *rock; { if (msg1) { - printf("%d: ", person1); + printf(_("%d: "), person1); fputs(msg1, stdout); } if (msgelse) { - printf("~%d: ", person1); + printf(_("~%d: "), person1); fputs(msgelse, stdout); } } @@ -42,15 +45,15 @@ struct maingame *rock; { if (msg1) { - printf("%d: ", person1); + printf(_("%d: "), person1); fputs(msg1, stdout); } if (msg2) { - printf("%d: ", person2); + printf(_("%d: "), person2); fputs(msg2, stdout); } if (msgelse) { - printf("~%d/~%d: ", person1, person2); + printf(_("~%d/~%d: "), person1, person2); fputs(msgelse, stdout); } } @@ -75,18 +78,18 @@ for (ix=0; ix=hlist[0]) { - printf(" [Please enter a number from 0 to %d]: ", hlist[0]-1); + printf(_(" [Please enter a number from 0 to %d]: "), hlist[0]-1); } else break; @@ -120,13 +123,13 @@ break; case Qu_ElementalType: printf( -"%d: Which type of elemental do you want to summon?\n (0:fire, 1:ice): ", +_("%d: Which type of elemental do you want to summon?\n (0:fire, 1:ice): "), qlist[ix].player); while (1) { fgets(inbuf, 256, stdin); res = atol(inbuf); if (res!=0 && res!=1) { - printf(" [Please enter 0 or 1]: "); + printf(_(" [Please enter 0 or 1]: ")); } else break; @@ -135,7 +138,7 @@ break; case Qu_ParalysisHand: printf( -"%d: Which of %s's hands do you want to paralyze?\n (0:left, 1:right): ", +_("%d: Which of %s's hands do you want to paralyze?\n (0:left, 1:right): "), qlist[ix].player, NameOfBeing(gameval, QuVal_Target_Wizard, qlist[ix].rock)); @@ -143,7 +146,7 @@ fgets(inbuf, 256, stdin); res = atol(inbuf); if (res!=0 && res!=1) { - printf(" [Please enter 0 or 1]: "); + printf(_(" [Please enter 0 or 1]: ")); } else break; @@ -152,7 +155,7 @@ break; case Qu_CharmHand: printf( -"%d: Which of %s's hands do you want to charm?\n (0:left, 1:right): ", +_("%d: Which of %s's hands do you want to charm?\n (0:left, 1:right): "), qlist[ix].player, NameOfBeing(gameval, QuVal_Target_Wizard, qlist[ix].rock)); @@ -160,7 +163,7 @@ fgets(inbuf, 256, stdin); res = atol(inbuf); if (res!=0 && res!=1) { - printf(" [Please enter 0 or 1]: "); + printf(_(" [Please enter 0 or 1]: ")); } else break; @@ -178,14 +181,14 @@ jx = 0; } printf( -"%d: What gesture do you want %s's %s hand to make?\n (enter a letter): ", +_("%d: What gesture do you want %s's %s hand to make?\n (enter a letter): "), qlist[ix].player, NameOfBeing(gameval, QuVal_Target_Wizard, spellnum), (jx?"right":"left")); while (1) { fgets(inbuf, 256, stdin); if (inbuf[0]=='\0' || inbuf[0]=='\n') { - printf(" [Please enter a letter]: "); + printf(_(" [Please enter a letter]: ")); } else { res = cheap_translate(inbuf[0]); @@ -200,28 +203,28 @@ spellnum = jx % 256; switch (attnum) { case 1: - sprintf(outbuf, "Whom do you want %s to attack?", + sprintf(outbuf, _("Whom do you want %s to attack?"), NameOfBeing(gameval, QuVal_Target_Creature, spellnum)); break; case 2: - sprintf(outbuf, "Whom do you want %s's first attack to be at?", + sprintf(outbuf, _("Whom do you want %s's first attack to be at?"), NameOfBeing(gameval, QuVal_Target_Creature, spellnum)); break; case 3: - sprintf(outbuf, "Whom do you want %s's second attack to be at?", + sprintf(outbuf, _("Whom do you want %s's second attack to be at?"), NameOfBeing(gameval, QuVal_Target_Creature, spellnum)); break; default: - sprintf(outbuf, "ERROR: Query about %d (%d)", spellnum, attnum); + sprintf(outbuf, _("ERROR: Query about %d (%d)"), spellnum, attnum); break; } - printf("%d: %s\n", qlist[ix].player, outbuf); + printf(_("%d: %s\n"), qlist[ix].player, outbuf); targnum = 0; targetlist[targnum] = 0; - targetnamelist[targnum] = "nobody"; + targetnamelist[targnum] = _("nobody"); targnum++; numtargs = NumberOfTargets(gameval, QuVal_Target_Wizard); for (jx=0; jx=numtargs) { - printf(" [Please enter a number from 0 to %d]: ", + printf(_(" [Please enter a number from 0 to %d]: "), numtargs-1); } else @@ -263,16 +266,16 @@ case Qu_WhichToDelay: case Qu_WhichToPerm: if (qlist[ix].qtype == Qu_WhichToDelay) - printf("%d: Which spell do you want to delay?\n", + printf(_("%d: Which spell do you want to delay?\n"), qlist[ix].player); else - printf("%d: Which spell do you want to make permanent?\n", + printf(_("%d: Which spell do you want to make permanent?\n"), qlist[ix].player); hlist = (int *)qlist[ix].rock; printf(" ["); for (jx=0; hlist[jx]!=(-1); jx++) { - printf("%s%d: %s", ((jx)?", ":""), jx, spelllist[hlist[jx]].name); + printf(_("%s%d: %s"), ((jx)?", ":""), jx, _(spelllist[hlist[jx]].name)); } numtargs = jx; printf("]: "); @@ -280,7 +283,7 @@ fgets(inbuf, 256, stdin); res = atol(inbuf); if (res<0 || res>=numtargs) { - printf(" [Please enter a number from 0 to %d]: ", numtargs-1); + printf(_(" [Please enter a number from 0 to %d]: "), numtargs-1); } else break; @@ -295,24 +298,24 @@ jx = (int)(qlist[ix].rock); spellnum = jx & (~QuVal_Hand_MASK); if (jx & QuVal_Hand_Left) - handage = "with your left hand"; + handage = _("with your left hand"); else if (jx & QuVal_Hand_Right) - handage = "with your right hand"; + handage = _("with your right hand"); else if (jx & QuVal_Hand_Both) - handage = "with both hands"; + handage = _("with both hands"); else - handage = "from the Delayed Effect"; + handage = _("from the Delayed Effect"); if (spellnum==SP__STAB) - sprintf(outbuf, "Who do you want to stab at (%s)?", handage); + sprintf(outbuf, _("Who do you want to stab at (%s)?"), handage); else - sprintf(outbuf, "Who do you want to cast %s at (%s)?", - spelllist[spellnum].name, handage); - printf("%d: %s\n", qlist[ix].player, outbuf); + sprintf(outbuf, _("Who do you want to cast %s at (%s)?"), + _(spelllist[spellnum].name), handage); + printf(_("%d: %s\n"), qlist[ix].player, outbuf); targnum = 0; if (qlist[ix].qtype==Qu_TargetBeingNone || qlist[ix].qtype==Qu_TargetWizardNone) { targetlist[targnum] = 0; - targetnamelist[targnum] = "nobody"; + targetnamelist[targnum] = _("nobody"); targnum++; } numtargs = NumberOfTargets(gameval, QuVal_Target_Wizard); @@ -344,19 +347,19 @@ } numtargs = targnum; if (numtargs==0) - printf("ERROR: No targets available!\n"); + printf(_("ERROR: No targets available!\n")); else { printf(" ["); for (jx=0; jx=numtargs) { - printf(" [Please enter a number from 0 to %d]: ", + printf(_(" [Please enter a number from 0 to %d]: "), numtargs-1); } else @@ -367,7 +370,7 @@ break; default: - printf("ERROR: Unknown query type %d!\n", qlist[ix].qtype); + printf(_("ERROR: Unknown query type %d!\n"), qlist[ix].qtype); break; } } @@ -416,7 +419,7 @@ for (ix=0; ix=0) - printf("%s (%d); ", NameOfBeing(gameval, QuVal_Target_Wizard, ix), hp); + printf(_("%s (%d); "), NameOfBeing(gameval, QuVal_Target_Wizard, ix), hp); } max = NumberOfBeings(gameval, QuVal_Target_Creature); for (ix=0; ix MAXPLAYERS) { - printf("There is a maximum of %d players!\n", MAXPLAYERS); + printf(_("There is a maximum of %d players!\n"), MAXPLAYERS); exit(12); } @@ -500,10 +503,10 @@ val = 0; switch (TurnType(gameval)) { case Turn_HASTE: - printf("(hasted) "); + printf(_("(hasted) ")); break; case Turn_TIMESTOP: - printf("(timestopped) "); + printf(_("(timestopped) ")); break; case Turn_NORMAL: default: @@ -512,9 +515,9 @@ for (ix=0; ix +#define _(String) gettext (String) void draw_button(); @@ -47,11 +40,11 @@ draw_frame(py, &py->spelllist_rect); if (py->spelllist_way==1) - cx = "Spell List (left button: sorted by gesture)"; + cx = _("Spell List (left button: sorted by gesture)"); else if (py->spelllist_way==2) - cx = "Spell List (middle button: alphabetical sort)"; + cx = _("Spell List (middle button: alphabetical sort)"); else - cx = "Spell List (right button: reversed sort by gesture)"; + cx = _("Spell List (right button: reversed sort by gesture)"); DrawStringCentered(py, cx, py->spelllist_rect.x+py->spelllist_rect.w/2, py->spelllist_rect.y+4+py->lineheight); @@ -86,8 +79,8 @@ posy+jx*18, 1); } XDrawImageString(py->dpy, py->win, py->blackgc, posx+ix*300+8*(GEST_SMALL+1), - posy+jx*18+((GEST_SMALL+py->lineheight)/2)-2, spel->name, - strlen(spel->name)); + posy+jx*18+((GEST_SMALL+py->lineheight)/2)-2, _(spel->name), + strlen(_(spel->name))); } } @@ -166,30 +159,30 @@ switch (bnum) { case 0: if (!py->turn_active) - cx = "please wait...."; + cx = _("please wait...."); else if (turnstate == State_Top) { if (!py->turn_done) - cx = "End Move"; + cx = _("End Move"); else - cx = "Move ENDED."; + cx = _("Move ENDED."); } else if (turnstate == State_End) { if (!py->turn_done) - cx = "Quit"; + cx = _("Quit"); else - cx = "Wait...."; + cx = _("Wait...."); } else { if (!py->turn_done) - cx = "End Answers"; + cx = _("End Answers"); else - cx = "Answers ENDED."; + cx = _("Answers ENDED."); } DrawStringCentered(py, cx, BBOX_X+ix*BUTTON_W+BUTTON_W/2, BBOX_Y+jx*BUTTON_H+py->lineheight+1); break; case 1: - DrawStringCentered(py, "Spell List", BBOX_X+ix*BUTTON_W+BUTTON_W/2, + DrawStringCentered(py, _("Spell List"), BBOX_X+ix*BUTTON_W+BUTTON_W/2, BBOX_Y+jx*BUTTON_H+py->lineheight+1); break; default: @@ -242,7 +235,7 @@ return ms_SpellBtn; break; default: - printf("ERROR: unknown button thing!\n"); + printf(_("ERROR: unknown button thing!\n")); break; } } @@ -287,7 +280,7 @@ for (ix=0; ixsiquery.nlines; ix++) if (!py->answers[ix].done) { isok = 0; - strcpy(py->answers[ix].ans_str, ""); + strcpy(py->answers[ix].ans_str, _("")); /* ### set value to scroll to? */ } } --- spellcast-1.0.orig/xgest.c +++ spellcast-1.0/xgest.c @@ -23,7 +23,7 @@ #include "bvp.bm" #include "bvs.bm" #include "bvw.bm" - + #include "sc.bm" #include "sd.bm" #include "sd2.bm" @@ -37,10 +37,8 @@ #include "sw2.bm" #include "sdot.bm" -#define COLUMN_SIZE (8) -#define COLUMN_X (476) -#define COLUMN_Y (33) -#define GEST_SPACE (50) +#include +#define _(String) gettext (String) void init_bitmaps(py) struct player *py; @@ -116,6 +114,34 @@ py->spelllistbm[1][6] = 0; /* no double dots */ } +#ifdef COLOUR + +static long check_name(struct player *py, char *str) +{ + char *temp; + int i; + + for (i = 0; i < MAXPLAYERS; i++){ + temp = str; + + /* is there a name in this entry */ + + if (namelist[i]){ + + /* does it match the start of the string we were passed? */ + + if (strncmp(namelist[i], temp, strlen(namelist[i])) == 0){ + + return (col_list[i]); + } + } + } + /* return default colour */ + + return (BlackPixel(py->dpy, py->scn)); +} + +#endif void redraw_column(py) struct player *py; @@ -126,17 +152,28 @@ int posx, posy; int pnum = py-players; +#ifdef COLOUR + long col; +#endif + if (turnstate==State_Init) { return; } - for (ix=0; ixdpy, py->blackgc, col); +#endif + DrawStringCentered(py, NameOfBeing(gameval, QuVal_Target_Wizard, ix), posx+GEST_SIZE, posy-py->lineheight+py->ascent); - +#ifdef COLOUR + XSetForeground(py->dpy, py->blackgc, BlackPixel(py->dpy, py->scn)); +#endif if (turnstate!=State_Top) { SeeGesture(gameval, ix, pnum, buf, COLUMN_SIZE); gx=0; @@ -205,9 +242,9 @@ int posx, posy; draw_frame(py, &py->gesture_rect); - sprintf(gesture_prompt[0], "What gesture do you want to"); - sprintf(gesture_prompt[1], "make with your %s hand?", - py->gesture_hand?"right":"left"); + sprintf(gesture_prompt[0], _("What gesture do you want to")); + sprintf(gesture_prompt[1], _("make with your %s hand?"), + py->gesture_hand?_("right"):_("left")); XDrawImageString(py->dpy, py->win, py->blackgc, py->gesture_rect.x+20, py->gesture_rect.y+10+py->lineheight, gesture_prompt[0], strlen(gesture_prompt[0])); @@ -292,7 +329,7 @@ hit = (-1); if (hit==py->gesture_sel) - return; + return 0; if (py->gesture_sel != (-1)) { /* erase old */ @@ -315,6 +352,7 @@ XDrawRectangle(py->dpy, py->win, py->blackgc, posx+hitx*GEST_SPACE-2, posy+hity*GEST_SPACE-2, GEST_SIZE+3, GEST_SIZE+3); } + return 0; } int gesture_release(py, xpos, ypos, button) @@ -340,4 +378,5 @@ XCopyPlane(py->dpy, py->gesturebm[1][py->gesture_chosen[1]], py->win, py->blackgc, 0, 0, GEST_SIZE, GEST_SIZE, posx+GEST_SPACE, posy+(GEST_SPACE)*(COLUMN_SIZE-1), 1); + return 0; } --- spellcast-1.0.orig/xloop.c +++ spellcast-1.0/xloop.c @@ -7,6 +7,9 @@ #include "spelllist.h" #include "xspell.h" +#include +#define _(String) gettext (String) + extern void redraw(), redraw_stats(), redraw_queries(), redraw_buttons(), redraw_text(), redraw_column(); extern int gesture_hit(); @@ -232,11 +235,6 @@ } } -#define STATS_X (476) -#define STATS_Y (449) -#define STATS_W (324) -#define STATS_H (104) -#define STATS_HP (244) void init_stats(py) struct player *py; @@ -358,7 +356,7 @@ DrawStringField(py, NameOfBeing(gameval, st->type, st->index), STATS_X+24, ypos, STATS_W-24); } - sprintf(sbuf, "%d %s%s%s%s%s%s%s", st->hp, + sprintf(sbuf, _("%d %s%s%s%s%s%s%s"), st->hp, (st->stuff & Stuff_INVISIBLE) ? "I" : "", (st->stuff & Stuff_RESIST_HEAT) ? "H" : "", (st->stuff & Stuff_RESIST_COLD) ? "C" : "", --- spellcast-1.0.orig/xquery.c +++ spellcast-1.0/xquery.c @@ -1,23 +1,12 @@ #include #include +#include #include #include #include "handwave.h" #include "spelllist.h" #include "xspell.h" -#define QUERY_X (32) -#define QUERY_Y (620) -#define QUERY_W (736) -#define QUERY_H (100) -#define QUERY_AW (450) - -#define QUERY_LEADING (8) -#define QMENU_LEADING (4) -#define QMENU_BORDER (4) - -#define GEST_SPACE (50) - typedef struct _tempstring { struct _tempstring *next; char str[1]; @@ -288,7 +277,7 @@ int pnum; int answer_init; struct target_list *tl; - static qu_buf[MAXQUESTIONLENGTH], ans_buf[MAXANSWERLENGTH]; + static char qu_buf[MAXQUESTIONLENGTH], ans_buf[MAXANSWERLENGTH]; flush_tempstrings(); @@ -693,7 +682,7 @@ hitrow = (-1); if (hitrow==py->query_sel) - return; + return 0; if (py->query_sel != (-1)) { /* erase old */ @@ -729,7 +718,7 @@ hitrow = (-1); if (hitrow==py->query_sel) - return; + return 0; if (py->query_sel != (-1)) { /* erase old */ @@ -751,6 +740,8 @@ py->lineheight+QMENU_LEADING); } } + + return 0; } int query_release(py, xpos, ypos, button) @@ -820,5 +811,6 @@ } redraw_queries_only(py, 0); } + return 0; } --- spellcast-1.0.orig/xspell.h +++ spellcast-1.0/xspell.h @@ -1,3 +1,8 @@ +#ifndef _XSPELL_H +#define _XSPELL_H + +#include "xwindow.h" + struct maingame { int ignorestuff; }; @@ -106,11 +111,6 @@ extern int win_wid, win_hgt; -#define SCROLL_W (16) -#define GEST_SIZE (48) -#define GEST_SMALL (16) -#define FRAME_SHADOW (3) - /* values for py->mousestate */ #define ms_None (0) #define ms_Gesture (1) @@ -138,3 +138,10 @@ extern int turnstate; extern int movelist[]; extern int blinklevel; + +#ifdef COLOUR +extern char *namelist[]; +extern long col_list[]; +#endif + +#endif --- spellcast-1.0.orig/xtalk.c +++ spellcast-1.0/xtalk.c @@ -1,16 +1,13 @@ #include #include #include +#include #include #include #include "handwave.h" #include "spelllist.h" #include "xspell.h" -#define TALK_X (348) -#define TALK_Y (576) -#define TALK_W (448) -#define TALK_LEADING (8) static char bigbuf[2048], bigbuf2[2048]; --- spellcast-1.0.orig/xtext.c +++ spellcast-1.0/xtext.c @@ -1,19 +1,11 @@ #include +#include #include #include #include "handwave.h" #include "spelllist.h" #include "xspell.h" -#define TEXT_WID (400) -#define TEXT_HGT (512) -#define TEXT_X (32) -#define TEXT_Y (32) - -#define MAXLINESIZE (512) /* maximum number of chars that could possibly fit - in a line. If the player uses bits1, this will - probably crash. Tough. */ - static void redraw_text_only(); void redraw_scrollbar(); @@ -57,6 +49,34 @@ py->sitext.h = TEXT_HGT; py->sitext.redraw = redraw_text_only; } +#ifdef COLOUR + +static long check_name(struct player *py, char *str) +{ + char *temp; + int i; + + for (i = 0; i < MAXPLAYERS; i++){ + temp = str; + + /* is there a name in this entry */ + + if (namelist[i]){ + + /* does it match the start of the string we were passed? */ + + if (strncmp(namelist[i], temp, strlen(namelist[i])) == 0){ + + return (col_list[i]); + } + } + } + + /* return default colour */ + return (BlackPixel(py->dpy, py->scn)); +} + +#endif static void redraw_text_only(py, baronly) struct player *py; @@ -65,6 +85,10 @@ int ix, sline; int len, width; +#ifdef COLOUR + long col; +#endif + if (!baronly) { /* draw text */ for (ix=py->sitext.top; ix<=py->sitext.nlines; ix++) { @@ -78,6 +102,11 @@ len = py->lineindex[ix].len; } width = py->lineindex[ix].width; +#ifdef COLOUR + /* F.Hendrikx */ + col = check_name(py, py->linebuf+py->lineindex[ix].start); + XSetForeground(py->dpy, py->blackgc, col); +#endif XDrawImageString(py->dpy, py->win, py->blackgc, py->textx, py->texty + py->lineheight*sline, py->linebuf+py->lineindex[ix].start, len); @@ -195,6 +224,11 @@ cx = cy; } +#ifdef COLOUR + /* F.Hendrikx */ + /* call redraw so that colours are correct */ + redraw_text (py); +#endif } int in_scrollbar_box(si, xpos, ypos) @@ -267,7 +301,7 @@ return ms_Scroll; } -int scrollbar_motion(si, xpos, ypos, button) +void scrollbar_motion(si, xpos, ypos, button) struct scroll_interface *si; int xpos, ypos; int button; @@ -290,7 +324,7 @@ } } -int scrollbar_release(si, xpos, ypos, button) +void scrollbar_release(si, xpos, ypos, button) struct scroll_interface *si; int xpos, ypos; int button; --- spellcast-1.0.orig/xwindow.h +++ spellcast-1.0/xwindow.h @@ -0,0 +1,323 @@ +#ifndef _XWINDOW_H +#define _XWINDOW_H + +/* Currently if no resolution is used it sets RES1024 */ +#ifndef RES800 + #ifndef RESVAR + #ifndef RES1024 + #define RES1024 + #endif + #endif +#endif + +#ifdef RES1024 +/* This is to be used in a 1024x768 resolution */ +#define WIN_WID 832 +#define WIN_HGT 750 +#define PIXMAP_SIZE (48) +/* general definitions */ +#define SCROLL_W (16) +#define GEST_SIZE (48) +#define GEST_SMALL (16) +#define FRAME_SHADOW (3) + + +#define COLUMN_SIZE (8) +#define COLUMN_X (476) +#define COLUMN_Y (33) +#define GEST_SPACE (50) +#define X_BETWEEN_COLS (20) + +/* Definitions previously in xbutton.c */ +#define BBOX_X (32) +#define BBOX_Y (610) +#define BBOX_W (2) +#define BBOX_H (1) + +#define BUTTON_W (150) +#define BUTTON_H (32) +#define BUTTON_CORNER (3) +#define BUTTON_SPACE (4) + +/* Definitions previously in xquery.c */ +#define QUERY_X (32) +#define QUERY_Y (642) +#define QUERY_W (736) +#define QUERY_H (100) +#define QUERY_AW (450) + +/* Definitions previously in xgest.c */ +#define QUERY_LEADING (8) +#define QMENU_LEADING (4) +#define QMENU_BORDER (4) +#define GEST_SPACE (50) +#define X_BETWEEN_COLS (20) + +/* Definitions previously in xtext.c */ + +#define TEXT_WID (400) +#define TEXT_HGT (550) +#define TEXT_X (32) +#define TEXT_Y (32) + +#define MAXLINESIZE (512) /* maximum number of chars that could possibly fit + in a line. If the player uses bits1, this will + probably crash. Tough. */ + +/* Definitions previously in xtalk.c */ +#define TALK_X (380) +#define TALK_Y (610) +#define TALK_W (448) +#define TALK_LEADING (8) + + +/* Definitios previously in xloop.c */ +#define STATS_X (476) +#define STATS_Y (449) +#define STATS_W (324) +#define STATS_H (150) +#define STATS_HP (244) + + + +#endif + +#ifdef RES800 +/* This is for 800x600 */ + +/* Definitions previously in main.c */ +#define WIN_WID 800 +#define WIN_HGT 600 +#define PIXMAP_SIZE (48) + +/* Definitions previousy in xgest.c */ +/* Define the size for the gesture history + list. Was defined with 8 gestures */ +/* Maybe we could do adjust COLUMN_SIZE + a bit better so it auto adjusts + based on the resolution (WIN_WID). + Perhaps based on size of pixmaps 48x48?*/ +#define COLUMN_SIZE (5) +#define COLUMN_X (460) +#define COLUMN_Y (33) +#define GEST_SPACE (50) +#define X_BETWEEN_COLS (20) +/* general definitions */ +#define SCROLL_W (16) +#define GEST_SIZE (48) +#define GEST_SMALL (16) +#define FRAME_SHADOW (3) + + +/* Definitions previously in xbutton.c */ +/* Defines the position and size of buttons */ +#define BBOX_X (32) +#define BBOX_Y (400) +#define BBOX_W (2) +#define BBOX_H (1) + +#define BUTTON_W (150) +#define BUTTON_H (32) +#define BUTTON_CORNER (3) +#define BUTTON_SPACE (4) + + +/* Definitions previously in xtext.c */ + +#define TEXT_WID (400) +#define TEXT_HGT (350) +#define TEXT_X (32) +#define TEXT_Y (32) + +#define MAXLINESIZE (512) /* maximum number of chars that could possibly fit + in a line. If the player uses bits1, this will + probably crash. Tough. */ + +/* Definitions previously in xquery.c */ +#define QUERY_X (32) +#define QUERY_Y (450) +#define QUERY_W (736) +#define QUERY_H (100) +#define QUERY_AW (450) + +#define QUERY_LEADING (8) +#define QMENU_LEADING (4) +#define QMENU_BORDER (4) + +#define GEST_SPACE (50) + +/* Definitions previously in xtalk.c */ +#define TALK_X (335) +#define TALK_Y (400) +#define TALK_W (430) +#define TALK_LEADING (8) + + +/* Definitios previously in xloop.c */ +#define STATS_X (475) +#define STATS_Y (300) +#define STATS_W (300) +#define STATS_H (85) +#define STATS_HP (244) + + +#endif + +#ifdef RESSMALL +/* Taken from patched spellcast found at */ +/* This is to be used in a small resolution */ +#define WIN_WID 832 +#define WIN_HGT 575 +#define PIXMAP_SIZE (48) +/* general definitions */ +#define SCROLL_W (16) +#define GEST_SIZE (48) +#define GEST_SMALL (16) +#define FRAME_SHADOW (3) + +/* Definitions previously in xgest.c */ +#define COLUMN_SIZE (8) +#define COLUMN_X (426) +#define COLUMN_Y (18) +#define GEST_SPACE (50) +#define X_BETWEEN_COLS (10) + + + +/* Definitions previously in xbutton.c */ +#define BBOX_X (32) +#define BBOX_Y (426) +#define BBOX_W (2) +#define BBOX_H (1) + +#define BUTTON_W (150) +#define BUTTON_H (28) +#define BUTTON_CORNER (3) +#define BUTTON_SPACE (4) + +/* Definitions previously in xquery.c */ +#define QUERY_X (32) +#define QUERY_Y (465) +#define QUERY_W (736) +#define QUERY_H (100) +#define QUERY_AW (450) + +#define QUERY_LEADING (8) +#define QMENU_LEADING (4) +#define QMENU_BORDER (4) + +#define GEST_SPACE (50) + +/* Definitions previously in xtext.c */ + +#define TEXT_WID (400) +#define TEXT_HGT (332) +#define TEXT_X (18) +#define TEXT_Y (5) + +#define MAXLINESIZE (512) /* maximum number of chars that could possibly fit + in a line. If the player uses bits1, this will + probably crash. Tough. */ + +/* Definitions previously in xtalk.c */ +#define TALK_X (380) +#define TALK_Y (425) +#define TALK_W (448) +#define TALK_LEADING (8) + + +/* Definitios previously in xloop.c */ +#define STATS_X (18) +#define STATS_Y (343) +#define STATS_W (324) +#define STATS_H (74) +#define STATS_HP (244) + + + +#endif + + +#ifdef RESVAR +/* This is for other resolutions */ +/* TODO: this must be intelligently done so that we can + define WIN_WID and WIN_HGT and we get an acceptable screen */ + +/* Definitions previously in main.c */ +#define WIN_WID 800 +#define WIN_HGT 600 +#define PIXMAP_SIZE (48) +/* general definitions */ +#define SCROLL_W (16) +#define GEST_SIZE (48) +#define GEST_SMALL (16) +#define FRAME_SHADOW (3) + + +/* Definitions previousy in xgest.c */ +/* Define the size for the gesture history + list. Was defined with 8 gestures */ +/* Maybe we could do adjust COLUMN_SIZE + a bit better so it auto adjusts + based on the resolution (WIN_WID). + Perhaps based on size of pixmaps 48x48?*/ +#define COLUMN_SIZE (8) +#define COLUMN_X (60+WIN_WID/2) +#define COLUMN_Y (33) +#define GEST_SPACE (50) + +/* Definitions previouls in xbutton.c */ +/* Defines the position and size of buttons */ +#define BBOX_X (32) +#define BBOX_Y (WIN_HGT) +#define BBOX_W (2) +#define BBOX_H (1) + +#define BUTTON_W (150) +#define BUTTON_H (32) +#define BUTTON_CORNER (3) +#define BUTTON_SPACE (4) + + +/* Definitions previously in xtext.c */ + +#define TEXT_WID (WIN_WID/2) +#define TEXT_HGT (WIN_HGT*5/6) +#define TEXT_X (32) +#define TEXT_Y (32) + +#define MAXLINESIZE (512) /* maximum number of chars that could possibly fit + in a line. If the player uses bits1, this will + probably crash. Tough. */ + +/* Definitions previously in xquery.c */ +#define QUERY_X (32) +#define QUERY_Y (WIN_HGT+10) +#define QUERY_W (736) +#define QUERY_H (100) +#define QUERY_AW (450) + +#define QUERY_LEADING (8) +#define QMENU_LEADING (4) +#define QMENU_BORDER (4) +#define GEST_SPACE (50) +#define X_BETWEEN_COLS (20) + +/* Definitions previously in xtalk.c */ +#define TALK_X (WIN_WID/2) +#define TALK_Y (WIN_HGT*5/6+10) +#define TALK_W (448) +#define TALK_LEADING (8) + + +/* Definitios previously in xloop.c */ +#define STATS_X (476) +#define STATS_Y (449) +#define STATS_W (324) +#define STATS_H (104) +#define STATS_HP (244) + + +#endif + +#endif /* of ifndef XWINDOW_H */