summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoj Srivastava <srivasta@debian.org>2004-03-11 03:44:51 +0000
committerManoj Srivastava <srivasta@debian.org>2004-03-11 03:44:51 +0000
commit178b3ece3e3457fa6fc0acc1c766bd3557dda6cb (patch)
treea4372baeb8182ce98b55f934d85aad0b28269627
parent9bce92ff39cba298b6549553d08cf0af96c26b8c (diff)
Imported new upstream version
Imported new upstream version git-archimport-id: srivasta@debian.org--2003-primary/tome--upstream--2.2--patch-6
-rw-r--r--README270
-rw-r--r--changes.old37
-rw-r--r--changes.txt53
-rw-r--r--credits.txt4
-rw-r--r--lib/core/crpt_aux.lua16
-rw-r--r--lib/core/util.lua21
-rw-r--r--lib/edit/d_info.txt2
-rw-r--r--lib/edit/r_info.txt10
-rw-r--r--lib/edit/v_info.txt10
-rw-r--r--lib/file/news.txt2
-rw-r--r--lib/file/news2.txt2
-rw-r--r--lib/file/rart_f.txt20
-rw-r--r--lib/help/automat.txt2
-rw-r--r--lib/help/c_alchem.txt21
-rw-r--r--lib/help/c_mindcr.txt4
-rw-r--r--lib/help/c_runecr.txt5
-rw-r--r--lib/help/g_manwe.txt4
-rw-r--r--lib/help/g_melkor.txt4
-rw-r--r--lib/help/luckspoi.txt17
-rw-r--r--lib/help/m_mimic.txt4
-rw-r--r--lib/help/m_music.txt2
-rw-r--r--lib/help/rm_barb.txt12
-rw-r--r--lib/help/rm_spec.txt2
-rw-r--r--lib/help/skills.txt44
-rw-r--r--lib/mods/mods_aux.lua3
-rw-r--r--lib/module.lua2
-rw-r--r--lib/scpt/god.lua56
-rw-r--r--lib/scpt/s_manwe.lua6
-rw-r--r--lib/scpt/s_music.lua2
-rw-r--r--src/angband.ico (renamed from src/ANGBAND.ICO)bin766 -> 766 bytes
-rw-r--r--src/birth.c18
-rw-r--r--src/cmd1.c42
-rw-r--r--src/cmd2.c6
-rw-r--r--src/cmd3.c18
-rw-r--r--src/cmd4.c2
-rw-r--r--src/cmd6.c4
-rw-r--r--src/cmd7.c44
-rw-r--r--src/config.h6
-rw-r--r--src/defines.h3
-rw-r--r--src/dungeon.c11
-rw-r--r--src/externs.h2
-rw-r--r--src/gen_maze.c2
-rw-r--r--src/init1.c14
-rw-r--r--src/main-dmy.c315
-rw-r--r--src/main.c13
-rwxr-xr-xsrc/makediff18
-rw-r--r--src/makefile.mingw431
-rw-r--r--src/makefile.std4
-rw-r--r--src/monster3.c2
-rw-r--r--src/object.pkg1
-rw-r--r--src/object1.c2
-rw-r--r--src/object2.c8
-rw-r--r--src/player.pkg890
-rw-r--r--src/q_one.c2
-rw-r--r--src/q_shroom.c6
-rw-r--r--src/q_thief.c2
-rw-r--r--src/q_wight.c1
-rw-r--r--src/randart.c2
-rw-r--r--src/spells2.c14
-rw-r--r--src/tables.c22
-rw-r--r--src/traps.c8
-rw-r--r--src/util.pkg9
-rw-r--r--src/w_dun.c2
-rw-r--r--src/w_mnster.c2
-rw-r--r--src/w_obj.c4
-rw-r--r--src/w_play_c.c2
-rw-r--r--src/w_player.c37
-rw-r--r--src/w_quest.c2
-rw-r--r--src/w_spells.c2
-rw-r--r--src/w_util.c53
-rw-r--r--src/w_z_pack.c2
-rw-r--r--src/xtra1.c3
-rw-r--r--src/xtra2.c12
73 files changed, 1696 insertions, 984 deletions
diff --git a/README b/README
deleted file mode 100644
index 403b5d32..00000000
--- a/README
+++ /dev/null
@@ -1,270 +0,0 @@
-This is the README file for Angband 2.8.1 (03/04/97)
-[Meaning it might not apply for Zangband in all respects, of course... (TY)]
-[or for ToME :)]
-
-Angband 2.8.1 is a semi-stable official release incorporating all of the
-improvements added since Angband 2.7.8. Any bugs found in Angband 2.8.1
-will be fixed in Angband 2.8.2, the next stable official release.
-
-See the Official Angband Home Page "http://www.phial.com/angband/"
-for more information about exactly what has changed recently.
-
-=== General information ===
-
-Angband is a "graphical" dungeon adventure game using textual characters
-to represent the walls and floors of a dungeon and the inhabitants therein,
-in the vein of "rogue", "hack", "nethack", and "moria".
-
-There are extensive ascii "on line help" files in the "lib/help" directory.
-
-This version of Angband will run on Macintosh, Windows, Unix (X11/Curses),
-Linux (X11/Curses), Acorn, Amiga, various IBM machines, and many others...
-
-See Makefile, h-config.h, and config.h for details on compiling.
-See "Makefile.xxx" and "main-xxx.c" for various supported systems.
-
-Visit the Angband Home Page ("http://www.phial.com/angband/"),
-and browse through the Angband newsgroup ("rec.games.roguelike.angband").
-
-Send bug reports, suggestions, etc, to Ben Harrison ("benh@phial.com").
-
-
-=== Quick and dirty compilation instructions (for Unix) ===
-
-Step 1: Acquire. Ftp to "export.andrew.cmu.edu:/angband/Source"
- Try "bin" and "mget angband*.tar.gz" and "y"
-Step 2: Extract. Try "gunzip *.gz" then "tar -xvf *.tar"
-Step 3: Prepare. Try "cd angband*/src", then edit "Makefile"
- You may also edit "h-config.h" and "config.h"
-Step 4: Compile. Try "make", and then "cd .." if successful
-Step 5: Execute. Try "angband -uTest" to initialize stuff
-Step 6: Play.... Read the "online help" via the "?" command.
-
-
-=== Special instructions for other systems ===
-
-The IBM requires extraction with "pkunzip -d" to create subdirectories.
-
-The Macintosh requires that the "lib" folder be in the same folder as
-the executable. Also, note that System 7.5 (and perhaps others) are
-brain damaged, and may default to the incorrect folder for opening
-savefiles. Make sure you keep all your savefiles in the proper place,
-and if you load a savefile from the wrong place, note that the game
-may decide to re-save your savefile in the proper place when you quit.
-
-
-=== Upgrading from older versions or other platforms ===
-
-If you have been playing Angband on a different platform, or with an older
-version of Angband, it may be possible to "upgrade" to Angband 2.8.X, keeping
-your old savefiles, high score list, and other files, instead of starting over.
-
-Angband 2.8.X uses a platform independant file format for the binary files
-that store information about games in progress, known as "savefiles". Also,
-Angband 2.8.X is able to translate savefiles from any version of Angband from
-Angband 2.5.1 on. Unfortunately, pre-2.5.1 savefiles are not usable, since
-they used a system specific savefile format, and did not have an official
-definition, and sometimes include assumptions that are no longer valid. To
-use an old savefile, simply copy it into the "lib/save" directory, changing
-the name of the savefile (if necessary) to satisfy the requirements of the
-platform you are using. In general, the savefile should be named "UUU.NNN"
-or "NNN" where "UUU" is the userid of the player (on "multiuser" systems),
-and "NNN" is the name of the "character" in the savefile. Note that only
-"multiuser" platforms use the "UUU.NNN" form, and the "period" is required.
-
-Angband 2.8.X uses a platform independant (?) file format for the binary
-file used to store the high score list. This file may be moved between
-platforms (if needed) or copied from older versions (Angband 2.7.4 or later).
-Angband 2.8.X uses a high score file called "scores.raw", which is kept in
-the "lib/apex" directory. Older versions kept the "scores.raw" file in the
-"lib/data" directory, along with several other version specific files.
-
-Angband 2.8.X uses a platform independant file format for the ascii files
-used to store information about dead players, which is used to help create
-"player ghosts" in the dungeon. If necessary, these files, which are kept
-in the "lib/bone" directory, may be copied from older versions, as long as
-you make sure that they are renamed as "bone.XXX" where XXX is the level on
-which the dead player died, and that every line in the file is "complete".
-It is also possible to delete the contents of the "lib/bone" directory at
-any time, which will prevent the creation of player ghosts. Currently,
-these files are not actually used by the game.
-
-Angband 2.8.X uses a set of ascii "configuration files" which are kept in the
-"lib/file" directory (see below). Certain of these files may be taken from
-older versions, though most are optional for the most common configurations.
-
-Angband 2.8.X uses a set of ascii "user pref files" which are kept in the
-"lib/user" directory. Some of these files are usable on multiple platforms,
-but in general they are restricted to a single platform. In general, "pref"
-files from older versions may be used with Angband 2.8.X, by moving them to
-the "lib/user" directory from the old "lib/pref" or "lib/pref-*" directories,
-but note that some important changes have been made in Angband 2.8.X, and, for
-example, old "pref" files which change the "attr/char" definitions of "terrain"
-features such as walls or doors must be changed to use the new methods. Make
-sure to put comments in your "user pref files" describing the purpose and the
-proper platform for your files, to facilitate future upgrades.
-
-
-=== Directory "src" ===
-
-The "src" directory contains the complete set of source files.
-
-The "main-???.c" and "Makefile.???" allow compilation on various systems.
-
-Some of these systems (Macintosh, Windows) require "extra" files, most of
-which are located elsewhere (except for the "A-mac-h.*" Macintosh files).
-
-
-=== Directory "lib" ===
-
-The "lib" directory contains all of Angband's special sub-directories.
-
-
-=== Directory "lib/apex" ===
-
-The "lib/apex" directory contains the "high score" files.
-
-The "scores.raw" file contains the "high score" table, in a "semi-binary" form,
-that is, all the bytes in the file are normal ascii values, but this includes
-the special "nul" or "zero" byte, which is used to separate and pad records.
-You should probably not attempt to modify this file with a normal text editor.
-This file should be (more or less) portable between different platforms. It
-must be present (or creatable) for the game to run correctly.
-
-
-=== Directory "lib/bone" ===
-
-The "lib/bone" directory contains special "player ghost" template files.
-
-The files in this directory have filenames of the form "bone.NNN" where
-"NNN" is the level on which the player died. They contain information
-about the dead player, currently, one line each for the player name,
-maximum hitpoints, race, and class. These files are probably portable,
-and are probably compatible with older bone files, if those files are
-renamed, and a final newline is added for compatibility. Actually,
-only the "player name" from these files is actually used.
-
-
-=== Directory "lib/data" ===
-
-The "lib/data" directory contains various special binary data files.
-
-The files 'f_info.raw', 'k_info.raw', 'a_info.raw', 'e_info.raw', 'r_info.raw',
-and 'v_info.raw' are binary image files constructed by parsing the ascii
-template files in "lib/edit", described below. These files are required,
-but can be created by the game if the "lib/edit" directory contains the
-proper files, and if the game was compiled to allow this creation.
-
-
-=== Directory "lib/edit" ===
-
-The "lib/edit" directory contains various special ascii data files.
-
-The files 'f_info.txt', 'k_info.txt', 'a_info.txt', 'e_info.txt', 'r_info.txt',
-and 'v_info.txt' are ascii template files used to construct the binary image
-files in "lib/data", described above. These files describe the "terrain
-features", "object kinds", "artifacts", "ego-items", "monster races", and
-"dungeon vaults", respectively.
-
-The ascii template files are easier to edit than hard-coded arrays, and also
-prevent compilation errors on some machines, and also shrink the size of the
-binary executable, and also provide a user-readible spoiler file of sorts.
-
-These files are optional if the game is distributed with pre-created
-binary raw files in "lib/data".
-
-
-=== Directory "lib/file" ===
-
-The "lib/file" directory contains various special ascii data files.
-
-The 'news.txt' file is displayed to the user when the game starts up. It
-contains basic information such as my name and email address, and the names
-of some of the people who have been responsible for previous versions of
-Angband. You may edit this file (slightly) to include local "site specific"
-information such as who compiled the local executable. You should refer the
-user to a special "online help" file, if necessary, that describes any local
-modifications in detail. The first two lines of this file should be blank,
-and only the next 20 lines should contain information.
-
-The 'dead.txt' file is displayed to the user when the player dies. It
-contains a picture of a tombstone which is filled in with interesting
-information about the dead player. You should not edit this file.
-
-The optional file 'wizards.txt' may be used to specify which users may enter
-'wizard' mode. A missing file provides no restrictions, and an empty file
-prevents everyone from entering 'wizard' mode. This file is only used on
-multi-user machines, otherwise there are no restrictions.
-
-The optional file 'time.txt' may be used to restrict the "times" at which
-the game may be played, by providing specification of which hours of each day
-of the week are legal for playing the game. See 'files.c' for more details.
-A missing file provides no restrictions, and an empty file will, by default,
-forbid the playing of the game from 8am-5pm on weekdays. This file is only
-used on multi-user machines, and only if CHECK_TIME is defined, otherwise,
-there are no restrictions.
-
-The optional file 'load.txt' may be used to restrict the "load" which the game
-may impose on the system. See 'files.c' for more details. A missing file
-provides no restrictions, and an empty file will, by default, restrict the
-"current load" to a maximal value of 100*FSCALE. This file is only used on
-multi-user machines, and only if CHECK_LOAD is defined, otherwise, there are
-no restrictions.
-
-
-=== Directory "lib/help" ===
-
-The "lib/help" directory contains the "online help" files.
-
-This directory is used to search for normal "on line help" files.
-
-
-=== Directory "lib/info" ===
-
-The "lib/info" directory (optional) contains the "spoiler" files.
-
-This directory is used to search for any "on line help" file that cannot
-be found in the "lib/help" directory.
-
-The user may "redirect" this directory to point at any available directory.
-
-Note that the default "help.hlp" file allows the "9" key to access a help
-file called "spoiler.hlp", and allows the "0" key to access "user.hlp".
-
-These special help files can thus be placed in the user's own "info"
-directory to allow the on line help to access his files.
-
-
-=== Directory "lib/save" ===
-
-The "lib/save" directory contains "savefiles" for the players.
-
-Each savefile is named "NNN" where "NNN" is the name of the savefile, or,
-on some machines, the name of the character, or, on multi-user machines,
-"UUU.NNN", where "UUU" is the player uid and "NNN" is the savefile name.
-
-The savefiles should be portable between systems, assuming that the
-appropriate renaming is perfomed, and any file "type" information is
-specified (for the Macintosh).
-
-
-=== Directory "lib/user" ===
-
-The "lib/user" directory contains the "user pref files", if any.
-
-In general, these files are used to "customize" aspects of the game for
-a given site or a given player. These files can define "macros" (which
-allow a single keypress to perform a complex action), set options (which
-affect how the game will handle various situations), and specify visual
-mappings for various monsters, objects, or terrain features.
-
-See "files.c" for more information on the proper "format" of these files.
-
-
-=== Directory "lib/xtra" ===
-
-The "lib/xtra" directory contains special system files, if any.
-
-
---- Ben ---
-
diff --git a/changes.old b/changes.old
index 91fc8137..b5755eb8 100644
--- a/changes.old
+++ b/changes.old
@@ -4370,10 +4370,6 @@ becomes 0, allowing spells to summon fiery blades and such
[M]- Increase Thunderlord rarities -- neil
14/12/2002 -- T.o.M.E 2.1.0 aka "No Surrender, No Retreat"
-# Keys:
-# I = Interface, M = Monster, O = Object, G = Gameplay,
-# m = Misc, P = Player, D = Dungeon, B = Bug
-
14/12/2002
[B]- Artifact spoiler was messed up
@@ -5333,3 +5329,36 @@ becomes 0, allowing spells to summon fiery blades and such
[B]- permanent_levels marked experimental because it is broken -- neil
17/11/2003 -- T.o.M.E 2.2.4 aka 'A Bug's Life'
+
+19/11/2003
+[B]- Fix monster possessor crash -- neil
+[B]- Fix random quest skill requester -- neil
+
+20/11/2003
+[B]- Fix crash when picking up ammo into your quiver that can't be fired
+ with the launcher you are wielding -- neil
+
+22/11/2003
+[B]- God quest fix -- neil
+
+24/11/2003
+[B]- Disintegrating walls should not bother Yavanna -- neil
+
+01/12/2003
+[B]- Yet another try at fixing levelled carried monsters. Their attacks
+ are affected by their level now and their hitpoints are handled better.
+ I should have said this for the last release, but un-hypnotize any pets
+ before upgrading from 2.2.2. Otherwise compatibility is fine. -- neil
+
+05/12/2003
+[B]- Semi-wraiths should not be hurt by climbing over mountains -- neil
+
+08/12/2003
+[B]- Fixed Flame of Udun spell
+
+10/12/2003
+[B]- Diggers are not weapons and should not be displayed as such -- neil
+[O]- Some items that give damage bonuses will be more clear about it -- neil
+[M]- Drain attacks can't drain the one artifact wand, staff, or horn -- neil
+
+[V] T.o.M.E 2.2.5 aka "Death of a Bug"
diff --git a/changes.txt b/changes.txt
index b1f8089c..80cefce0 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,22 +1,39 @@
-T.o.M.E 2.2.5 aka "They've Got A Secret" changes
+(null) 0.0.0 changes
-Monster changes:
-- Drain attacks can't drain the one artifact wand, staff, or horn -- neil
+Interface changes:
+- Pressing Escape gets you out of the pet dismissal list -- neil
-Object changes:
-- Some items that give damage bonuses will be more clear about it -- neil
+Misc changes:
+- Helpfiles: bearform combat help, music typos, barbarian revisions.
+ -- fearoffours
+ - Typos in the description of arrows, shots, bolts; punctuation in the
+ mushroom quest -- masmarangio
+- HOOK_CALC_BONUS_END hooks
+- Helpfiles: corrected starting equipment of mindcrafters -- masmarangio
+ - Backport of old helpfile updates: no Geomancy for Alchemists and Rune-
+ crafters, updated luck spoiler, corruption spoiler in crpt_aux.lua, a
+ link in skills.txt, an example in automatizer.txt.
+ monsters3.c: changed 'golem' to 'creature', since the Mind Steal Spell
+ also allows to control a monster. -- masmarangio
+- Typo (massage -> message) from the forum -- masmarangio
+- Capitalisation in the names of junkarts -- masmarangio
+- mindcraft_info: Corrected and expanded the info for mindcraft powers
+ -- masmarangio
+- Small corrections in luck spoiler, description of Manwe's Blessing and
+ m_mimic.txt -- masmarangio
+
Bug fixes:
-- Fix monster possessor crash -- neil
-- Fix random quest skill requester -- neil
-- Fix crash when picking up ammo into your quiver that can't be fired
- with the launcher you are wielding -- neil
-- God quest fix -- neil
-- Disintegrating walls should not bother Yavanna -- neil
-- Yet another try at fixing levelled carried monsters. Their attacks
- are affected by their level now and their hitpoints are handled better.
- I should have said this for the last release, but un-hypnotize any pets
- before upgrading from 2.2.2. Otherwise compatibility is fine. -- neil
-- Semi-wraiths should not be hurt by climbing over mountains -- neil
-- Fixed Flame of Udun spell
-- Diggers are not weapons and should not be displayed as such -- neil
+- Prevent recall to Lost Temple before getting the quest -- neil
+- Automatizer now accepts TV_TOTEM -- neil
+- Some vaults incorrectly named -- fearoffours
+- Wight quest crash fix by 'amaurea' -- neil
+- God choosen at random was broken -- masmarangio
+- Typo in q_one.c (or -> of)
+- Don't use a turn when cancelling a possessor action -- neil
+ - summon_true crashed the game with a summon skill < 1 -- masmarangio
+ - test_object_wish: aware status is saved and restored -- masmarangio
+- God quest will no longer give inaccurate or misleading directions. It
+ also will now give directions from two static features, and an
+ approximate, relative distance from each of those points.
+ -- fearoffours
diff --git a/credits.txt b/credits.txt
index 6297e995..eca98f1e 100644
--- a/credits.txt
+++ b/credits.txt
@@ -32,7 +32,7 @@ drop me a line please) in no particular order:
- Kieron for some patches
- Runescrye for ra_info.txt and surely more :)
- Fearof4s for lua patches, lua tutorial, quests and stuff.
-- Pav Lucistnik for some patches
+- Pav Lucistnik for some patches and hosting the CVS
- Mef for the huge task of updating class and magic help documents for 2.x
and lots and lots of other help updates!
- Erik J Brown for some changes to help docs.
@@ -44,7 +44,7 @@ drop me a line please) in no particular order:
- John Gilmore for alchemy improvements patch
- Massimiliano Marangio for lots and lots of help updates, typo corrections,
bug fixes etc.
-- Neil Stevens <neil@hakubi.us> for some polishing
+- Neil Stevens <neil@hakubi.us> for making stable releases
- Jeff Epler for automatizer improvements, and certainly more in the future ;)
- Scott Bigham for some cool patches
- Magua(magua@speakeasy.net) who wrote the java applet to play cmovies online
diff --git a/lib/core/crpt_aux.lua b/lib/core/crpt_aux.lua
index bbd83661..e00d0b22 100644
--- a/lib/core/crpt_aux.lua
+++ b/lib/core/crpt_aux.lua
@@ -198,22 +198,14 @@ operate when they are activated (whether by player choice or as a random
event). You can check which corruptions do you have in the knowledge screen
6 (accessed through the '~' menu) or in a character dump.
-#####GGaining and losing corruptions
-There are many ways how to gain or lose corruptions.
-
-You can select the *****rm_corru.txt*0[corrupted race] on birth. Such foul
-adventurers will gain and lose corruptions as they gain experience and
-levels. There is a 1 in 3 chance to lose a corruption instead
-of gaining it on these occasions.
+#####GGaining and (not) losing corruptions
+There are several ways that you can become corrupted.
You can become corrupted by quaffing a Potion of Corruption or by drinking
-from Fountain of Corruption. Also some strange items can be activated
+from a Fountain of Corruption. Also some strange items can be activated
for corruption.
-There is 1 in 3 chance you will get corrupted when hit by a chaos attack
-while lacking a source of chaos resistance.
-
-You can also gain and lose corruptions when polymorphing yourself.
+Corruptions are permanent. Once you have one, you have it for life.
]])
local i, e
diff --git a/lib/core/util.lua b/lib/core/util.lua
index c743865a..7920db98 100644
--- a/lib/core/util.lua
+++ b/lib/core/util.lua
@@ -74,7 +74,7 @@ end
-- Returns the direction of the compass that y2, x2 is from y, x
-- the return value will be one of the following: north, south,
-- east, west, north-east, south-east, south-west, north-west,
--- or nil if it is within 2 tiles.
+-- or "close" if it is within 2 tiles.
function compass(y, x, y2, x2)
local y_axis, x_axis, y_diff, x_diff, compass_dir
@@ -102,23 +102,20 @@ function compass(y, x, y2, x2)
x_axis = "west"
end
-
+ -- Maybe it is very close
+ if ((not x_axis) and (not y_axis)) then compass_dir = "close"
-- Maybe it is (almost) due N/S
- if (not x_axis) and (not y_axis) then compass_dir = nil
-
- elseif not x_axis then compass_dir = y_axis
-
+ elseif not x_axis then compass_dir = y_axis
-- Maybe it is (almost) due E/W
- elseif not y_axis then compass_dir = x_axis
-
+ elseif not y_axis then compass_dir = x_axis
-- or if it is neither
- else compass_dir = y_axis.."-"..x_axis
+ else compass_dir = y_axis.."-"..x_axis
end
return compass_dir
end
--- Returns an approximation of the 'distance' of y2, x2 from y, x.
+-- Returns a relative approximation of the 'distance' of y2, x2 from y, x.
function approximate_distance(y, x, y2, x2)
local y_diff, x_diff, most_dist
@@ -147,8 +144,10 @@ function approximate_distance(y, x, y2, x2)
-- how far away then?
if most_dist >= 41 then
+ how_far = "a very long way"
+ elseif most_dist >= 25 then
how_far = "a long way"
- elseif most_dist >= 11 then
+ elseif most_dist >= 8 then
how_far = "quite some way"
else
how_far = "not very far"
diff --git a/lib/edit/d_info.txt b/lib/edit/d_info.txt
index b381c11c..3c4d510f 100644
--- a/lib/edit/d_info.txt
+++ b/lib/edit/d_info.txt
@@ -491,7 +491,7 @@ W:1:50:1:0:14:160
L:1:100:1:0:1:0
A:56:100:56:0:56:0:57:58
O:20:20:20:20
-F:FILL_METHOD_4
+F:FILL_METHOD_4 | NO_RECALL
R:100:0
# N:<index>:<name>
diff --git a/lib/edit/r_info.txt b/lib/edit/r_info.txt
index ecf6614d..4949f66c 100644
--- a/lib/edit/r_info.txt
+++ b/lib/edit/r_info.txt
@@ -1489,9 +1489,9 @@ E:1:1:1:2:1:1
O:0:70:25:0
B:HIT:HURT:1d7
B:HIT:HURT:1d7
-F:MALE |
+F:MALE | GOOD | WILD_TOO | DROP_SKELETON | DROP_CORPSE |
F:FORCE_SLEEP |
-F:DROP_60 | WILD_TOO | DROP_SKELETON | DROP_CORPSE |
+F:DROP_60 |
F:OPEN_DOOR | BASH_DOOR |
F:MORTAL | BASEANGBAND | HAS_LITE
S:1_IN_9 |
@@ -2194,10 +2194,10 @@ E:1:1:1:2:1:1
O:30:55:10:0
B:HIT:HURT:1d7
B:HIT:HURT:1d7
-F:MALE | GOOD | WILD_TOO | DROP_SKELETON | DROP_CORPSE
+F:MALE | GOOD | WILD_TOO | DROP_SKELETON | DROP_CORPSE |
F:FORCE_SLEEP |
F:FRIENDS | DROP_60 |
-F:OPEN_DOOR | BASH_DOOR
+F:OPEN_DOOR | BASH_DOOR |
F:MORTAL | BASEANGBAND | HAS_LITE
S:1_IN_9 |
S:SCARE | CAUSE_1
@@ -5266,7 +5266,7 @@ E:1:1:1:2:1:1
O:20:60:0:10
B:HIT:HURT:4d5
B:HIT:HURT:4d5
-F:MALE | DROP_SKELETON | DROP_CORPSE |
+F:MALE | GOOD | DROP_SKELETON | DROP_CORPSE |
F:DROP_1D2 |
F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
F:BASEANGBAND | MORTAL | HAS_LITE
diff --git a/lib/edit/v_info.txt b/lib/edit/v_info.txt
index fbc54475..062fbd49 100644
--- a/lib/edit/v_info.txt
+++ b/lib/edit/v_info.txt
@@ -1801,7 +1801,7 @@ D:%%%%%%%%%%%%%%%%%%%%%
# XXX
-N:82:L.ss.r vault (checker.oard)
+N:82:Lesser vault (checker.oard)
X:7:5:13:21
D:%%%%%%%%%%%%%%%%%%%%%
D:%XXXXXXXXXXXXXXXXXXX%
@@ -1977,7 +1977,7 @@ D:%.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.%
D:%..........................................................%
D:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-N:91:Rounda.out Three
+N:91:Roundabout Three
X:8:30:20:97
D:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
D:%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%
@@ -2056,7 +2056,7 @@ D:%..###..%
D:%.......%
D:%%%%%%%%%
-N:96:Minor .oss Vault
+N:96:Minor Boss Vault
X:7:3:10:10
D:%%%%%%%%%%
D:%........%
@@ -2069,7 +2069,7 @@ D:%..X++X..%
D:%........%
D:%%%%%%%%%%
-N:97:(Lesser) Major .oss Vault
+N:97:(Lesser) Major Boss Vault
X:7:20:10:10
D:%%%%%%%%%%
D:%........%
@@ -2082,7 +2082,7 @@ D:%..X++X..%
D:%........%
D:%%%%%%%%%%
-N:98:(Greater) Majorly .ossy Vault
+N:98:(Greater) Majorly Bossy Vault
X:8:37:10:10
D:%%%%%%%%%%
D:%........%
diff --git a/lib/file/news.txt b/lib/file/news.txt
index 267b94be..e72edd10 100644
--- a/lib/file/news.txt
+++ b/lib/file/news.txt
@@ -4,7 +4,7 @@
#G // | | | | #W _#r,-"####`-^ #W ) #G || || || ||==:
#G || | | | | #W ,#D###########r`W='#D###W`.#W () #G || || || ||
#G \\_// \ -- / #W ,#D#######################D###W:#r,=. #G || || || \\===
-#G \_/ ===== #W /.#D###W,".#D#####W,".#D###########r"#W##\ #G #ov2.2.5 #G
+#G \_/ ===== #W /.#D###W,".#D#####W,".#D###########r"#W##\ #G #ov2.2.6 #G
#W ,-. _,-= /"._ ,-. #w ," #W `:' `:#D#####W[JW] ,. #G
#W," `," `=._ `" -#w; #G The #W\#D#####W;"' V \#W __,-. ,-=.
#W / " `-. #w / #GTroubles of #W `" `-.#W__,-""._," "--," >-=-
diff --git a/lib/file/news2.txt b/lib/file/news2.txt
index 3f90179a..3e9dec65 100644
--- a/lib/file/news2.txt
+++ b/lib/file/news2.txt
@@ -4,7 +4,7 @@
#G // | | | | #W _#r,-"####`-^ #W ) #G || || || ||==:
#G || | | | | #W ,#D###########r`W='#D###W`.#W () #G || || || ||
#G \\_// \ -- / #W ,#D#######################D###W:#r,=. #G || || || \\===
-#G \_/ ===== #W /.#D###W,".#D#####W,".#D###########r"#W##\ #G #ov2.2.5 #G
+#G \_/ ===== #W /.#D###W,".#D#####W,".#D###########r"#W##\ #G #ov2.2.6 #G
#W ,-. _,-= /"._ ,-. #w ," #W `:' `:#D#####W[JW] ,. #G
#W," `," `=._ `" -#w; #G The #W\#D#####W;"' V \#W __,-. ,-=.
#W / " `-. #w / #G Tales of #W `" `-.#W__,-""._," "--," >-=-
diff --git a/lib/file/rart_f.txt b/lib/file/rart_f.txt
index 17012f21..3bebf94d 100644
--- a/lib/file/rart_f.txt
+++ b/lib/file/rart_f.txt
@@ -4,7 +4,7 @@ Kenault's Cantrip Generator
The Deck of Wild Magic
Baalzebub's Tormented Box
Baalzebub's All-seeing Servant
-Boccob's Unifinished Works
+Boccob's Unfinished Works
The Gem of Fire
The Gem of Ice
The Gem of Venom
@@ -57,21 +57,21 @@ Boccob's Magical Mish-mash
The Grail of Kenault
a Parchment titled ``Household Magic''
a Parchment titled ``Tenser's Last Words''
-the Hand of Vecna
-the Skull of Vecna
-the Eye of Vecna
-the Crystal Ball of The Witch-King of Angmar
+The Hand of Vecna
+The Skull of Vecna
+The Eye of Vecna
+The Crystal Ball of The Witch-King of Angmar
a Parchment titled ``Secrets of the Gnomish Wizards''
-the Medallion of Good Will
-the Immortal Skull of Benetar
+The Medallion of Good Will
+The Immortal Skull of Benetar
Heward's Excellent Experimental Earmuffs
Bigby's Big Book of Brutality
The Cunning Plan of Zog
-A parchment titled ''Immortality For Dummies''
+a Parchment titled ''Immortality For Dummies''
Raistlin's Ready Ranger
Tenser's Torch of Spontaneous Combustion
Mordenkainen's Mysterious Mind-Masher
-A parchment titled ''Famous Last Words''
+a Parchment titled ''Famous Last Words''
Jor's Buckler of Missile Attraction
Jor's Compendium of Strange Behaviour
Agannazar's Antique Acorn
@@ -79,7 +79,7 @@ Cathal's Corrupting Cymbal
Pytar's Portable Pandemonium
The Toenail of Vecna
Jor's Book of Impossible Occurences
-A parchment titled ''Finer Points of Munchkinism''
+a Parchment titled ''Finer Points of Munchkinism''
Agannazar's Altruistic Assassin
Tenser's Top-Heavy Teaspoon
Olive's Omnipotent Ostrich
diff --git a/lib/help/automat.txt b/lib/help/automat.txt
index 8530c228..01ba714e 100644
--- a/lib/help/automat.txt
+++ b/lib/help/automat.txt
@@ -493,7 +493,7 @@ before I talk you through it
&&&&&B\B-B-B-B-B-B-B-B-B-B-B-B-B-B-B/w RkW WtWoW rdrirsrarbrlreW WtWhWeW WaWuWtWoWmWaWtWiWzWeWrw w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w
The majority of this is fairly similar to the swords rule; it destroys {average}
-swords at character level 20, {good} ones at character level 35 and cursed ones
+boots at character level 20, {good} ones at character level 35 and cursed ones
always. The addition is at the bottom. It adds clauses which will destroy
excellent items providing that they have been identified and that the name does
not contain the word "speed". The <state>identified</state> bit is important
diff --git a/lib/help/c_alchem.txt b/lib/help/c_alchem.txt
index fb2cf8f9..66c11843 100644
--- a/lib/help/c_alchem.txt
+++ b/lib/help/c_alchem.txt
@@ -39,7 +39,7 @@ Combat 1.000 [0.700]
Sneakiness 1.000 [0.900]
Magic 3.000 [0.900]
Magic-Device 0.000 [0.250]
- Geomancy 0.000 [0.500]
+ Geomancy
Fire 0.000 [0.100]
Water 0.000 [0.100]
Air 0.000 [0.100]
@@ -58,6 +58,9 @@ Spirituality 1.000 [0.800]
Prayer 0.000 [0.500]
Monster-lore 0.000 [0.500]
+*An Alchemist cannot learn the Geomancy skill, but it is shown in his skill
+screen because the elemental schools are sub-skills of it.
+
#####GInnate Abilities:
#####BAbility Character level
Perfect-casting 1
@@ -107,19 +110,19 @@ gold to improve the chances of his success.
[[[[[BA few pointers:]
-Recipes are (usually) logical. Acid essences don't make Dragon
Weapons. And you can always look at the recipes you know with
- the 'B'ook command.
+ the 'B'ook command.
-Not all objects or ego-item types can be made using alchemy.
-Alchemy is mostly reversible. Most items that you can
- 'E'xtract from, you can later re-create, if you learn about
- them when extracting from them. You won't always get enough
- essences from destroying an item to recreate it, though the
- chance of doing so will get higher as you increase in skill.
+ 'E'xtract from, you can later re-create, if you learn about
+ them when extracting from them. You won't always get enough
+ essences from destroying an item to recreate it, though the
+ chance of doing so will get higher as you increase in skill.
-*identifying* an object that you can destroy will always teach
- you how to create it (if creating it is possible).
+ you how to create it (if creating it is possible).
-Since you can't create abilities in artifacts that you aren't
- aware of, make sure to *identify* all the artifacts you can.
+ aware of, make sure to *identify* all the artifacts you can.
-You can't *identify* things you buy in shops, so you'll have
- to extract from them and take your chances.
+ to extract from them and take your chances.
[[[[[BSome Recipes:]
Any alchemist worth his salt knows lots of recipes. By extracting from
diff --git a/lib/help/c_mindcr.txt b/lib/help/c_mindcr.txt
index 9c846ae3..d6ff5496 100644
--- a/lib/help/c_mindcr.txt
+++ b/lib/help/c_mindcr.txt
@@ -52,6 +52,4 @@ powers in the *****m_mindcr.txt*0[Mindcraft powers] document.
#####GStarting Equipment
A mindcrafter begins the game with:
- A small sword
- A potion of restore mana
- Soft leather armor
+ A mace
diff --git a/lib/help/c_runecr.txt b/lib/help/c_runecr.txt
index d6adf765..9cf2a2ec 100644
--- a/lib/help/c_runecr.txt
+++ b/lib/help/c_runecr.txt
@@ -33,7 +33,7 @@ Magic 2.000 [0.950]
Magic-Device 1.000 [1.200]
Spell-power 0.000 [0.600]
Mana 1.000 [0.600]
- Geomancy 0.000 [0.000]
+ Geomancy
Fire 0.000 [0.700]
Water 0.000 [0.700]
Air 0.000 [0.700]
@@ -51,6 +51,9 @@ Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
Monster-lore 0.000 [0.500]
+*A Runecrafter cannot learn the Geomancy skill, but it is shown in his skill
+screen because the elemental schools are sub-skills of it.
+
#####GInnate Abilities:
#####BAbility Character level
Perfect-casting 1
diff --git a/lib/help/g_manwe.txt b/lib/help/g_manwe.txt
index 9e042b47..da11f809 100644
--- a/lib/help/g_manwe.txt
+++ b/lib/help/g_manwe.txt
@@ -34,7 +34,7 @@ There is a special book - called the "Holy Tome of Manwe Sulimo" which
contains instructions for the procedure for each of the prayers Manwe will
grant. There are four prayers all told, which are:
1. [[[[[BManwe's Blessing] (Level 1)
- Manwe's Blessing removes your fears, bless you and surrounds you with holy
+ Manwe's Blessing removes your fears, blesses you and surrounds you with holy
light.
At spell level 10 it also grants heroism.
At spell level 20 it also grants super heroism.
@@ -42,7 +42,7 @@ grant. There are four prayers all told, which are:
2. [[[[[BWind Shield] (Level 10)
It surrounds you with a shield of wind that deflects blows from evil
monsters.
- At level 10 it increases your armor rating.
+ At level 10 it increases your armour rating.
At level 20 it retaliates against monsters that melee you.
3. [[[[[BManwe's Call] (Level 20)
Manwe's Call summons a Great Eagle to help you battle the forces of
diff --git a/lib/help/g_melkor.txt b/lib/help/g_melkor.txt
index f7e2fc76..2a28658f 100644
--- a/lib/help/g_melkor.txt
+++ b/lib/help/g_melkor.txt
@@ -9,12 +9,12 @@ of the Valar. His most faithful followers are those of the class *****c_pr_drk.t
#####GThe benefits of Worshipping Melkor Bauglir
1. As you increase your piety, Melkor will grant boosts to your strength,
constitution and charisma and will decrease intelligence and wisdom.
- 2. If you are praying, Melkor may makes you invisible and immune to fire.
+ 2. If you are praying, Melkor may make you invisible and immune to fire.
3. If you are praying, Melkor may cast Curse on your foes when you melee them.
4. If you are praying, Melkor likes it when you kill monsters.
5. If you are praying, Melkor *likes* it when you kill monsters that are
aligned with good.
- 6. Melkor likes sacrifice of corpse and books at his altars.
+ 6. Melkor likes the sacrifice of corpses and books at his altars.
7. Melkor likes the permanent sacrifice of your own health at his altars.
8. Melkor hates elves.
9. Melkor grants access to the *****m_udun.txt*0[Udun] school of magic.
diff --git a/lib/help/luckspoi.txt b/lib/help/luckspoi.txt
index b0fcc312..4791d1a6 100644
--- a/lib/help/luckspoi.txt
+++ b/lib/help/luckspoi.txt
@@ -25,10 +25,10 @@ below from most luck to least luck.
Barbarian (+1);
Spectre, Skeleton (-3);
-Vampire, Zombie (-4).
+Zombie (-4).
-So, a Hobbit Barbarian starts with 6 luck points, while a Yeek Zombie starts
-with -9 luck points.
+So, a Hobbit starts with 5 luck points, a Beorning Barbarian starts with 2 luck
+points, while a Yeek Zombie starts with -9 luck points.
#####G2. Descriptions
Drinking a potion of self-knowledge will tell you how lucky or unlucky your
@@ -56,7 +56,7 @@ All Morgul items have -10 luck.
Artifacts can affect your luck. Beware: not all artifacts give you good luck.
Listed below are the artifacts which affect your luck.
-Phial of Galadriel (+4)
+The Phial of Galadriel (+4)
The Arkenstone of Thrain (+3)
The Ring of Power 'Narya' (+1)
The Ring of Power 'Nenya' (+2)
@@ -69,17 +69,19 @@ The Long Bow of Bard (+2)
The Mage Staff of Eternity (+12)
The Harp of Maglor (+3)
The Drum of the Sky (+2)
-The Flute of Daeron (+1)
+The Harp of Daeron (+1)
The Long Sword of Eternity (+10)
The Robe of Great Luck (+60)
The Heavy Crossbow of Eternity (+5)
The Iron Helm of Knowledge (-6)
The Shield of Deflection of Gil-galad (+5)
The Set of Gauntlets of Eol (+3)
+The Demonblade of Gothmog (-20)
+The Long Sword 'Durandil' (+3)
The Phial of Undeath (-5)
The Ring of Phasing (+15)
The Blue Stone 'Toris Mejistos' (+2)
-The Demonblade of Gothmog (-20)
+
#####G4. What does it affect.
It affects your chance to-hit in ranged combat and melee combat.
@@ -101,7 +103,8 @@ It affects the chance of creating a special object.
It prevents the death fate if your are lucky.
-It affects the number of skills you receive when quaffing a potion of skill.
+It affects the number of skill points you receive when quaffing the Potion of
+Learning.
Written for ToME 2.0 by Chris Hadgis
diff --git a/lib/help/m_mimic.txt b/lib/help/m_mimic.txt
index 39fafa7d..78efdff3 100644
--- a/lib/help/m_mimic.txt
+++ b/lib/help/m_mimic.txt
@@ -13,7 +13,7 @@ overridden during the shape-shift.
As your mimicry skill increases, your character is less likely to spoil
the transformation attempt and may even gain other powers, such as making
his colouration match his surroundings (becoming in all respects invisible)
-or even stranger abilities... rumors abound about Tarka the Chameleon and
+or even stranger abilities... rumours abound about Tarka the Chameleon and
her two pairs of boots of speed.
The powers are accessed using the 'm' key and then selecting 'Use Mimicry';
@@ -30,5 +30,5 @@ as usual through the *****skills.txt*21[Magic] skill.
Allows you to move within walls, and [[[[[Bonly] walls for a time.
[[[[[v Be careful you don't get stuck in a wall when it runs out.]
5. [[[[[sArms Mimicry] (Level 35) Cost:100
- Gives you an additional set of armsfor a time.
+ Gives you an additional set of arms for a time.
diff --git a/lib/help/m_music.txt b/lib/help/m_music.txt
index 9ed1d90e..82cfbfeb 100644
--- a/lib/help/m_music.txt
+++ b/lib/help/m_music.txt
@@ -46,7 +46,7 @@ of instrument contains a different family of musical songs:
1. [[[[[vSong of the Sun(I)] (School level 1)
Provides light as long as you sing.
Consumes the amount of mana each turn.
-2. [[[[[vFlow of Life(I)] (School level 5)
+2. [[[[[vFlow of Life(II)] (School level 5)
Heals you as long as you sing.
Consumes the amount of mana each turn.
3. [[[[[vHeroic Ballad(II)] (School level 10)
diff --git a/lib/help/rm_barb.txt b/lib/help/rm_barb.txt
index 011845ec..d4a35728 100644
--- a/lib/help/rm_barb.txt
+++ b/lib/help/rm_barb.txt
@@ -4,10 +4,10 @@
#####GDescription
Barbarians are hardy members of their race. They are fierce in combat, and
-their wrath is feared throughout the world. Combat is their life: they feel
-no fear, and they learn to enter battle frenzy at will. Barbarians are,
-however, suspicious of magic, which makes magic devices fairly hard for
-them to use, and also makes it impossible for them to play Mages.
+their wrath is feared throughout the world. Combat is their life: they learn
+to feel no fear. Barbarians are, however, suspicious of magic, which makes
+magic devices fairly hard for them to use, and also makes it impossible for
+them to play Mages.
#####GStat Modifiers
Strength +2
@@ -23,6 +23,4 @@ Exp Penalty +25%
A barbarian character begins the game with:
Some rations
Some torches
- Changes ring of resist fear (*IF* the character would have had one)
- to a ring of sustain strength.
-
+ \ No newline at end of file
diff --git a/lib/help/rm_spec.txt b/lib/help/rm_spec.txt
index f54d0a55..ed8723bb 100644
--- a/lib/help/rm_spec.txt
+++ b/lib/help/rm_spec.txt
@@ -7,7 +7,7 @@
Another powerful undead creature: the spectre is a ghastly apparition,
surrounded by an unearthly glow. They exist only partially on our
plane of existence: half-corporeal, they can pass through walls, though
-this takes requires a sacrifice of some of their life-force. As a result
+this requires a sacrifice of some of their life-force. As a result
they cannot rest whilst passing through a wall.
As undead, they have a firm hold on their life force, see invisible, and
resist poison and cold. They also resist nether. Spectres make superb
diff --git a/lib/help/skills.txt b/lib/help/skills.txt
index 4666d044..c6c244ac 100644
--- a/lib/help/skills.txt
+++ b/lib/help/skills.txt
@@ -100,24 +100,24 @@ spend you're hard-earned points, huh? Well, each skill affects different
abilities, and not all of them are intuitive - but they don't take all that
long to learn :).
If you don't find this informative enough, and would like more detailed spoilers
-on what each skill does, try [[[[[ghttp://www.killerbunnies.org/angband/skill.html] for
-some third party help!
+on what each skill does, try [[[[[ghttp://www.killerbunnies.org/angband/skill-220.html]
+for some third party help!
The skills are:
*****skills.txt*27[Air] *****skills.txt*49[Alchemy] *****skills.txt*50[Antimagic] *****skills.txt*08[Archery]
- *****skills.txt*05[Axe-mastery] *****skills.txt*18[Backstab] *****skills.txt*13[Barehand-combat] *****skills.txt*12[Boomerang-mastery]
- *****skills.txt*58[Boulder-throwing] *****skills.txt*10[Bow-mastery] *****skills.txt*01[Combat] *****skills.txt*30[Conveyance]
- *****skills.txt*44[Corpse-preservation] *****skills.txt*04[Critical-hits] *****skills.txt*11[Crossbow-mastery] *****skills.txt*52[Demonology]
- *****skills.txt*16[Disarming] *****skills.txt*31[Divination] *****skills.txt*20[Dodging] *****skills.txt*28[Earth]
- *****skills.txt*25[Fire] *****skills.txt*60[Geomancy] *****skills.txt*06[Hafted-mastery] *****skills.txt*21[Magic]
- *****skills.txt*54[Magic-Device] *****skills.txt*24[Mana] *****skills.txt*29[Meta] *****skills.txt*47[Mimicry]
- *****skills.txt*33[Mind] *****skills.txt*41[Mindcraft] *****skills.txt*42[Monster-lore] *****skills.txt*59[Music]
- *****skills.txt*34[Nature] *****skills.txt*35[Necromancy] *****skills.txt*07[Polearm-mastery] *****skills.txt*45[Possession]
- *****skills.txt*39[Prayer] *****skills.txt*36[Runecraft] *****skills.txt*09[Sling-mastery] *****skills.txt*14[Sneakiness]
- *****skills.txt*22[Spell-power] *****skills.txt*38[Spirituality] *****skills.txt*23[Sorcery] *****skills.txt*19[Stealing]
- *****skills.txt*15[Stealth] *****skills.txt*53[Stunning-blows] *****skills.txt*43[Summoning] *****skills.txt*03[Sword-mastery]
- *****skills.txt*46[Symbiosis] *****skills.txt*32[Temporal] *****skills.txt*37[Thaumaturgy] *****skills.txt*48[Udun]
- *****skills.txt*26[Water] *****skills.txt*02[Weaponmastery]
+ *****skills.txt*05[Axe-mastery] *****skills.txt*18[Backstab] *****skills.txt*13[Barehand-combat] *****skills.txt*61[Bearform-combat]
+ *****skills.txt*12[Boomerang-mastery] *****skills.txt*58[Boulder-throwing] *****skills.txt*10[Bow-mastery] *****skills.txt*01[Combat]
+ *****skills.txt*30[Conveyance] *****skills.txt*44[Corpse-preservation]*****skills.txt*04[Critical-hits] *****skills.txt*11[Crossbow-mastery]
+ *****skills.txt*52[Demonology] *****skills.txt*16[Disarming] *****skills.txt*31[Divination] *****skills.txt*20[Dodging]
+ *****skills.txt*28[Earth] *****skills.txt*25[Fire] *****skills.txt*60[Geomancy] *****skills.txt*06[Hafted-mastery]
+ *****skills.txt*21[Magic] *****skills.txt*54[Magic-device] *****skills.txt*24[Mana] *****skills.txt*29[Meta]
+ *****skills.txt*47[Mimicry] *****skills.txt*33[Mind] *****skills.txt*41[Mindcraft] *****skills.txt*42[Monster-lore]
+ *****skills.txt*59[Music] *****skills.txt*34[Nature] *****skills.txt*35[Necromancy] *****skills.txt*07[Polearm-mastery]
+ *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*36[Runecraft] *****skills.txt*09[Sling-mastery]
+ *****skills.txt*14[Sneakiness] *****skills.txt*22[Spell-power] *****skills.txt*38[Spirituality] *****skills.txt*23[Sorcery]
+ *****skills.txt*19[Stealing] *****skills.txt*15[Stealth] *****skills.txt*53[Stunning-blows] *****skills.txt*43[Summoning]
+ *****skills.txt*03[Sword-mastery] *****skills.txt*46[Symbiosis] *****skills.txt*32[Temporal] *****skills.txt*37[Thaumaturgy]
+ *****skills.txt*48[Udun] *****skills.txt*26[Water] *****skills.txt*02[Weaponmastery]
~~~~~01|Skills|Combat
@@ -227,6 +227,11 @@ This skill is a sub-skill of the Combat skill. It affects your general ability
to fight using martial arts. In order to utilise it, you must be capable of
using a weapon in the first place, but choose not to. Spending 1 skill point
on your Barehand-combat skill adds 0.5 bonus skill points to your Combat skill.
+~~~~~61|Skills|Bearform-combat
+[[[[[BBearform-combat]
+This skill is a sub-skill of the Combat skill. It affects your ability to fight
+while in the form of a bear. In order to utilise it, you must be in bearform.
+*****r_beorn*0[Beornings] are the adventurers most likely to use this form of skill.
~~~~~58|Skills|Boulder-throwing
[[[[[BBoulder-throwing]
This skill is a sub-skill of the Combat skill. It affects your ability to
@@ -292,15 +297,15 @@ the strength of wands and staffs.
Investing in the Magic skill? You might be interested in the *****ability.txt*04[Perfect Casting]
ability.
-Sub-skills include: Magic-Device, Spell-power, Sorcery, Mana, Fire, Water, Air,
+Sub-skills include: Magic-device, Spell-power, Sorcery, Mana, Fire, Water, Air,
Earth, Meta, Conveyance, Divination, Temporal, Mind, Nature, Udun, Demonology,
Necromancy, Runecraft, Thaumaturgy, and Alchemy.
-~~~~~54|Skills|Magic-Device
-[[[[[BMagic-Device]
+~~~~~54|Skills|Magic-device
+[[[[[BMagic-device]
This skill is a sub-skill of the Magic skill. It eases the use of magical
devices, such as wands, staves, and rods, and boosts the casting level of spells
stored in a wand or a staff. *****magic.txt*02[More on this]. It also helps pseudo-id of magic
-objects. Spending 1 skill point on your Magic-Device skill adds 0.07 bonus skill
+objects. Spending 1 skill point on your Magic-device skill adds 0.07 bonus skill
points to your Magic skill.
~~~~~22|Skills|Spell-power
[[[[[BSpell-power]
@@ -477,6 +482,7 @@ available under the "m" menu. Spending 1 skill point on your Mindcraft skill
adds 0.1 bonus skill points to your Spirituality skill and 0.1 bonus skill
points to your Magic skill.
~~~~~59|Skills|Music
+[[[[[BMusic]
This skill is a sub-skill of the Spirituality skill. It affects what level of
*****m_music.txt*0[Musical songs] you can access through instruments. This power
is available under the "m" menu. Spending 1 skill point on your Music skill
diff --git a/lib/mods/mods_aux.lua b/lib/mods/mods_aux.lua
index e04ed472..48bc7da1 100644
--- a/lib/mods/mods_aux.lua
+++ b/lib/mods/mods_aux.lua
@@ -1,4 +1,5 @@
-- Ok some functions that we dont need are dangerous
+--[[
execute = nil
getenv = nil
setlocale = nil
@@ -10,7 +11,7 @@ appendto = nil
remove = nil
rename = nil
tmpname = nil
-
+]]
modules = {}
current_module = nil
diff --git a/lib/module.lua b/lib/module.lua
index 9fe05e30..af1c9337 100644
--- a/lib/module.lua
+++ b/lib/module.lua
@@ -1,7 +1,7 @@
add_module
{
["name"] = "ToME",
- ["version"] = { 2, 2, 5 },
+ ["version"] = { 2, 2, 6 },
["author"] = { "DarkGod", "darkgod@t-o-m-e.net" },
["desc"] = {
"The Tales of Middle-earth, the standard and official game.",
diff --git a/lib/scpt/god.lua b/lib/scpt/god.lua
index b27ca2a3..31e92183 100644
--- a/lib/scpt/god.lua
+++ b/lib/scpt/god.lua
@@ -17,18 +17,26 @@ add_quest
["global"] = "GOD_QUEST",
["name"] = "God quest",
["desc"] = function()
- local home, home_axis, player_axis
if quest(GOD_QUEST).status == QUEST_STATUS_TAKEN then
-- get the direction that the dungeon lies from lothlorien/angband
- player_axis, home, home_axis = get_god_quest_axes()
+ local home, home_axis, home_distance, home2, home2_axis, home2_distance = get_god_quest_axes()
print_hook("#####yGod quest!\n")
print_hook("Thou art to find the lost temple of thy God and\n");
print_hook("to retrieve the lost part of the relic for thy God! \n")
- print_hook("The temple lies to the "..home_axis.." of "..home.." \n")
- print_hook("and to the "..player_axis.." of thy position when thou were given the quest. \n")
+ -- print_hook("home_axis = "..home_axis.." home2_axis = "..home2_axis)
+ if home_axis ~= "close" then
+ print_hook("The temple lies "..home_distance.." to the "..home_axis.." of "..home..", \n")
+ else
+ print_hook("The temple lies very close to "..home..", \n")
+ end
+ if home2_axis ~= "close" then
+ print_hook( "and "..home2_distance.." to the "..home2_axis.." of "..home2..", I can feel it.' \n")
+ else
+ print_hook("and very close to "..home2..", I can feel it.' \n")
+ end
print_hook("\n")
end
end,
@@ -100,7 +108,7 @@ add_quest
god_quest.player_y, god_quest.player_x = player.get_wild_coord()
-- establish direction of player and 'home' from dungeon
- local player_axis, home, home_axis, distance = get_god_quest_axes()
+ local home, home_axis, home_distance, home2, home2_axis, home2_distance = get_god_quest_axes()
-- God issues instructions
cmsg_print(TERM_L_BLUE, "The voice of "..deity(player.pgod).name.." booms in your head:")
@@ -111,16 +119,16 @@ add_quest
cmsg_print(TERM_YELLOW, "Thou art to find my lost temple and retrieve a piece of the relic.")
cmsg_print(TERM_YELLOW, "When thy task is done, thou art to lift it in the air and call upon my name.")
cmsg_print(TERM_YELLOW, "I shall then come to reclaim what is mine!")
- if player.axis then
- cmsg_print(TERM_YELLOW, "The temple lies "..distance.." to the "..player_axis.." of thy current position,")
+ if home_axis ~= "close" then
+ cmsg_print(TERM_YELLOW, "The temple lies "..home_distance.." to the "..home_axis.." of "..home..", ")
else
- cmsg_print(TERM_YELLOW, "The temple lies "..distance.." from thy current position,")
+ cmsg_print(TERM_YELLOW, "The temple lies very close to "..home..",")
end
- if home_axis then
- cmsg_print(TERM_YELLOW, "and to the "..home_axis.." of "..home..", I can feel it.'")
+ if home2_axis ~= "close" then
+ cmsg_print(TERM_YELLOW, "and "..home2_distance.." to the "..home2_axis.." of "..home2..", I can feel it.'")
else
- cmsg_print(TERM_YELLOW, "and very close to "..home..", I can feel it.'")
+ cmsg_print(TERM_YELLOW, "and very close to "..home2..", I can feel it.'")
end
-- Prepare depth of dungeon. If this was generated in set_god_dungeon_attributes(),
@@ -553,27 +561,33 @@ end
-- Calling this function returns the direction the dungeon is in from the players position at the time
-- the quest was given, and also the direction from angband (if the player is worshipping Melkor) or lothlorien.
function get_god_quest_axes()
- local play_y_coord, play_x_coord, y_axis, x_axis, player_axis, home_axis, mydistance
-
- player_axis = compass(god_quest.player_y, god_quest.player_x, god_quest.dung_y, god_quest.dung_x)
+ local home, home_y_coord, home_x_coord, home_axis, home2, home2_y_coord, home2_x_coord, home2_axis, mydistance
-- different values for different gods...
if player.pgod ~= GOD_MELKOR then
- -- one of the valar, "home" is lothlorien
- home = "Lothlorien"
- home_y_coord = 34
- home_x_coord = 50
+ -- one of the valar, "home" is lothlorien, home2 is Minas Arnor
+ home = "Bree"
+ home_y_coord = 21
+ home_x_coord = 34
+ home2 = "Minas Anor"
+ home2_y_coord = 56
+ home2_x_coord = 60
else
- -- Melkor, "home" is angband
+ -- Melkor, "home" is angband, home2 is Barad-dur
home = "the Pits of Angband"
home_y_coord = 7
home_x_coord = 34
+ home2 = "the stronghold of Barad-Dur"
+ home2_y_coord = 51
+ home2_x_coord = 71
end
home_axis = compass(home_y_coord, home_x_coord, god_quest.dung_y, god_quest.dung_x)
+ home2_axis = compass(home2_y_coord, home2_x_coord, god_quest.dung_y, god_quest.dung_x)
- mydistance = approximate_distance(god_quest.player_y, god_quest.player_x, god_quest.dung_y, god_quest.dung_x)
+ home_distance = approximate_distance(home_y_coord, home_x_coord, god_quest.dung_y, god_quest.dung_x)
+ home2_distance = approximate_distance(home2_y_coord, home2_x_coord, god_quest.dung_y, god_quest.dung_x)
- return player_axis, home, home_axis, mydistance
+ return home, home_axis, home_distance, home2, home2_axis, home2_distance
end
diff --git a/lib/scpt/s_manwe.lua b/lib/scpt/s_manwe.lua
index 38be533f..6f0f9661 100644
--- a/lib/scpt/s_manwe.lua
+++ b/lib/scpt/s_manwe.lua
@@ -41,7 +41,7 @@ MANWE_SHIELD = add_spell
end,
["desc"] = {
"It surrounds you with a shield of wind that deflects blows from evil monsters",
- "At level 10 it increases your armor rating",
+ "At level 10 it increases your armour rating",
"At level 20 it retaliates against monsters that melee you",
}
}
@@ -103,8 +103,8 @@ MANWE_BLESS = add_spell
return "dur "..(get_level(MANWE_BLESS, 70) + 30).."+d40"
end,
["desc"] = {
- "Manwe's Blessing removes your fears, bless you and surrounds you with",
- "holy lite",
+ "Manwe's Blessing removes your fears, blesses you and surrounds you with",
+ "holy light",
"At level 10 it also grants heroism",
"At level 20 it also grants super heroism",
"At level 30 it also grants holy luck and life protection",
diff --git a/lib/scpt/s_music.lua b/lib/scpt/s_music.lua
index 5e857495..9da6393a 100644
--- a/lib/scpt/s_music.lua
+++ b/lib/scpt/s_music.lua
@@ -430,7 +430,7 @@ MUSIC_ = add_spell
["random"] = SKILL_MUSIC,
["pval"] = 1,
["spell"] = function()
-
+
return TRUE
end,
["info"] = function()
diff --git a/src/ANGBAND.ICO b/src/angband.ico
index d20d4c7f..d20d4c7f 100644
--- a/src/ANGBAND.ICO
+++ b/src/angband.ico
Binary files differ
diff --git a/src/birth.c b/src/birth.c
index 19006eb0..f7f68360 100644
--- a/src/birth.c
+++ b/src/birth.c
@@ -1332,7 +1332,7 @@ static void gen_random_quests(int n)
dungeon_type = old_type;
}
-int dump_classes(s16b *classes, int sel, s32b *restrict)
+int dump_classes(s16b *classes, int sel, u32b *restrict)
{
int n = 0;
@@ -2277,7 +2277,7 @@ static bool player_birth_aux_ask()
{
strnfmt(buf, 200, "Choose a god (%c-%c), * for a random choice, "
"= for options, 8/2/4/6 for movement: ",
- I2A(0), I2A(max_gods));
+ I2A(0), I2A(max - 1));
put_str(buf, 19, 2);
c = inkey();
@@ -2290,7 +2290,7 @@ static bool player_birth_aux_ask()
}
if (c == '*')
{
- k = randint(max_gods);
+ k = choice[randint(max) - 1];
break;
}
k = (islower(c) ? A2I(c) : -1);
@@ -2444,21 +2444,21 @@ static bool player_birth_aux_ask()
{
/* Extra info */
Term_putstr(5, 15, -1, TERM_WHITE,
- "Please input the number of optional quests you'd like to perform");
+ "Select the number of optional random quests you'd like to receive.");
Term_putstr(5, 16, -1, TERM_WHITE,
- "If you do not want any optional quests, enter 0");
+ "If you do not want any optional quests, enter 0.");
/* Ask the number of additional quests */
while (TRUE)
{
- put_str(format("Number of additional quest? (<%u) ",
- MAX_RANDOM_QUEST), 20, 2);
+ put_str(format("Number of quests? (0-%u) ",
+ MAX_RANDOM_QUEST - 1), 20, 2);
/* Get a the number of additional quest */
while (TRUE)
{
/* Move the cursor */
- put_str("", 20, 37);
+ put_str("", 20, 27);
/* Default */
strcpy(inp, "20");
@@ -3427,10 +3427,12 @@ void player_birth(void)
message_add(MESSAGE_MSG, " ", TERM_L_BLUE);
/* Verify autoskiller */
+#if 0
if (validate_autoskiller(spp_ptr->skill_ideal) < 0)
{
message_add(MESSAGE_MSG, "WARNING: Bad autoskill chart", TERM_VIOLET);
}
+#endif
/* Hack -- outfit the player */
player_outfit();
diff --git a/src/cmd1.c b/src/cmd1.c
index 484f076e..01e62d38 100644
--- a/src/cmd1.c
+++ b/src/cmd1.c
@@ -3237,11 +3237,11 @@ bool player_can_enter(byte feature)
if (feature == FEAT_TREES)
{
- if ((p_ptr->fly ||
- pass_wall ||
- (has_ability(AB_TREE_WALK)) ||
- (p_ptr->mimic_form == resolve_mimic_name("Ent")) ||
- ((p_ptr->grace >= 9000) && (p_ptr->praying) && (p_ptr->pgod == GOD_YAVANNA))))
+ if (p_ptr->fly ||
+ pass_wall ||
+ (has_ability(AB_TREE_WALK)) ||
+ (p_ptr->mimic_form == resolve_mimic_name("Ent")) ||
+ ((p_ptr->grace >= 9000) && (p_ptr->praying) && (p_ptr->pgod == GOD_YAVANNA)))
return (TRUE);
}
@@ -5007,18 +5007,44 @@ void do_cmd_pet(void)
if ((!(r_ptr->flags7 & RF7_NO_DEATH)) && ((m_ptr->status == MSTATUS_PET) || (m_ptr->status == MSTATUS_FRIEND))) /* Get rid of it! */
{
+ bool checked = FALSE;
+ char command;
bool delete_this = FALSE;
if (all_pets)
+ {
delete_this = TRUE;
+ }
else
{
char friend_name[80], check_friend[80];
monster_desc(friend_name, m_ptr, 0x80);
- strnfmt(check_friend, 80, "Dismiss %s? ", friend_name);
+ strnfmt(check_friend, 80, "Dismiss %s? (Escape to cancel)", friend_name);
- if (get_check(check_friend))
- delete_this = TRUE;
+ while (!checked)
+ {
+ if (!get_com(check_friend, &command))
+ {
+ /* get out of loop */
+ checked = TRUE;
+ pet_ctr = 0;
+ }
+ else switch (command)
+ {
+ case 'Y':
+ case 'y':
+ delete_this = TRUE;
+ checked = TRUE;
+ break;
+ case 'n':
+ case 'N':
+ checked = TRUE;
+ break;
+ default:
+ bell();
+ break;
+ }
+ }
}
if (delete_this)
diff --git a/src/cmd2.c b/src/cmd2.c
index b4b6554a..cbf8c695 100644
--- a/src/cmd2.c
+++ b/src/cmd2.c
@@ -4833,9 +4833,11 @@ void do_cmd_sacrifice(void)
inven_item_optimize(item);
}
}
+ else
+ {
+ process_hooks(HOOK_SACRIFICE_GOD, "()", "");
+ }
}
- else
- process_hooks(HOOK_SACRIFICE_GOD, "()", "");
}
}
diff --git a/src/cmd3.c b/src/cmd3.c
index fbd73c5f..e8a9aecd 100644
--- a/src/cmd3.c
+++ b/src/cmd3.c
@@ -347,6 +347,19 @@ void do_cmd_wield(void)
}
}
+ /* Can we take off existing item */
+ if (slot != INVEN_AMMO)
+ {
+ if (p_ptr->inventory[slot].k_idx)
+ if (process_hooks(HOOK_TAKEOFF, "(d)", slot)) return;
+ }
+ else
+ {
+ if (p_ptr->inventory[slot].k_idx)
+ if (!object_similar(&p_ptr->inventory[slot], o_ptr))
+ if (process_hooks(HOOK_TAKEOFF, "(d)", slot)) return;
+ }
+
/* Take a turn */
energy_use = 100;
@@ -403,6 +416,7 @@ void do_cmd_wield(void)
}
}
+
/* Wear the new stuff */
object_copy(o_ptr, q_ptr);
@@ -760,8 +774,8 @@ void do_cmd_destroy(void)
}
#endif
/*
- * Hack -- If rods or wand are destroyed, the total maximum timeout or
- * charges of the stack needs to be reduced, unless all the items are
+ * Hack -- If rods or wand are destroyed, the total maximum timeout or
+ * charges of the stack needs to be reduced, unless all the items are
* being destroyed. -LM-
*/
if ((o_ptr->tval == TV_WAND) && (amt < o_ptr->number))
diff --git a/src/cmd4.c b/src/cmd4.c
index 61b973c2..2ccbbce5 100644
--- a/src/cmd4.c
+++ b/src/cmd4.c
@@ -3475,7 +3475,7 @@ void do_cmd_knowledge_artifacts(void)
{
object_type forge;
object_type *q_ptr;
- s32b f1, f2, f3, f4, f5, esp;
+ u32b f1, f2, f3, f4, f5, esp;
/* Get local object */
q_ptr = &forge;
diff --git a/src/cmd6.c b/src/cmd6.c
index 42572592..c4ae347c 100644
--- a/src/cmd6.c
+++ b/src/cmd6.c
@@ -836,7 +836,7 @@ static void corpse_effect(object_type *o_ptr, bool cutting)
{
summon_specific_friendly(p_ptr->py, p_ptr->px, dun_level, SUMMON_DEMON, FALSE);
}
- if (r_ptr->flags6 & RF6_S_DEMON)
+ if (r_ptr->flags6 & RF6_S_KIN)
{
summon_specific_friendly(p_ptr->py, p_ptr->px, dun_level, SUMMON_KIN, FALSE);
}
@@ -3091,7 +3091,7 @@ void do_cmd_read_scroll(void)
if (!fates[i].fate) continue;
if (fates[i].know) continue;
- msg_print("A massage appeared on the scroll. It says:");
+ msg_print("A message appeared on the scroll. It says:");
msg_print(NULL);
fate_desc(buf, i);
diff --git a/src/cmd7.c b/src/cmd7.c
index 730053b7..0ea31572 100644
--- a/src/cmd7.c
+++ b/src/cmd7.c
@@ -31,20 +31,25 @@ void mindcraft_info(char *p, int power)
switch (power)
{
case 0:
+ strnfmt(p, 80, " rad %d", DEFAULT_RADIUS);
break;
case 1:
strnfmt(p, 80, " dam %dd%d", 3 + ((plev - 1) / 4), 3 + plev / 15);
break;
case 2:
- strnfmt(p, 80, " range %d", (plev < 25 ? 10 : plev + 2));
+ strnfmt(p, 80, " range %d", (plev < 25 ? 10 : plev + 2 + p_ptr->to_s * 3));
break;
case 3:
strnfmt(p, 80, " range %d", plev * 5);
break;
case 4:
+ strnfmt(p, 80, " power %d", plev * (plev < 30 ? 1 : 2));
break;
case 5:
- strnfmt(p, 80, " dam %dd8", 8 + ((plev - 5) / 4));
+ if (plev > 20)
+ strnfmt(p, 80, " dam %dd8 rad %d", 8 + ((plev - 5) / 4), (plev - 20)/8 + 1);
+ else
+ strnfmt(p, 80, " dam %dd8", 8 + ((plev - 5) / 4));
break;
case 6:
strnfmt(p, 80, " dur %d", plev);
@@ -52,16 +57,19 @@ void mindcraft_info(char *p, int power)
case 7:
break;
case 8:
- strnfmt(p, 80, " dam %d", plev * ((plev - 5) / 10 + 1));
+ if (plev < 25)
+ strnfmt(p, 80, " dam %d rad %d", (3 * plev) / 2, 2 + (plev / 10));
+ else
+ strnfmt(p, 80, " dam %d", plev * ((plev - 5) / 10 + 1));
break;
case 9:
- strnfmt(p, 80, " dur 11-%d", plev + plev / 2);
+ strnfmt(p, 80, " dur 11-%d", 10 + plev + plev / 2);
break;
case 10:
- strnfmt(p, 80, " dam %dd6", plev / 2);
+ strnfmt(p, 80, " dam %dd6 rad %d", plev / 2, 0 + (plev - 25) / 10);
break;
case 11:
- strnfmt(p, 80, " dam %d", plev * (plev > 39 ? 4 : 3));
+ strnfmt(p, 80, " dam %d rad %d", plev * (plev > 39 ? 4 : 3), 3 + plev / 10);
break;
}
}
@@ -5126,7 +5134,6 @@ void do_cmd_possessor()
}
}
}
-
else if (ext == 2)
{
if (p_ptr->disembodied)
@@ -5138,6 +5145,10 @@ void do_cmd_possessor()
do_cmd_leave_body(TRUE);
}
}
+ else
+ {
+ return;
+ }
/* Take a turn */
energy_use = 100;
@@ -7163,12 +7174,19 @@ void summon_true(int r_idx, int item)
/* Non-uniques are easier to handle */
else
{
- /* It can be used multiple times */
- used = FALSE;
+ if (get_skill(SKILL_SUMMON) == 0)
+ {
+ used = TRUE;
+ }
+ else
+ {
+ /* It can be used multiple times */
+ used = FALSE;
- /* But it is not 100% sure */
- chance = (r_ptr->level * 25 / get_skill(SKILL_SUMMON));
- if (magik(chance)) used = TRUE;
+ /* But it is not 100% sure (note: skill > 0) */
+ chance = (r_ptr->level * 25 / get_skill(SKILL_SUMMON));
+ if (magik(chance)) used = TRUE;
+ }
chance = (get_skill(SKILL_SUMMON) * 130 / (r_ptr->level + 1));
@@ -7902,7 +7920,7 @@ void do_cmd_create_boulder()
(void)inven_carry(q_ptr, FALSE);
- msg_print("You make some boulder.");
+ msg_print("You make some boulders.");
p_ptr->update |= (PU_VIEW | PU_FLOW | PU_MON_LITE);
p_ptr->window |= (PW_OVERHEAD);
diff --git a/src/config.h b/src/config.h
index c8a925e1..401585fc 100644
--- a/src/config.h
+++ b/src/config.h
@@ -383,7 +383,7 @@
*
* Additional note -- if you are planning to use makefile.org, don't bother
* setting this variable, as it is overridden by a value set near the top of
- * that file.
+ * that file.
*/
#ifndef DEFAULT_PATH
# define DEFAULT_PATH "./lib/"
@@ -393,10 +393,8 @@
/*
* OPTION: Create and use a hidden directory in the user's home directory
* for storing pref-files and character-dumps.
- * Warning: Pern chooses to use a different place from Vanilla 2.9.2
- * and its friends.
*/
-#if defined(SET_UID) && !defined(MACH_O_CARBON)
+#if defined(SET_UID) && !defined(MACH_O_CARBON) && !defined(NO_HOME_TOME)
#define PRIVATE_USER_PATH "~/.tome"
#endif /* SET_UID && !MACH_O_CARBON */
diff --git a/src/defines.h b/src/defines.h
index 7783caeb..064b0e78 100644
--- a/src/defines.h
+++ b/src/defines.h
@@ -4526,7 +4526,8 @@ extern int PlayerUID;
#define HOOK_CALC_WEIGHT 74
#define HOOK_FORBID_TRAVEL 75
#define HOOK_DEBUG_COMMAND 76
-#define MAX_HOOKS 77
+#define HOOK_CALC_BONUS_END 77
+#define MAX_HOOKS 78
#define HOOK_TYPE_C 0
#define HOOK_TYPE_LUA 1
diff --git a/src/dungeon.c b/src/dungeon.c
index 99ba9659..40416809 100644
--- a/src/dungeon.c
+++ b/src/dungeon.c
@@ -942,6 +942,7 @@ static int process_lasting_spell(s16b music)
}
use_mana = tolua_getnumber(L, -(lua_gettop(L) - oldtop), 0);
+ lua_settop(L, oldtop);
return use_mana;
}
@@ -1261,7 +1262,7 @@ bool is_recall = FALSE;
/*
* Handle certain things once every 10 game turns
*
- * Note that a single movement in the overhead wilderness mode
+ * Note that a single movement in the overhead wilderness mode
* consumes 132 times as much energy as a normal one...
*/
static void process_world(void)
@@ -3192,23 +3193,23 @@ static void process_world(void)
{
monster_type *m_ptr;
monster_race *r_ptr;
-
+
mx = p_ptr->px;
my = p_ptr->py + 1;
get_pos_player(5, &my, &mx);
msg_print("Your egg hatches!");
place_monster_aux(my, mx, o_ptr->pval2, FALSE, FALSE, MSTATUS_PET);
-
+
m_ptr = &m_list[cave[my][mx].m_idx];
r_ptr = race_inf(m_ptr);
-
+
if ((r_ptr->flags9 & RF9_IMPRESED) && can_create_companion())
{
msg_format("And you have given the imprint to your %s!",
r_name + r_ptr->name);
m_ptr->status = MSTATUS_COMPANION;
}
-
+
inven_item_increase(i, -1);
inven_item_describe(i);
inven_item_optimize(i);
diff --git a/src/externs.h b/src/externs.h
index bda1f4b3..7e5d3995 100644
--- a/src/externs.h
+++ b/src/externs.h
@@ -1112,7 +1112,7 @@ extern byte get_item_letter_color(object_type *o_ptr);
extern void describe_device(object_type *o_ptr);
extern void object_pickup(int this_o_idx);
extern int get_slot(int slot);
-extern bool apply_flags_set(s16b a_idx, s16b set_idx, s32b *f1, s32b *f2, s32b *f3, s32b *f4, s32b *f5, s32b *esp);
+extern bool apply_flags_set(s16b a_idx, s16b set_idx, u32b *f1, u32b *f2, u32b *f3, u32b *f4, u32b *f5, u32b *esp);
extern bool apply_set(s16b a_idx, s16b set_idx);
extern bool takeoff_set(s16b a_idx, s16b set_idx);
extern bool wield_set(s16b a_idx, s16b set_idx, bool silent);
diff --git a/src/gen_maze.c b/src/gen_maze.c
index 27de9328..03941f01 100644
--- a/src/gen_maze.c
+++ b/src/gen_maze.c
@@ -18,7 +18,7 @@
*
* static char maze[(MAX_HGT / 2) + 2][(MAX_WID / 2) + 2];
*/
-typedef char maze_row[(MAX_WID / 2) + 2];
+typedef signed char maze_row[(MAX_WID / 2) + 2];
void dig(maze_row *maze, int y, int x, int d)
{
diff --git a/src/init1.c b/src/init1.c
index 9630aa13..368fb1d0 100644
--- a/src/init1.c
+++ b/src/init1.c
@@ -1586,7 +1586,7 @@ static int my_fgets_dostack(char *buf, int len)
* Grab one race flag from a textual string
*/
static bool unknown_shut_up = FALSE;
-static errr grab_one_class_flag(s32b *choice, cptr what)
+static errr grab_one_class_flag(u32b *choice, cptr what)
{
int i;
cptr s;
@@ -1607,7 +1607,7 @@ static errr grab_one_class_flag(s32b *choice, cptr what)
/* Failure */
return (1);
}
-static errr grab_one_race_allow_flag(s32b *choice, cptr what)
+static errr grab_one_race_allow_flag(u32b *choice, cptr what)
{
int i;
cptr s;
@@ -1632,7 +1632,7 @@ static errr grab_one_race_allow_flag(s32b *choice, cptr what)
/*
* Grab one flag from a textual string
*/
-static errr grab_one_skill_flag(s32b *f1, cptr what)
+static errr grab_one_skill_flag(u32b *f1, cptr what)
{
int i;
@@ -1655,7 +1655,7 @@ static errr grab_one_skill_flag(s32b *f1, cptr what)
/*
* Grab one flag from a textual string
*/
-static errr grab_one_player_race_flag(s32b *f1, s32b *f2, cptr what)
+static errr grab_one_player_race_flag(u32b *f1, u32b *f2, cptr what)
{
int i;
@@ -1701,7 +1701,7 @@ int get_activation(char *activation)
/*
* Grab one flag in an object_kind from a textual string
*/
-static errr grab_one_race_kind_flag(s32b *f1, s32b *f2, s32b *f3, s32b *f4, s32b *f5, s32b *esp, cptr what)
+static errr grab_one_race_kind_flag(u32b *f1, u32b *f2, u32b *f3, u32b *f4, u32b *f5, u32b *esp, cptr what)
{
int i;
@@ -7118,7 +7118,7 @@ errr init_e_info_txt(FILE *fp, char *buf)
static bool grab_one_randart_item_flag(randart_part_type *ra_ptr, cptr what, char c)
{
int i;
- s32b *f1, *f2, *f3, *f4, *f5, *esp;
+ u32b *f1, *f2, *f3, *f4, *f5, *esp;
if (c == 'F')
{
@@ -9259,7 +9259,7 @@ errr init_d_info_txt(FILE *fp, char *buf)
{
int i, j;
- byte rule_num = 0;
+ s16b rule_num = 0;
byte r_char_number = 0;
diff --git a/src/main-dmy.c b/src/main-dmy.c
new file mode 100644
index 00000000..6f144fdd
--- /dev/null
+++ b/src/main-dmy.c
@@ -0,0 +1,315 @@
+/* File: main-dmy.c */
+
+/*
+ * Copyright (c) 1997 Ben Harrison, and others
+ *
+ * This software may be copied and distributed for educational, research,
+ * and not for profit purposes provided that this copyright and statement
+ * are included in all such copies.
+ */
+
+#ifdef USE_DMY
+
+/*
+ * This file helps ToME run on nothing.
+ */
+
+
+#include "angband.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <limits.h>
+
+/* /me pffts Solaris */
+#ifndef NAME_MAX
+#define NAME_MAX _POSIX_NAME_MAX
+#endif
+
+/*
+ * Information about a term
+ */
+typedef struct term_data term_data;
+
+struct term_data
+{
+ term t; /* All term info */
+};
+
+/* Max number of windows on screen */
+#define MAX_TERM_DATA 4
+
+/* Information about our windows */
+static term_data data[MAX_TERM_DATA];
+
+
+/*
+ * Hack -- Number of initialized "term" structures
+ */
+static int active = 0;
+
+
+
+
+/*
+ * Suspend/Resume
+ */
+static errr Term_xtra_dummy_alive(int v)
+{
+ int x, y;
+
+
+ /* Suspend */
+ if (!v)
+ {}
+
+ /* Resume */
+ else
+ {}
+
+ /* Success */
+ return (0);
+}
+
+
+
+/*
+ * Init the "net" system
+ */
+static void Term_init_dummy(term *t)
+{
+ term_data *td = (term_data *)(t->data);
+
+ /* Count init's, handle first */
+ if (active++ != 0) return;
+}
+
+
+/*
+ * Nuke the "net" system
+ */
+static void Term_nuke_dummy(term *t)
+{
+ int x, y;
+ term_data *td = (term_data *)(t->data);
+}
+
+
+
+
+/*
+ * Process events (with optional wait)
+ */
+static errr Term_xtra_dummy_event(int v)
+{
+ /* Success */
+ Term_keypress('\r');
+ return (0);
+}
+
+/*
+ * React to changes
+ */
+static errr Term_xtra_dummy_react(void)
+{
+ /* Success */
+ return (0);
+}
+
+
+/*
+ * Handle a "special request"
+ */
+static errr Term_xtra_dummy(int n, int v)
+{
+ term_data *td = (term_data *)(Term->data);
+ char buf[2];
+
+ /* Analyze the request */
+ switch (n)
+ {
+ /* Clear screen */
+ case TERM_XTRA_CLEAR:
+ return (0);
+
+ /* Make a noise */
+ case TERM_XTRA_NOISE:
+ return (0);
+
+ /* Flush the Curses buffer */
+ case TERM_XTRA_FRESH:
+ return (0);
+
+ /* Suspend/Resume curses */
+ case TERM_XTRA_ALIVE:
+ return (Term_xtra_dummy_alive(v));
+
+ /* Process events */
+ case TERM_XTRA_EVENT:
+ return (Term_xtra_dummy_event(v));
+
+ /* Flush events */
+ case TERM_XTRA_FLUSH:
+ while (!Term_xtra_dummy_event(FALSE));
+ return (0);
+
+ /* Delay */
+ case TERM_XTRA_DELAY:
+ return (0);
+
+ /* React to events */
+ case TERM_XTRA_REACT:
+ Term_xtra_dummy_react();
+ return (0);
+
+ /* Subdirectory scan */
+ case TERM_XTRA_SCANSUBDIR:
+ {
+ DIR *directory;
+ struct dirent *entry;
+
+ scansubdir_max = 0;
+
+ directory = opendir(scansubdir_dir);
+ if (!directory)
+ return 1;
+
+ while ((entry = readdir(directory)))
+ {
+ char file[PATH_MAX + NAME_MAX + 2];
+ struct stat filedata;
+
+ file[PATH_MAX + NAME_MAX] = 0;
+ strncpy(file, scansubdir_dir, PATH_MAX);
+ strncat(file, "/", 2);
+ strncat(file, entry->d_name, NAME_MAX);
+ if (!stat(file, &filedata) && S_ISDIR((filedata.st_mode)))
+ {
+ string_free(scansubdir_result[scansubdir_max]);
+ scansubdir_result[scansubdir_max] = string_make(entry->d_name);
+ ++scansubdir_max;
+ }
+ }
+
+ closedir(directory);
+ return 0;
+ }
+ }
+
+ /* Unknown */
+ return (1);
+}
+
+
+/*
+ * Actually MOVE the hardware cursor
+ */
+static errr Term_curs_dummy(int x, int y)
+{
+ term_data *td = (term_data *)(Term->data);
+
+ /* Literally move the cursor */
+ // DGDGDGD
+
+ /* Success */
+ return (0);
+}
+
+
+/*
+ * Erase a grid of space
+ * Hack -- try to be "semi-efficient".
+ */
+static errr Term_wipe_dummy(int x, int y, int n)
+{
+ /* Success */
+ return (0);
+}
+
+/*
+ * Place some text on the screen using an attribute
+ */
+static errr Term_text_dummy(int x, int y, int n, byte a, cptr s)
+{
+ /* Success */
+ return (0);
+}
+
+
+/*
+ * Create a window for the given "term_data" argument.
+ *
+ * Assumes legal arguments.
+ */
+static errr term_data_init_dummy(term_data *td, int rows, int cols)
+{
+ term *t = &td->t;
+
+ /* Initialize the term */
+ term_init(t, cols, rows, 256);
+
+ /* Erase with "white space" */
+ t->attr_blank = TERM_WHITE;
+ t->char_blank = ' ';
+
+ /* Set some hooks */
+ t->init_hook = Term_init_dummy;
+ t->nuke_hook = Term_nuke_dummy;
+
+ /* Set some more hooks */
+ t->text_hook = Term_text_dummy;
+ t->wipe_hook = Term_wipe_dummy;
+ t->curs_hook = Term_curs_dummy;
+ t->xtra_hook = Term_xtra_dummy;
+
+ /* Save the data */
+ t->data = td;
+
+ /* Activate it */
+ Term_activate(t);
+
+ /* Success */
+ return (0);
+}
+
+
+static void hook_quit(cptr str)
+{
+ /* Unused */
+ (void)str;
+}
+
+/*
+ * Prepare "curses" for use by the file "z-term.c"
+ *
+ * Installs the "hook" functions defined above, and then activates
+ * the main screen "term", which clears the screen and such things.
+ *
+ * Someone should really check the semantics of "initscr()"
+ */
+errr init_dummy(int argc, char **argv)
+{
+ int num_term = MAX_TERM_DATA, next_win = 0;
+
+ /* Activate hooks */
+ quit_aux = hook_quit;
+ core_aux = hook_quit;
+
+ /* Create a term */
+ term_data_init_dummy(&data[0], 25, 80);
+
+ /* Remember the term */
+ angband_term[0] = &data[0].t;
+
+ /* Activate the "Angband" window screen */
+ Term_activate(&data[0].t);
+
+ /* Remember the active screen */
+ term_screen = &data[0].t;
+
+ /* Success */
+ return (0);
+}
+#endif
diff --git a/src/main.c b/src/main.c
index 592dfaaa..aa8d1dad 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1027,6 +1027,19 @@ usage:
}
#endif
+#ifdef USE_DMY
+ /* Attempt to use the "main-dmy.c" support */
+ if (!done && (!mstr || (streq(mstr, "dmy"))))
+ {
+ extern errr init_dummy(int, char**);
+ if (0 == init_dummy(argc, argv))
+ {
+ ANGBAND_SYS = "dmy";
+ done = TRUE;
+ }
+ }
+#endif
+
/* Make sure we have a display! */
if (!done) quit("Unable to prepare any 'display module'!");
diff --git a/src/makediff b/src/makediff
deleted file mode 100755
index 00ec7a81..00000000
--- a/src/makediff
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-# Back-porting without breaking things
-# Set version to Back-port to here
-VERSION=210
-#
-#
-# And leave the driving to the script
-TAG=tome_"$VERSION"_last_merge
-FILE=mergechanges-`date --iso-8601=minutes`
-if test -f changes.txt; then
- cvs update
- cvs diff -r $TAG >> "$FILE"
- if test 1 -eq $?; then
- cvs tag -F $TAG
- fi
-else
- echo "Only run this from the top level directory."
-fi
diff --git a/src/makefile.mingw b/src/makefile.mingw
new file mode 100644
index 00000000..27a8cb6e
--- /dev/null
+++ b/src/makefile.mingw
@@ -0,0 +1,431 @@
+# This is a makefile for the mingw corss platform compiler
+#
+# To compile with this makefile, rename it from 'makefile.mingw'
+# to 'makefile', then enter the src directory and type
+# 'make'.
+
+##
+## Before you type "make depend; make", please follow these three steps.
+##
+## 1. Lua-support and GNU Make ifdef's
+##
+## The ifdef ... endif struct may not be supported by 'make'
+## you are using. GNU make does and Berkeley make doesn't, for example.
+## If it doesn't, you can still manually enable/disable them with minimum
+## amount of effort:
+## (1) Search for lines containing ifdef and endif (one occurence for each)
+## (2) Comment these lines out
+## (3-optional) Comment out lines surrounded by these if you are
+## *not* going to compile the game with Lua scripting enabled.
+##
+
+# Comment out this line if you don't want Lua scripting
+LUA=TRUE
+
+#IRCARGS = -DIRC_SERVER=\"irc.worldirc.org\" -DIRC_PORT=\"6667\" -DIRC_CHANNEL=\"\#tome\"
+
+
+
+##
+## 2. Installation locations and such
+##
+## LIBDIR, BINDIR and OWNER should be set appropriately for
+## multiuser installations.
+##
+## If you want to keep it private or don't have root privilege
+## required by "make install", set LIBDIR to ./lib/ or an absolute
+## path pointing to your lib directory, and don't run "make install".
+##
+## NOTE: If LIBDIR is set to ./lib/ , you have to cd to parent directory
+## of lib before you start the game.
+##
+
+# Where lib/ files goes
+#LIBDIR = /usr/lib/games/pernband/
+# Sysadmins of commercial Unix and/or BSD might prefer this
+#LIBDIR = /usr/local/lib/pernband/
+# If you like the old default, use this one
+LIBDIR = .\lib
+# Another example: single user installation using absolute path
+#LIBDIR = /home/myloginname/lib/pern/
+
+
+# Where PernAngband binary goes
+#BINDIR = /usr/local/games
+# Another common location
+#BINDIR = /usr/local/bin
+
+# The game will run suid to this user
+#OWNER = games
+
+##
+## 3. Some "system" definitions
+##
+## No changes are needed to compile a version that will run on both
+## X11 and Curses, in debugging mode, with maximal warnings, on many
+## normal Unix machines of the Sun OS variety (non-solaris).
+##
+## To use an "alternative" definition, simply "modify" (or "replace")
+## the definition below with one that you like. For example, you can
+## change the compiler to "cc", or remove the "debugging" options, or
+## remove the X11 or Curses support, etc, as desired.
+##
+## See also "config.h" and "h-config.h" for important information.
+##
+## Some "examples" are given below, they can be used by simply
+## removing the FIRST column of "#" signs from the "block" of lines
+## you wish to use, and commenting out "standard" block below.
+##
+## This is not intended to be a "good" Makefile, just a "simple" one.
+##
+
+
+#
+# This is my compiler of choice, it seems to work most everywhere
+#
+CC = i386-mingw32msvc-gcc
+
+#
+# resource complier
+#
+
+WRES = i386-mingw32msvc-windres
+
+#
+# Standard version (see main-x11.c and main-gcu.c)
+#
+# This version supports both "X11" and "curses" in a single executable.
+#
+# You may have to add various X11 include/library directories to the
+# "INCLUDES", if your machine places files in a weird location
+# (e.g. -I/usr/X11R6/include, as is almost always the case with
+# linux and *BSD). Since we have seen many linux users -- arguably
+# the largest unix population -- confused by this, and adding this
+# usually doesn't hurt, the default rule has been changed to search
+# for /usr/X11R6/include.
+#
+# You may be able to remove "-ltermcap" on some machines (ex: Solaris).
+#
+# You may have to replace "-lcurses" with "-lncurses" to use the
+# "new curses" library instead of the "old curses" library, and
+# you may have to add "-I/usr/include/ncurses" to the "INCLUDES",
+# and/or "-DUSE_NCURSES" to "DEFINES".
+#
+# See "main-gcu.c" and "config.h" for some optional "curses" defines,
+# including "USE_GETCH" and "USE_CURS_SET". Note that "config.h" will
+# attempt to "guess" at many of these flags based on your system.
+#
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES = -I/usr/X11R6/include
+#DEFINES = -DUSE_X11 -DUSE_GCU
+#LIBS = -lX11 -lcurses -L/usr/X11R6/lib
+
+
+##
+## For cygwin
+##
+COPTS = -s -Wall -mno-cygwin -O2 -fno-strength-reduce
+INCLUDES =
+DEFINES = -DWINDOWS -DUSE_TRANSPARENCY -DUSE_EGO_GRAPHICS -DSUPPORT_GAMMA \
+ -DUSE_PRECISE_CMOVIE \
+ -DUSE_WINSOCK \
+ $(IRCARGS)
+
+LIBS = -mno-cygwin -mwindows -e _mainCRTStartup -lwinmm -lwsock32
+
+
+##
+## Variation -- Only support "main-gtk.c" (not "main-gcu.c, main-x11.c")
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES = `gtk-config --cflags`
+#DEFINES = -DUSE_GTK -DUSE_TRANSPARENCY
+#LIBS = -lX11 -L/usr/X11R6/lib `gtk-config --libs`
+
+##
+## Variation -- Only support "main-x11.c" (not "main-gcu.c")
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_X11
+#LIBS = -lX11 -L/usr/X11R6/lib
+
+
+##
+## Variation -- Only support "main-gcu.c" (not "main-x11.c")
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_GCU
+#LIBS = -lcurses -ltermcap
+
+
+##
+## Variation -- Use "main-xaw.c" instead of "main-x11.c"
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_XAW -DUSE_GCU
+#LIBS = -lXaw -lXmu -lXt -lX11 -lcurses -ltermcap -L/usr/X11R6/lib
+
+
+##
+## Variation -- Use "main-cap.c" instead of "main-gcu.c"
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_X11 -DUSE_CAP
+#LIBS = -lX11 -ltermcap
+
+
+##
+## Variation -- Only work on simple vt100 terminals
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_CAP -DUSE_HARDCODE
+
+
+##
+## Variation -- this might work for Linux 1.1.93 using ncurses-1.8.7.
+##
+#COPTS = -Wall -O2 -fomit-frame-pointer -m486
+#INCLUDES = -I/usr/X11R6/include -I/usr/include/ncurses
+#DEFINES = -DUSE_X11 -DUSE_GCU
+#LIBS = -L/usr/X11R6/lib -lX11 -lncurses
+
+
+##
+## Variation -- this might work better than the suggestion above
+##
+#COPTS = -Wall -O2 -fomit-frame-pointer
+#INCLUDES = -I/usr/X11R6/include -I/usr/include/ncurses
+#DEFINES = -DUSE_X11 -DUSE_GCU -DUSE_TPOSIX -DUSE_CURS_SET
+#LIBS = -lX11 -lncurses
+#LDFLAGS = -s
+
+
+##
+## Variation -- compile for FreeBSD with ncurses
+## -- BSD curses gives you B&W display.
+##
+#COPTS = -Wall -O2 -fomit-frame-pointer -m486
+#INCLUDES = -I/usr/X11R6/include
+#DEFINES = -DUSE_X11 -DUSE_GCU -DUSE_NCURSES
+#LIBS = -L/usr/X11R6/lib -lX11 -lncurses
+
+
+##
+## Variation -- compile for Solaris
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_X11 -DUSE_GCU -DSOLARIS
+#LIBS = -lX11 -lsocket -lcurses
+
+
+##
+## Variation -- compile for SGI Indigo runnig Irix
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_X11 -DUSE_GCU -DSGI
+#LIBS = -lX11 -lcurses -ltermcap -lsun
+
+
+
+##
+## Variation -- compile for Dec ALPHA OSF/1 v2.0
+##
+#CC = cc
+##COPTS = -std -O -g3 -Olimit 4000
+#COPTS = -std -g
+#INCLUDES =
+#DEFINES = -DUSE_X11 -DUSE_GCU
+#LIBS = -lX11 -lcurses -ltermcap -lrpcsvc
+
+
+##
+## Variation -- compile for Interactive Unix (ISC) systems
+##
+#COPTS = -Wall -O1 -pipe -g
+#INCLUDES =
+#DEFINES = -DUSE_X11 -DUSE_GCU -DISC
+#LIBS = -lX11 -lcurses -lnsl_s -linet -lcposix
+
+
+##
+## Variation -- Support fat binaries under NEXTSTEP
+##
+#COPTS = -Wall -O1 -pipe -g -arch m68k -arch i386
+#INCLUDES =
+#DEFINES = -DUSE_GCU
+#LIBS = -lcurses -ltermcap
+
+
+### End of configurable section ###
+
+#
+# The "source" and "object" files.
+#
+
+BASESRCS = \
+ z-util.c z-virt.c z-form.c z-rand.c z-term.c z-sock.c \
+ variable.c tables.c util.c cave.c cmovie.c \
+ object1.c object2.c traps.c monster1.c monster2.c monster3.c \
+ xtra1.c xtra2.c spells1.c spells2.c \
+ melee1.c melee2.c loadsave.c files.c \
+ cmd1.c cmd2.c cmd3.c cmd4.c cmd5.c cmd6.c cmd7.c \
+ store.c birth.c notes.c help.c \
+ status.c randart.c gods.c modules.c \
+ wizard1.c wizard2.c levels.c ghost.c \
+ generate.c gen_maze.c gen_evol.c dungeon.c init1.c init2.c \
+ bldg.c squeltch.c wild.c powers.c plots.c \
+ irc.c skills.c \
+ readdib.c angband.rc main-win.c main.c
+
+BASEOBJS = \
+ z-term.o z-rand.o z-form.o z-virt.o z-util.o z-sock.o \
+ main.o main-win.o readdib.o angband.res \
+ generate.o gen_maze.o gen_evol.o dungeon.o init1.o init2.o plots.o help.o \
+ store.o birth.o wizard1.o wizard2.o bldg.o cmovie.o \
+ cmd1.o cmd2.o cmd3.o cmd4.o cmd5.o cmd6.o cmd7.o \
+ loadsave.o files.o levels.o notes.o squeltch.o \
+ status.o randart.o irc.o skills.o gods.o modules.o \
+ xtra1.o xtra2.o spells1.o spells2.o melee1.o melee2.o \
+ object1.o object2.o traps.o monster1.o monster2.o monster3.o \
+ variable.o tables.o util.o cave.o ghost.o wild.o powers.o
+
+LUASRCS = \
+ script.c lua_bind.c \
+ w_util.c w_player.c w_z_pack.c w_obj.c w_mnster.c w_spells.c w_quest.c w_play_c.c w_dun.c
+
+TOLUASRCS = \
+ lua/lapi.c lua/lcode.c lua/ldebug.c lua/ldo.c lua/lfunc.c lua/lgc.c \
+ lua/llex.c lua/lmem.c lua/lobject.c lua/lparser.c lua/lstate.c lua/lstring.c \
+ lua/ltable.c lua/ltests.c lua/ltm.c lua/lundump.c lua/lvm.c lua/lzio.c \
+ lua/lauxlib.c lua/lbaselib.c lua/ldblib.c lua/liolib.c lua/lstrlib.c \
+ lua/tolua_lb.c lua/tolua_rg.c lua/tolua_tt.c lua/tolua_tm.c lua/tolua_gp.c \
+ lua/tolua_eh.c lua/tolua_bd.c
+
+LUAOBJS = \
+ script.o lua_bind.o \
+ w_util.o w_player.o w_z_pack.o w_obj.o w_mnster.o w_spells.o w_quest.o w_play_c.o w_dun.o
+
+TOLUAOBJS = \
+ lua/lapi.o lua/lcode.o lua/ldebug.o lua/ldo.o lua/lfunc.o lua/lgc.o \
+ lua/llex.o lua/lmem.o lua/lobject.o lua/lparser.o lua/lstate.o lua/lstring.o \
+ lua/ltable.o lua/ltests.o lua/ltm.o lua/lundump.o lua/lvm.o lua/lzio.o \
+ lua/lauxlib.o lua/lbaselib.o lua/ldblib.o lua/liolib.o lua/lstrlib.o \
+ lua/tolua_lb.o lua/tolua_rg.o lua/tolua_tt.o lua/tolua_tm.o lua/tolua_gp.o \
+ lua/tolua_eh.o lua/tolua_bd.o
+
+#
+# Base sources and objects
+#
+
+SRCS = $(BASESRCS)
+OBJS = $(BASEOBJS)
+
+
+#
+# Compiler options
+#
+
+CFLAGS = $(COPTS) $(INCLUDES) $(DEFINES) -DDEFAULT_PATH=\"$(LIBDIR)\"
+
+
+#
+# Lua support
+#
+
+LUAFLAGS = -DUSE_LUA -Ilua -I.
+
+ifdef LUA
+SRCS += $(LUASRCS)
+OBJS += $(LUAOBJS)
+SRCS += $(TOLUASRCS)
+OBJS += $(TOLUAOBJS)
+CFLAGS += $(LUAFLAGS)
+endif
+
+
+#
+# Build the binary. The new base target.
+#
+
+TARGET = tome
+TOLUA = ./tolua
+
+default: $(TARGET) $(TOLUA)
+
+$(TARGET): $(OBJS)
+ $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+
+$(TOLUA): $(TOLUAOBJS) lua/tolua.c lua/tolualua.c
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TOLUAOBJS) lua/tolua.c lua/tolualua.c $(LIBS)
+
+#
+# An install rule.
+#
+install: default
+ cp -f $(TARGET) ..
+
+
+#
+# Clean up old junk
+#
+
+clean:
+ rm -f *.bak $(OBJS)
+
+
+#
+# Generate dependancies automatically
+#
+
+depend:
+ makedepend $(INCLUDES) $(DEFINES) -D__MAKEDEPEND__ $(SRCS)
+
+.c.o:
+ $(CC) $(CFLAGS) -c -o $*.o $*.c
+
+.SUFFIXES: .rc .res
+.rc.res:
+ $(WRES) $< -O coff -o $@
+
+#
+# Lua library compilation rules
+#
+
+ifdef LUA
+w_mnster.c: monster.pkg $(TOLUA)
+ $(TOLUA) -n monster -o w_mnster.c monster.pkg
+
+w_player.c: player.pkg $(TOLUA)
+ $(TOLUA) -n player -o w_player.c player.pkg
+
+w_play_c.c: player_c.pkg $(TOLUA)
+ $(TOLUA) -n player_c -o w_play_c.c player_c.pkg
+
+w_z_pack.c: z_pack.pkg $(TOLUA)
+ $(TOLUA) -n z_pack -o w_z_pack.c z_pack.pkg
+
+w_obj.c: object.pkg $(TOLUA)
+ $(TOLUA) -n object -o w_obj.c object.pkg
+
+w_util.c: util.pkg $(TOLUA)
+ $(TOLUA) -n util -o w_util.c util.pkg
+
+w_spells.c: spells.pkg $(TOLUA)
+ $(TOLUA) -n spells -o w_spells.c spells.pkg
+
+w_quest.c: quest.pkg $(TOLUA)
+ $(TOLUA) -n quest -o w_quest.c quest.pkg
+
+w_dun.c: dungeon.pkg $(TOLUA)
+ $(TOLUA) -n dungeon -o w_dun.c dungeon.pkg
+
+endif
+
+# DO NOT DELETE THIS LINE - make depend depends on it.
diff --git a/src/makefile.std b/src/makefile.std
index fee5ce5b..c88858bc 100644
--- a/src/makefile.std
+++ b/src/makefile.std
@@ -316,7 +316,7 @@ LIBS = -lX11 -L/usr/X11R6/lib
#
BASESRCS = \
- main-gtk.c main-gcu.c main-x11.c main-xaw.c main-sdl.c \
+ main-gtk.c main-gcu.c main-x11.c main-xaw.c main-sdl.c main-dmy.c \
z-rand.c z-util.c z-form.c z-virt.c z-term.c z-sock.c \
variable.c tables.c plots.c util.c cave.c dungeon.c \
melee1.c melee2.c modules.c \
@@ -332,7 +332,7 @@ BASESRCS = \
wizard2.c init2.c birth.c wizard1.c init1.c main.c
BASEOBJS = \
- main-gtk.o main-gcu.o main-x11.o main-xaw.o main-sdl.o \
+ main-gtk.o main-gcu.o main-x11.o main-xaw.o main-sdl.o main-dmy.o \
z-rand.o z-util.o z-form.o z-virt.o z-term.o z-sock.o \
variable.o tables.o plots.o util.o cave.o dungeon.o \
melee1.o melee2.o modules.o \
diff --git a/src/monster3.c b/src/monster3.c
index 51ff51a2..da8a6009 100644
--- a/src/monster3.c
+++ b/src/monster3.c
@@ -421,7 +421,7 @@ bool do_control_magic(void)
if (!p_ptr->control) return FALSE;
- if (get_check("Do you want to abandon the golem?"))
+ if (get_check("Do you want to abandon the creature?"))
{
if (get_check("Abandon it permanently?"))
delete_monster_idx(p_ptr->control);
diff --git a/src/object.pkg b/src/object.pkg
index cca0e55c..db3ced6e 100644
--- a/src/object.pkg
+++ b/src/object.pkg
@@ -252,6 +252,7 @@ static obj_theme lua_obj_theme @ theme_forge;
#define TV_AMULET 40 /* Amulets (including Specials) */
#define TV_RING 45 /* Rings (including Specials) */
#define TV_TRAPKIT 46 /* Trapkits */
+#define TV_TOTEM 54 /* Summoner totems */
#define TV_STAFF 55
#define TV_WAND 65
#define TV_ROD 66
diff --git a/src/object1.c b/src/object1.c
index d287724a..992e0415 100644
--- a/src/object1.c
+++ b/src/object1.c
@@ -6839,7 +6839,7 @@ bool apply_set(s16b a_idx, s16b set_idx)
}
bool apply_flags_set(s16b a_idx, s16b set_idx,
- s32b *f1, s32b *f2, s32b *f3, s32b *f4, s32b *f5, s32b *esp)
+ u32b *f1, u32b *f2, u32b *f3, u32b *f4, u32b *f5, u32b *esp)
{
set_type *s_ptr = &set_info[set_idx];
int i, j;
diff --git a/src/object2.c b/src/object2.c
index daae59bf..6e6d2a52 100644
--- a/src/object2.c
+++ b/src/object2.c
@@ -1080,7 +1080,7 @@ s32b flag_cost(object_type * o_ptr, int plusses)
else if (type == ACT_BA_COLD_2) total += 1250;
else if (type == ACT_BA_ELEC_2) total += 1500;
else if (type == ACT_DRAIN_2) total += 750;
- else if (type == ACT_VAMPIRE_1) total = 1000;
+ else if (type == ACT_VAMPIRE_1) total += 1000;
else if (type == ACT_BO_MISS_2) total += 1000;
else if (type == ACT_BA_FIRE_2) total += 1750;
else if (type == ACT_BA_COLD_3) total += 2500;
@@ -4784,18 +4784,18 @@ bool kind_is_good(int k_idx)
*/
bool make_object(object_type *j_ptr, bool good, bool great, obj_theme theme)
{
- int prob, base;
+ int invprob, base;
/* Chance of "special object" */
- prob = (good ? 10 + luck( -9, 9) : 1000);
+ invprob = (good ? 10 - luck( -9, 9) : 1000);
/* Base level for the object */
base = (good ? (object_level + 10) : object_level);
/* Generate a special object, or a normal object */
- if ((rand_int(prob) != 0) || !make_artifact_special(j_ptr))
+ if ((rand_int(invprob) != 0) || !make_artifact_special(j_ptr))
{
int k_idx;
diff --git a/src/player.pkg b/src/player.pkg
index 712ddf7f..c297a665 100644
--- a/src/player.pkg
+++ b/src/player.pkg
@@ -41,9 +41,9 @@ typedef signed int s32b;
typedef unsigned int u32b;
/** @def PY_MAX_LEVEL
- * @note Maximum level
+ * @note Maximum level
*/
-#define PY_MAX_LEVEL 50
+#define PY_MAX_LEVEL 50
/** @var player_exp[PY_MAX_LEVEL]
* @brief Number
@@ -104,99 +104,99 @@ extern s32b player_exp[PY_MAX_LEVEL];
/** @name Race flags
* @{ */
/** @def PR1_EXPERIMENTAL
- * @note Is still under developemnt
+ * @note Is still under developemnt
*/
-#define PR1_EXPERIMENTAL 0x00000001L
+#define PR1_EXPERIMENTAL 0x00000001L
/* XXX */
/** @def PR1_RESIST_BLACK_BREATH
- * @note Resist black breath
+ * @note Resist black breath
*/
-#define PR1_RESIST_BLACK_BREATH 0x00000004L
+#define PR1_RESIST_BLACK_BREATH 0x00000004L
/** @def PR1_NO_STUN
- * @note Never stunned
+ * @note Never stunned
*/
-#define PR1_NO_STUN 0x00000008L
+#define PR1_NO_STUN 0x00000008L
/** @def PR1_XTRA_MIGHT_BOW
- * @note Xtra might with bows
+ * @note Xtra might with bows
*/
-#define PR1_XTRA_MIGHT_BOW 0x00000010L
+#define PR1_XTRA_MIGHT_BOW 0x00000010L
/** @def PR1_XTRA_MIGHT_XBOW
- * @note Xtra might with xbows
+ * @note Xtra might with xbows
*/
-#define PR1_XTRA_MIGHT_XBOW 0x00000020L
+#define PR1_XTRA_MIGHT_XBOW 0x00000020L
/** @def PR1_XTRA_MIGHT_SLING
- * @note Xtra might with slings
+ * @note Xtra might with slings
*/
-#define PR1_XTRA_MIGHT_SLING 0x00000040L
+#define PR1_XTRA_MIGHT_SLING 0x00000040L
/** @def PR1_AC_LEVEL
- * @note More AC with levels
+ * @note More AC with levels
*/
-#define PR1_AC_LEVEL 0x00000080L
+#define PR1_AC_LEVEL 0x00000080L
/** @def PR1_HURT_LITE
- * @note Hurt by light
+ * @note Hurt by light
*/
-#define PR1_HURT_LITE 0x00000100L
+#define PR1_HURT_LITE 0x00000100L
/** @def PR1_VAMPIRE
- * @note Vampire
+ * @note Vampire
*/
-#define PR1_VAMPIRE 0x00000200L
+#define PR1_VAMPIRE 0x00000200L
/** @def PR1_UNDEAD
- * @note Undead
+ * @note Undead
*/
-#define PR1_UNDEAD 0x00000400L
+#define PR1_UNDEAD 0x00000400L
/** @def PR1_NO_CUT
- * @note no cuts
+ * @note no cuts
*/
-#define PR1_NO_CUT 0x00000800L
+#define PR1_NO_CUT 0x00000800L
/** @def PR1_CORRUPT
- * @note hack-- corrupted
+ * @note hack-- corrupted
*/
-#define PR1_CORRUPT 0x00001000L
+#define PR1_CORRUPT 0x00001000L
/** @def PR1_NO_FOOD
- * @note little gain from food
+ * @note little gain from food
*/
-#define PR1_NO_FOOD 0x00002000L
+#define PR1_NO_FOOD 0x00002000L
/** @def PR1_NO_GOD
- * @note cannot worship
+ * @note cannot worship
*/
-#define PR1_NO_GOD 0x00004000L
+#define PR1_NO_GOD 0x00004000L
/* XXX */
/** @def PR1_ELF
- * @note Is an elf
+ * @note Is an elf
*/
-#define PR1_ELF 0x00010000L
+#define PR1_ELF 0x00010000L
/** @def PR1_SEMI_WRAITH
- * @note Takes damage when going in walls
+ * @note Takes damage when going in walls
*/
-#define PR1_SEMI_WRAITH 0x00020000L
+#define PR1_SEMI_WRAITH 0x00020000L
/** @def PR1_NO_SUBRACE_CHANGE
- * @note Impossible to change subrace
+ * @note Impossible to change subrace
*/
-#define PR1_NO_SUBRACE_CHANGE 0x00040000L
+#define PR1_NO_SUBRACE_CHANGE 0x00040000L
/* XXX */
/** @def PR1_ANTIMAGIC
- * @note antimagic ... hack
+ * @note antimagic ... hack
*/
-#define PR1_ANTIMAGIC 0x00100000L
+#define PR1_ANTIMAGIC 0x00100000L
/** @def PR1_MOLD_FRIEND
- * @note Not attacked by molds wielded
+ * @note Not attacked by molds wielded
*/
-#define PR1_MOLD_FRIEND 0x00200000L
+#define PR1_MOLD_FRIEND 0x00200000L
/** @def PR1_GOD_FRIEND
- * @note Better grace
+ * @note Better grace
*/
-#define PR1_GOD_FRIEND 0x00400000L
+#define PR1_GOD_FRIEND 0x00400000L
/* XXX */
/** @def PR1_INNATE_SPELLS
- * @note KNown all spells, only need books
+ * @note KNown all spells, only need books
*/
-#define PR1_INNATE_SPELLS 0x01000000L
+#define PR1_INNATE_SPELLS 0x01000000L
/* XXX */
/* XXX */
/** @def PR1_EASE_STEAL
- * @note Gain xp by stealing
+ * @note Gain xp by stealing
*/
-#define PR1_EASE_STEAL 0x08000000L
+#define PR1_EASE_STEAL 0x08000000L
/* XXX */
/* XXX */
/* XXX */
@@ -204,9 +204,9 @@ extern s32b player_exp[PY_MAX_LEVEL];
/* XXX */
/** @def PR2_ASTRAL
- * @note Is it an astral being coming from th halls of mandos ?
+ * @note Is it an astral being coming from th halls of mandos ?
*/
-#define PR2_ASTRAL 0x00000002L
+#define PR2_ASTRAL 0x00000002L
/* XXX */
/** @} */
@@ -214,13 +214,13 @@ extern s32b player_exp[PY_MAX_LEVEL];
* @brief Bit flags for the "p_ptr->notice" variable
* @{ */
/** @def PN_COMBINE
- * @note Combine the pack
+ * @note Combine the pack
*/
-#define PN_COMBINE 0x00000001L
+#define PN_COMBINE 0x00000001L
/** @def PN_REORDER
- * @note Reorder the pack
+ * @note Reorder the pack
*/
-#define PN_REORDER 0x00000002L
+#define PN_REORDER 0x00000002L
/* xxx (many) */
/** @} */
@@ -229,65 +229,65 @@ extern s32b player_exp[PY_MAX_LEVEL];
* @brief Bit flags for the "p_ptr->update" variable
* @{ */
/** @def PU_BONUS
- * @note Calculate bonuses
+ * @note Calculate bonuses
*/
-#define PU_BONUS 0x00000001L
+#define PU_BONUS 0x00000001L
/** @def PU_TORCH
- * @note Calculate torch radius
+ * @note Calculate torch radius
*/
-#define PU_TORCH 0x00000002L
+#define PU_TORCH 0x00000002L
/** @def PU_BODY
- * @note Calculate body parts
+ * @note Calculate body parts
*/
-#define PU_BODY 0x00000004L
+#define PU_BODY 0x00000004L
/** @def PU_SANITY
- * @note Calculate csan and msan
+ * @note Calculate csan and msan
*/
-#define PU_SANITY 0x00000008L
+#define PU_SANITY 0x00000008L
/** @def PU_HP
- * @note Calculate chp and mhp
+ * @note Calculate chp and mhp
*/
-#define PU_HP 0x00000010L
+#define PU_HP 0x00000010L
/** @def PU_MANA
- * @note Calculate csp and msp
+ * @note Calculate csp and msp
*/
-#define PU_MANA 0x00000020L
+#define PU_MANA 0x00000020L
/** @def PU_SPELLS
- * @note Calculate spells
+ * @note Calculate spells
*/
-#define PU_SPELLS 0x00000040L
+#define PU_SPELLS 0x00000040L
/** @def PU_POWERS
- * @note Calculate powers
+ * @note Calculate powers
*/
-#define PU_POWERS 0x00000080L
+#define PU_POWERS 0x00000080L
/* xxx (many) */
/** @def PU_UN_VIEW
- * @note Forget view
+ * @note Forget view
*/
-#define PU_UN_VIEW 0x00010000L
+#define PU_UN_VIEW 0x00010000L
/* xxx (many) */
/** @def PU_VIEW
- * @note Update view
+ * @note Update view
*/
-#define PU_VIEW 0x00100000L
+#define PU_VIEW 0x00100000L
/** @def PU_MON_LITE
- * @note Update monster light
+ * @note Update monster light
*/
-#define PU_MON_LITE 0x00200000L
+#define PU_MON_LITE 0x00200000L
/* xxx */
/** @def PU_MONSTERS
- * @note Update monsters
+ * @note Update monsters
*/
-#define PU_MONSTERS 0x01000000L
+#define PU_MONSTERS 0x01000000L
/** @def PU_DISTANCE
- * @note Update distances
+ * @note Update distances
*/
-#define PU_DISTANCE 0x02000000L
+#define PU_DISTANCE 0x02000000L
/* xxx */
/** @def PU_FLOW
- * @note Update flow
+ * @note Update flow
*/
-#define PU_FLOW 0x10000000L
+#define PU_FLOW 0x10000000L
/* xxx (many) */
/** @} */
@@ -296,126 +296,126 @@ extern s32b player_exp[PY_MAX_LEVEL];
* @brief Bit flags for the "p_ptr->redraw" variable
* @{ */
/** @def PR_MISC
- * @note Display Race/Class
+ * @note Display Race/Class
*/
-#define PR_MISC 0x00000001L
+#define PR_MISC 0x00000001L
/** @def PR_TITLE
- * @note Display Title
+ * @note Display Title
*/
-#define PR_TITLE 0x00000002L
+#define PR_TITLE 0x00000002L
/** @def PR_LEV
- * @note Display Level
+ * @note Display Level
*/
-#define PR_LEV 0x00000004L
+#define PR_LEV 0x00000004L
/** @def PR_EXP
- * @note Display Experience
+ * @note Display Experience
*/
-#define PR_EXP 0x00000008L
+#define PR_EXP 0x00000008L
/** @def PR_STATS
- * @note Display Stats
+ * @note Display Stats
*/
-#define PR_STATS 0x00000010L
+#define PR_STATS 0x00000010L
/** @def PR_ARMOR
- * @note Display Armor
+ * @note Display Armor
*/
-#define PR_ARMOR 0x00000020L
+#define PR_ARMOR 0x00000020L
/** @def PR_HP
- * @note Display Hitpoints
+ * @note Display Hitpoints
*/
-#define PR_HP 0x00000040L
+#define PR_HP 0x00000040L
/** @def PR_MANA
- * @note Display Mana
+ * @note Display Mana
*/
-#define PR_MANA 0x00000080L
+#define PR_MANA 0x00000080L
/** @def PR_GOLD
- * @note Display Gold
+ * @note Display Gold
*/
-#define PR_GOLD 0x00000100L
+#define PR_GOLD 0x00000100L
/** @def PR_DEPTH
- * @note Display Depth
+ * @note Display Depth
*/
-#define PR_DEPTH 0x00000200L
-/****/
+#define PR_DEPTH 0x00000200L
+/****/
/** @def PR_HEALTH
- * @note Display Health Bar
+ * @note Display Health Bar
*/
-#define PR_HEALTH 0x00000800L
+#define PR_HEALTH 0x00000800L
/** @def PR_CUT
- * @note Display Extra (Cut)
+ * @note Display Extra (Cut)
*/
-#define PR_CUT 0x00001000L
+#define PR_CUT 0x00001000L
/** @def PR_STUN
- * @note Display Extra (Stun)
+ * @note Display Extra (Stun)
*/
-#define PR_STUN 0x00002000L
+#define PR_STUN 0x00002000L
/** @def PR_HUNGER
- * @note Display Extra (Hunger)
+ * @note Display Extra (Hunger)
*/
-#define PR_HUNGER 0x00004000L
+#define PR_HUNGER 0x00004000L
/** @def PR_PIETY
- * @note Display Piety
+ * @note Display Piety
*/
-#define PR_PIETY 0x00008000L
+#define PR_PIETY 0x00008000L
/** @def PR_BLIND
- * @note Display Extra (Blind)
+ * @note Display Extra (Blind)
*/
-#define PR_BLIND 0x00010000L
+#define PR_BLIND 0x00010000L
/** @def PR_CONFUSED
- * @note Display Extra (Confused)
+ * @note Display Extra (Confused)
*/
-#define PR_CONFUSED 0x00020000L
+#define PR_CONFUSED 0x00020000L
/** @def PR_AFRAID
- * @note Display Extra (Afraid)
+ * @note Display Extra (Afraid)
*/
-#define PR_AFRAID 0x00040000L
+#define PR_AFRAID 0x00040000L
/** @def PR_POISONED
- * @note Display Extra (Poisoned)
+ * @note Display Extra (Poisoned)
*/
-#define PR_POISONED 0x00080000L
+#define PR_POISONED 0x00080000L
/** @def PR_STATE
- * @note Display Extra (State)
+ * @note Display Extra (State)
*/
-#define PR_STATE 0x00100000L
+#define PR_STATE 0x00100000L
/** @def PR_SPEED
- * @note Display Extra (Speed)
+ * @note Display Extra (Speed)
*/
-#define PR_SPEED 0x00200000L
+#define PR_SPEED 0x00200000L
/** @def PR_STUDY
- * @note Display Extra (Study)
+ * @note Display Extra (Study)
*/
-#define PR_STUDY 0x00400000L
+#define PR_STUDY 0x00400000L
/** @def PR_SANITY
- * @note Display Sanity
+ * @note Display Sanity
*/
-#define PR_SANITY 0x00800000L
+#define PR_SANITY 0x00800000L
/** @def PR_EXTRA
- * @note Display Extra Info
+ * @note Display Extra Info
*/
-#define PR_EXTRA 0x01000000L
+#define PR_EXTRA 0x01000000L
/** @def PR_BASIC
- * @note Display Basic Info
+ * @note Display Basic Info
*/
-#define PR_BASIC 0x02000000L
+#define PR_BASIC 0x02000000L
/** @def PR_MAP
- * @note Display Map
+ * @note Display Map
*/
-#define PR_MAP 0x04000000L
+#define PR_MAP 0x04000000L
/** @def PR_WIPE
- * @note Hack -- Total Redraw
+ * @note Hack -- Total Redraw
*/
-#define PR_WIPE 0x08000000L
+#define PR_WIPE 0x08000000L
/** @def PR_MH
- * @note Display Monster hitpoints
+ * @note Display Monster hitpoints
*/
-#define PR_MH 0x10000000L
+#define PR_MH 0x10000000L
/** @def PR_MH
- * @note Display Monster hitpoints
+ * @note Display Monster hitpoints
*/
-#define PR_MH 0x10000000L
+#define PR_MH 0x10000000L
/** @def PR_DTRAP
- * @note Display Extra (DTrap)
+ * @note Display Extra (DTrap)
*/
-#define PR_DTRAP 0x20000000L
+#define PR_DTRAP 0x20000000L
/* xxx */
/* xxx */
/** @} */
@@ -425,54 +425,54 @@ extern s32b player_exp[PY_MAX_LEVEL];
* @brief Bit flags for the "p_ptr->window" variable (etc)
* @{ */
/** @def PW_INVEN
- * @note Display inven/equip
+ * @note Display inven/equip
*/
-#define PW_INVEN 0x00000001L
+#define PW_INVEN 0x00000001L
/** @def PW_EQUIP
- * @note Display equip/inven
+ * @note Display equip/inven
*/
-#define PW_EQUIP 0x00000002L
+#define PW_EQUIP 0x00000002L
/* xxx */
/** @def PW_PLAYER
- * @note Display character
+ * @note Display character
*/
-#define PW_PLAYER 0x00000008L
+#define PW_PLAYER 0x00000008L
/** @def PW_M_LIST
- * @note Show monster list
+ * @note Show monster list
*/
-#define PW_M_LIST 0x00000010L
+#define PW_M_LIST 0x00000010L
/* xxx */
/** @def PW_MESSAGE
- * @note Display messages
+ * @note Display messages
*/
-#define PW_MESSAGE 0x00000040L
+#define PW_MESSAGE 0x00000040L
/** @def PW_OVERHEAD
- * @note Display overhead view
+ * @note Display overhead view
*/
-#define PW_OVERHEAD 0x00000080L
+#define PW_OVERHEAD 0x00000080L
/** @def PW_MONSTER
- * @note Display monster recall
+ * @note Display monster recall
*/
-#define PW_MONSTER 0x00000100L
+#define PW_MONSTER 0x00000100L
/** @def PW_OBJECT
- * @note Display object recall
+ * @note Display object recall
*/
-#define PW_OBJECT 0x00000200L
+#define PW_OBJECT 0x00000200L
/* xxx */
/** @def PW_SNAPSHOT
- * @note Display snap-shot
+ * @note Display snap-shot
*/
-#define PW_SNAPSHOT 0x00000800L
+#define PW_SNAPSHOT 0x00000800L
/* xxx */
/* xxx */
/** @def PW_BORG_1
- * @note Display borg messages
+ * @note Display borg messages
*/
-#define PW_BORG_1 0x00004000L
+#define PW_BORG_1 0x00004000L
/** @def PW_BORG_2
- * @note Display borg status
+ * @note Display borg status
*/
-#define PW_BORG_2 0x00008000L
+#define PW_BORG_2 0x00008000L
/** @} */
/** @struct deity_type
@@ -521,65 +521,65 @@ struct player_type
{
/** @structvar lives
* @brief Number
- * @note How many times we resurected
+ * @note How many times we resurected
*/
s32b lives;
/** @structvar oldpy
* @brief Number
- * @note Previous player location -KMW-
+ * @note Previous player location -KMW-
*/
s16b oldpy;
/** @structvar oldpx
* @brief Number
- * @note Previous player location -KMW-
+ * @note Previous player location -KMW-
*/
s16b oldpx;
/** @structvar py
* @brief Number
- * @note Player location
+ * @note Player location
*/
s16b py;
/** @structvar px
* @brief Number
- * @note Player location
+ * @note Player location
*/
s16b px;
/** @structvar psex
* @brief Number
- * @note Sex index
+ * @note Sex index
*/
byte psex;
/** @structvar prace
* @brief Number
- * @note Race index
+ * @note Race index
*/
byte prace;
/** @structvar pracem
* @brief Number
- * @note Race Mod index
+ * @note Race Mod index
*/
byte pracem;
/** @structvar pclass
* @brief Number
- * @note Class index
+ * @note Class index
*/
byte pclass;
/** @structvar mimic_form
* @brief Number
- * @note Actualy transformation
+ * @note Actualy transformation
*/
byte mimic_form;
/** @structvar mimic_level
* @brief Number
- * @note Level of the mimic effect
+ * @note Level of the mimic effect
*/
s16b mimic_level;
/** @structvar oops
* @brief Number
- * @note Unused
+ * @note Unused
*/
byte oops;
@@ -587,90 +587,90 @@ struct player_type
/** @structvar hitdie
* @brief Number
- * @note Hit dice (sides)
+ * @note Hit dice (sides)
*/
byte hitdie;
/** @structvar expfact
* @brief Number
- * @note Experience factor
+ * @note Experience factor
*/
u16b expfact;
/** @structvar allow_one_death
* @brief Number
- * @note Blood of life
+ * @note Blood of life
*/
byte allow_one_death;
/** @structvar age
* @brief Number
- * @note Characters age
+ * @note Characters age
*/
s16b age;
/** @structvar ht
* @brief Number
- * @note Height
+ * @note Height
*/
s16b ht;
/** @structvar wt
* @brief Number
- * @note Weight
+ * @note Weight
*/
s16b wt;
/** @structvar sc
* @brief Number
- * @note Social Class
+ * @note Social Class
*/
s16b sc;
/** @structvar au
* @brief Number
- * @note Current Gold
+ * @note Current Gold
*/
s32b au;
/** @structvar max_exp
* @brief Number
- * @note Max experience
+ * @note Max experience
*/
s32b max_exp;
/** @structvar exp
* @brief Number
- * @note Cur experience
+ * @note Cur experience
*/
s32b exp;
/** @structvar exp_frac
* @brief Number
- * @note Cur exp frac (times 2^16)
+ * @note Cur exp frac (times 2^16)
*/
u16b exp_frac;
/** @structvar lev
* @brief Number
- * @note Level
+ * @note Level
*/
s16b lev;
/** @structvar town_num
* @brief Number
- * @note Current town number
+ * @note Current town number
*/
s16b town_num;
/** @structvar inside_quest
* @brief Number
- * @note Inside quest level
+ * @note Inside quest level
*/
s16b inside_quest;
/** @structvar exit_bldg
* @brief Boolean
- * @note Goal obtained in arena? -KMW-
+ * @note Goal obtained in arena? -KMW-
*/
bool exit_bldg;
/** @structvar wilderness_x
* @brief Number
- * @note Coordinates in the wilderness
+ * @note Coordinates in the wilderness
*/
s32b wilderness_x;
/** @structvar wilderness_y
@@ -679,170 +679,170 @@ struct player_type
s32b wilderness_y;
/** @structvar wild_mode
* @brief Boolean
- * @note TRUE = Small map, FLASE = Big map
+ * @note TRUE = Small map, FLASE = Big map
*/
bool wild_mode;
/** @structvar old_wild_mode
* @brief Boolean
- * @note TRUE = Small map, FLASE = Big map
+ * @note TRUE = Small map, FLASE = Big map
*/
bool old_wild_mode;
/** @structvar mhp
* @brief Number
- * @note Max hit pts
+ * @note Max hit pts
*/
s16b mhp;
/** @structvar chp
* @brief Number
- * @note Cur hit pts
+ * @note Cur hit pts
*/
s16b chp;
/** @structvar chp_frac
* @brief Number
- * @note Cur hit frac (times 2^16)
+ * @note Cur hit frac (times 2^16)
*/
u16b chp_frac;
/** @structvar hp_mod
* @brief Number
- * @note A modificator(permanent)
+ * @note A modificator(permanent)
*/
s16b hp_mod;
/** @structvar msp
* @brief Number
- * @note Max mana pts
+ * @note Max mana pts
*/
s16b msp;
/** @structvar csp
* @brief Number
- * @note Cur mana pts
+ * @note Cur mana pts
*/
s16b csp;
/** @structvar csp_frac
* @brief Number
- * @note Cur mana frac (times 2^16)
+ * @note Cur mana frac (times 2^16)
*/
u16b csp_frac;
/** @structvar msane
* @brief Number
- * @note Max sanity
+ * @note Max sanity
*/
s16b msane;
/** @structvar csane
* @brief Number
- * @note Cur sanity
+ * @note Cur sanity
*/
s16b csane;
/** @structvar csane_frac
* @brief Number
- * @note Cur sanity frac
+ * @note Cur sanity frac
*/
u16b csane_frac;
/** @structvar grace
* @brief Number
- * @note Your God's appreciation factor.
+ * @note Your God's appreciation factor.
*/
s32b grace;
/** @structvar pgod
* @brief Number
- * @note Your God.
+ * @note Your God.
*/
byte pgod;
/** @structvar praying
* @brief Boolean
- * @note Praying to your god.
+ * @note Praying to your god.
*/
bool praying;
/** @structvar max_plv
* @brief Number
- * @note Max Player Level
+ * @note Max Player Level
*/
s16b max_plv;
/** @structvar stat_max[6]
* @brief Number
- * @note Current "maximal" stat values
+ * @note Current "maximal" stat values
*/
s16b stat_max[6];
/** @structvar stat_cur[6]
* @brief Number
- * @note Current "natural" stat values
+ * @note Current "natural" stat values
*/
s16b stat_cur[6];
/** @structvar luck_cur
* @brief Number
- * @note Current "natural" luck value (range -30 <> 30)
+ * @note Current "natural" luck value (range -30 <> 30)
*/
s16b luck_cur;
/** @structvar luck_max
* @brief Number
- * @note Current "maximal base" luck value (range -30 <> 30)
+ * @note Current "maximal base" luck value (range -30 <> 30)
*/
s16b luck_max;
/** @structvar luck_base
* @brief Number
- * @note Current "base" luck value (range -30 <> 30)
+ * @note Current "base" luck value (range -30 <> 30)
*/
s16b luck_base;
/** @structvar fast
* @brief Number
- * @note Timed -- Fast
+ * @note Timed -- Fast
*/
s16b fast;
/** @structvar lightspeed
* @brief Number
- * @note Timed -- Light Speed
+ * @note Timed -- Light Speed
*/
s16b lightspeed;
/** @structvar slow
* @brief Number
- * @note Timed -- Slow
+ * @note Timed -- Slow
*/
s16b slow;
/** @structvar blind
* @brief Number
- * @note Timed -- Blindness
+ * @note Timed -- Blindness
*/
s16b blind;
/** @structvar paralyzed
* @brief Number
- * @note Timed -- Paralysis
+ * @note Timed -- Paralysis
*/
s16b paralyzed;
/** @structvar confused
* @brief Number
- * @note Timed -- Confusion
+ * @note Timed -- Confusion
*/
s16b confused;
/** @structvar afraid
* @brief Number
- * @note Timed -- Fear
+ * @note Timed -- Fear
*/
s16b afraid;
/** @structvar image
* @brief Number
- * @note Timed -- Hallucination
+ * @note Timed -- Hallucination
*/
s16b image;
/** @structvar poisoned
* @brief Number
- * @note Timed -- Poisoned
+ * @note Timed -- Poisoned
*/
s16b poisoned;
/** @structvar cut
* @brief Number
- * @note Timed -- Cut
+ * @note Timed -- Cut
*/
s16b cut;
/** @structvar stun
* @brief Number
- * @note Timed -- Stun
+ * @note Timed -- Stun
*/
s16b stun;
@@ -863,236 +863,236 @@ struct player_type
s16b protundead;
/** @structvar invuln
* @brief Number
- * @note Timed -- Invulnerable
+ * @note Timed -- Invulnerable
*/
s16b invuln;
/** @structvar hero
* @brief Number
- * @note Timed -- Heroism
+ * @note Timed -- Heroism
*/
s16b hero;
/** @structvar shero
* @brief Number
- * @note Timed -- Super Heroism
+ * @note Timed -- Super Heroism
*/
s16b shero;
/** @structvar shield
* @brief Number
- * @note Timed -- Shield Spell
+ * @note Timed -- Shield Spell
*/
s16b shield;
/** @structvar shield_power
* @brief Number
- * @note Timed -- Shield Spell Power
+ * @note Timed -- Shield Spell Power
*/
s16b shield_power;
/** @structvar shield_opt
* @brief Number
- * @note Timed -- Shield Spell options
+ * @note Timed -- Shield Spell options
*/
s16b shield_opt;
/** @structvar blessed
* @brief Number
- * @note Timed -- Blessed
+ * @note Timed -- Blessed
*/
s16b blessed;
/** @structvar tim_invis
* @brief Number
- * @note Timed -- See Invisible
+ * @note Timed -- See Invisible
*/
s16b tim_invis;
/** @structvar tim_infra
* @brief Number
- * @note Timed -- Infra Vision
+ * @note Timed -- Infra Vision
*/
s16b tim_infra;
/** @structvar oppose_acid
* @brief Number
- * @note Timed -- oppose acid
+ * @note Timed -- oppose acid
*/
s16b oppose_acid;
/** @structvar oppose_elec
* @brief Number
- * @note Timed -- oppose lightning
+ * @note Timed -- oppose lightning
*/
s16b oppose_elec;
/** @structvar oppose_fire
* @brief Number
- * @note Timed -- oppose heat
+ * @note Timed -- oppose heat
*/
s16b oppose_fire;
/** @structvar oppose_cold
* @brief Number
- * @note Timed -- oppose cold
+ * @note Timed -- oppose cold
*/
s16b oppose_cold;
/** @structvar oppose_pois
* @brief Number
- * @note Timed -- oppose poison
+ * @note Timed -- oppose poison
*/
s16b oppose_pois;
/** @structvar oppose_ld
* @brief Number
- * @note Timed -- oppose light & dark
+ * @note Timed -- oppose light & dark
*/
s16b oppose_ld;
/** @structvar oppose_cc
* @brief Number
- * @note Timed -- oppose chaos & confusion
+ * @note Timed -- oppose chaos & confusion
*/
s16b oppose_cc;
/** @structvar oppose_ss
* @brief Number
- * @note Timed -- oppose sound & shards
+ * @note Timed -- oppose sound & shards
*/
s16b oppose_ss;
/** @structvar oppose_nex
* @brief Number
- * @note Timed -- oppose nexus
+ * @note Timed -- oppose nexus
*/
s16b oppose_nex;
/** @structvar tim_esp
* @brief Number
- * @note Timed ESP
+ * @note Timed ESP
*/
s16b tim_esp;
/** @structvar tim_wraith
* @brief Number
- * @note Timed wraithform
+ * @note Timed wraithform
*/
s16b tim_wraith;
/** @structvar tim_ffall
* @brief Number
- * @note Timed Levitation
+ * @note Timed Levitation
*/
s16b tim_ffall;
/** @structvar tim_fly
* @brief Number
- * @note Timed Levitation
+ * @note Timed Levitation
*/
s16b tim_fly;
/** @structvar tim_fire_aura
* @brief Number
- * @note Timed Fire Aura
+ * @note Timed Fire Aura
*/
s16b tim_fire_aura;
/** @structvar tim_regen
* @brief Number
- * @note Timed regen
+ * @note Timed regen
*/
s16b tim_regen;
/** @structvar tim_regen_pow
* @brief Number
- * @note Timed regen
+ * @note Timed regen
*/
s16b tim_regen_pow;
/** @structvar tim_poison
* @brief Number
- * @note Timed poison hands
+ * @note Timed poison hands
*/
s16b tim_poison;
/** @structvar tim_thunder
* @brief Number
- * @note Timed thunderstorm
+ * @note Timed thunderstorm
*/
s16b tim_thunder;
/** @structvar tim_thunder_p1
* @brief Number
- * @note Timed thunderstorm
+ * @note Timed thunderstorm
*/
s16b tim_thunder_p1;
/** @structvar tim_thunder_p2
* @brief Number
- * @note Timed thunderstorm
+ * @note Timed thunderstorm
*/
s16b tim_thunder_p2;
/** @structvar resist_magic
* @brief Number
- * @note Timed Resist Magic (later)
+ * @note Timed Resist Magic (later)
*/
s16b resist_magic;
/** @structvar tim_invisible
* @brief Number
- * @note Timed Invisibility
+ * @note Timed Invisibility
*/
s16b tim_invisible;
/** @structvar tim_inv_pow
* @brief Number
- * @note Power of timed invisibility
+ * @note Power of timed invisibility
*/
s16b tim_inv_pow;
/** @structvar tim_mimic
* @brief Number
- * @note Timed Mimic
+ * @note Timed Mimic
*/
s16b tim_mimic;
/** @structvar tim_lite
* @brief Number
- * @note Timed Lite
+ * @note Timed Lite
*/
s16b tim_lite;
/** @structvar holy
* @brief Number
- * @note Holy Aura
+ * @note Holy Aura
*/
s16b holy;
/** @structvar walk_water
* @brief Number
- * @note Walk over water as a god
+ * @note Walk over water as a god
*/
s16b walk_water;
/** @structvar tim_mental_barrier
* @brief Number
- * @note Sustain Int&Wis
+ * @note Sustain Int&Wis
*/
s16b tim_mental_barrier;
/** @structvar strike
* @brief Number
- * @note True Strike(+25 hit)
+ * @note True Strike(+25 hit)
*/
s16b strike;
/** @structvar meditation
* @brief Number
- * @note Meditation(+50 mana -25 to hit/to dam)
+ * @note Meditation(+50 mana -25 to hit/to dam)
*/
s16b meditation;
/** @structvar tim_reflect
* @brief Number
- * @note Timed Reflection
+ * @note Timed Reflection
*/
s16b tim_reflect;
/** @structvar tim_res_time
* @brief Number
- * @note Timed Resistance to Time
+ * @note Timed Resistance to Time
*/
s16b tim_res_time;
/** @structvar tim_deadly
* @brief Number
- * @note Timed deadly blow
+ * @note Timed deadly blow
*/
s16b tim_deadly;
/** @structvar prob_travel
* @brief Number
- * @note Timed probability travel
+ * @note Timed probability travel
*/
s16b prob_travel;
/** @structvar disrupt_shield
* @brief Number
- * @note Timed disruption shield
+ * @note Timed disruption shield
*/
s16b disrupt_shield;
/** @structvar parasite
* @brief Number
- * @note Timed parasite
+ * @note Timed parasite
*/
s16b parasite;
/** @structvar parasite_r_idx
* @brief Number
- * @note Timed parasite monster
+ * @note Timed parasite monster
*/
s16b parasite_r_idx;
/** @structvar loan
@@ -1101,34 +1101,34 @@ struct player_type
u32b loan;
/** @structvar loan_time
* @brief Number
- * @note Timer -- loan
+ * @note Timer -- loan
*/
u32b loan_time;
/** @structvar tim_magic_breath
* @brief Number
- * @note Magical breathing -- can breath anywhere
+ * @note Magical breathing -- can breath anywhere
*/
s16b tim_magic_breath;
/** @structvar tim_water_breath
* @brief Number
- * @note Water breathing -- can breath underwater
+ * @note Water breathing -- can breath underwater
*/
s16b tim_water_breath;
/** @structvar immov_cntr
* @brief Number
- * @note Timed -- Last ``immovable'' command.
+ * @note Timed -- Last ``immovable'' command.
*/
s16b immov_cntr;
/** @structvar music_extra
* @brief Number
- * @note Music songs
+ * @note Music songs
*/
u32b music_extra;
/** @structvar music_extra2
* @brief Number
- * @note Music songs
+ * @note Music songs
*/
u32b music_extra2;
@@ -1139,41 +1139,41 @@ struct player_type
/** @structvar recall_dungeon
* @brief Number
- * @note Recall in which dungeon
+ * @note Recall in which dungeon
*/
s16b recall_dungeon;
/** @structvar word_recall
* @brief Number
- * @note Word of recall counter
+ * @note Word of recall counter
*/
s16b word_recall;
/** @structvar energy
* @brief Number
- * @note Current energy
+ * @note Current energy
*/
s32b energy;
/** @structvar food
* @brief Number
- * @note Current nutrition
+ * @note Current nutrition
*/
s16b food;
/** @structvar confusing
* @brief Number
- * @note Glowing hands
+ * @note Glowing hands
*/
byte confusing;
/** @structvar searching
* @brief Number
- * @note Currently searching
+ * @note Currently searching
*/
byte searching;
/** @structvar new_spells
* @brief Number
- * @note Number of spells available
+ * @note Number of spells available
*/
s16b new_spells;
@@ -1184,13 +1184,13 @@ struct player_type
/** @structvar xtra_spells
* @brief Number
- * @note Number of xtra spell learned(via potion)
+ * @note Number of xtra spell learned(via potion)
*/
s16b xtra_spells;
/** @structvar cur_lite
* @brief Number
- * @note Radius of lite (if any)
+ * @note Radius of lite (if any)
*/
s16b cur_lite;
@@ -1222,510 +1222,510 @@ struct player_type
/** @structvar pspeed
* @brief Number
- * @note Current speed
+ * @note Current speed
*/
s16b pspeed;
/** @structvar notice
* @brief Number
- * @note Special Updates (bit flags)
+ * @note Special Updates (bit flags)
*/
u32b notice;
/** @structvar update
* @brief Number
- * @note Pending Updates (bit flags)
+ * @note Pending Updates (bit flags)
*/
u32b update;
/** @structvar redraw
* @brief Number
- * @note Normal Redraws (bit flags)
+ * @note Normal Redraws (bit flags)
*/
u32b redraw;
/** @structvar window
* @brief Number
- * @note Window Redraws (bit flags)
+ * @note Window Redraws (bit flags)
*/
u32b window;
/** @structvar stat_use[6]
* @brief Number
- * @note Current modified stats
+ * @note Current modified stats
*/
s16b stat_use[6];
/** @structvar stat_top[6]
* @brief Number
- * @note Maximal modified stats
+ * @note Maximal modified stats
*/
s16b stat_top[6];
/** @structvar stat_add[6]
* @brief Number
- * @note Modifiers to stat values
+ * @note Modifiers to stat values
*/
s16b stat_add[6];
/** @structvar stat_ind[6]
* @brief Number
- * @note Indexes into stat tables
+ * @note Indexes into stat tables
*/
s16b stat_ind[6];
/** @structvar stat_cnt[6]
* @brief Number
- * @note Counter for temporary drains
+ * @note Counter for temporary drains
*/
s16b stat_cnt[6];
/** @structvar stat_los[6]
* @brief Number
- * @note Amount of temporary drains
+ * @note Amount of temporary drains
*/
s16b stat_los[6];
/** @structvar immune_acid
* @brief Boolean
- * @note Immunity to acid
+ * @note Immunity to acid
*/
bool immune_acid;
/** @structvar immune_elec
* @brief Boolean
- * @note Immunity to lightning
+ * @note Immunity to lightning
*/
bool immune_elec;
/** @structvar immune_fire
* @brief Boolean
- * @note Immunity to fire
+ * @note Immunity to fire
*/
bool immune_fire;
/** @structvar immune_cold
* @brief Boolean
- * @note Immunity to cold
+ * @note Immunity to cold
*/
bool immune_cold;
/** @structvar immune_neth
* @brief Boolean
- * @note Immunity to nether
+ * @note Immunity to nether
*/
bool immune_neth;
/** @structvar resist_acid
* @brief Boolean
- * @note Resist acid
+ * @note Resist acid
*/
bool resist_acid;
/** @structvar resist_elec
* @brief Boolean
- * @note Resist lightning
+ * @note Resist lightning
*/
bool resist_elec;
/** @structvar resist_fire
* @brief Boolean
- * @note Resist fire
+ * @note Resist fire
*/
bool resist_fire;
/** @structvar resist_cold
* @brief Boolean
- * @note Resist cold
+ * @note Resist cold
*/
bool resist_cold;
/** @structvar resist_pois
* @brief Boolean
- * @note Resist poison
+ * @note Resist poison
*/
bool resist_pois;
/** @structvar resist_conf
* @brief Boolean
- * @note Resist confusion
+ * @note Resist confusion
*/
bool resist_conf;
/** @structvar resist_sound
* @brief Boolean
- * @note Resist sound
+ * @note Resist sound
*/
bool resist_sound;
/** @structvar resist_lite
* @brief Boolean
- * @note Resist light
+ * @note Resist light
*/
bool resist_lite;
/** @structvar resist_dark
* @brief Boolean
- * @note Resist darkness
+ * @note Resist darkness
*/
bool resist_dark;
/** @structvar resist_chaos
* @brief Boolean
- * @note Resist chaos
+ * @note Resist chaos
*/
bool resist_chaos;
/** @structvar resist_disen
* @brief Boolean
- * @note Resist disenchant
+ * @note Resist disenchant
*/
bool resist_disen;
/** @structvar resist_shard
* @brief Boolean
- * @note Resist shards
+ * @note Resist shards
*/
bool resist_shard;
/** @structvar resist_nexus
* @brief Boolean
- * @note Resist nexus
+ * @note Resist nexus
*/
bool resist_nexus;
/** @structvar resist_blind
* @brief Boolean
- * @note Resist blindness
+ * @note Resist blindness
*/
bool resist_blind;
/** @structvar resist_neth
* @brief Boolean
- * @note Resist nether
+ * @note Resist nether
*/
bool resist_neth;
/** @structvar resist_fear
* @brief Boolean
- * @note Resist fear
+ * @note Resist fear
*/
bool resist_fear;
/** @structvar resist_continuum
* @brief Boolean
- * @note Resist space-time continuum disruption
+ * @note Resist space-time continuum disruption
*/
bool resist_continuum;
/** @structvar sensible_fire
* @brief Boolean
- * @note Fire does more damage on the player
+ * @note Fire does more damage on the player
*/
bool sensible_fire;
/** @structvar sensible_lite
* @brief Boolean
- * @note Lite does more damage on the player and blinds her/him
+ * @note Lite does more damage on the player and blinds her/him
*/
bool sensible_lite;
/** @structvar reflect
* @brief Boolean
- * @note Reflect 'bolt' attacks
+ * @note Reflect 'bolt' attacks
*/
bool reflect;
/** @structvar sh_fire
* @brief Boolean
- * @note Fiery 'immolation' effect
+ * @note Fiery 'immolation' effect
*/
bool sh_fire;
/** @structvar sh_elec
* @brief Boolean
- * @note Electric 'immolation' effect
+ * @note Electric 'immolation' effect
*/
bool sh_elec;
/** @structvar wraith_form
* @brief Boolean
- * @note wraithform
+ * @note wraithform
*/
bool wraith_form;
/** @structvar anti_magic
* @brief Boolean
- * @note Anti-magic
+ * @note Anti-magic
*/
bool anti_magic;
/** @structvar anti_tele
* @brief Boolean
- * @note Prevent teleportation
+ * @note Prevent teleportation
*/
bool anti_tele;
/** @structvar sustain_str
* @brief Boolean
- * @note Keep strength
+ * @note Keep strength
*/
bool sustain_str;
/** @structvar sustain_int
* @brief Boolean
- * @note Keep intelligence
+ * @note Keep intelligence
*/
bool sustain_int;
/** @structvar sustain_wis
* @brief Boolean
- * @note Keep wisdom
+ * @note Keep wisdom
*/
bool sustain_wis;
/** @structvar sustain_dex
* @brief Boolean
- * @note Keep dexterity
+ * @note Keep dexterity
*/
bool sustain_dex;
/** @structvar sustain_con
* @brief Boolean
- * @note Keep constitution
+ * @note Keep constitution
*/
bool sustain_con;
/** @structvar sustain_chr
* @brief Boolean
- * @note Keep charisma
+ * @note Keep charisma
*/
bool sustain_chr;
/** @structvar aggravate
* @brief Boolean
- * @note Aggravate monsters
+ * @note Aggravate monsters
*/
bool aggravate;
/** @structvar teleport
* @brief Boolean
- * @note Random teleporting
+ * @note Random teleporting
*/
bool teleport;
/** @structvar exp_drain
* @brief Boolean
- * @note Experience draining
+ * @note Experience draining
*/
bool exp_drain;
/** @structvar drain_mana
* @brief Number
- * @note mana draining
+ * @note mana draining
*/
byte drain_mana;
/** @structvar drain_life
* @brief Number
- * @note hp draining
+ * @note hp draining
*/
byte drain_life;
/** @structvar magical_breath
* @brief Boolean
- * @note Magical breathing -- can breath anywhere
+ * @note Magical breathing -- can breath anywhere
*/
bool magical_breath;
/** @structvar water_breath
* @brief Boolean
- * @note Water breathing -- can breath underwater
+ * @note Water breathing -- can breath underwater
*/
bool water_breath;
/** @structvar climb
* @brief Boolean
- * @note Can climb mountains
+ * @note Can climb mountains
*/
bool climb;
/** @structvar fly
* @brief Boolean
- * @note Can fly over some features
+ * @note Can fly over some features
*/
bool fly;
/** @structvar ffall
* @brief Boolean
- * @note No damage falling
+ * @note No damage falling
*/
bool ffall;
/** @structvar lite
* @brief Boolean
- * @note Permanent light
+ * @note Permanent light
*/
bool lite;
/** @structvar free_act
* @brief Boolean
- * @note Never paralyzed
+ * @note Never paralyzed
*/
bool free_act;
/** @structvar see_inv
* @brief Boolean
- * @note Can see invisible
+ * @note Can see invisible
*/
bool see_inv;
/** @structvar regenerate
* @brief Boolean
- * @note Regenerate hit pts
+ * @note Regenerate hit pts
*/
bool regenerate;
/** @structvar hold_life
* @brief Boolean
- * @note Resist life draining
+ * @note Resist life draining
*/
bool hold_life;
/** @structvar telepathy
* @brief Number
- * @note Telepathy
+ * @note Telepathy
*/
u32b telepathy;
/** @structvar slow_digest
* @brief Boolean
- * @note Slower digestion
+ * @note Slower digestion
*/
bool slow_digest;
/** @structvar bless_blade
* @brief Boolean
- * @note Blessed blade
+ * @note Blessed blade
*/
bool bless_blade;
/** @structvar xtra_might
* @brief Number
- * @note Extra might bow
+ * @note Extra might bow
*/
byte xtra_might;
/** @structvar impact
* @brief Boolean
- * @note Earthquake blows
+ * @note Earthquake blows
*/
bool impact;
/** @structvar auto_id
* @brief Boolean
- * @note Auto id items
+ * @note Auto id items
*/
bool auto_id;
/** @structvar dis_to_h
* @brief Number
- * @note Known bonus to hit
+ * @note Known bonus to hit
*/
s16b dis_to_h;
/** @structvar dis_to_d
* @brief Number
- * @note Known bonus to dam
+ * @note Known bonus to dam
*/
s16b dis_to_d;
/** @structvar dis_to_a
* @brief Number
- * @note Known bonus to ac
+ * @note Known bonus to ac
*/
s16b dis_to_a;
/** @structvar dis_ac
* @brief Number
- * @note Known base ac
+ * @note Known base ac
*/
s16b dis_ac;
/** @structvar to_m
* @brief Number
- * @note Bonus to mana
+ * @note Bonus to mana
*/
s16b to_m;
/** @structvar to_s
* @brief Number
- * @note Bonus to spell
+ * @note Bonus to spell
*/
s16b to_s;
/** @structvar to_h
* @brief Number
- * @note Bonus to hit
+ * @note Bonus to hit
*/
s16b to_h;
/** @structvar to_d
* @brief Number
- * @note Bonus to dam
+ * @note Bonus to dam
*/
s16b to_d;
/** @structvar to_a
* @brief Number
- * @note Bonus to ac
+ * @note Bonus to ac
*/
s16b to_a;
/** @structvar to_h_melee
* @brief Number
- * @note Bonus to hit
+ * @note Bonus to hit
*/
s16b to_h_melee;
/** @structvar to_d_melee
* @brief Number
- * @note Bonus to dam
+ * @note Bonus to dam
*/
s16b to_d_melee;
/** @structvar to_h_ranged
* @brief Number
- * @note Bonus to hit
+ * @note Bonus to hit
*/
s16b to_h_ranged;
/** @structvar to_d_ranged
* @brief Number
- * @note Bonus to dam
+ * @note Bonus to dam
*/
s16b to_d_ranged;
/** @structvar num_blow
* @brief Number
- * @note Number of blows
+ * @note Number of blows
*/
s16b num_blow;
/** @structvar num_fire
* @brief Number
- * @note Number of shots
+ * @note Number of shots
*/
s16b num_fire;
/** @structvar ac
* @brief Number
- * @note Base ac
+ * @note Base ac
*/
s16b ac;
/** @structvar antimagic
* @brief Number
- * @note Power of the anti magic field
+ * @note Power of the anti magic field
*/
byte antimagic;
/** @structvar antimagic_dis
* @brief Number
- * @note Radius of the anti magic field
+ * @note Radius of the anti magic field
*/
byte antimagic_dis;
/** @structvar see_infra
* @brief Number
- * @note Infravision range
+ * @note Infravision range
*/
s16b see_infra;
/** @structvar skill_dis
* @brief Number
- * @note Skill: Disarming
+ * @note Skill: Disarming
*/
s16b skill_dis;
/** @structvar skill_dev
* @brief Number
- * @note Skill: Magic Devices
+ * @note Skill: Magic Devices
*/
s16b skill_dev;
/** @structvar skill_sav
* @brief Number
- * @note Skill: Saving throw
+ * @note Skill: Saving throw
*/
s16b skill_sav;
/** @structvar skill_stl
* @brief Number
- * @note Skill: Stealth factor
+ * @note Skill: Stealth factor
*/
s16b skill_stl;
/** @structvar skill_srh
* @brief Number
- * @note Skill: Searching ability
+ * @note Skill: Searching ability
*/
s16b skill_srh;
/** @structvar skill_fos
* @brief Number
- * @note Skill: Searching frequency
+ * @note Skill: Searching frequency
*/
s16b skill_fos;
/** @structvar skill_thn
* @brief Number
- * @note Skill: To hit (normal)
+ * @note Skill: To hit (normal)
*/
s16b skill_thn;
/** @structvar skill_thb
* @brief Number
- * @note Skill: To hit (shooting)
+ * @note Skill: To hit (shooting)
*/
s16b skill_thb;
/** @structvar skill_tht
* @brief Number
- * @note Skill: To hit (throwing)
+ * @note Skill: To hit (throwing)
*/
s16b skill_tht;
/** @structvar skill_dig
* @brief Number
- * @note Skill: Digging
+ * @note Skill: Digging
*/
s16b skill_dig;
@@ -1736,39 +1736,45 @@ struct player_type
/** @structvar control
* @brief Number
- * @note Controlled monster
+ * @note Controlled monster
*/
s16b control;
/** @structvar control_dir
* @brief Number
- * @note Controlled monster
+ * @note Controlled monster
*/
byte control_dir;
/** @structvar companion_killed
* @brief Number
- * @note Number of companion death
+ * @note Number of companion death
*/
s16b companion_killed;
/** @structvar black_breath
* @brief Boolean
- * @note The Tolkien's Black Breath
+ * @note The Tolkien's Black Breath
*/
bool black_breath;
/** @structvar body_monster
* @brief Number
- * @note In which body is the player
+ * @note In which body is the player
*/
u16b body_monster;
+ /** @structvar body_parts[28]
+ * @brief Number
+ * @note Various body modifiers
+ */
+ byte body_parts[28];
+
/** @structvar extra_body_parts[BODY_MAX]
* @brief Number
- * @note Various body modifiers
+ * @note Various body modifiers
*/
s16b extra_body_parts[BODY_MAX];
/** @structvar powers_mod[POWER_MAX_INIT]
* @brief Boolean
- * @note Intrinsinc powers
+ * @note Intrinsinc powers
*/
bool powers_mod[POWER_MAX_INIT];
/** @structvar powers[power_max]
@@ -1778,17 +1784,17 @@ struct player_type
/** @structvar spellbinder_num
* @brief Number
- * @note Number of spells bound
+ * @note Number of spells bound
*/
byte spellbinder_num;
/** @structvar spellbinder[4]
* @brief Number
- * @note Spell bounds
+ * @note Spell bounds
*/
u32b spellbinder[4];
/** @structvar spellbinder_trigger
* @brief Number
- * @note Spellbinder trigger condition
+ * @note Spellbinder trigger condition
*/
byte spellbinder_trigger;
@@ -1801,7 +1807,7 @@ struct player_type
/* Astral */
/** @structvar astral
* @brief Boolean
- * @note We started at the bottom ?
+ * @note We started at the bottom ?
*/
bool astral;
@@ -1809,7 +1815,7 @@ struct player_type
/** @structvar leaving
* @brief Boolean
- * @note True if player is leaving
+ * @note True if player is leaving
*/
bool leaving;
};
@@ -1836,7 +1842,7 @@ struct player_race
{
/** @structvar title
* @brief Number
- * @note Type of race
+ * @note Type of race
*/
s32b title;
/** @structvar desc
@@ -1846,7 +1852,7 @@ struct player_race
/** @structvar infra
* @brief Number
- * @note Infra-vision range
+ * @note Infra-vision range
*/
byte infra;
};
@@ -1857,174 +1863,174 @@ struct player_race_mod
{
/** @structvar title
* @brief Number
- * @note Type of race mod
+ * @note Type of race mod
*/
s32b title;
/** @structvar desc
* @brief Number
- * @note Desc
+ * @note Desc
*/
s32b desc;
/** @structvar place
* @brief Boolean
- * @note TRUE = race race modifier, FALSE = Race modifier race
+ * @note TRUE = race race modifier, FALSE = Race modifier race
*/
bool place;
/** @structvar r_adj[6]
* @brief Number
- * @note (+) Racial stat bonuses
+ * @note (+) Racial stat bonuses
*/
s16b r_adj[6];
/** @structvar luck
* @brief String
- * @note Luck
+ * @note Luck
*/
char luck;
/** @structvar mana
* @brief Number
- * @note Mana %
+ * @note Mana %
*/
s16b mana;
/** @structvar r_dis
* @brief Number
- * @note (+) disarming
+ * @note (+) disarming
*/
s16b r_dis;
/** @structvar r_dev
* @brief Number
- * @note (+) magic devices
+ * @note (+) magic devices
*/
s16b r_dev;
/** @structvar r_sav
* @brief Number
- * @note (+) saving throw
+ * @note (+) saving throw
*/
s16b r_sav;
/** @structvar r_stl
* @brief Number
- * @note (+) stealth
+ * @note (+) stealth
*/
s16b r_stl;
/** @structvar r_srh
* @brief Number
- * @note (+) search ability
+ * @note (+) search ability
*/
s16b r_srh;
/** @structvar r_fos
* @brief Number
- * @note (+) search frequency
+ * @note (+) search frequency
*/
s16b r_fos;
/** @structvar r_thn
* @brief Number
- * @note (+) combat (normal)
+ * @note (+) combat (normal)
*/
s16b r_thn;
/** @structvar r_thb
* @brief Number
- * @note (+) combat (shooting)
+ * @note (+) combat (shooting)
*/
s16b r_thb;
/** @structvar r_mhp
* @brief String
- * @note (+) Race mod hit-dice modifier
+ * @note (+) Race mod hit-dice modifier
*/
char r_mhp;
/** @structvar r_exp
* @brief Number
- * @note (+) Race mod experience factor
+ * @note (+) Race mod experience factor
*/
s16b r_exp;
/** @structvar b_age
* @brief String
- * @note (+) base age
+ * @note (+) base age
*/
char b_age;
/** @structvar m_age
* @brief String
- * @note (+) mod age
+ * @note (+) mod age
*/
char m_age;
/** @structvar m_b_ht
* @brief String
- * @note (+) base height (males)
+ * @note (+) base height (males)
*/
char m_b_ht;
/** @structvar m_m_ht
* @brief String
- * @note (+) mod height (males)
+ * @note (+) mod height (males)
*/
char m_m_ht;
/** @structvar m_b_wt
* @brief String
- * @note (+) base weight (males)
+ * @note (+) base weight (males)
*/
char m_b_wt;
/** @structvar m_m_wt
* @brief String
- * @note (+) mod weight (males)
+ * @note (+) mod weight (males)
*/
char m_m_wt;
/** @structvar f_b_ht
* @brief String
- * @note (+) base height (females)
+ * @note (+) base height (females)
*/
char f_b_ht;
/** @structvar f_m_ht
* @brief String
- * @note (+) mod height (females)
+ * @note (+) mod height (females)
*/
char f_m_ht;
/** @structvar f_b_wt
* @brief String
- * @note (+) base weight (females)
+ * @note (+) base weight (females)
*/
char f_b_wt;
/** @structvar f_m_wt
* @brief String
- * @note (+) mod weight (females)
+ * @note (+) mod weight (females)
*/
char f_m_wt;
/** @structvar infra
* @brief String
- * @note (+) Infra-vision range
+ * @note (+) Infra-vision range
*/
char infra;
/** @structvar choice[2]
* @brief Number
- * @note Legal race choices
+ * @note Legal race choices
*/
u32b choice[2];
/** @structvar pclass[2]
* @brief Number
- * @note Classes allowed
+ * @note Classes allowed
*/
u32b pclass[2];
/** @structvar mclass[2]
* @brief Number
- * @note Classes restricted
+ * @note Classes restricted
*/
u32b mclass[2];
/** @structvar powers[4]
* @brief Number
- * @note Powers of the subrace
+ * @note Powers of the subrace
*/
s16b powers[4];
/** @structvar body_parts[BODY_MAX]
* @brief String
- * @note To help to decide what to use when body changing
+ * @note To help to decide what to use when body changing
*/
char body_parts[BODY_MAX];
@@ -2034,7 +2040,7 @@ struct player_race_mod
u32b flags1;
/** @structvar flags2
* @brief Number
- * @note flags
+ * @note flags
*/
u32b flags2;
@@ -2069,12 +2075,12 @@ struct player_race_mod
/** @structvar g_attr
* @brief Number
- * @note Overlay graphic attribute
+ * @note Overlay graphic attribute
*/
byte g_attr;
/** @structvar g_char
* @brief String
- * @note Overlay graphic character
+ * @note Overlay graphic character
*/
char g_char;
@@ -2947,29 +2953,29 @@ extern bool set_food(int v);
* @brief Player "food" crucial values
* @{ */
/** @def PY_FOOD_MAX
- * @note Food value (Bloated)
+ * @note Food value (Bloated)
*/
-#define PY_FOOD_MAX 15000
+#define PY_FOOD_MAX 15000
/** @def PY_FOOD_FULL
- * @note Food value (Normal)
+ * @note Food value (Normal)
*/
-#define PY_FOOD_FULL 10000
+#define PY_FOOD_FULL 10000
/** @def PY_FOOD_ALERT
- * @note Food value (Hungry)
+ * @note Food value (Hungry)
*/
-#define PY_FOOD_ALERT 2000
+#define PY_FOOD_ALERT 2000
/** @def PY_FOOD_WEAK
- * @note Food value (Weak)
+ * @note Food value (Weak)
*/
-#define PY_FOOD_WEAK 1000
+#define PY_FOOD_WEAK 1000
/** @def PY_FOOD_FAINT
- * @note Food value (Fainting)
+ * @note Food value (Fainting)
*/
-#define PY_FOOD_FAINT 500
+#define PY_FOOD_FAINT 500
/** @def PY_FOOD_STARVE
- * @note Food value (Starving)
+ * @note Food value (Starving)
*/
-#define PY_FOOD_STARVE 100
+#define PY_FOOD_STARVE 100
/** @} */
/** @fn check_experience(void)
diff --git a/src/q_one.c b/src/q_one.c
index d93f8c4a..884c90f1 100644
--- a/src/q_one.c
+++ b/src/q_one.c
@@ -29,7 +29,7 @@ bool quest_one_move_hook(char *fmt)
cmsg_print(TERM_YELLOW, "'to destroy it in the Great Fire where it was forged.'");
cmsg_print(TERM_YELLOW, "'I do not know where to find it, seek it through Middle-earth. Maybe there'");
cmsg_print(TERM_YELLOW, "'are other people that might know'");
- cmsg_print(TERM_YELLOW, "'Do not forget, the Ring must be cast back into the fires or Mount Doom!'");
+ cmsg_print(TERM_YELLOW, "'Do not forget, the Ring must be cast back into the fires of Mount Doom!'");
/* Continue the plot */
cquest.status = QUEST_STATUS_TAKEN;
diff --git a/src/q_shroom.c b/src/q_shroom.c
index 18c6b3d1..1f60fe7b 100644
--- a/src/q_shroom.c
+++ b/src/q_shroom.c
@@ -138,9 +138,9 @@ bool quest_shroom_give_hook(char *fmt)
{
object_type forge, *q_ptr;
- msg_print("Oh thank you !");
- msg_print("Take my sling and those mushrooms, may they help you !");
- msg_print("Farmer Maggot heads back to his house");
+ msg_print("Oh thank you!");
+ msg_print("Take my sling and those mushrooms, may they help you!");
+ msg_print("Farmer Maggot heads back to his house.");
/* Mushrooms */
q_ptr = &forge;
diff --git a/src/q_thief.c b/src/q_thief.c
index b2400d52..676ddf14 100644
--- a/src/q_thief.c
+++ b/src/q_thief.c
@@ -120,7 +120,7 @@ bool quest_thieves_finish_hook(char *fmt)
if (q_idx != QUEST_THIEVES) return FALSE;
- c_put_str(TERM_YELLOW, "Thank you for killing the band of thieves!.", 8, 0);
+ c_put_str(TERM_YELLOW, "Thank you for killing the band of thieves!", 8, 0);
c_put_str(TERM_YELLOW, "You can use the hideout as your house as a reward.", 9, 0);
/* Continue the plot */
diff --git a/src/q_wight.c b/src/q_wight.c
index 4b090a9f..a49e3088 100644
--- a/src/q_wight.c
+++ b/src/q_wight.c
@@ -115,6 +115,7 @@ bool quest_wight_death_hook(char *fmt)
cmsg_print(TERM_YELLOW, "Without their King the wights won't be able to do much.");
cave_set_feat(p_ptr->py, p_ptr->px, FEAT_LESS);
+ cave[p_ptr->py][p_ptr->px].special = 0;
cquest.status = QUEST_STATUS_COMPLETED;
del_hook(HOOK_MONSTER_DEATH, quest_wight_death_hook);
diff --git a/src/randart.c b/src/randart.c
index dced2d0f..cd5e4d24 100644
--- a/src/randart.c
+++ b/src/randart.c
@@ -26,7 +26,7 @@ static bool grab_one_power(int *ra_idx, object_type *o_ptr, bool good, s16b *max
int i = 0, j;
int *ok_ra, ok_num = 0;
bool ret = FALSE;
- s32b f1, f2, f3, f4, f5, esp;
+ u32b f1, f2, f3, f4, f5, esp;
C_MAKE(ok_ra, max_ra_idx, int);
diff --git a/src/spells2.c b/src/spells2.c
index e37c8010..7fff7d47 100644
--- a/src/spells2.c
+++ b/src/spells2.c
@@ -849,14 +849,14 @@ void self_knowledge(FILE *fff)
info[i++] = "You are not living.";
/* Not implemented */
if (r_ptr->flags3 & RF3_HURT_LITE)
- info[i++] = "Your eyes are sensible to bright light.";
+ info[i++] = "Your eyes are vulnerable to bright light.";
/* Not implemented */
if (r_ptr->flags3 & RF3_HURT_ROCK)
info[i++] = "You can be hurt by rock remover.";
if (r_ptr->flags3 & RF3_SUSCEP_FIRE)
- info[i++] = "You are sensitive to fire.";
+ info[i++] = "You are vulnerable to fire.";
if (r_ptr->flags3 & RF3_SUSCEP_COLD)
- info[i++] = "You are sensitive to cold.";
+ info[i++] = "You are vulerable to cold.";
if (r_ptr->flags3 & RF3_RES_TELE)
info[i++] = "You are resistant to teleportation.";
if (r_ptr->flags3 & RF3_RES_NETH)
@@ -1101,11 +1101,11 @@ void self_knowledge(FILE *fff)
info[i++] = "You appear in grassy areas.";
if (r_ptr->flags9 & RF9_SUSCEP_ACID)
- info[i++] = "You are sensitive to acid.";
+ info[i++] = "You are vulnerable to acid.";
if (r_ptr->flags9 & RF9_SUSCEP_ELEC)
- info[i++] = "You are sensitive to electricity.";
+ info[i++] = "You are vulnerable to electricity.";
if (r_ptr->flags9 & RF9_SUSCEP_POIS)
- info[i++] = "You are sensitive to poison.";
+ info[i++] = "You are vulnerable to poison.";
if (r_ptr->flags9 & RF9_KILL_TREES)
info[i++] = "You can eat trees.";
if (r_ptr->flags9 & RF9_WYRM_PROTECT)
@@ -1384,7 +1384,7 @@ void self_knowledge(FILE *fff)
}
else if (p_ptr->sensible_fire)
{
- info[i++] = "You are very sensible to fire.";
+ info[i++] = "You are very vulnerable to fire.";
}
if (p_ptr->immune_cold)
diff --git a/src/tables.c b/src/tables.c
index ee653030..42e6983c 100644
--- a/src/tables.c
+++ b/src/tables.c
@@ -4177,7 +4177,7 @@ quest_type quest_init_tome[MAX_Q_IDX_INIT] =
"Wolves!",
{
"There are wolves pestering my people! They gather in a hut",
- "on the edge of down and menace everyone nearby. Your task",
+ "on the edge of town and menace everyone nearby. Your task",
"is to go in there and clear them out.",
"",
"",
@@ -4202,8 +4202,8 @@ quest_type quest_init_tome[MAX_Q_IDX_INIT] =
"Dragons!",
{
"There are dragons pestering my people! They gather in a",
- "building on the edge of down and menace everyone nearby.",
- "Your task is to go into the buildng and clear them out.",
+ "building on the edge of town and menace everyone nearby.",
+ "Your task is to go into the building and clear them out.",
"",
"",
"",
@@ -4227,8 +4227,8 @@ quest_type quest_init_tome[MAX_Q_IDX_INIT] =
"Haunted House!",
{
"There are undead pestering my people! They gather in a hut",
- "on the edge of down and menace everyone nearby. Your task",
- "is to go into the buildng and clear out the beasts.",
+ "on the edge of town and menace everyone nearby. Your task",
+ "is to go into the building and clear out the beasts.",
"",
"",
"",
@@ -4425,18 +4425,18 @@ tval_desc tval_descs[] =
{
TV_SHOT,
"Shots are small, hard balls. They are the standard ammunition "
- "for slings. You can wear them in your quiver if you have a sling "
+ "for slings. You can carry them in your quiver if you have a sling "
"equipped."
},
{
TV_ARROW,
- "Arrows are the standard ammunition for bows. You can wear "
- "them in your quiver if your have a bow equipped."
+ "Arrows are the standard ammunition for bows. You can carry "
+ "them in your quiver if you have a bow equipped."
},
{
TV_BOLT,
"Bolts are the standard ammunition for crossbows. You can "
- "wear them in your quiver if your have a crossbow equipped."
+ "carry them in your quiver if you have a crossbow equipped."
},
{
TV_BOW,
@@ -4473,8 +4473,8 @@ tval_desc tval_descs[] =
},
{
TV_LITE,
- "Lights are allow you to read things and see from afar. Some of "
- "them need to be refilled, some do not."
+ "Lights allow you to read things and see from afar. Some of "
+ "them need to be fueled but some do not."
},
{
TV_AMULET,
diff --git a/src/traps.c b/src/traps.c
index 13edd4e3..5e99cf56 100644
--- a/src/traps.c
+++ b/src/traps.c
@@ -759,7 +759,7 @@ bool player_activate_trap_type(s16b y, s16b x, object_type *i_ptr, s16b item)
case TRAP_OF_STEAL_ITEM:
{
/*
- * please note that magical stealing is not so
+ * please note that magical stealing is not so
* easily circumvented
*/
if (!p_ptr->paralyzed &&
@@ -892,7 +892,7 @@ bool player_activate_trap_type(s16b y, s16b x, object_type *i_ptr, s16b item)
/* Trap of Missing Money */
case TRAP_OF_MISSING_MONEY:
{
- u32b gold = (p_ptr->au / 10) + randint(25);
+ s32b gold = (p_ptr->au / 10) + randint(25);
if (gold < 2) gold = 2;
if (gold > 5000) gold = (p_ptr->au / 20) + randint(3000);
@@ -1072,7 +1072,7 @@ bool player_activate_trap_type(s16b y, s16b x, object_type *i_ptr, s16b item)
object_type *j_ptr = &p_ptr->inventory[i];
- /* Drain charged wands/staffs
+ /* Drain charged wands/staffs
Hack -- don't let artifacts get drained */
if (((j_ptr->tval == TV_STAFF) ||
(j_ptr->tval == TV_WAND)) &&
@@ -2126,7 +2126,7 @@ static bool item_tester_hook_potion(object_type *o_ptr)
}
/*
- * The trap setting code for rogues -MWK-
+ * The trap setting code for rogues -MWK-
*
* Also, it will fail or give weird results if the tvals are resorted!
*/
diff --git a/src/util.pkg b/src/util.pkg
index 5ea2152a..41acadae 100644
--- a/src/util.pkg
+++ b/src/util.pkg
@@ -421,6 +421,12 @@ typedef unsigned int u32b;
*/
#define HOOK_CALC_BONUS 29
+/** @def HOOK_CALC_BONUS
+ * @brief Calculate player "state" bonuses, after all calcs are done.
+ * @note (see xtra1.c)
+ */
+#define HOOK_CALC_BONUS_END 77
+
/** @def HOOK_CALC_POWERS
* @brief Calculate player powers.
* @note (see xtra1.c)
@@ -2721,3 +2727,6 @@ extern void lua_add_to_list@add_to_list(list_type *, int idx, cptr str);
* @note (see file util.c)
*/
extern void lua_display_list@display_list(int y, int x, int h, int w, cptr title, list_type *list, int max, int begin, int sel, byte sel_color);
+
+extern errr file_character(cptr name, bool full);
+extern void calc_bonuses(bool silent);
diff --git a/src/w_dun.c b/src/w_dun.c
index 51e8cf8b..992765b5 100644
--- a/src/w_dun.c
+++ b/src/w_dun.c
@@ -1,6 +1,6 @@
/*
** Lua binding: dungeon
-** Generated automatically by tolua 4.0a - angband on Fri Nov 21 05:51:41 2003.
+** Generated automatically by tolua 4.0a - angband on Mon Feb 23 21:37:01 2004.
*/
#include "lua/tolua.h"
diff --git a/src/w_mnster.c b/src/w_mnster.c
index 023f046a..3bc5755f 100644
--- a/src/w_mnster.c
+++ b/src/w_mnster.c
@@ -1,6 +1,6 @@
/*
** Lua binding: monster
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:05 2003.
+** Generated automatically by tolua 4.0a - angband on Fri Jan 30 19:43:24 2004.
*/
#include "lua/tolua.h"
diff --git a/src/w_obj.c b/src/w_obj.c
index 7a63e2a3..22588d1c 100644
--- a/src/w_obj.c
+++ b/src/w_obj.c
@@ -1,6 +1,6 @@
/*
** Lua binding: object
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:04 2003.
+** Generated automatically by tolua 4.0a - angband on Fri Jan 30 19:43:22 2004.
*/
#include "lua/tolua.h"
@@ -4420,6 +4420,7 @@ int tolua_object_open (lua_State* tolua_S)
tolua_constant(tolua_S,NULL,"TV_AMULET",TV_AMULET);
tolua_constant(tolua_S,NULL,"TV_RING",TV_RING);
tolua_constant(tolua_S,NULL,"TV_TRAPKIT",TV_TRAPKIT);
+ tolua_constant(tolua_S,NULL,"TV_TOTEM",TV_TOTEM);
tolua_constant(tolua_S,NULL,"TV_STAFF",TV_STAFF);
tolua_constant(tolua_S,NULL,"TV_WAND",TV_WAND);
tolua_constant(tolua_S,NULL,"TV_ROD",TV_ROD);
@@ -5375,6 +5376,7 @@ void tolua_object_close (lua_State* tolua_S)
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_AMULET");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_RING");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_TRAPKIT");
+ lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_TOTEM");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_STAFF");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_WAND");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"TV_ROD");
diff --git a/src/w_play_c.c b/src/w_play_c.c
index a1c7d1b3..02b67c5f 100644
--- a/src/w_play_c.c
+++ b/src/w_play_c.c
@@ -1,6 +1,6 @@
/*
** Lua binding: player_c
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:05 2003.
+** Generated automatically by tolua 4.0a - angband on Fri Jan 30 19:43:25 2004.
*/
#include "lua/tolua.h"
diff --git a/src/w_player.c b/src/w_player.c
index 37bc7d8f..082f4a38 100644
--- a/src/w_player.c
+++ b/src/w_player.c
@@ -1,6 +1,6 @@
/*
** Lua binding: player
-** Generated automatically by tolua 4.0a - angband on Sat Oct 25 00:31:53 2003.
+** Generated automatically by tolua 4.0a - angband on Sat Jan 31 15:28:15 2004.
*/
#include "lua/tolua.h"
@@ -4985,6 +4985,40 @@ static int toluaI_set_player_player_type_body_monster(lua_State* tolua_S)
return 0;
}
+/* get function: body_parts of class player_type */
+static int toluaI_get_player_player_type_body_parts(lua_State* tolua_S)
+{
+ int toluaI_index;
+ player_type* self;
+ lua_pushstring(tolua_S,".self");
+ lua_rawget(tolua_S,1);
+ self = (player_type*) lua_touserdata(tolua_S,-1);
+ if (!tolua_istype(tolua_S,2,LUA_TNUMBER,0))
+ tolua_error(tolua_S,"invalid type in array indexing.");
+ toluaI_index = (int)tolua_getnumber(tolua_S,2,0)-1;
+ if (toluaI_index<0 || toluaI_index>=28)
+ tolua_error(tolua_S,"array indexing out of range.");
+ tolua_pushnumber(tolua_S,(long)self->body_parts[toluaI_index]);
+ return 1;
+}
+
+/* set function: body_parts of class player_type */
+static int toluaI_set_player_player_type_body_parts(lua_State* tolua_S)
+{
+ int toluaI_index;
+ player_type* self;
+ lua_pushstring(tolua_S,".self");
+ lua_rawget(tolua_S,1);
+ self = (player_type*) lua_touserdata(tolua_S,-1);
+ if (!tolua_istype(tolua_S,2,LUA_TNUMBER,0))
+ tolua_error(tolua_S,"invalid type in array indexing.");
+ toluaI_index = (int)tolua_getnumber(tolua_S,2,0)-1;
+ if (toluaI_index<0 || toluaI_index>=28)
+ tolua_error(tolua_S,"array indexing out of range.");
+ self->body_parts[toluaI_index] = ((byte) tolua_getnumber(tolua_S,3,0));
+ return 0;
+}
+
/* get function: extra_body_parts of class player_type */
static int toluaI_get_player_player_type_extra_body_parts(lua_State* tolua_S)
{
@@ -8995,6 +9029,7 @@ int tolua_player_open (lua_State* tolua_S)
tolua_tablevar(tolua_S,"player_type","companion_killed",toluaI_get_player_player_type_companion_killed,toluaI_set_player_player_type_companion_killed);
tolua_tablevar(tolua_S,"player_type","black_breath",toluaI_get_player_player_type_black_breath,toluaI_set_player_player_type_black_breath);
tolua_tablevar(tolua_S,"player_type","body_monster",toluaI_get_player_player_type_body_monster,toluaI_set_player_player_type_body_monster);
+ tolua_tablearray(tolua_S,"player_type","body_parts",toluaI_get_player_player_type_body_parts,toluaI_set_player_player_type_body_parts);
tolua_tablearray(tolua_S,"player_type","extra_body_parts",toluaI_get_player_player_type_extra_body_parts,toluaI_set_player_player_type_extra_body_parts);
tolua_tablearray(tolua_S,"player_type","powers_mod",toluaI_get_player_player_type_powers_mod,toluaI_set_player_player_type_powers_mod);
tolua_tablearray(tolua_S,"player_type","powers",toluaI_get_player_player_type_powers,toluaI_set_player_player_type_powers);
diff --git a/src/w_quest.c b/src/w_quest.c
index 6173e3fc..f6059850 100644
--- a/src/w_quest.c
+++ b/src/w_quest.c
@@ -1,6 +1,6 @@
/*
** Lua binding: quest
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:05 2003.
+** Generated automatically by tolua 4.0a - angband on Fri Jan 30 19:43:25 2004.
*/
#include "lua/tolua.h"
diff --git a/src/w_spells.c b/src/w_spells.c
index ce934371..4df9d78c 100644
--- a/src/w_spells.c
+++ b/src/w_spells.c
@@ -1,6 +1,6 @@
/*
** Lua binding: spells
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:05 2003.
+** Generated automatically by tolua 4.0a - angband on Fri Jan 30 19:43:25 2004.
*/
#include "lua/tolua.h"
diff --git a/src/w_util.c b/src/w_util.c
index 8d7b3d17..243830fa 100644
--- a/src/w_util.c
+++ b/src/w_util.c
@@ -1,6 +1,6 @@
/*
** Lua binding: util
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:02 2003.
+** Generated automatically by tolua 4.0a - angband on Wed Feb 11 21:29:14 2004.
*/
#include "lua/tolua.h"
@@ -3451,6 +3451,51 @@ tolua_lerror:
return 0;
}
+/* function: file_character */
+static int toluaI_util_file_character00(lua_State* tolua_S)
+{
+ if (
+ !tolua_istype(tolua_S,1,LUA_TSTRING,0) ||
+ !tolua_istype(tolua_S,2,LUA_TNUMBER,0) ||
+ !tolua_isnoobj(tolua_S,3)
+ )
+ goto tolua_lerror;
+ else
+ {
+ cptr name = ((cptr) tolua_getstring(tolua_S,1,0));
+ bool full = ((bool) tolua_getnumber(tolua_S,2,0));
+ {
+ errr toluaI_ret = (errr) file_character(name,full);
+ tolua_pushnumber(tolua_S,(long)toluaI_ret);
+ }
+ }
+ return 1;
+tolua_lerror:
+ tolua_error(tolua_S,"#ferror in function 'file_character'.");
+ return 0;
+}
+
+/* function: calc_bonuses */
+static int toluaI_util_calc_bonuses00(lua_State* tolua_S)
+{
+ if (
+ !tolua_istype(tolua_S,1,LUA_TNUMBER,0) ||
+ !tolua_isnoobj(tolua_S,2)
+ )
+ goto tolua_lerror;
+ else
+ {
+ bool silent = ((bool) tolua_getnumber(tolua_S,1,0));
+ {
+ calc_bonuses(silent);
+ }
+ }
+ return 0;
+tolua_lerror:
+ tolua_error(tolua_S,"#ferror in function 'calc_bonuses'.");
+ return 0;
+}
+
/* Open function */
int tolua_util_open (lua_State* tolua_S)
{
@@ -3505,6 +3550,7 @@ int tolua_util_open (lua_State* tolua_S)
tolua_constant(tolua_S,NULL,"HOOK_ZAP",HOOK_ZAP);
tolua_constant(tolua_S,NULL,"HOOK_READ",HOOK_READ);
tolua_constant(tolua_S,NULL,"HOOK_CALC_BONUS",HOOK_CALC_BONUS);
+ tolua_constant(tolua_S,NULL,"HOOK_CALC_BONUS_END",HOOK_CALC_BONUS_END);
tolua_constant(tolua_S,NULL,"HOOK_CALC_POWERS",HOOK_CALC_POWERS);
tolua_constant(tolua_S,NULL,"HOOK_KEYPRESS",HOOK_KEYPRESS);
tolua_constant(tolua_S,NULL,"HOOK_CHAT",HOOK_CHAT);
@@ -3730,6 +3776,8 @@ int tolua_util_open (lua_State* tolua_S)
tolua_function(tolua_S,NULL,"delete_list",toluaI_util_delete_list00);
tolua_function(tolua_S,NULL,"add_to_list",toluaI_util_add_to_list00);
tolua_function(tolua_S,NULL,"display_list",toluaI_util_display_list00);
+ tolua_function(tolua_S,NULL,"file_character",toluaI_util_file_character00);
+ tolua_function(tolua_S,NULL,"calc_bonuses",toluaI_util_calc_bonuses00);
return 1;
}
/* Close function */
@@ -3784,6 +3832,7 @@ void tolua_util_close (lua_State* tolua_S)
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_ZAP");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_READ");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_CALC_BONUS");
+ lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_CALC_BONUS_END");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_CALC_POWERS");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_KEYPRESS");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"HOOK_CHAT");
@@ -4061,4 +4110,6 @@ void tolua_util_close (lua_State* tolua_S)
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"delete_list");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"add_to_list");
lua_pushnil(tolua_S); lua_setglobal(tolua_S,"display_list");
+ lua_pushnil(tolua_S); lua_setglobal(tolua_S,"file_character");
+ lua_pushnil(tolua_S); lua_setglobal(tolua_S,"calc_bonuses");
}
diff --git a/src/w_z_pack.c b/src/w_z_pack.c
index 8e34837e..399cd4d3 100644
--- a/src/w_z_pack.c
+++ b/src/w_z_pack.c
@@ -1,6 +1,6 @@
/*
** Lua binding: z_pack
-** Generated automatically by tolua 4.0a - angband on Tue Oct 7 23:02:03 2003.
+** Generated automatically by tolua 4.0a - angband on Fri Jan 30 19:43:21 2004.
*/
#include "lua/tolua.h"
diff --git a/src/xtra1.c b/src/xtra1.c
index c21a0449..f440b0db 100644
--- a/src/xtra1.c
+++ b/src/xtra1.c
@@ -4009,6 +4009,9 @@ void calc_bonuses(bool silent)
/* resistance to fire cancel sensibility to fire */
if (p_ptr->resist_fire || p_ptr->oppose_fire || p_ptr->immune_fire)
p_ptr->sensible_fire = FALSE;
+
+ /* Let the scripts do what they need */
+ process_hooks(HOOK_CALC_BONUS_END, "(d)", silent);
}
diff --git a/src/xtra2.c b/src/xtra2.c
index 306d6596..ba5ea8b2 100644
--- a/src/xtra2.c
+++ b/src/xtra2.c
@@ -93,7 +93,7 @@ bool set_parasite(int v, int r)
if (place_monster_one(wy, wx, p_ptr->parasite_r_idx, 0, FALSE, MSTATUS_ENEMY))
{
- cmsg_format(TERM_L_BLUE, "Your body convulse and spawn %s.", r_name);
+ cmsg_format(TERM_L_BLUE, "Your body convulses and spawns %s.", r_name);
p_ptr->food -= 750;
if (p_ptr->food < 100) p_ptr->food = 100;
}
@@ -7406,7 +7406,7 @@ void set_grace(s32b v)
bool test_object_wish(char *name, object_type *o_ptr, object_type *forge, char *what)
{
- int i, j, jb;
+ int i, j, jb, save_aware;
char buf[200];
/* try all objects, this *IS* a very ugly and slow method :( */
@@ -7425,10 +7425,13 @@ bool test_object_wish(char *name, object_type *o_ptr, object_type *forge, char *
o_ptr->name1 = 0;
o_ptr->name2 = 0;
apply_magic(o_ptr, dun_level, FALSE, FALSE, FALSE);
+ /* Hack : aware status must be restored after describing the item name */
+ save_aware = k_ptr->aware;
object_aware(o_ptr);
object_known(o_ptr);
object_desc(buf, o_ptr, FALSE, 0);
strlower(buf);
+ k_ptr->aware = save_aware;
if (strstr(name, buf) ||
/* Hack hack hackery */
@@ -7515,6 +7518,11 @@ bool test_object_wish(char *name, object_type *o_ptr, object_type *forge, char *
/* Don't search any more */
return TRUE;
}
+ else
+ {
+ /* Restore again the aware status */
+ k_ptr->aware = save_aware;
+ }
}
}
}