File crawl_24_gbdbe590.patch of Package crawl
diff -uNr stone_soup-0.14.1/docs/changelog.txt stone_soup-0.14.1-24-gbdbe590/docs/changelog.txt
--- stone_soup-0.14.1/docs/changelog.txt
+++ stone_soup-0.14.1-24-gbdbe590/docs/changelog.txt
@@ -564,6 +564,8 @@
further stat drain damages the player. The effects of a stat being at zero
(fainting, slow actions, etc.) persist.
* Ogre hunters and artificers now start with a club instead of a short sword.
+* Teleport control is a duration, which expires after time or use. It still
+ is disallowed on some levels.
Monsters
--------
@@ -782,6 +784,7 @@
- The knife of accuracy and boots of the Assassin are no more.
- The lightning scales are now +6 (was +3).
* Hammers do not generate outside of vaults.
+* Rings of teleport control must be evoked to work.
Gods
----
diff -uNr stone_soup-0.14.1/source/cloud.cc stone_soup-0.14.1-24-gbdbe590/source/cloud.cc
--- stone_soup-0.14.1/source/cloud.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/cloud.cc
@@ -352,7 +352,7 @@
if (cloud.type == CLOUD_NONE)
continue;
-#if ASSERTS
+#ifdef ASSERTS
if (cell_is_solid(cloud.pos))
{
die("cloud %s in %s at (%d,%d)", cloud_type_name(cloud.type).c_str(),
diff -uNr stone_soup-0.14.1/source/clua.cc stone_soup-0.14.1-24-gbdbe590/source/clua.cc
--- stone_soup-0.14.1/source/clua.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/clua.cc
@@ -18,6 +18,12 @@
#define BUGGY_PCALL_ERROR "667: Malformed response to guarded pcall."
#define BUGGY_SCRIPT_ERROR "666: Killing badly-behaved Lua script."
+// 64-bit luajit does not support custom allocators. Only checking
+// TARGET_CPU_X64 because luajit doesn't support other 64-bit archs.
+#if defined(USE_LUAJIT) && defined(TARGET_CPU_X64)
+#define NO_CUSTOM_ALLOCATOR
+#endif
+
#define CL_RESETSTACK_RETURN(ls, oldtop, retval) \
do \
{\
@@ -31,7 +37,9 @@
static int _clua_panic(lua_State *);
static void _clua_throttle_hook(lua_State *, lua_Debug *);
+#ifndef NO_CUSTOM_ALLOCATOR
static void *_clua_allocator(void *ud, void *ptr, size_t osize, size_t nsize);
+#endif
static int _clua_guarded_pcall(lua_State *);
static int _clua_require(lua_State *);
static int _clua_dofile(lua_State *);
@@ -634,7 +642,18 @@
if (_state)
return;
+#ifdef NO_CUSTOM_ALLOCATOR
+ // If this is likely to be used as a server, warn the builder.
+ // NOTE: #warning doesn't work on MSVC, so this will be fatal there
+ // (not that webtiles or dgamelaunch are supported on Windows anyway).
+# if defined(USE_TILE_WEB) || defined(DGAMELAUNCH)
+# warning Detected 64-bit Luajit, disabling CLua memory throttling.
+# endif
+ _state = luaL_newstate();
+#else
+ // Throttle memory usage in managed (clua) VMs
_state = managed_vm? lua_newstate(_clua_allocator, this) : luaL_newstate();
+#endif
if (!_state)
end(1, false, "Unable to create Lua state.");
@@ -951,6 +970,7 @@
return 0;
}
+#ifndef NO_CUSTOM_ALLOCATOR
static void *_clua_allocator(void *ud, void *ptr, size_t osize, size_t nsize)
{
CLua *cl = static_cast<CLua *>(ud);
@@ -970,6 +990,7 @@
else
return realloc(ptr, nsize);
}
+#endif
static void _clua_throttle_hook(lua_State *ls, lua_Debug *dbg)
{
diff -uNr stone_soup-0.14.1/source/dat/database/monspeak.txt stone_soup-0.14.1-24-gbdbe590/source/dat/database/monspeak.txt
--- stone_soup-0.14.1/source/dat/database/monspeak.txt
+++ stone_soup-0.14.1-24-gbdbe590/source/dat/database/monspeak.txt
@@ -1806,15 +1806,13 @@
@The_monster@ says, "Your corpse will decorate my castle walls." @player_only@
-@The_monster@ says, "In my kingdom, weaklings like you are put to the
-sword." @player_only@
+@The_monster@ says, "In my kingdom, weaklings like you are put to the sword." @player_only@
@The_monster@ says, "No maze can contain me."
@The_monster@ chants a prayer to Makhleb.
-@The_monster@ says @to_foe@, "Your valuables will do nicely in my
-coffers." @player_only@
+@The_monster@ says @to_foe@, "Your valuables will do nicely in my coffers." @player_only@
%%%%
_Asterion_rare_
diff -uNr stone_soup-0.14.1/source/dat/database/monspell.txt stone_soup-0.14.1-24-gbdbe590/source/dat/database/monspell.txt
--- stone_soup-0.14.1/source/dat/database/monspell.txt
+++ stone_soup-0.14.1-24-gbdbe590/source/dat/database/monspell.txt
@@ -425,6 +425,10 @@
@The_monster@ calls down the wrath of @possessive_God@ upon @target@.
%%%%
+drake cast targeted
+
+@The_monster@ breathes @beam@ @at@ @target@.
+%%%%
dragon cast targeted
@The_monster@ breathes @beam@ @at@ @target@.
diff -uNr stone_soup-0.14.1/source/dat/des/arrival/small.des stone_soup-0.14.1-24-gbdbe590/source/dat/des/arrival/small.des
--- stone_soup-0.14.1/source/dat/des/arrival/small.des
+++ stone_soup-0.14.1-24-gbdbe590/source/dat/des/arrival/small.des
@@ -2985,7 +2985,7 @@
xc>zll=....=llC>cx
xcccccc....ccccccx
.ttttc....ctt..
- ..crRRrct.
+ ....crRRrct.
.........
ENDMAP
diff -uNr stone_soup-0.14.1/source/dat/des/branches/abyss.des stone_soup-0.14.1-24-gbdbe590/source/dat/des/branches/abyss.des
--- stone_soup-0.14.1/source/dat/des/branches/abyss.des
+++ stone_soup-0.14.1-24-gbdbe590/source/dat/des/branches/abyss.des
@@ -44,7 +44,7 @@
# 1/3 chance to appear on D:21-27, and guaranteed on D:25.
###############################################################################
-default-depth: Depths
+default-depth: Depths, D:21-
# This one is the backup and the one used in encompass vaults.
NAME: abyss_entry
diff -uNr stone_soup-0.14.1/source/dat/des/branches/hell.des stone_soup-0.14.1-24-gbdbe590/source/dat/des/branches/hell.des
--- stone_soup-0.14.1/source/dat/des/branches/hell.des
+++ stone_soup-0.14.1-24-gbdbe590/source/dat/des/branches/hell.des
@@ -57,6 +57,8 @@
end
}}
+default-depth: Depths, D:21-
+
##############################################################################
# Vestibule entries
##############################################################################
@@ -66,15 +68,12 @@
# placements.
NAME: hell_entry
TAGS: allow_dup can_overwrite replace_portal transparent fallback_enter_hell
-DEPTH: Depths
WEIGHT: 50
: hell_entry_feature(_G, 'O')
MAP
O
ENDMAP
-default-depth: Depths
-
##############################################################################
# Hellmouth (Lemuel)
NAME: hellmouth_1
diff -uNr stone_soup-0.14.1/source/dat/des/variable/float.des stone_soup-0.14.1-24-gbdbe590/source/dat/des/variable/float.des
--- stone_soup-0.14.1/source/dat/des/variable/float.des
+++ stone_soup-0.14.1-24-gbdbe590/source/dat/des/variable/float.des
@@ -1816,9 +1816,9 @@
tile:mons_deep_elf_elementalist \
spells:iron_shot;summon_air_elementals;sticky_flame_range;\
summon_water_elementals;haste;blink actual_spells \
- ; robe ego:fire_resistance race:elven | \
- robe ego:cold_resistance race:elven | \
- robe ego:resistance race:elven . dagger ego:freezing | \
+ ; robe ego:fire_resistance | \
+ robe ego:cold_resistance | \
+ robe ego:resistance . dagger ego:freezing | \
dagger ego:flaming | dagger ego:electrocution
: else
KMONS: Z = col:flash wizard hd:15 tile:mons_master_elementalist \
diff -uNr stone_soup-0.14.1/source/dgn-proclayouts.cc stone_soup-0.14.1-24-gbdbe590/source/dgn-proclayouts.cc
--- stone_soup-0.14.1/source/dgn-proclayouts.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/dgn-proclayouts.cc
@@ -547,7 +547,7 @@
}
double NoiseLayout::_optimum_range_mid(const double val, const double rstart, const double rmax1, const double rmax2, const double rend) const
{
- if (rmax1 <= val <= rmax2) return 1.0;
+ if (rmax1 <= val && val <= rmax2) return 1.0;
if (val <= rstart || val >= rend) return 0.0;
if (val < rmax1)
return (val - rstart) / (rmax1-rstart);
diff -uNr stone_soup-0.14.1/source/directn.cc stone_soup-0.14.1-24-gbdbe590/source/directn.cc
--- stone_soup-0.14.1/source/directn.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/directn.cc
@@ -3321,6 +3321,7 @@
bool base_desc)
{
dungeon_feature_type grid = env.map_knowledge(where).feat();
+ trap_type trap = env.map_knowledge(where).trap();
string marker_desc = env.markers.property_at(where, MAT_ANY,
"feature_description");
@@ -3404,7 +3405,7 @@
switch (grid)
{
case DNGN_TRAP_MECHANICAL:
- return feature_description(grid, get_trap_type(where),
+ return feature_description(grid, trap,
covering_description, dtype,
add_stop, base_desc);
case DNGN_ABANDONED_SHOP:
@@ -3428,7 +3429,7 @@
default:
const string featdesc = grid == grd(where)
? raw_feature_description(where)
- : _base_feature_desc(grid, get_trap_type(where));
+ : _base_feature_desc(grid, trap);
return thing_do_grammar(dtype, add_stop, feat_is_trap(grid),
featdesc + covering_description);
}
diff -uNr stone_soup-0.14.1/source/effects.cc stone_soup-0.14.1-24-gbdbe590/source/effects.cc
--- stone_soup-0.14.1/source/effects.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/effects.cc
@@ -876,7 +876,7 @@
if (mons_class_flag(mi->type, M_STATIONARY))
continue;
mi->behaviour = BEH_WITHDRAW;
- mi->target = target;
+ mi->target = clamp_in_bounds(target);
mi->patrol_point = rally_point;
mi->foe = MHITNOT;
diff -uNr stone_soup-0.14.1/source/hints.cc stone_soup-0.14.1-24-gbdbe590/source/hints.cc
--- stone_soup-0.14.1/source/hints.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/hints.cc
@@ -3002,8 +3002,7 @@
"You can toggle which skills to train by "
"pressing their slot letters. A <darkgrey>grey</darkgrey> skill "
"will not be trained and ease the training of others. "
- "Press <w>!</w> to learn about skill training and <w>?</w> to read "
- "your skills' descriptions.";
+ "Press <w>?</w> to read your skills' descriptions.";
text << broken;
text << "</" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
diff -uNr stone_soup-0.14.1/source/items.cc stone_soup-0.14.1-24-gbdbe590/source/items.cc
--- stone_soup-0.14.1/source/items.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/items.cc
@@ -876,12 +876,17 @@
string pickup_warning;
for (int i = 0, count = selected.size(); i < count; ++i)
- for (int j = item_link; j != NON_ITEM; j = mitm[j].link)
+ {
+ // Moving the item might destroy it, in which case we can't
+ // rely on the link.
+ short next;
+ for (int j = item_link; j != NON_ITEM; j = next)
{
+ next = mitm[j].link;
if (&mitm[j] == selected[i].item)
{
if (j == item_link)
- item_link = mitm[j].link;
+ item_link = next;
int num_to_take = selected[i].quantity;
const bool take_all = (num_to_take == mitm[j].quantity);
@@ -914,6 +919,7 @@
}
}
}
+ }
if (!pickup_warning.empty())
{
diff -uNr stone_soup-0.14.1/source/item_use.cc stone_soup-0.14.1-24-gbdbe590/source/item_use.cc
--- stone_soup-0.14.1/source/item_use.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/item_use.cc
@@ -143,7 +143,7 @@
// Only ogres and trolls can wield giant clubs (>= 30 aum)
// and large rocks (60 aum).
- if (you.body_size() < SIZE_LARGE && (item_mass(*weapon) >= 500
+ if (you.body_size(PSIZE_TORSO, true) < SIZE_LARGE && (item_mass(*weapon) >= 500
|| weapon->base_type == OBJ_WEAPONS
&& item_mass(*weapon) >= 300))
{
@@ -1232,7 +1232,7 @@
if (ring->sub_type != first_ring->sub_type
|| ring->plus != first_ring->plus
|| ring->plus2 != first_ring->plus2
- || is_artefact(*ring))
+ || is_artefact(*ring) || is_artefact(*first_ring))
{
all_same = false;
}
diff -uNr stone_soup-0.14.1/source/main.cc stone_soup-0.14.1-24-gbdbe590/source/main.cc
--- stone_soup-0.14.1/source/main.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/main.cc
@@ -2565,9 +2565,11 @@
you.duration[DUR_TRANSFORMATION] = 1;
}
- // Vampire bat transformations are permanent (until ended).
+ // Vampire bat transformations are permanent (until ended), unless they
+ // are uncancellable (polymorph wand on a full vampire).
if (you.species != SP_VAMPIRE || you.form != TRAN_BAT
- || you.duration[DUR_TRANSFORMATION] <= 5 * BASELINE_DELAY)
+ || you.duration[DUR_TRANSFORMATION] <= 5 * BASELINE_DELAY
+ || you.transform_uncancellable)
{
if (_decrement_a_duration(DUR_TRANSFORMATION, delay, NULL, random2(3),
"Your transformation is almost over."))
diff -uNr stone_soup-0.14.1/source/Makefile stone_soup-0.14.1-24-gbdbe590/source/Makefile
--- stone_soup-0.14.1/source/Makefile
+++ stone_soup-0.14.1-24-gbdbe590/source/Makefile
@@ -609,6 +609,10 @@
LIBS += $(shell $(PKGCONFIG) $(LUA_PACKAGE) --libs)
endif
+ifdef USE_LUAJIT
+DEFINES_L += -DUSE_LUAJIT
+endif
+
ifndef BUILD_SQLITE
ifeq ($(shell grep -q sqlite3_prepare $(SQLITE_INCLUDE_DIR)/sqlite3.h 2>/dev/null && echo yes),yes)
# INCLUDES_L += -isystem $(SQLITE_INCLUDE_DIR)
diff -uNr stone_soup-0.14.1/source/mon-abil.cc stone_soup-0.14.1-24-gbdbe590/source/mon-abil.cc
--- stone_soup-0.14.1/source/mon-abil.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/mon-abil.cc
@@ -1002,6 +1002,7 @@
static bool _siren_movement_effect(const monster* mons)
{
bool do_resist = (you.attribute[ATTR_HELD]
+ || you.duration[DUR_TIME_STEP]
|| you.cannot_act() || you.asleep()
|| you.clarity());
diff -uNr stone_soup-0.14.1/source/mon-info.cc stone_soup-0.14.1-24-gbdbe590/source/mon-info.cc
--- stone_soup-0.14.1/source/mon-info.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/mon-info.cc
@@ -1199,7 +1199,7 @@
return m1.number > m2.number;
if (m1.type == MONS_BALLISTOMYCETE)
- return m1.number > 0 > (m2.number > 0);
+ return m1.number > 0 && m2.number <= 0;
// Shifters after real monsters of the same type.
if (m1.is(MB_SHAPESHIFTER) != m2.is(MB_SHAPESHIFTER))
diff -uNr stone_soup-0.14.1/source/mon-util.cc stone_soup-0.14.1-24-gbdbe590/source/mon-util.cc
--- stone_soup-0.14.1/source/mon-util.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/mon-util.cc
@@ -4959,7 +4959,7 @@
int MR = md->resist_magic;
if (MR < 0)
- MR = md->hpdice[9] * -MR * 4 / 3;
+ MR = md->hpdice[0] * -MR * 4 / 3;
if (md->resist_magic > 200 && md->resist_magic != MAG_IMMUNE)
fails += make_stringf("%s has MR %d > 200\n", name, MR);
diff -uNr stone_soup-0.14.1/source/MSVC/crawl.vcxproj stone_soup-0.14.1-24-gbdbe590/source/MSVC/crawl.vcxproj
--- stone_soup-0.14.1/source/MSVC/crawl.vcxproj
+++ stone_soup-0.14.1-24-gbdbe590/source/MSVC/crawl.vcxproj
@@ -307,6 +307,7 @@
<ClCompile Include="..\godpassive.cc" />
<ClCompile Include="..\godprayer.cc" />
<ClCompile Include="..\godwrath.cc" />
+ <ClCompile Include="..\hash.cc" />
<ClCompile Include="..\hints.cc" />
<ClCompile Include="..\hiscores.cc" />
<ClCompile Include="..\initfile.cc" />
@@ -449,7 +450,6 @@
<ClCompile Include="..\rltiles\tiledef-floor.cc" />
<ClCompile Include="..\rltiles\tiledef-icons.cc" />
<ClCompile Include="..\rltiles\tiledef-wall.cc" />
- <ClCompile Include="..\rng.cc" />
<ClCompile Include="..\shopping.cc" />
<ClCompile Include="..\shout.cc" />
<ClCompile Include="..\show.cc" />
@@ -485,7 +485,6 @@
<ClCompile Include="..\stuff.cc" />
<ClCompile Include="..\syscalls.cc" />
<ClCompile Include="..\tags.cc" />
- <ClCompile Include="..\tagstring.cc" />
<ClCompile Include="..\target.cc" />
<ClCompile Include="..\teleport.cc" />
<ClCompile Include="..\terrain.cc" />
@@ -572,6 +571,7 @@
<ClCompile Include="..\tiletex.cc" />
<ClCompile Include="..\tileview.cc" />
<ClCompile Include="..\tileweb.cc" />
+ <ClCompile Include="..\tileweb-text.cc" />
<ClCompile Include="..\transform.cc" />
<ClCompile Include="..\traps.cc" />
<ClCompile Include="..\travel.cc" />
@@ -635,7 +635,6 @@
<ClInclude Include="..\dactions.h" />
<ClInclude Include="..\data-index.h" />
<ClInclude Include="..\database.h" />
- <ClInclude Include="..\dbg-crsh.h" />
<ClInclude Include="..\dbg-maps.h" />
<ClInclude Include="..\dbg-scan.h" />
<ClInclude Include="..\dbg-util.h" />
@@ -671,10 +670,8 @@
<ClInclude Include="..\fight.h" />
<ClInclude Include="..\files.h" />
<ClInclude Include="..\fineff.h" />
- <ClInclude Include="..\fixary.h" />
<ClInclude Include="..\fixedarray.h" />
<ClInclude Include="..\fixedvector.h" />
- <ClInclude Include="..\fixvec.h" />
<ClInclude Include="..\flood_find.h" />
<ClInclude Include="..\fontwrapper-ft.h" />
<ClInclude Include="..\food.h" />
@@ -711,7 +708,6 @@
<ClInclude Include="..\losglobal.h" />
<ClInclude Include="..\l_defs.h" />
<ClInclude Include="..\l_libs.h" />
- <ClInclude Include="..\l_los.h" />
<ClInclude Include="..\lev-pand.h" />
<ClInclude Include="..\matrix.h" />
<ClInclude Include="..\melee_attack.h" />
@@ -805,7 +801,6 @@
<ClInclude Include="..\rltiles\tiledef-icons.h" />
<ClInclude Include="..\rltiles\tiledef-wall.h" />
<ClInclude Include="..\rltiles\tiledef_defines.h" />
- <ClInclude Include="..\rng.h" />
<ClInclude Include="..\SDLMain.h" />
<ClInclude Include="..\shopping.h" />
<ClInclude Include="..\shout.h" />
@@ -843,7 +838,6 @@
<ClInclude Include="..\syscalls.h" />
<ClInclude Include="..\tag-version.h" />
<ClInclude Include="..\tags.h" />
- <ClInclude Include="..\tagstring.h" />
<ClInclude Include="..\target.h" />
<ClInclude Include="..\teleport.h" />
<ClInclude Include="..\terrain.h" />
@@ -887,6 +881,7 @@
<ClInclude Include="..\tiletex.h" />
<ClInclude Include="..\tileview.h" />
<ClInclude Include="..\tileweb.h" />
+ <ClInclude Include="..\tileweb-text.h" />
<ClInclude Include="..\transform.h" />
<ClInclude Include="..\traps.h" />
<ClInclude Include="..\trap_def.h" />
@@ -895,7 +890,6 @@
<ClInclude Include="..\tutorial.h" />
<ClInclude Include="..\uncancel.h" />
<ClInclude Include="..\unicode.h" />
- <ClInclude Include="..\unrand.h" />
<ClInclude Include="..\unwind.h" />
<ClInclude Include="..\version.h" />
<ClInclude Include="..\view.h" />
@@ -904,7 +898,6 @@
<ClInclude Include="..\viewmap.h" />
<ClInclude Include="..\windowmanager-sdl.h" />
<ClInclude Include="..\windowmanager.h" />
- <ClInclude Include="..\winhdr.h" />
<ClInclude Include="..\wiz-dgn.h" />
<ClInclude Include="..\wiz-fsim.h" />
<ClInclude Include="..\wiz-item.h" />
diff -uNr stone_soup-0.14.1/source/player-act.cc stone_soup-0.14.1-24-gbdbe590/source/player-act.cc
--- stone_soup-0.14.1/source/player-act.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/player-act.cc
@@ -330,7 +330,7 @@
if (species == SP_FELID)
return false;
- if (body_size(PSIZE_TORSO, ignore_transform) < SIZE_LARGE
+ if (body_size(PSIZE_TORSO, true) < SIZE_LARGE
&& (item_mass(item) >= 500
|| item.base_type == OBJ_WEAPONS
&& item_mass(item) >= 300))
diff -uNr stone_soup-0.14.1/source/prebuilt/levcomp.lex.cc stone_soup-0.14.1-24-gbdbe590/source/prebuilt/levcomp.lex.cc
--- stone_soup-0.14.1/source/prebuilt/levcomp.lex.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/prebuilt/levcomp.lex.cc
@@ -54,6 +54,7 @@
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -84,8 +85,6 @@
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -142,15 +141,7 @@
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -1955,7 +1946,7 @@
-#line 1959 "levcomp.lex.cc"
+#line 1950 "levcomp.lex.cc"
#define INITIAL 0
#define MAPDEF 1
@@ -2043,12 +2034,7 @@
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -2056,7 +2042,7 @@
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -2067,7 +2053,7 @@
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -2155,7 +2141,7 @@
#line 145 "levcomp.lpp"
-#line 2159 "levcomp.lex.cc"
+#line 2145 "levcomp.lex.cc"
if ( !(yy_init) )
{
@@ -2752,7 +2738,7 @@
#line 305 "levcomp.lpp"
ECHO;
YY_BREAK
-#line 2756 "levcomp.lex.cc"
+#line 2742 "levcomp.lex.cc"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(MAPDEF):
case YY_STATE_EOF(LUA):
@@ -3525,8 +3511,8 @@
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
diff -uNr stone_soup-0.14.1/source/skill_menu.cc stone_soup-0.14.1-24-gbdbe590/source/skill_menu.cc
--- stone_soup-0.14.1/source/skill_menu.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/skill_menu.cc
@@ -1109,8 +1109,11 @@
sw = new SkillMenuSwitch("Do", '|');
m_switches[SKM_DO] = sw;
- if (!is_set(SKMF_EXPERIENCE) && Options.skill_focus != SKM_FOCUS_ON)
+ if (!is_set(SKMF_EXPERIENCE)
+ && (is_set(SKMF_SIMPLE) || Options.skill_focus != SKM_FOCUS_ON))
+ {
sw->add(SKM_DO_PRACTISE);
+ }
if (!is_set(SKMF_RESKILLING) && !is_set(SKMF_SIMPLE)
&& Options.skill_focus != SKM_FOCUS_OFF)
{
diff -uNr stone_soup-0.14.1/source/spl-book.cc stone_soup-0.14.1-24-gbdbe590/source/spl-book.cc
--- stone_soup-0.14.1/source/spl-book.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/spl-book.cc
@@ -1403,7 +1403,7 @@
return -1;
}
- if (check_range && spell_no_hostile_in_range(spell))
+ if (check_range && spell_no_hostile_in_range(spell, true))
{
// Abort if there are no hostiles within range, but flash the range
// markers for a short while.
@@ -1412,7 +1412,7 @@
if (Options.darken_beyond_range)
{
- targetter_smite range(&you, calc_spell_range(spell), 0, 0, true);
+ targetter_smite range(&you, calc_spell_range(spell, 0, true), 0, 0, true);
range_view_annotator show_range(&range);
delay(50);
}
diff -uNr stone_soup-0.14.1/source/spl-util.cc stone_soup-0.14.1-24-gbdbe590/source/spl-util.cc
--- stone_soup-0.14.1/source/spl-util.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/spl-util.cc
@@ -1209,13 +1209,13 @@
return default_color;
}
-bool spell_no_hostile_in_range(spell_type spell)
+bool spell_no_hostile_in_range(spell_type spell, bool rod)
{
int minRange = get_dist_to_nearest_monster();
if (minRange < 0)
return false;
- const int range = calc_spell_range(spell);
+ const int range = calc_spell_range(spell, 0, rod);
if (range < 0)
return false;
diff -uNr stone_soup-0.14.1/source/spl-util.h stone_soup-0.14.1-24-gbdbe590/source/spl-util.h
--- stone_soup-0.14.1/source/spl-util.h
+++ stone_soup-0.14.1-24-gbdbe590/source/spl-util.h
@@ -135,6 +135,6 @@
int default_color = COL_UNKNOWN,
bool transient = false,
bool rod_spell = false);
-bool spell_no_hostile_in_range(spell_type spell);
+bool spell_no_hostile_in_range(spell_type spell, bool rod = false);
#endif
diff -uNr stone_soup-0.14.1/source/tilepick-p.cc stone_soup-0.14.1-24-gbdbe590/source/tilepick-p.cc
--- stone_soup-0.14.1/source/tilepick-p.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/tilepick-p.cc
@@ -752,6 +752,7 @@
break;
case SP_NAGA:
hair = TILEP_HAIR_PART2_RED;
+ break;
case SP_VAMPIRE:
hair = TILEP_HAIR_ARWEN;
break;
diff -uNr stone_soup-0.14.1/source/tileweb-text.cc stone_soup-0.14.1-24-gbdbe590/source/tileweb-text.cc
--- stone_soup-0.14.1/source/tileweb-text.cc
+++ stone_soup-0.14.1-24-gbdbe590/source/tileweb-text.cc
@@ -1,6 +1,8 @@
#include "AppHdr.h"
+#ifdef USE_TILE_WEB
+
#include "libutil.h"
#include "tileweb-text.h"
#include "tileweb.h"
@@ -195,3 +197,4 @@
void WebTextArea::on_resize()
{
}
+#endif
diff -uNr stone_soup-0.14.1/source/util/release_ver stone_soup-0.14.1-24-gbdbe590/source/util/release_ver
--- stone_soup-0.14.1/source/util/release_ver
+++ stone_soup-0.14.1-24-gbdbe590/source/util/release_ver
@@ -1 +1 @@
-0.14.1
+0.14.1-24-gbdbe590