Merge remote-tracking branch 'origin/NetHack-3.6.0'
This commit is contained in:
2
dat/.gitignore
vendored
2
dat/.gitignore
vendored
@@ -23,3 +23,5 @@ dlb.lst
|
|||||||
guioptions
|
guioptions
|
||||||
porthelp
|
porthelp
|
||||||
NetHack.ad
|
NetHack.ad
|
||||||
|
gitinfo.txt
|
||||||
|
|
||||||
|
|||||||
@@ -568,6 +568,9 @@ try again to fix achievement recording bug with mines and sokoban prizes
|
|||||||
the fix for secret doors on special levels always having vertical orientation
|
the fix for secret doors on special levels always having vertical orientation
|
||||||
resulted in some--but not all--secret doors within vertical walls
|
resulted in some--but not all--secret doors within vertical walls
|
||||||
being displayed as horizontal walls while still hidden
|
being displayed as horizontal walls while still hidden
|
||||||
|
the fix intended for "a shop object stolen from outside the shop (via
|
||||||
|
grappling hook) would be left marked as 'unpaid'" broke normal pickup,
|
||||||
|
preventing any picked up item from merging with compatible stack
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
@@ -634,6 +637,8 @@ PANICTRACE: PANICTRACE_GDB used wrong value for ARGV0 when launching gdb if
|
|||||||
win32gui: gather raw_print error messages into a single dialog window
|
win32gui: gather raw_print error messages into a single dialog window
|
||||||
win32tty: fix display errors when using a font with double wide or ambiguous
|
win32tty: fix display errors when using a font with double wide or ambiguous
|
||||||
width characters
|
width characters
|
||||||
|
Amiga (untested): 'makedefs -z' didn't handle FILE_PREFIX correctly when
|
||||||
|
building vis_tab.h and vis_tab.c
|
||||||
|
|
||||||
|
|
||||||
General New Features
|
General New Features
|
||||||
|
|||||||
@@ -2570,7 +2570,7 @@ E unsigned long NDECL(get_current_feature_ver);
|
|||||||
E const char *FDECL(copyright_banner_line, (int));
|
E const char *FDECL(copyright_banner_line, (int));
|
||||||
|
|
||||||
#ifdef RUNTIME_PORT_ID
|
#ifdef RUNTIME_PORT_ID
|
||||||
E void FDECL(append_port_id, (char *));
|
E char *FDECL(get_port_id, (char *));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ### video.c ### */
|
/* ### video.c ### */
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
#define EDITLEVEL 0
|
#define EDITLEVEL 0
|
||||||
|
|
||||||
#define COPYRIGHT_BANNER_A "NetHack, Copyright 1985-2016"
|
#define COPYRIGHT_BANNER_A "NetHack, Copyright 1985-2018"
|
||||||
#define COPYRIGHT_BANNER_B \
|
#define COPYRIGHT_BANNER_B \
|
||||||
" By Stichting Mathematisch Centrum and M. Stephenson."
|
" By Stichting Mathematisch Centrum and M. Stephenson."
|
||||||
/* COPYRIGHT_BANNER_C is generated by makedefs into date.h */
|
/* COPYRIGHT_BANNER_C is generated by makedefs into date.h */
|
||||||
|
|||||||
29
src/pickup.c
29
src/pickup.c
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 pickup.c $NHDT-Date: 1515144225 2018/01/05 09:23:45 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.193 $ */
|
/* NetHack 3.6 pickup.c $NHDT-Date: 1516581051 2018/01/22 00:30:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.194 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -1500,17 +1500,16 @@ struct obj *otmp;
|
|||||||
boolean robshop = (!u.uswallow && otmp != uball && costly_spot(ox, oy));
|
boolean robshop = (!u.uswallow && otmp != uball && costly_spot(ox, oy));
|
||||||
|
|
||||||
obj_extract_self(otmp);
|
obj_extract_self(otmp);
|
||||||
otmp->nomerge = 1;
|
|
||||||
result = addinv(otmp);
|
|
||||||
otmp->nomerge = 0;
|
|
||||||
newsym(ox, oy);
|
newsym(ox, oy);
|
||||||
|
|
||||||
/* this used to be done before addinv(), but remote_burglary()
|
/* for shop items, addinv() needs to be after addtobill() (so that
|
||||||
calls rob_shop() which calls setpaid() after moving costs of
|
object merger can take otmp->unpaid into account) but before
|
||||||
unpaid items to shop debt; setpaid() calls clear_unpaid() for
|
remote_robbery() (which calls rob_shop() which calls setpaid()
|
||||||
lots of object chains, but 'otmp' wasn't on any of those so
|
after moving costs of unpaid items to shop debt; setpaid()
|
||||||
remained flagged as an unpaid item in inventory, triggering
|
calls clear_unpaid() for lots of object chains, but 'otmp' isn't
|
||||||
impossible() every time inventory was examined... */
|
on any of those between obj_extract_self() and addinv(); for
|
||||||
|
3.6.0, 'otmp' remained flagged as an unpaid item in inventory
|
||||||
|
and triggered impossible() every time inventory was examined) */
|
||||||
if (robshop) {
|
if (robshop) {
|
||||||
char saveushops[5], fakeshop[2];
|
char saveushops[5], fakeshop[2];
|
||||||
|
|
||||||
@@ -1524,10 +1523,14 @@ struct obj *otmp;
|
|||||||
/* sets obj->unpaid if necessary */
|
/* sets obj->unpaid if necessary */
|
||||||
addtobill(otmp, TRUE, FALSE, FALSE);
|
addtobill(otmp, TRUE, FALSE, FALSE);
|
||||||
Strcpy(u.ushops, saveushops);
|
Strcpy(u.ushops, saveushops);
|
||||||
/* if you're outside the shop, make shk notice */
|
robshop = otmp->unpaid && !index(u.ushops, *fakeshop);
|
||||||
if (!index(u.ushops, *fakeshop))
|
|
||||||
remote_burglary(ox, oy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result = addinv(otmp);
|
||||||
|
/* if you're taking a shop item from outside the shop, make shk notice */
|
||||||
|
if (robshop)
|
||||||
|
remote_burglary(ox, oy);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#include "patchlevel.h"
|
#include "patchlevel.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BETA_INFO ""
|
|
||||||
|
|
||||||
STATIC_DCL void FDECL(insert_rtoption, (char *));
|
STATIC_DCL void FDECL(insert_rtoption, (char *));
|
||||||
|
|
||||||
/* fill buffer with short version (so caller can avoid including date.h) */
|
/* fill buffer with short version (so caller can avoid including date.h) */
|
||||||
@@ -32,13 +30,26 @@ char *
|
|||||||
getversionstring(buf)
|
getversionstring(buf)
|
||||||
char *buf;
|
char *buf;
|
||||||
{
|
{
|
||||||
|
int details = 0;
|
||||||
|
|
||||||
Strcpy(buf, VERSION_ID);
|
Strcpy(buf, VERSION_ID);
|
||||||
#if defined(BETA) && defined(BETA_INFO)
|
|
||||||
Sprintf(eos(buf), " %s", BETA_INFO);
|
|
||||||
#endif
|
|
||||||
#if defined(RUNTIME_PORT_ID)
|
#if defined(RUNTIME_PORT_ID)
|
||||||
append_port_id(buf);
|
details++;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (details) {
|
||||||
|
int c = 0;
|
||||||
|
char tmpbuf[BUFSZ];
|
||||||
|
char *tmp = (char *)0;
|
||||||
|
|
||||||
|
Sprintf(eos(buf), " (");
|
||||||
|
#if defined(RUNTIME_PORT_ID)
|
||||||
|
tmp = get_port_id(tmpbuf);
|
||||||
|
if (tmp)
|
||||||
|
Sprintf(eos(buf), "%s%s", c++ ? "," : "", tmp);
|
||||||
|
#endif
|
||||||
|
Sprintf(eos(buf), ")");
|
||||||
|
}
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -326,23 +326,23 @@ int interjection_type;
|
|||||||
*/
|
*/
|
||||||
#ifndef _M_IX86
|
#ifndef _M_IX86
|
||||||
#ifdef _M_X64
|
#ifdef _M_X64
|
||||||
#define TARGET_PORT "(x64) "
|
#define TARGET_PORT "x64"
|
||||||
#endif
|
#endif
|
||||||
#ifdef _M_IA64
|
#ifdef _M_IA64
|
||||||
#define TARGET_PORT "(IA64) "
|
#define TARGET_PORT "IA64"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef TARGET_PORT
|
#ifndef TARGET_PORT
|
||||||
#define TARGET_PORT "(x86) "
|
#define TARGET_PORT "x86"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
char *
|
||||||
append_port_id(buf)
|
get_port_id(buf)
|
||||||
char *buf;
|
char *buf;
|
||||||
{
|
{
|
||||||
char *portstr = TARGET_PORT;
|
Strcpy(buf, TARGET_PORT);
|
||||||
Sprintf(eos(buf), " %s", portstr);
|
return buf;
|
||||||
}
|
}
|
||||||
#endif /* RUNTIME_PORT_ID */
|
#endif /* RUNTIME_PORT_ID */
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 makedefs.c $NHDT-Date: 1506993895 2017/10/03 01:24:55 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.117 $ */
|
/* NetHack 3.6 makedefs.c $NHDT-Date: 1516697571 2018/01/23 08:52:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.118 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* Copyright (c) M. Stephenson, 1990, 1991. */
|
/* Copyright (c) M. Stephenson, 1990, 1991. */
|
||||||
/* Copyright (c) Dean Luick, 1990. */
|
/* Copyright (c) Dean Luick, 1990. */
|
||||||
@@ -2830,7 +2830,7 @@ do_vision()
|
|||||||
#ifdef FILE_PREFIX
|
#ifdef FILE_PREFIX
|
||||||
Strcat(filename, file_prefix);
|
Strcat(filename, file_prefix);
|
||||||
#endif
|
#endif
|
||||||
Sprintf(filename, INCLUDE_TEMPLATE, VIS_TAB_H);
|
Sprintf(eos(filename), INCLUDE_TEMPLATE, VIS_TAB_H);
|
||||||
if (!(ofp = fopen(filename, WRTMODE))) {
|
if (!(ofp = fopen(filename, WRTMODE))) {
|
||||||
perror(filename);
|
perror(filename);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
@@ -2853,10 +2853,15 @@ do_vision()
|
|||||||
#ifdef FILE_PREFIX
|
#ifdef FILE_PREFIX
|
||||||
Strcat(filename, file_prefix);
|
Strcat(filename, file_prefix);
|
||||||
#endif
|
#endif
|
||||||
Sprintf(filename, SOURCE_TEMPLATE, VIS_TAB_C);
|
Sprintf(eos(filename), SOURCE_TEMPLATE, VIS_TAB_C);
|
||||||
if (!(ofp = fopen(filename, WRTMODE))) {
|
if (!(ofp = fopen(filename, WRTMODE))) {
|
||||||
perror(filename);
|
perror(filename);
|
||||||
Sprintf(filename, INCLUDE_TEMPLATE, VIS_TAB_H);
|
/* creating vis_tab.c failed; remove the vis_tab.h we just made */
|
||||||
|
filename[0] = '\0';
|
||||||
|
#ifdef FILE_PREFIX
|
||||||
|
Strcat(filename, file_prefix);
|
||||||
|
#endif
|
||||||
|
Sprintf(eos(filename), INCLUDE_TEMPLATE, VIS_TAB_H);
|
||||||
Unlink(filename);
|
Unlink(filename);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user