+2002-12-11 iks <iks@cvs>
+
+ * src/dungeon.c 1.83:
+ ¥â¥ó¥¹¥¿¡¼Æ®µ»¾ì¤Ç¤ÏÆÍÁ³ÊѰۤθú²Ì¤ÈƱÍͤ˼ö¤¤¤Î¸ú²ÌÅù(¥é¥ó¥À¥à¥Æ¥ì¥Ý¡¼¥È´Þ¤à)¤òµ¯¤¤Ê¤¯¤·¤¿¡£
+
+2002-12-11 Takeshi Mogami <mogami@cvs>
+
+ * lib/edit/f_info.txt 1.2, lib/pref/graf-new.prf 1.8, lib/pref/graf-xxx.prf 1.12, src/cmd4.c 1.68, src/main-x11.c 1.21:
+ Unangband¤«¤é¡¢´ûÃΤΡÁ¥ê¥¹¥È¤ÎÃæ¤Ç¥â¥ó¥¹¥¿¡¼¤ä¥¢¥¤¥Æ¥à¤Î¥·¥ó¥Ü¥ë¤ò
+ ¥¨¥Ç¥£¥Ã¥È¤¹¤ë¥â¡¼¥É¤ò°Ü¿¢¡£
+
+2002-12-09 iks <iks@cvs>
+
+ * src/bldg.c 1.27, src/dungeon.c 1.82, src/floors.c 1.3, src/generate.c 1.42, src/load.c 1.50, src/save.c 1.26, src/wild.c 1.20:
+ ̤»ÈÍÑÊÑ¿ô¤Ë¤è¤ë·Ù¹ð¤ò½üµî¡£
+
+2002-12-08 Takeshi Mogami <mogami@cvs>
+
+ * src/grid.c 1.9.2.1:
+ ±£¤·¥É¥¢¤¬´äÀФǾå½ñ¤¤µ¤ì¤Æ¡¢¥É¥¢¤¬¤¢¤ë¤Ù¤¾ì½ê¤¬ÊɤΤ褦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°½¤Àµ¡£
+
+ * lib/help/jversion.txt 1.15, lib/help/version.txt 1.15:
+ version.txt ¤Ë1.4.0¤È1.5.0¤Î¾ðÊóÄɲá£
+
+2002-12-05 Takeshi Mogami <mogami@cvs>
+
+ * src/load.c 1.46.2.1:
+ ¥í¡¼¥É»þ¤Ë¥«¥á¥ì¥ª¥ó¤Î cur_num ¤òÀµ¤·¤¯¹¹¿·¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¥Ð¥°½¤Àµ¡£
+ ¥«¥á¥ì¥ª¥óƶ·¢ºÇ²¼Áؤǡ¢¥»¡¼¥Ö&¥í¡¼¥É¤¹¤ë¤È¥«¥á¥ì¥ª¥ó¤Î²¦¤¬Ê£¿ô½Ð¤Æ¤·
+ ¤Þ¤Ã¤Æ¤¤¤¿¡£
+
+ * src/dungeon.c 1.81, src/externs.h 1.90, src/floors.c 1.2, src/generate.c 1.41, src/load.c 1.49, src/monster2.c 1.46, src/object2.c 1.63, src/save.c 1.25, src/wild.c 1.19, src/xtra2.c 1.57:
+ ¡¦Êݸ¥Õ¥í¥¢¤Î¥æ¥Ë¡¼¥¯¤È¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤Î°·¤¤¤¬¥¢¥ë¥´¥ê¥º¥àŪ¤Ë´Ö°ã¤Ã
+ ¤Æ¤¤¤¿¤Î¤Ç½ñ¤Ä¾¤·¡£¸Å¤¤¥Õ¥í¥¢¤Ë²¿¤«¥æ¥Ë¡¼¥¯¤¬¤¤¤ëÃʳ¬¤Ç¡¢Â¾¤Î¥Õ¥í¥¢
+ ¤Ç½Ð¸½¤·¤¿¤½¤Î¥æ¥Ë¡¼¥¯¤ò¤¹¤°¤ËÅݤ·¤Æ¤·¤Þ¤¦¤È¡¢¸Å¤¤¥Õ¥í¥¢¤Î¥æ¥Ë¡¼¥¯¤¬
+ ¾Ã¤¨¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¡£
+ ¡¦¤Þ¤¿¡¢¥À¥ó¥¸¥ç¥ó¤ò¥í¡¼¥É¤·¤¿¤È¤¤Ë¡¢¥«¥á¥ì¥ª¥ó¤Îcur_num¤òÀµ¤·¤¯¹¹¿·
+ ¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¥Ð¥°½¤Àµ¡£¤µ¤é¤Ë¡¢r_ptr¤òÊäÀµ¤¹¤ë¿¿ô¤Î Hack ¤ò°ì¤Ä¤Î
+ ´Ø¿ô real_r_ptr()¤Ë¤Þ¤È¤á¤¿¡£
+ ¡¦ÂçÎ̤Υ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¤Ë¤è¤Ã¤Æ¥»¡¼¥Ö¥Ç¡¼¥¿¤¬Æɤá¤Ê¤¯¤Ê¤ë¥Ð¥°¤¬¡¢
+ ÁêÊѤï¤é¤º»Ä¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¡¢¤½¤ì¤âľ¤·¤¿¡£
+
+2002-11-30 Takeshi Mogami <mogami@cvs>
+
+ * readme.txt 1.8.6.1, readme_eng.txt 1.8.6.1:
+ ¥Ø¥ë¥×¥³¥Þ¥ó¥É'?'¤Ë¤Ä¤¤¤Æ¸ÀµÚ¡£
+
+ * src/makefile.bcc 1.4.6.1, src/makefile.dos 1.3.8.1, src/makefile.ibm 1.3.8.1:
+ PythonÍѤΥ½¡¼¥¹¤Ç¤¢¤Ã¤¿ script.c ¤ò½ü¤Ëº¤ì¤Æ¤¤¤¿¤Î¤Çºï½ü¡£
+
+ * src/makefile.dos 1.5, src/makefile.ibm 1.5:
+ makefile.dos¤Èmakefile.ibm¤â°ì±þ¹¹¿·¡£¸Å¤¤¥³¥á¥ó¥Èºï½ü¡£
+
+ * src/makefile.bcc 1.6:
+ PythonÍѤΥ½¡¼¥¹¤Ç¤¢¤Ã¤¿ script.c ¤ò½ü¤Ëº¤ì¤Æ¤¤¤¿¤Î¤Çºï½ü¡£
+
+2002-11-29 Takeshi Mogami <mogami@cvs>
+
+ * lib/help/jobjects.txt 1.8.2.1, lib/help/objects.txt 1.7.2.1:
+ ËâË¡Æ»¶ñ»ÙÇۤμ«Æ°¹ï¤ß¤ÎÀâÌÀÄɲÃ
+
+ * src/flavor.c 1.27.2.1:
+ ËâË¡Æ»¶ñ»ÙÇۤΥե饰¤Î¼«Æ°¹ï¤ß¤¬Ìµ¤«¤Ã¤¿¤Î¤Ç¡¢{+Æ»}{Md}¤ËÀßÄê¡£
+
+ * src/effects.c 1.30.2.1: ÀÄËâÆ»»Õ¤Î³Ø½¬¾õÂ֤Ϻ®Í𤹤ë¤È¼«Æ°²ò½ü¡£
+
+ * src/init2.c 1.19.2.2, src/store.c 1.20.2.1:
+ »¨²ß²°¤Ç¿å¤ÎÌô¤òÇä¤ë¤è¤¦¤Ë¤·¤¿¡£Âå¤ê¤Ë¾¾ÌÀ¤ò¸º¤é¤·¤¿¡£
+
+ * src/dungeon.c 1.78.2.1:
+ ¹ÓÌî¤Ç¿¹¤Î¾å¤òÊ⤤¤¿¤È¤¡¢energy_use¤¬26400¤Ç¡¢signed 16bit ¤ÎºÇÂçÃÍ´Ö¶á¤À¤Ã¤¿
+ ¤Î¤Ç¡¢¥é¥ó¥À¥à¤ÊENERGY_NEED()¤ò³Ý¤±¤¿¤È¤¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Æ»þ»ß¤á¾õÂÖ¤Ë
+ ¤Ê¤Ã¤Æ¤·¤Þ¤¦»ö¤¬¤¢¤Ã¤¿¥Ð¥°½¤Àµ¡£
+
+2002-11-28 Takeshi Mogami <mogami@cvs>
+
+ * src/cmd6.c 1.40.2.2:
+ ½øÈפΥ¨¥ó¥È¤¬²î»à¤·¤½¤¦¤Ê¤Î¤Ç¡¢Ìô¤Î±ÉÍÜɾ²Á¤òÁý¤·¤¿¡£
+ ¤Þ¤¿¿å¤ä¥¸¥å¡¼¥¹Åù¤ÏÆä˱ÉÍܲÁ¤¬¤¢¤ë¤è¤¦¤Ë¤·¤¿¡£
+
+ * src/externs.h 1.87.2.1, src/init1.c 1.48.2.1, src/init2.c 1.19.2.1, src/variable.c 1.34.2.1, src/xtra2.c 1.54.2.1:
+ ¥°¥í¡¼¥Ð¥ë¤Ëm_name¤È¤¤¤¦ÊÑ¿ô¤¬¤¢¤ê¡¢¥í¡¼¥«¥ë¤Îm_name¤ÎÀë¸À¤ò˺¤ì¤Æ¤â
+ ¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ë¤Ê¤é¤º¤Ë¥¯¥é¥Ã¥·¥å¤¹¤ë¥Ð¥°¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤Î¤Ç½¤Àµ¡£
+ ¥°¥í¡¼¥Ð¥ë¤Îm_name¤Ï̵°ÕÌ£¤À¤Ã¤¿¤Î¤Çºï½ü¡£
+
+2002-11-27 Takeshi Mogami <mogami@cvs>
+
+ * src/cmd6.c 1.40.2.1:
+ ¶õ¤ÎËâË¡ËÀ/¾ó¤Î¥Á¥ã¡¼¥¸¤ò¿©¤ª¤¦¤È¤·¤Æ¼ºÇÔ¤·¤¿¤È¤¤Ë{¶õ}¤È°õ¤¬ÉÕ¤«¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢ÉÕ¤¯¤è¤¦¤Ë½¤Àµ¡£
+
+ * src/racial.c 1.28: ¶¸Àï»Î¤Îµ¢´Ô¤¬»È¤¨¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¥Ð¥°½¤Àµ¡£
+
2002-11-26 Takeshi Mogami <mogami@cvs>
+ * src/load.c 1.48:
+ ¥»¡¼¥Ö¥Ç¡¼¥¿¤Î¥Ð¡¼¥¸¥ç¥ó¤òÈæ³Ó¤¹¤ë¤È¤¤Ë¡¢1.3.2¤È¤¤¤¦¿ô»ú¤ò»È¤Ã¤Æ¤¤¤¿¤Î¤ò1.5.0¤Ë½¤Àµ¡£
+
+ * src/floors.c 1.1:
+ ¥Õ¥í¥¢Êݸ¥³¡¼¥É¤ÎÃæ¿´¤È¤Ê¤ë¥Õ¥¡¥¤¥ë¡£commit ˺¤ì¤Æ¤¿¡£
+
+ * configure.in 1.22.2.1, lib/file/news.txt 1.16.2.1, lib/file/news_j.txt 1.15.2.1, src/defines.h 1.81.2.1:
+ ¥Ð¡¼¥¸¥ç¥ó1.4.0¤Ø
+
+ * src/generate.c 1.40, src/generate.h 1.2, src/load.c 1.47, src/makefile.bcc 1.5, src/makefile.dos 1.4, src/makefile.ibm 1.4, src/makefile.std 1.4, src/racial.c 1.27, src/save.c 1.24, src/script.c 1.3, src/spells2.c 1.61, src/spells3.c 1.57, src/streams.c 1.7, src/tables.c 1.54, src/types.h 1.24, src/variable.c 1.35, src/wizard2.c 1.32, src/xtra1.c 1.56, src/xtra2.c 1.55, configure.in 1.23, lib/file/news.txt 1.17, lib/file/news_j.txt 1.16, lib/help/joption.txt 1.20, lib/help/option.txt 1.21, lib/pref/pref-opt.prf 1.14, src/Makefile.am 1.7, src/cave.c 1.67, src/cmd1.c 1.61, src/cmd2.c 1.37, src/cmd4.c 1.67, src/defines.h 1.82, src/dungeon.c 1.79, src/effects.c 1.31, src/event.h 1.3, src/externs.h 1.88, src/files.c 1.89:
+ ¥Õ¥í¥¢Êݸ¤Î»ÅÍͤò¼ÂÁõ¡£
+
+ * Changelogs 1.62: 1.4.x¤Î»ÞºîÀ®Á°¤Ë¹¹¿·¡£
+
* src/rooms.c 1.25:
rooms.c 1.21 ¤Ç vault ºîÀ®»þ¤ËCAVE_ROOM¥Õ¥é¥°¤òÉÕ¤±¤Æ¤¤¤¿¤Î¤òÉÔÍѰդ˺ï½ü
¤·¤Æ¤¤¤¿°Ù¤Ë¡¢vault¤ÎÃæ¤Ë´äÀФä¤éÄÌÏ©¤ä¤é¤Ç¤¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¥Ð¥°½¤Àµ¡£
F:FINAL_GUARDIAN_373 | FINAL_OBJECT_148 | CAVE | WATER_RIVER | CAVERN
F:LAKE_TREE | DESTROY | BIG
F:MONSTER_DIV_32
-M:ORC | R_CHAR_k | R_CHAR_o | R_CHAR_O | ANIMAL
+M:ORC | R_CHAR_koO | ANIMAL
N:4:̵Ü
E:Labyrinth
F:BIG | LAVA_RIVER | CAVERN | DESTROY
F:MONSTER_DIV_10
F:CAVE | LAKE_LAVA | LAKE_TREE | LAKE_RUBBLE
-M:DRAGON | R_CHAR_d | R_CHAR_D
+M:DRAGON | R_CHAR_dD
# Vecna is there, guarding Soulsword
N:6:ÊèÃÏ
A:96:90:56:10:56:0:94:96:56:94
F:NO_DOORS | WATER_RIVER | MONSTER_DIV_15
F:FINAL_GUARDIAN_481 | FINAL_OBJECT_592
-M:ANIMAL | R_CHAR_S | R_CHAR_J | R_CHAR_Z | R_CHAR_# | WILD_WOOD
+M:ANIMAL | R_CHAR_SJZ# | WILD_WOOD
N:8:²Ð»³
E:Volcano
L:1:100:1:0:1:0:100
A:56:100:56:0:56:0:57:58:0:0
F:MONSTER_DIV_16 | ARENA | NO_CAVE | FINAL_GUARDIAN_882
-M:DEMON | R_CHAR_p | R_CHAR_h | R_CHAR_H | R_CHAR_g
+M:DEMON | R_CHAR_phHg
# Cth and Razorback
N:13:¥ë¥ë¥¤¥¨
A:97:100:56:0:56:0:97:56:0:0
F:FINAL_GUARDIAN_468 | FINAL_OBJECT_239 |
F:MONSTER_DIV_16 | WATER_RIVER | CAVE | CAVERN | NO_DOORS | BIG
-M:TROLL | GIANT | CAN_FLY | ANIMAL | WILD_MOUNTAIN | R_CHAR_O | R_CHAR_Y
-M:R_CHAR_H
+M:TROLL | GIANT | CAN_FLY | ANIMAL | WILD_MOUNTAIN | R_CHAR_OYH
N:15:¶â¹Û
E:Mine
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
N:658:¾ó
-E:& # Staff~
+E:& Staff~
G:_:d
I:55:32:20
W:1:0:50:20
¤³¤³¤ÏºÇ¿¼³¬¤Ë½»¤ó¤Ç¤¤¤ë¡Ö¥¤¡¼¥¯¤ÎÂ粦¡×¤¬¶¯Å¨¤Ç¤¹¤¬¡¢¤½¤ì°Ê³°¤Ï°ÂÁ´¤Ê
¾®¤µ¤Êƶ·ê¤Ç¤¹¡£¤³¤Î¥À¥ó¥¸¥ç¥ó¤òÀ¬ÇƤǤ¤ë¤¯¤é¤¤¶¯¤¯¤Ê¤Ã¤¿¤é¡¢³¹¤Î³°¤Ø
½Ð¤Æ¤¤¤í¤¤¤í¤Ê¥À¥ó¥¸¥ç¥ó¤ØÀø¤Ã¤Æ¤ß¤ë¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£³¹¤Î³°¤Ø½Ð¤ë¤È¤¤Ï¡¢
-¿¤¯¤Î¿©ÎÁ¤ä¶õÊ¢½¼Â¤Î´¬Êª¤ò»ý¤Ã¤Æ¤¤¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
+¿¤¯¤Î¿©ÎÁ¤ò»ý¤Ã¤Æ¤¤¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
--- ¹°è¥Þ¥Ã¥× ---- ( '<' ¤ò²¡¤¹¤À¤±¤Ç¡¢¹Âç¤ÊÀ¤³¦¤¬¸«¤¨¤ë¡ª¡ª¡ª)
Original : (??)
Updated : (??)
Updated : Zangband DevTeam
-Updated : Hengband 1.1.0
+Updated : Hengband 1.5.0
***** Begin Hyperlinks
¤³¤³¤ÏºÇ¿¼³¬¤Ë½»¤ó¤Ç¤¤¤ë¡Ö¥¤¡¼¥¯¤ÎÂ粦¡×¤¬¶¯Å¨¤Ç¤¹¤¬¡¢¤½¤ì°Ê³°¤Ï°ÂÁ´¤Ê
¾®¤µ¤Êƶ·ê¤Ç¤¹¡£¤³¤Î¥À¥ó¥¸¥ç¥ó¤òÀ¬ÇƤǤ¤ë¤¯¤é¤¤¶¯¤¯¤Ê¤Ã¤¿¤é¡¢³¹¤Î³°¤Ø½Ð¤Æ
¤¤¤í¤¤¤í¤Ê¥À¥ó¥¸¥ç¥ó¤ØÀø¤Ã¤Æ¤ß¤ë¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£
- ³¹¤Î³°¤Ø½Ð¤ë¤È¤¤Ï¡¢Â¿¤¯¤Î¿©ÎÁ¤ä¶õÊ¢½¼Â¤Î´¬Êª¤ò»ý¤Ã¤Æ¤¤¤«¤Ê¤±¤ì¤Ð
- ¤¤¤±¤Þ¤»¤ó¡£
+ ³¹¤Î³°¤Ø½Ð¤ë¤È¤¤Ï¡¢Â¿¤¯¤Î¿©ÎÁ¤ò»ý¤Ã¤Æ¤¤¤«¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
¤³¤ÎÀ¤³¦¤ÏÈó¾ï¤Ë¹¤¤¤Î¤Ç¡¢³¹¤Î³°¤Ë½Ð¤ë¤È¤¤Ï'<'¤Ç¹°è¥Þ¥Ã¥×¤ËÆþ¤ê¡¢
ÌÜŪÃϤˤĤ¤¤¿¤È¤³¤í¤Ç'>'¤ÇÄ̾ï¥Þ¥Ã¥×¤ËÌá¤ë¡¢¤È¤¤¤¦°ÜÆ°¤Î»ÅÊý¤¬ÊØÍø¤Ç¤¹¡£
¹ÓÌî¤Ç¤ÏÆ»¤äÁ𸶤ÏÈæ³ÓŪ°ÂÁ´¤Ç¤¹¤¬¡¢ÍÏ´äÃÏÂӤ䳤¤Î¾å¤Ï¶¯ÎϤʥâ¥ó¥¹¥¿¡¼¤¬
msg_print("You enter the up staircase.");
#endif
-
leave_quest_check();
p_ptr->inside_quest = c_ptr->special;
p_ptr->oldpx = 0;
p_ptr->oldpy = 0;
+
+ /* End the command */
+ return;
}
- /* Normal up stairs */
- else if ((c_ptr->feat == FEAT_LESS) || (c_ptr->feat == FEAT_LESS_LESS))
+
+ /* Normal up stairs? */
+ if (c_ptr->feat != FEAT_LESS && c_ptr->feat != FEAT_LESS_LESS)
{
- if (!dun_level)
- {
- go_up = TRUE;
- }
- else
- {
- quest_type *q_ptr = &quest[p_ptr->inside_quest];
+#ifdef JP
+ msg_print("¤³¤³¤Ë¤Ï¾å¤ê³¬Ãʤ¬¸«Åö¤¿¤é¤Ê¤¤¡£");
+#else
+ msg_print("I see no up staircase here.");
+#endif
- /* Confirm leaving from once only quest */
- if (confirm_quest && p_ptr->inside_quest &&
- (q_ptr->type == QUEST_TYPE_RANDOM ||
- (q_ptr->flags & QUEST_FLAG_ONCE &&
- q_ptr->status != QUEST_STATUS_COMPLETED)))
- {
+ return;
+ }
+
+ if (!dun_level)
+ {
+ go_up = TRUE;
+ }
+ else
+ {
+ quest_type *q_ptr = &quest[p_ptr->inside_quest];
+
+ /* Confirm leaving from once only quest */
+ if (confirm_quest && p_ptr->inside_quest &&
+ (q_ptr->type == QUEST_TYPE_RANDOM ||
+ (q_ptr->flags & QUEST_FLAG_ONCE &&
+ q_ptr->status != QUEST_STATUS_COMPLETED)))
+ {
#ifdef JP
- msg_print("¤³¤Î³¬¤ò°ìÅÙµî¤ë¤ÈÆóÅÙ¤ÈÌá¤Ã¤ÆÍè¤é¤ì¤Þ¤»¤ó¡£");
- if (get_check("ËÜÅö¤Ë¤³¤Î³¬¤òµî¤ê¤Þ¤¹¤«¡©")) go_up = TRUE;
+ msg_print("¤³¤Î³¬¤ò°ìÅÙµî¤ë¤ÈÆóÅÙ¤ÈÌá¤Ã¤ÆÍè¤é¤ì¤Þ¤»¤ó¡£");
+ if (get_check("ËÜÅö¤Ë¤³¤Î³¬¤òµî¤ê¤Þ¤¹¤«¡©")) go_up = TRUE;
#else
- msg_print("You can't come back here once you leave this floor.");
- if (get_check("Really leave this floor? ")) go_up = TRUE;
+ msg_print("You can't come back here once you leave this floor.");
+ if (get_check("Really leave this floor? ")) go_up = TRUE;
#endif
- }
- else
- {
- go_up = TRUE;
- }
}
-
- if (go_up)
+ else
{
+ go_up = TRUE;
+ }
+ }
- /* Hack -- take a turn */
- energy_use = 100;
+ /* Cancel the command */
+ if (!go_up) return;
- if (autosave_l) do_cmd_save_game(TRUE);
+ /* Hack -- take a turn */
+ energy_use = 100;
- if (p_ptr->inside_quest)
- {
- leave_quest_check();
+ if (autosave_l) do_cmd_save_game(TRUE);
- if (quest[leaving_quest].type != QUEST_TYPE_RANDOM)
- {
- p_ptr->inside_quest = c_ptr->special;
- dun_level = 0;
- }
- else
- {
- p_ptr->inside_quest = 0;
- }
- }
+ if (p_ptr->inside_quest)
+ {
+ leave_quest_check();
- /* New depth */
- if (c_ptr->feat == FEAT_LESS_LESS)
- {
- /* Create a way back */
- prepare_change_floor_mode(CFM_UP | CFM_SHAFT);
+ if (quest[leaving_quest].type != QUEST_TYPE_RANDOM)
+ {
+ p_ptr->inside_quest = c_ptr->special;
+ dun_level = 0;
+ }
+ else
+ {
+ p_ptr->inside_quest = 0;
+ }
- up_num += 2;
- }
- else
- {
- /* Create a way back */
- prepare_change_floor_mode(CFM_UP);
+ up_num = 0;
+ }
+ else
+ {
+ /* New depth */
+ if (c_ptr->feat == FEAT_LESS_LESS)
+ {
+ /* Create a way back */
+ prepare_change_floor_mode(CFM_UP | CFM_SHAFT);
- up_num += 1;
- }
-#if 0
- if (!c_ptr->special && dungeon_type && ((dun_level - up_num + 1) > d_info[dungeon_type].mindepth) && one_in_(13))
- {
- up_num++;
-#ifdef JP
- if (c_ptr->feat == FEAT_LESS_LESS) msg_print("Ť¤¹£Æ»¤ò¾å¤Ã¤¿¡£");
- else msg_print("Ť¤³¬Ãʤò¾å¤Ã¤¿¡£");
-#else
- msg_print("These were very long stairs.");
-#endif
- msg_print(NULL);
- }
-#endif /* 0 */
+ up_num = 2;
+ }
+ else
+ {
+ /* Create a way back */
+ prepare_change_floor_mode(CFM_UP);
- if (dun_level-up_num+1 == d_info[dungeon_type].mindepth) up_num = dun_level;
-#ifdef JP
- if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "³¬Ãʤò¾å¤Ã¤¿");
-#else
- if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "go up the stairs to");
-#endif
+ up_num = 1;
+ }
+
+ /* Get out from current dungeon */
+ if (dun_level - up_num < d_info[dungeon_type].mindepth)
+ up_num = dun_level;
+ }
- /* Success */
#ifdef JP
- if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
- msg_print("¤Ê¤ó¤À¤³¤Î³¬Ãʤϡª");
- else if (0 == dun_level)
- msg_print("ÃϾå¤ËÌá¤Ã¤¿¡£");
- else
- msg_print("³¬Ãʤò¾å¤Ã¤Æ¿·¤¿¤Ê¤ë̵ܤؤȤòƧ¤ßÆþ¤ì¤¿¡£");
+ if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "³¬Ãʤò¾å¤Ã¤¿");
#else
- if (0 == dun_level)
- msg_print("You go back to the surface.");
- else
- msg_print("You enter a maze of up staircases.");
+ if (record_stair) do_cmd_write_nikki(NIKKI_STAIR, 0-up_num, "go up the stairs to");
#endif
- /* Leaving */
- p_ptr->leaving = TRUE;
- }
- }
- else
- {
+ /* Success */
#ifdef JP
- msg_print("¤³¤³¤Ë¤Ï¾å¤ê³¬Ãʤ¬¸«Åö¤¿¤é¤Ê¤¤¡£");
+ if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
+ msg_print("¤Ê¤ó¤À¤³¤Î³¬Ãʤϡª");
+ else if (up_num == dun_level)
+ msg_print("ÃϾå¤ËÌá¤Ã¤¿¡£");
+ else
+ msg_print("³¬Ãʤò¾å¤Ã¤Æ¿·¤¿¤Ê¤ë̵ܤؤȤòƧ¤ßÆþ¤ì¤¿¡£");
#else
- msg_print("I see no up staircase here.");
+ if (up_num == dun_level)
+ msg_print("You go back to the surface.");
+ else
+ msg_print("You enter a maze of up staircases.");
#endif
- return;
- }
+ /* Leaving */
+ p_ptr->leaving = TRUE;
}
#else
msg_print("You see nothing special.");
#endif
+ msg_print(NULL);
}
}
}
p_ptr->riding = c_ptr->m_idx;
+
+ /* Hack -- remove tracked monster */
+ if (p_ptr->riding == p_ptr->health_who) health_track(0);
}
/* Save the old location */
#endif
}
- else if ((p_ptr->prace == RACE_SKELETON ||
- p_ptr->prace == RACE_GOLEM ||
- p_ptr->prace == RACE_ZOMBIE ||
- p_ptr->prace == RACE_SPECTRE) &&
+ else if ((prace_is_(RACE_SKELETON) ||
+ prace_is_(RACE_GOLEM) ||
+ prace_is_(RACE_ZOMBIE) ||
+ prace_is_(RACE_SPECTRE)) &&
(o_ptr->tval == TV_STAFF || o_ptr->tval == TV_WAND))
{
cptr staff;
/* Don't eat a staff/wand itself */
return;
}
- else if ((p_ptr->prace == RACE_DEMON ||
+ else if ((prace_is_(RACE_DEMON) ||
(mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)) &&
(o_ptr->tval == TV_CORPSE && o_ptr->sval == SV_CORPSE &&
strchr("pht", r_info[o_ptr->pval].d_char)))
#endif
(void)set_food(PY_FOOD_MAX - 1);
}
- else if (p_ptr->prace == RACE_SKELETON)
+ else if (prace_is_(RACE_SKELETON))
{
#if 0
if (o_ptr->tval == TV_SKELETON ||
}
}
- else if ((p_ptr->prace == RACE_GOLEM) ||
- (p_ptr->prace == RACE_ZOMBIE) ||
- (p_ptr->prace == RACE_ENT) ||
- (p_ptr->prace == RACE_DEMON) ||
- (p_ptr->prace == RACE_ANDROID) ||
- (p_ptr->prace == RACE_SPECTRE) ||
+ else if (prace_is_(RACE_GOLEM) ||
+ prace_is_(RACE_ZOMBIE) ||
+ prace_is_(RACE_ENT) ||
+ prace_is_(RACE_DEMON) ||
+ prace_is_(RACE_ANDROID) ||
+ prace_is_(RACE_SPECTRE) ||
(mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_NONLIVING))
{
#ifdef JP
if (o_ptr->tval==TV_FOOD) return TRUE;
#if 0
- if (p_ptr->prace == RACE_SKELETON)
+ if (prace_is_(RACE_SKELETON))
{
if (o_ptr->tval == TV_SKELETON ||
(o_ptr->tval == TV_CORPSE && o_ptr->sval == SV_SKELETON))
else
#endif
- if (p_ptr->prace == RACE_SKELETON ||
- p_ptr->prace == RACE_GOLEM ||
- p_ptr->prace == RACE_ZOMBIE ||
- p_ptr->prace == RACE_SPECTRE)
+ if (prace_is_(RACE_SKELETON) ||
+ prace_is_(RACE_GOLEM) ||
+ prace_is_(RACE_ZOMBIE) ||
+ prace_is_(RACE_SPECTRE))
{
if (o_ptr->tval == TV_STAFF || o_ptr->tval == TV_WAND)
return TRUE;
}
- else if ((p_ptr->prace == RACE_DEMON) ||
+ else if (prace_is_(RACE_DEMON) ||
(mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON))
{
if (o_ptr->tval == TV_CORPSE &&
}
}
- if (p_ptr->prace == RACE_SKELETON)
+ if (prace_is_(RACE_SKELETON))
{
#ifdef JP
msg_print("±ÕÂΤΰìÉô¤Ï¤¢¤Ê¤¿¤Î¥¢¥´¤òÁÇÄ̤ꤷ¤ÆÍî¤Á¤¿¡ª");
{
if (o_ptr->tval == TV_POTION) return TRUE;
- if (p_ptr->prace == RACE_ANDROID)
+ if (prace_is_(RACE_ANDROID))
{
if (o_ptr->tval == TV_FLASK && o_ptr->sval == SV_FLASK_OIL)
return TRUE;
#else
msg_print("Nothing happen.");
#endif
- if (p_ptr->prace == RACE_SKELETON || p_ptr->prace == RACE_GOLEM ||
- p_ptr->prace == RACE_ZOMBIE || p_ptr->prace == RACE_SPECTRE)
+ if (prace_is_(RACE_SKELETON) || prace_is_(RACE_GOLEM) ||
+ prace_is_(RACE_ZOMBIE) || prace_is_(RACE_SPECTRE))
#ifdef JP
msg_print("¤â¤Ã¤¿¤¤¤Ê¤¤»ö¤ò¤·¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£¿©¤Ùʪ¤ÏÂçÀڤˤ·¤Ê¤¯¤Æ¤Ï¡£");
#else
p_ptr->tim_regen = 0; /* Timed -- Regeneration */
p_ptr->tim_stealth = 0; /* Timed -- Stealth */
p_ptr->tim_esp = 0;
+ p_ptr->wraith_form = 0; /* Timed -- Wraith Form */
p_ptr->tim_ffall = 0;
p_ptr->tim_sh_touki = 0;
p_ptr->tim_sh_fire = 0;
p_ptr->oppose_cold = 0; /* Timed -- oppose cold */
p_ptr->oppose_pois = 0; /* Timed -- oppose poison */
- p_ptr->word_recall = FALSE;
- p_ptr->alter_reality = FALSE;
+ p_ptr->word_recall = 0;
+ p_ptr->alter_reality = 0;
p_ptr->sutemi = FALSE;
p_ptr->counter = FALSE;
p_ptr->ele_attack = 0;
{
if (known && o_ptr->name1) basenm = a_name + a_info[o_ptr->name1].name;
else basenm = get_object_name(o_ptr);
+ append_name = FALSE;
}
/* Start dumping the result */
}
/* Extract level movement number */
+ if (change_floor_mode & CFM_DOWN) move_num = 1;
+ else if (change_floor_mode & CFM_UP) move_num = -1;
+
+ /* Mark shaft up/down */
+ if (c_ptr->feat == FEAT_LESS_LESS ||
+ c_ptr->feat == FEAT_MORE_MORE)
+ {
+ prepare_change_floor_mode(CFM_SHAFT);
+ move_num += SGN(move_num);
+ }
+
+ /* Get out from or Enter the dungeon */
if (change_floor_mode & CFM_DOWN)
{
- move_num = 1;
if (!dun_level)
move_num = d_info[c_ptr->special].mindepth;
}
else if (change_floor_mode & CFM_UP)
{
- move_num = -1;
if (dun_level + move_num < d_info[dungeon_type].mindepth)
move_num = -dun_level;
}
- /* Mark shaft up/down */
- if (c_ptr->feat == FEAT_LESS_LESS ||
- c_ptr->feat == FEAT_MORE_MORE)
- {
- prepare_change_floor_mode(CFM_SHAFT);
- move_num += SGN(move_num);
- }
-
dun_level += move_num;
}
/* Parse every entry */
for (s = buf + 2; *s; )
{
- /* Find the end of this entry */
+ /* Find the end of this entry */
for (t = s; *t && (*t != ' ') && (*t != '|'); ++t) /* loop */;
- /* Nuke and skip any dividers */
+ /* Nuke and skip any dividers */
if (*t)
{
*t++ = '\0';
while (*t == ' ' || *t == '|') t++;
}
- /* XXX XXX XXX Hack -- Read Final Artifact */
+ /* XXX XXX XXX Hack -- Read Final Artifact */
if (1 == sscanf(s, "FINAL_ARTIFACT_%d", &artif))
{
/* Extract a "Final Artifact" */
continue;
}
- /* XXX XXX XXX Hack -- Read Final Object */
+ /* XXX XXX XXX Hack -- Read Final Object */
if (1 == sscanf(s, "FINAL_OBJECT_%d", &artif))
{
/* Extract a "Final Artifact" */
continue;
}
- /* XXX XXX XXX Hack -- Read Artifact Guardian */
+ /* XXX XXX XXX Hack -- Read Artifact Guardian */
if (1 == sscanf(s, "FINAL_GUARDIAN_%d", &monst))
{
/* Extract a "Artifact Guardian" */
continue;
}
- /* XXX XXX XXX Hack -- Read Special Percentage */
+ /* XXX XXX XXX Hack -- Read Special Percentage */
if (1 == sscanf(s, "MONSTER_DIV_%d", &monst))
{
/* Extract a "Special %" */
continue;
}
- /* Parse this entry */
+ /* Parse this entry */
if (0 != grab_one_dungeon_flag(d_ptr, s)) return (5);
- /* Start the next entry */
+ /* Start the next entry */
s = t;
}
}
/* Process 'M' for "Basic Flags" (multiple lines) */
else if (buf[0] == 'M')
{
- byte r_char_number = 0, r_char;
-
/* Parse every entry */
for (s = buf + 2; *s; )
{
- /* Find the end of this entry */
+ /* Find the end of this entry */
for (t = s; *t && (*t != ' ') && (*t != '|'); ++t) /* loop */;
- /* Nuke and skip any dividers */
+ /* Nuke and skip any dividers */
if (*t)
{
*t++ = '\0';
while (*t == ' ' || *t == '|') t++;
}
- /* XXX XXX XXX Hack -- Read monster symbols */
- if (1 == sscanf(s, "R_CHAR_%c", &r_char))
+ /* Hack -- Read monster symbols */
+ if (!strncmp(s, "R_CHAR_", 7))
{
- /* Limited to 5 races */
- if(r_char_number >= 5) continue;
+ /* Skip "R_CHAR_" */
+ s += 7;
- /* Extract a "frequency" */
- d_ptr->r_char[r_char_number++] = r_char;
+ /* Read a string */
+ strncpy(d_ptr->r_char, s, sizeof(d_ptr->r_char));
/* Start at next entry */
s = t;
continue;
}
- /* Parse this entry */
+ /* Parse this entry */
if (0 != grab_one_basic_monster_flag(d_ptr, s)) return (5);
- /* Start the next entry */
+ /* Start the next entry */
s = t;
}
}
/* Monster race index of its appearance */
if (flags & SAVE_MON_AP_R_IDX) wr_s16b(m_ptr->ap_r_idx);
- else m_ptr->ap_r_idx = m_ptr->r_idx;
if (flags & SAVE_MON_SUB_ALIGN) wr_byte(m_ptr->sub_align);
if (flags & SAVE_MON_CSLEEP) wr_s16b(m_ptr->csleep);