'hengband-1-4-0'.
AM_CONFIG_HEADER(src/autoconf.h)
-AM_INIT_AUTOMAKE(hengband, 1.3.2)
+AM_INIT_AUTOMAKE(hengband, 1.4.0)
AC_ARG_WITH(setgid,
[ --with-setgid=NAME install hengband as group NAME],
****************************************
- ** Hengband 1.3.2 **
+ ** Hengband 1.4.0 **
****************************************
Based on Moria: Copyright (c) 1985 Robert Alan Koeneke
***************************************
- ** ÊѶòÈÚÅÜ 1.3.2 **
+ ** ÊѶòÈÚÅÜ 1.4.0 **
***************************************
Based on Moria: Copyright (c) 1985 Robert Alan Koeneke
¼«Æ°¹ï¤ß¤Î°ìÍ÷:
-+¹¶ : +At : Äɲù¶·â r»À : Ac : »À¤Ø¤ÎÂÑÀ
-+® : +Sp : ²Ã® rÅÅ : El : ÅÅ·â¤Ø¤ÎÂÑÀ
-+ÏÓ : +St : ÏÓÎϽ¤Àµ r²Ð : Fi : ²Ð¤Ø¤ÎÂÑÀ
-+ÃÎ : +In : ÃÎÎϽ¤Àµ rÎä : Co : Î䵤¤Ø¤ÎÂÑÀ
-+¸ : +Wi : ¸¤µ½¤Àµ rÆÇ : Po : ÆǤؤÎÂÑÀ
-+´ï : +Dx : ´ïÍѤµ½¤Àµ rÁ® : Li : ¸÷¤Ø¤ÎÂÑÀ
-+ÂÑ : +Cn : Âѵ×ÎϽ¤Àµ r°Å : Dk : °Å¹õ¤Ø¤ÎÂÑÀ
-+Ì¥ : +Ch : Ì¥ÎϽ¤Àµ rÇË : Sh : ÇËÊҤؤÎÂÑÀ
-+±£ : +Sl : ±£Ì©½¤Àµ rÌÕ : Bl : ÌÕÌܤؤÎÂÑÀ
-+õ : +Sr : õº÷½¤Àµ rÍð : Cf : º®Íð¤Ø¤ÎÂÑÀ
-+ÀÖ : +If : ÀÖ³°Àþ½¤Àµ r¹ì : So : ¹ì²»¤Ø¤ÎÂÑÀ
-+·¡ : +Dg : ºÎ·¡ÎϽ¤Àµ r¹ö : Nt : ÃϹö¤Ø¤ÎÂÑÀ
-*»À : *Ac : »À¤Ø¤ÎÌ鱅 r°ø : Nx : °ø²Ìº®Íð¤Ø¤ÎÂÑÀ
-*ÅÅ : *El : ÅÅ·â¤Ø¤ÎÌ鱅 rÆÙ : Ca : º®Æ٤ؤÎÂÑÀ
-*²Ð : *Fi : ²Ð¤Ø¤ÎÌ鱅 rÎô : Di : Îô²½¤Ø¤ÎÂÑÀ
-*Îä : *Co : Î䵤¤Ø¤ÎÌ鱅 r¶² : Fe : ¶²ÉݤؤÎÂÑÀ
++¹¶ : At : Äɲù¶·â r»À : Ac : »À¤Ø¤ÎÂÑÀ
++® : Sp : ²Ã® rÅÅ : El : ÅÅ·â¤Ø¤ÎÂÑÀ
++ÏÓ : St : ÏÓÎϽ¤Àµ r²Ð : Fi : ²Ð¤Ø¤ÎÂÑÀ
++ÃÎ : In : ÃÎÎϽ¤Àµ rÎä : Co : Î䵤¤Ø¤ÎÂÑÀ
++¸ : Wi : ¸¤µ½¤Àµ rÆÇ : Po : ÆǤؤÎÂÑÀ
++´ï : Dx : ´ïÍѤµ½¤Àµ rÁ® : Li : ¸÷¤Ø¤ÎÂÑÀ
++ÂÑ : Cn : Âѵ×ÎϽ¤Àµ r°Å : Dk : °Å¹õ¤Ø¤ÎÂÑÀ
++Ì¥ : Ch : Ì¥ÎϽ¤Àµ rÇË : Sh : ÇËÊҤؤÎÂÑÀ
++Æ» : Md : ËâË¡Æ»¶ñ»ÙÇÛ rÌÕ : Bl : ÌÕÌܤؤÎÂÑÀ
++±£ : Sl : ±£Ì©½¤Àµ rÍð : Cf : º®Íð¤Ø¤ÎÂÑÀ
++õ : Sr : õº÷½¤Àµ r¹ì : So : ¹ì²»¤Ø¤ÎÂÑÀ
++ÀÖ : If : ÀÖ³°Àþ½¤Àµ r¹ö : Nt : ÃϹö¤Ø¤ÎÂÑÀ
++·¡ : Dg : ºÎ·¡ÎϽ¤Àµ r°ø : Nx : °ø²Ìº®Íð¤Ø¤ÎÂÑÀ
+*»À : *Ac : »À¤Ø¤ÎÌ鱅 rÆÙ : Ca : º®Æ٤ؤÎÂÑÀ
+*ÅÅ : *El : ÅÅ·â¤Ø¤ÎÌ鱅 rÎô : Di : Îô²½¤Ø¤ÎÂÑÀ
+*²Ð : *Fi : ²Ð¤Ø¤ÎÌ鱅 r¶² : Fe : ¶²ÉݤؤÎÂÑÀ
+*Îä : *Co : Î䵤¤Ø¤ÎÌȱÖ
ËâÎÏ : Ma : ËâÎϾÃÈñ¸º¾¯ (±ê : (F: ±ê¤Î¥Ð¥ê¥¢
Åê : Th : ÅêÚ³ÍÑÉð´ï (ÅÅ : (E: ÅÅ·â¤Î¥Ð¥ê¥¢
Dx : affects dexterity Li : resistance to light
Cn : affects constitution Dk : resistance to darkness
Ch : affects charisma Sh : resistance to shards
-Sl : affects stealth Bl : resistance to blindness
-Sr : affects searching ability Cf : resistance to confusion
-If : affects infravision So : resistance to sound
-Dg : affects tunneling ability Nt : resistance to nether
-*Ac : immune to acid Nx : resistance to nexus
-*El : immune to electricity Ca : resistance to chaos
-*Fi : immune to fire Di : resistance to disenchantment
-*Co : immune to cold Fe : resistance to fear
+Md : affects magic devices Bl : resistance to blindness
+Sl : affects stealth Cf : resistance to confusion
+Sr : affects searching ability So : resistance to sound
+If : affects infravision Nt : resistance to nether
+Dg : affects tunneling ability Nx : resistance to nexus
+*Ac : immune to acid Ca : resistance to chaos
+*El : immune to electricity Di : resistance to disenchantment
+*Fi : immune to fire Fe : resistance to fear
+*Co : immune to cold
Ma : decreases mana consumption (F : fiery sheath
Th : suitable for throwing (E : electric sheath
¡ü¥³¥Þ¥ó¥É
+ ¾Ü¤·¤¤¥²¡¼¥à¤ÎÀâÌÀ¤Ï¥ª¥ó¥é¥¤¥ó¡¦¥Ø¥ë¥×('?'¥¡¼¤ò²¡¤·¤Æɽ¼¨)¤ò»²¾È
+ ¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤³¤Ç¤Ï´ðËÜŪ¤Ê¥³¥Þ¥ó¥É¤À¤±ÀâÌÀ¤·¤Þ¤¹¡£
+
¥³¥Þ¥ó¥É¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Þ¤¹¡£
¿¤¯¤Î¥³¥Þ¥ó¥É¤Ï¾®Ê¸»ú¤Ê¤Î¤ÇCaps¤ÏOFF¤Ë¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
°Ê²¼¤Î¥³¥Þ¥ó¥É¤¬Á´¤Æ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢
i »ý¤Áʪ¤Î°ìÍ÷ɽ¼¨
l/x ¼þ¤ê¤ò¸«¤ë
M ¸½ºß¤Î³¬¤ÎÁ´ÂΥޥåפò¸«¤ë
+ ~ ÍÍ¡¹¤Ê½ÅÍפʾðÊó¤ò¸«¤ë¥á¥Ë¥å¡¼¤ò³«¤¯
[¤½¤Î¾]
p ¥Ú¥Ã¥È¤ËÌ¿Î᤹¤ë
= ¥ª¥×¥·¥ç¥óÀßÄê
- $ ¼«Æ°½¦¤¤¥Õ¥¡¥¤¥ë¤òºÆÆɤ߹þ¤ß¤¹¤ë¡£
- _ ¼«Æ°½¦¤¤¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸¡£
- n/[ Á°¤Î¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¡£
- @ ¥Þ¥¯¥í¤ÎÀßÄê¤ò¤¹¤ë¡£
+ $ ¼«Æ°½¦¤¤¥Õ¥¡¥¤¥ë¤òºÆÆɤ߹þ¤ß¤¹¤ë
+ _ ¼«Æ°½¦¤¤¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸
+ n/[ Á°¤Î¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹
+ @ ¥Þ¥¯¥í¤ÎÀßÄê¤ò¤¹¤ë
+
+ [¥Ø¥ë¥×]
+ ? ¥ª¥ó¥é¥¤¥ó¡¦¥Ø¥ë¥×¤ò³«¤¯ ( a-z ¤Ç¹àÌÜÁªÂò¡£¥¹¥Ú¡¼¥¹¤Ç¼¡¥Ú¡¼¥¸¡£)
¡ü¥¢¥¤¥Æ¥àɽµ
'<', '>': ³¬ÃÊ, ¹£Æ»
'<'¤Ï¾å¤ê¤Î¡¢'>'¤Ï²¼¤ê¤Ç¤¹¡£
Çò¤Ï³¬Ãʤdz¬¤ò1¤Ä°ÜÆ°¤·¡¢Ã㿧¤Ï¹£Æ»¤Ç³¬¤ò2¤Ä°ÜÆ°¤·¤Þ¤¹¡£
- ¤¿¤À¤·¡¢¤¿¤Þ¤Ë°ÜÆ°¤¹¤ë³¬¿ô¤¬1¤ÄÁý¤¨¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¡½¡½¡½ ¤Á¤ç¤Ã¤È¹âÅ٤ʥץ쥤 ¡½¡½¡½
--------- Commands -----------
+ Please read on-line help (Press the ? key in the game) for full
+information of the game. Here are only descriptions of basic commands.
+
The following section lists most commands, and the less frequently used
ones may be accessed by pressing the return key, or (if using the original
keyset) the 'x' key, to bring up the command menu. Almost any command may be
M Full dungeon map
~ Display various information
- [other]
+ [Other]
p Command pets
= Set options
$ Reload auto-picker preference file
n/[ Repeat previous command
@ Interact with macros
+ [Help]
+ ? View the on-line help
+ (Press a-z to choose a section, space key to go next page.)
+
--- Inscriptions
#else
msg_format("The %s has no charges left.", staff);
#endif
+
+ o_ptr->ident |= (IDENT_EMPTY);
+
+ /* Combine / Reorder the pack (later) */
+ p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->window |= (PW_INVEN);
+
return;
}
#else
msg_print("You are moistened.");
#endif
- set_food(MIN(p_ptr->food + o_ptr->pval + 1000, PY_FOOD_MAX - 1));
+ set_food(MIN(p_ptr->food + o_ptr->pval + MAX(0, o_ptr->pval * 10) + 2000, PY_FOOD_MAX - 1));
break;
default:
(void)set_food(p_ptr->food + o_ptr->pval);
/* Savefile version for Hengband 1.1.1 and later */
#define H_VER_MAJOR 1
-#define H_VER_MINOR 3
-#define H_VER_PATCH 2
+#define H_VER_MINOR 4
+#define H_VER_PATCH 0
#define H_VER_EXTRA 0
/* Added for ZAngband */
#define FAKE_VERSION 0
#define FAKE_VER_MAJOR 11
-#define FAKE_VER_MINOR 3
-#define FAKE_VER_PATCH 1
+#define FAKE_VER_MINOR 4
+#define FAKE_VER_PATCH 0
#define ANGBAND_2_8_1
#define ZANGBAND
if (energy_use)
{
/* Use some energy */
- if (!world_player)
- p_ptr->energy_need += (s16b)((s32b)energy_use * ENERGY_NEED() / 100L);
- else
+ if (world_player || energy_use > 400)
+ {
+ /* The Randomness is irrelevant */
p_ptr->energy_need += energy_use * TURNS_PER_TICK / 10;
+ }
+ else
+ {
+ /* There is some randomness of needed energy */
+ p_ptr->energy_need += (s16b)((s32b)energy_use * ENERGY_NEED() / 100L);
+ }
/* Hack -- constant hallucination */
if (p_ptr->image) p_ptr->redraw |= (PR_MAP);
msg_print("You are confused!");
#endif
+ if (p_ptr->action == ACTION_LEARN)
+ {
+#ifdef JP
+ msg_print("³Ø½¬¤¬Â³¤±¤é¤ì¤Ê¤¤¡ª");
+#else
+ msg_print("You cannot continue Learning!");
+#endif
+ new_mane = FALSE;
+
+ p_ptr->redraw |= (PR_STATE);
+ p_ptr->action = ACTION_NONE;
+ }
if (p_ptr->action == ACTION_KAMAE)
{
#ifdef JP
extern char *v_name;
extern char *v_text;
extern skill_table *s_info;
-extern char *s_name;
-extern char *s_text;
extern player_magic *m_info;
-extern char *m_name;
-extern char *m_text;
extern feature_type *f_info;
extern char *f_name;
-extern char *f_text;
extern object_kind *k_info;
extern char *k_name;
extern char *k_text;
{ "´ï", "Dx", TR_DEX, -1 },
{ "ÂÑ", "Cn", TR_CON, -1 },
{ "̥", "Ch", TR_CHR, -1 },
+ { "ƻ", "Md", TR_MAGIC_MASTERY, -1 },
{ "±£", "Sl", TR_STEALTH, -1 },
{ "õ", "Sr", TR_SEARCH, -1 },
{ "ÀÖ", "If", TR_INFRA, -1 },
{ "Dx", TR_DEX, -1 },
{ "Cn", TR_CON, -1 },
{ "Ch", TR_CHR, -1 },
+ { "Md", TR_MAGIC_MASTERY, -1 },
{ "Sl", TR_STEALTH, -1 },
{ "Sr", TR_SEARCH, -1 },
{ "If", TR_INFRA, -1 },
/* Create jammed door */
cave_set_feat(y, x, FEAT_DOOR_HEAD + 0x08 + randint0(8));
}
+
+ /* Now it is not floor */
+ cave[y][x].info &= ~(CAVE_MASK);
}
}
#endif
-#if 0
-
- /* Process 'D' for "Description" */
- else if (buf[0] == 'D')
- {
- /* Acquire the text */
- s = buf+2;
-
- /* Store the text */
- if (!add_text(&f_ptr->text, head, s)) return (7);
- }
-
-#endif
-
/* Process 'M' for "Mimic" (one line only) */
else if (buf[0] == 'M')
#endif /* ALLOW_TEMPLATES */
return init_info("f_info", &f_head,
- (void*)&f_info, (void*)&f_name, (void*)&f_text);
+ (void*)&f_info, (void*)&f_name, NULL);
}
#endif /* ALLOW_TEMPLATES */
return init_info("s_info", &s_head,
- (void*)&s_info, (void*)&s_name, (void*)&s_text);
+ (void*)&s_info, NULL, NULL);
}
#endif /* ALLOW_TEMPLATES */
return init_info("m_info", &m_head,
- (void*)&m_info, (void*)&m_name, (void*)&m_text);
+ (void*)&m_info, NULL, NULL);
}
{ TV_FOOD, SV_FOOD_RATION },
{ TV_FOOD, SV_FOOD_RATION },
- { TV_LITE, SV_LITE_TORCH },
- { TV_LITE, SV_LITE_TORCH },
+ { TV_POTION, SV_POTION_WATER },
+ { TV_POTION, SV_POTION_WATER },
{ TV_LITE, SV_LITE_LANTERN },
{ TV_LITE, SV_LITE_LANTERN },
{ TV_FLASK, 0 },
{ TV_FLASK, 0 },
-
{ TV_CAPTURE, 0 },
-
{ TV_FIGURINE, 0 },
{ TV_SHOT, SV_AMMO_NORMAL },
c_ptr->m_idx = m_idx;
- /* Access race */
+ /* Access real race */
r_ptr = &r_info[m_ptr->r_idx];
+ if (m_ptr->mflag2 & MFLAG_CHAMELEON)
+ {
+ if (r_ptr->flags1 & RF1_UNIQUE)
+ r_ptr = &r_info[MON_CHAMELEON_K];
+ else
+ r_ptr = &r_info[MON_CHAMELEON];
+ }
+
/* Count XXX XXX XXX */
r_ptr->cur_num++;
}
monster1.obj monster2.obj mspells1.obj mspells2.obj mspells3.obj \
mutation.obj \
obj_kind.obj object1.obj object2.obj racial.obj readdib.obj \
- report.obj rooms.obj save.obj scores.obj script.obj spells1.obj \
+ report.obj rooms.obj save.obj scores.obj spells1.obj \
spells2.obj spells3.obj store.obj streams.obj tables.obj util.obj \
variable.obj wild.obj wizard1.obj wizard2.obj xtra1.obj xtra2.obj \
z-form.obj z-rand.obj z-term.obj z-util.obj z-virt.obj
# Basic definitions
#
-# Objects
-#OBJS = \
-# main.o main-dos.o main-ibm.o \
-# artifact.o avatar.o birth.o bldg.o \
-# cave.o cmd1.o cmd2.o cmd3.o \
-# cmd4.o cmd5.o cmd6.o dungeon.o \
-# effects.o files.o flavor.o generate.o \
-# grid.o init1.o init2.o load.o \
-# melee1.o melee2.o mind.o monster1.o \
-# monster2.o mspells1.o mspells2.o mutation.o \
-# notes.o \
-# obj_kind.o object1.o object2.o racial.o \
-# rooms.o save.o scores.o script.o \
-# spells1.o spells2.o spells3.o store.o \
-# streams.o tables.o util.o variable.o \
-# wild.o wizard1.o wizard2.o xtra1.o \
-# xtra2.o z-form.o z-rand.o z-term.o \
-# z-util.o z-virt.o \
OBJS = \
z-util.o z-virt.o z-form.o z-rand.o z-term.o \
variable.o tables.o util.o cave.o \
racial.o: racial.c $(INCS)
save.o: save.c $(INCS)
scores.o: scores.c $(INCS)
-script.o: script.c $(INCS)
spells1.o: spells1.c $(INCS)
spells2.o: spells2.c $(INCS)
spells3.o: spells3.c $(INCS)
###################################################################
-#OBJS = \
-# main.o main-ibm.o \
-# artifact.o avatar.o birth.o bldg.o \
-# cave.o cmd1.o cmd2.o cmd3.o \
-# cmd4.o cmd5.o cmd6.o dungeon.o \
-# effects.o files.o flavor.o generate.o \
-# grid.o init1.o init2.o load.o \
-# melee1.o melee2.o mind.o monster1.o \
-# monster2.o mspells1.o mspells2.o mutation.o \
-# notes.o \
-# obj_kind.o object1.o object2.o racial.o \
-# rooms.o save.o scores.o script.o \
-# spells1.o spells2.o spells3.o store.o \
-# streams.o tables.o util.o variable.o \
-# wild.o wizard1.o wizard2.o xtra1.o \
-# xtra2.o z-form.o z-rand.o z-term.o \
-# z-util.o z-virt.o \
-
OBJS = \
z-util.o z-virt.o z-form.o z-rand.o z-term.o \
variable.o tables.o util.o cave.o \
power_desc[num].level = 10;
power_desc[num].cost = 10;
power_desc[num].fail = 100 - racial_chance(10, A_DEX, 20);
- power_desc[num++].number = -4;
+ power_desc[num++].number = -3;
break;
}
case CLASS_MIRROR_MASTER:
/* Analyze the type */
switch (o_ptr->tval)
{
+ case TV_POTION:
+ if (o_ptr->sval != SV_POTION_WATER) return FALSE;
+
case TV_WHISTLE:
case TV_FOOD:
case TV_LITE:
* The skill table
*/
skill_table *s_info;
-char *s_name;
-char *s_text;
/*
* The magic info
*/
player_magic *m_info;
-char *m_name;
-char *m_text;
/*
* The terrain feature arrays
*/
feature_type *f_info;
char *f_name;
-char *f_text;
/*
* The object kind arrays
{
monster_type *m_ptr = &m_list[c_ptr->m_idx];
monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
+ char m_name[80];
bool recall = FALSE;
/* Not boring */