Merge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.7
This commit is contained in:
@@ -32,10 +32,10 @@ des.level_flags("mazelevel", "noflip",
|
|||||||
|
|
||||||
des.map([[
|
des.map([[
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|-.--|.......|......|..S....|.F.......|.............|.....................|
|
|-.--|.......|......|..S....|.F.......|.............|.......|.............|
|
||||||
|.-..........|......|--|....|.F.....|.|S-------.....|.....................|
|
|.-..........|......|--|....|.F.....|.|S-------.....|.....................|
|
||||||
||.--|.......|..T......|....|.F.....|.|.......|.....|.....................|
|
||.--|.......|..T......|....|.F.....|.|.......|.....|.......|.............|
|
||||||
||.|.|.......|......|-.|....|.F.....|.|.......|.....|.....................|
|
||.|.|.......|......|-.|....|.F.....|.|.......|.....|--------.............|
|
||||||
||.|.|.......|......||.|-.-----------.-.......|-S----.....................|
|
||.|.|.......|......||.|-.-----------.-.......|-S----.....................|
|
||||||
|-+-S---------..---.||........................|...|.......................|
|
|-+-S---------..---.||........................|...|.......................|
|
||||||
|......| |.-------------------.......|...|....--S----............|
|
|......| |.-------------------.......|...|....--S----............|
|
||||||
@@ -80,6 +80,10 @@ local diagmovekeys = tut_key("movesouthwest") .. " " ..
|
|||||||
des.engraving({ coord = { 9,3 }, type = "engrave", text = "Move around with " .. movekeys, degrade = false });
|
des.engraving({ coord = { 9,3 }, type = "engrave", text = "Move around with " .. movekeys, degrade = false });
|
||||||
des.engraving({ coord = { 5,2 }, type = "engrave", text = "Move diagonally with " .. diagmovekeys, degrade = false });
|
des.engraving({ coord = { 5,2 }, type = "engrave", text = "Move diagonally with " .. diagmovekeys, degrade = false });
|
||||||
|
|
||||||
|
if (u.role == "Knight") then
|
||||||
|
des.engraving({ coord = { 12,1 }, type = "engrave", text = "Knights can jump with '" .. tut_key("jump") .. "'", degrade = false });
|
||||||
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
||||||
des.engraving({ coord = { 2,4 }, type = "engrave", text = "Some actions may require multiple tries before succeeding", degrade = false });
|
des.engraving({ coord = { 2,4 }, type = "engrave", text = "Some actions may require multiple tries before succeeding", degrade = false });
|
||||||
@@ -129,6 +133,9 @@ for i = 1, 4 do
|
|||||||
coord = locs[i], victim = false });
|
coord = locs[i], victim = false });
|
||||||
end
|
end
|
||||||
|
|
||||||
|
des.engraving({ coord = { 15,15 }, type = "engrave", text = "Some traps can be disabled with '" .. tut_key("untrap") .. "'", degrade = false });
|
||||||
|
des.trap({ coord = { 15,16 }, type = "web", spider_on_web = false });
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
||||||
des.door({ coord = { 18,13 }, state = "closed" });
|
des.door({ coord = { 18,13 }, state = "closed" });
|
||||||
@@ -222,10 +229,11 @@ des.door({ coord = { 38,6 }, state = "closed" });
|
|||||||
|
|
||||||
des.engraving({ coord = { 39,6 }, type = "engrave", text = "You loot containers with '" .. tut_key("loot") .. "'", degrade = false });
|
des.engraving({ coord = { 39,6 }, type = "engrave", text = "You loot containers with '" .. tut_key("loot") .. "'", degrade = false });
|
||||||
|
|
||||||
des.object({ coord = { 42,6 }, id = "large box", broken = true, trapped = false,
|
des.object({ coord = { 41,6 }, id = "large box", broken = true, trapped = false,
|
||||||
contents = function(obj)
|
contents = function(obj)
|
||||||
des.object({ id = "secret door detection", class = "/", spe = 30 }); end
|
des.object({ id = "secret door detection", class = "/", spe = 30 }); end
|
||||||
});
|
});
|
||||||
|
des.engraving({ coord = { 42,6 }, type = "engrave", text = "Containers can also be emptied with '" .. tut_key("tip") .. "'", degrade = false });
|
||||||
|
|
||||||
des.engraving({ coord = { 45,6 }, type = "engrave", text = "Magic wands are used with '" .. tut_key("zap") .. "'", degrade = false });
|
des.engraving({ coord = { 45,6 }, type = "engrave", text = "Magic wands are used with '" .. tut_key("zap") .. "'", degrade = false });
|
||||||
|
|
||||||
@@ -302,6 +310,26 @@ des.object({ id = "boulder", coord = {72,16} });
|
|||||||
des.object({ id = "boulder", coord = {73,16} });
|
des.object({ id = "boulder", coord = {73,16} });
|
||||||
des.trap({ type = "trap door", coord = { 73,15 } });
|
des.trap({ type = "trap door", coord = { 73,15 } });
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
des.engraving({ coord = { 60,2 }, type = "engrave", text = "Spellcasting", degrade = false });
|
||||||
|
if (u.uenmax < 5) then
|
||||||
|
-- TODO: make sure hero has enough Pw to cast the spell (5 pw) instead?
|
||||||
|
-- TODO: ensure the first cast of this spell succeeds?
|
||||||
|
des.engraving({ coord = { 59,2 }, type = "engrave", text = "Unfortunately you don't have enough energy to cast spells.", degrade = false });
|
||||||
|
end
|
||||||
|
des.engraving({ coord = { 57,2 }, type = "engrave", text = "Pick up the spellbook with '" .. tut_key("pickup") .. "'", degrade = false });
|
||||||
|
des.object({ coord = { 57,2 }, id = "spellbook of light", buc = "blessed" });
|
||||||
|
des.engraving({ coord = { 55,2 }, type = "engrave", text = "Read the spellbook with '" .. tut_key("read") .. "'", degrade = false });
|
||||||
|
des.engraving({ coord = { 53,2 }, type = "engrave", text = "Use '" .. tut_key("cast") .. "' to cast a spell", degrade = false });
|
||||||
|
des.region(selection.area(53,01, 59, 3), "unlit");
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
des.engraving({ coord = { 72,2 }, type = "engrave", text = "You \"quaff\" potions with '" .. tut_key("quaff") .. "'", degrade = false });
|
||||||
|
des.object({ coord = { 72,2 }, id = "potion of object detection", buc = "blessed" });
|
||||||
|
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
-- entering and leaving tutorial _branch_ now handled by core
|
-- entering and leaving tutorial _branch_ now handled by core
|
||||||
|
|||||||
@@ -1520,6 +1520,7 @@ the engraving pristine text field was not being appropriately populated during
|
|||||||
worn alchemy smock reduces chances of dipped potions exploding
|
worn alchemy smock reduces chances of dipped potions exploding
|
||||||
dwarves can sense buried items under their feet
|
dwarves can sense buried items under their feet
|
||||||
monsters trapped in pits cannot kick
|
monsters trapped in pits cannot kick
|
||||||
|
create familiar spell can create harder creatures
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
||||||
|
|||||||
@@ -423,6 +423,7 @@ struct instance_globals_g {
|
|||||||
long gmst_moves;
|
long gmst_moves;
|
||||||
struct obj *gmst_invent;
|
struct obj *gmst_invent;
|
||||||
genericptr_t *gmst_ubak, *gmst_disco, *gmst_mvitals;
|
genericptr_t *gmst_ubak, *gmst_disco, *gmst_mvitals;
|
||||||
|
struct spell gmst_spl_book[MAXSPELL + 1];
|
||||||
|
|
||||||
/* pline.c */
|
/* pline.c */
|
||||||
struct gamelog_line *gamelog;
|
struct gamelog_line *gamelog;
|
||||||
|
|||||||
@@ -372,6 +372,7 @@ static const struct instance_globals_g g_init_g = {
|
|||||||
0L, /* gmst_moves */
|
0L, /* gmst_moves */
|
||||||
NULL, /* gmst_invent */
|
NULL, /* gmst_invent */
|
||||||
NULL, NULL, NULL, /* gmst_ubak, gmst_disco, gmst_mvitals */
|
NULL, NULL, NULL, /* gmst_ubak, gmst_disco, gmst_mvitals */
|
||||||
|
{ DUMMY }, /* gmst_spl_book */
|
||||||
/* pline.c */
|
/* pline.c */
|
||||||
UNDEFINED_PTR, /* gamelog */
|
UNDEFINED_PTR, /* gamelog */
|
||||||
/* region.c */
|
/* region.c */
|
||||||
|
|||||||
@@ -124,7 +124,10 @@ pick_familiar_pm(struct obj *otmp, boolean quietly)
|
|||||||
} else if (!rn2(3)) {
|
} else if (!rn2(3)) {
|
||||||
pm = &mons[pet_type()];
|
pm = &mons[pet_type()];
|
||||||
} else {
|
} else {
|
||||||
pm = rndmonst();
|
int skill = spell_skilltype(SPE_CREATE_FAMILIAR);
|
||||||
|
int max = 3 * P_SKILL(skill);
|
||||||
|
|
||||||
|
pm = rndmonst_adj(0, max);
|
||||||
if (!pm && !quietly)
|
if (!pm && !quietly)
|
||||||
There("seems to be nothing available for a familiar.");
|
There("seems to be nothing available for a familiar.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1695,6 +1695,7 @@ nhl_gamestate(lua_State *L)
|
|||||||
init_uhunger();
|
init_uhunger();
|
||||||
free_tutorial(); /* release gg.gmst_XYZ */
|
free_tutorial(); /* release gg.gmst_XYZ */
|
||||||
gg.gmst_stored = FALSE;
|
gg.gmst_stored = FALSE;
|
||||||
|
(void) memcpy(svs.spl_book, gg.gmst_spl_book, sizeof svs.spl_book);
|
||||||
} else if (!reststate && !gg.gmst_stored) {
|
} else if (!reststate && !gg.gmst_stored) {
|
||||||
/* store game state */
|
/* store game state */
|
||||||
gg.gmst_moves = svm.moves;
|
gg.gmst_moves = svm.moves;
|
||||||
@@ -1715,6 +1716,8 @@ nhl_gamestate(lua_State *L)
|
|||||||
gg.gmst_mvitals = (genericptr_t) alloc(sizeof svm.mvitals);
|
gg.gmst_mvitals = (genericptr_t) alloc(sizeof svm.mvitals);
|
||||||
(void) memcpy(gg.gmst_mvitals, (genericptr_t) &svm.mvitals,
|
(void) memcpy(gg.gmst_mvitals, (genericptr_t) &svm.mvitals,
|
||||||
sizeof svm.mvitals);
|
sizeof svm.mvitals);
|
||||||
|
(void) memcpy(gg.gmst_spl_book, svs.spl_book, sizeof svs.spl_book);
|
||||||
|
(void) memset(svs.spl_book, 0, sizeof(svs.spl_book));
|
||||||
gg.gmst_stored = TRUE;
|
gg.gmst_stored = TRUE;
|
||||||
} else {
|
} else {
|
||||||
impossible("nhl_gamestate: inconsistent state (%s vs %s)",
|
impossible("nhl_gamestate: inconsistent state (%s vs %s)",
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ CURSESLIB = -lncurses -ltinfo
|
|||||||
ifdef MAKEFILE_SRC
|
ifdef MAKEFILE_SRC
|
||||||
comma:=,
|
comma:=,
|
||||||
NCURSES_LFLAGS = $(shell pkg-config ncursesw --libs)
|
NCURSES_LFLAGS = $(shell pkg-config ncursesw --libs)
|
||||||
|
NCURSES_CFLAGS = $(shell pkg-config ncursesw --cflags)
|
||||||
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
|
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
|
||||||
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
|
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
|
||||||
#this indicates that pkg-config itself was unavailable
|
#this indicates that pkg-config itself was unavailable
|
||||||
@@ -125,8 +126,33 @@ CURSESLIB = $(subst -Wl$(comma)-Bsymbolic-functions,,$(NCURSES_LFLAGS))
|
|||||||
else
|
else
|
||||||
CURSESLIB = $(NCURSES_LFLAGS)
|
CURSESLIB = $(NCURSES_LFLAGS)
|
||||||
endif
|
endif
|
||||||
#$(info $(CURSESLIB))
|
|
||||||
endif #HAVE_NCURSESW
|
endif #HAVE_NCURSESW
|
||||||
|
#$(info $(CURSESLIB))
|
||||||
|
ifeq (,$(findstring ncursesw, $(NCURSES_LFLAGS)))
|
||||||
|
ifeq (,$(findstring ncurses, $(NCURSES_LFLAGS)))
|
||||||
|
#this indicates that pkg-config itself was unavailable
|
||||||
|
NOPKGCONFIG = 1
|
||||||
|
endif #ncurses not in NCURSES_LFLAGS?
|
||||||
|
endif #ncursesw not in NCURSES_LFLAGS?
|
||||||
|
#
|
||||||
|
ifeq "$(NOPKGCONFIG)" "1"
|
||||||
|
NCURSES_CFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
|
||||||
|
ifeq "$(HAVE_NCURSESW)" "1"
|
||||||
|
ifeq (,$(wildcard /usr/include/ncursesw/curses.h))
|
||||||
|
NCURSES_CFLAGS += -I/usr/include
|
||||||
|
else
|
||||||
|
NCURSES_CFLAGS += -I/usr/include/ncursesw
|
||||||
|
endif
|
||||||
|
NCURSES_LFLAGS = -lncursesw -ltinfo
|
||||||
|
else #HAVE_NCURSESW
|
||||||
|
ifeq (,$(wildcard /usr/include/ncurses/curses.h))
|
||||||
|
NCURSES_CFLAGS += -I/usr/include
|
||||||
|
else
|
||||||
|
NCURSES_CFLAGS += -I/usr/include/ncurses
|
||||||
|
endif
|
||||||
|
NCURSES_LFLAGS = -lncurses -ltinfo
|
||||||
|
endif #HAVE_NCURSESW
|
||||||
|
endif #NOPKGCONFIG
|
||||||
endif #MAKEFILE_SRC
|
endif #MAKEFILE_SRC
|
||||||
endif #USE_CURSESLIB
|
endif #USE_CURSESLIB
|
||||||
|
|
||||||
@@ -152,6 +178,7 @@ NHCFLAGS+=-DCOMPRESS=\"/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\"
|
|||||||
#NHCFLAGS+=-DCHANGE_COLOR
|
#NHCFLAGS+=-DCHANGE_COLOR
|
||||||
NHCFLAGS+=-DSELF_RECOVER
|
NHCFLAGS+=-DSELF_RECOVER
|
||||||
ifdef WANT_WIN_CURSES
|
ifdef WANT_WIN_CURSES
|
||||||
|
NHCFLAGS+=$(NCURSES_CFLAGS)
|
||||||
ifeq "$(HAVE_NCURSESW)" "1"
|
ifeq "$(HAVE_NCURSESW)" "1"
|
||||||
NHCFLAGS+=-DCURSES_UNICODE
|
NHCFLAGS+=-DCURSES_UNICODE
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user