OSDN Git Service

Hengband 108 fix2 revision 4
authormogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 13 Jan 2002 19:48:18 +0000 (19:48 +0000)
committermogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 13 Jan 2002 19:48:18 +0000 (19:48 +0000)
fix2 に英語版とmogamiのパッチとHabuさんのパッチをマージ。

151 files changed:
autopick.txt
autopick_eng.txt
lib/edit/a_info_j.txt
lib/edit/e_info_j.txt
lib/edit/f_info_j.txt
lib/edit/k_info_j.txt
lib/edit/misc_j.txt
lib/edit/q0000001_j.txt
lib/edit/q0000002_j.txt
lib/edit/q0000003_j.txt
lib/edit/q0000004_j.txt
lib/edit/q0000005_j.txt
lib/edit/q0000006_j.txt
lib/edit/q0000007_j.txt
lib/edit/q0000019_j.txt
lib/edit/q0000020_j.txt
lib/edit/q0000021_j.txt
lib/edit/q0000022_j.txt
lib/edit/q0000023_j.txt
lib/edit/q0000027_j.txt
lib/edit/q0000028_j.txt
lib/edit/q00000ms_j.txt
lib/edit/q000chao_j.txt
lib/edit/q000dekn_j.txt
lib/edit/q000eric_j.txt
lib/edit/q000lyeh_j.txt
lib/edit/q000natu_j.txt
lib/edit/q000sorc_j.txt
lib/edit/q00water_j.txt
lib/edit/q0fields_j.txt
lib/edit/q0thief1_j.txt
lib/edit/q0thief2_j.txt
lib/edit/q0willow_j.txt
lib/edit/q_info_j.txt
lib/edit/q_oberon_j.txt
lib/edit/q_pref_j.txt
lib/edit/q_random_j.txt
lib/edit/q_serpen_j.txt
lib/edit/q_warg_j.txt
lib/edit/qdarkelf_j.txt
lib/edit/qhaunted_j.txt
lib/edit/r_info_j.txt
lib/edit/t0000001_j.txt
lib/edit/t0000002_j.txt
lib/edit/t0000003_j.txt
lib/edit/t0000004_j.txt
lib/edit/t0000006_j.txt
lib/edit/t_basic_j.txt
lib/edit/t_info_j.txt
lib/edit/t_lite_j.txt
lib/edit/t_pref_j.txt
lib/edit/v_info_j.txt
lib/edit/w_info_j.txt
lib/file/a_low.txt
lib/file/a_med.txt
lib/file/mondeath.txt
lib/file/monfear.txt
lib/file/monspeak.txt
lib/file/news.txt
lib/pref/colors.prf
lib/pref/font-ami.prf
lib/pref/font-dos.prf
lib/pref/font-ibm.prf
lib/pref/font-mac.prf
lib/pref/font-mon.prf
lib/pref/font-win.prf
lib/pref/font-x11.prf
lib/pref/font-xxx.prf
lib/pref/font.prf
lib/pref/graf-ami.prf
lib/pref/graf-dos.prf
lib/pref/graf-gcu.prf
lib/pref/graf-ibm.prf
lib/pref/graf-mac.prf
lib/pref/graf-new.prf
lib/pref/graf-win.prf
lib/pref/graf-x11.prf
lib/pref/graf-xaw.prf
lib/pref/graf-xxx.prf
lib/pref/graf.prf
lib/pref/pref-acn.prf
lib/pref/pref-ami.prf
lib/pref/pref-gcu.prf
lib/pref/pref-mac.prf
lib/pref/pref-opt.prf
lib/pref/pref-win.prf
lib/pref/pref-x11.prf
lib/pref/user-win.prf
lib/pref/user.prf
lib/pref/xtra-gcu.prf
lib/pref/xtra-new.prf
lib/pref/xtra-xxx.prf
lib/xtra/sound/sound.cfg
readme_eng.txt
src/ang_eng.rc
src/artifact.c
src/birth.c
src/bldg.c
src/cave.c
src/chuukei.c
src/cmd1.c
src/cmd2.c
src/cmd3.c
src/cmd4.c
src/cmd5.c
src/cmd6.c
src/defines.h
src/dungeon.c
src/effects.c
src/externs.h
src/files.c
src/flavor.c
src/generate.c
src/grid.c
src/h-config.h
src/hissatsu.c
src/inet.c
src/load.c
src/main-dos.c
src/main-win.c
src/makefile.dos
src/makefile.ibm
src/makefile.std
src/melee1.c
src/melee2.c
src/mind.c
src/mindtips.h
src/monster1.c
src/monster2.c
src/mspells1.c
src/mspells2.c
src/mspells3.c
src/mutation.c
src/object1.c
src/object2.c
src/racial.c
src/report.c
src/rooms.c
src/save.c
src/spells1.c
src/spells2.c
src/spells3.c
src/tables.c
src/types.h
src/util.c
src/variable.c
src/wild.c
src/wizard2.c
src/xtra1.c
src/xtra2.c
src/z-form.c

index 2b77bde..a70dcbf 100644 (file)
 #    ---------
 #    
 #      ´ðËÜŪ¤Ë¡¢Ì¾Á°¤Î°ìÉô¤Ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿Ê¸»úÎ󤬴ޤޤì¤Æ¤¤¤ì¤Ð¡¢
-#      ¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤Ë½¦¤¤¤Þ¤¹¡£
-#      ¤¿¤À¤·¡¢Æ¬¤Ë ! ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤ËÇ˲õ¤·¤Þ¤¹¡£
-#      ¤Þ¤¿¡¢Æ¬¤Ë ~ ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤Ï½¦¤¦¤³¤È¤âÇ˲õ¤¹¤ë¤³¤È¤â¤»¤º¤Ë
-#      ¤½¤Î¤Þ¤Þ¾²¤Ë»Ä¤·¤Þ¤¹¡£
+#      ¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤Ë½¦¤¤¤Þ¤¹¡£¤¿¤À¤·¡¢Æ¬¤Ë ¡Ö!¡× ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï
+#      ¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤ËÇ˲õ¤·¡¢Æ¬¤Ë ¡Ö~¡× ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤Ï
+#      ½¦¤¦¤³¤È¤âÇ˲õ¤¹¤ë¤³¤È¤â¤»¤º¤Ë¤½¤Î¤Þ¤Þ¾²¤Ë»Ä¤·¤Þ¤¹¡£
+#      ¤µ¤é¤Ë¡¢¤³¤ì¤é¤Ë²Ã¤¨¤Æ¡¢¡Ö(¡×¤òÉÕ¤±²Ã¤¨¤ë»ö¤Ç¥Þ¥Ã¥×¥³¥Þ¥ó¥ÉÃæ¤Ç¤Î¤½¤Î
+#      ¥¢¥¤¥Æ¥à¤Îɽ¼¨¤òÍ޻ߤ¹¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£(°Ê²¼¤ÎTips¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£)
+#
 #      (Ãí°Õ! always_pickup ¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Î»þ¤Ï !¤È½ñ¤¤¤¿¥¢¥¤¥Æ¥à¤Ç¤â½¦¤¤¤Þ¤¹¡£)
 #
 #      picktype.prf ¤ÎÀèƬ¤«¤é½çÈÖ¤ËÍ¥ÀèŪ¤Ëɾ²Á¤¹¤ë¤Î¤Ç¡¢ÉÔÍפʤâ¤Î¤ÎÇ˲õ¤Î
 #      ¤Î²¼¤Ë¤½¤Î¾¤ÎÄã¼Á¤Ê¥¢¥¤¥Æ¥à¤òÇ˲õ¤¹¤ëÀßÄê¤ò½ñ¤¯¤Î¤¬ÊØÍø¤ÊÊýË¡¤Ç¤¹¡£
 #    
 #      ¡ù Tips
-#      ¡ù   ¥Þ¥Ã¥×¥³¥Þ¥ó¥É('M'¥­¡¼)¤Î»ÈÍÑÃæ¤Ë¤µ¤é¤Ë 'M'¤ò²¡¤¹¤³¤È¤Ç¡¢
-#      ¡ù   ¼«Æ°Åª¤Ë½¦¤¦¥¢¥¤¥Æ¥à¤ä¾²¤Ë»Ä¤¹¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë»ö¤¬½ÐÍè¤Þ¤¹¡£
-#      ¡ù   ¼ÂºÝ¤Ë¤É¤Î¼ïÎà¤òɽ¼¨¤¹¤ë¤«¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ÎÀßÄê( '='¥­¡¼ )¤Î
-#      ¡ù   ¡Ö(6) ¥¢¥¤¥Æ¥à¤Î¼«Æ°½¦¤¤/Ç˲õ¡×¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£
+#      ¡ù   ¥Þ¥Ã¥×¥³¥Þ¥ó¥É('M'¥­¡¼)¤Î»ÈÍÑÃæ¤Ë¤µ¤é¤Ë 'M','N','K'¤ä'D'¤ò²¡¤¹¤³¤È¤Ç¡¢
+#      ¡ù   ¤½¤ì¤¾¤ì¼«Æ°Åª¤Ë½¦¤¦¥¢¥¤¥Æ¥à¡¢¾²¤ËÊüÃÖ¤¹¤ë¥¢¥¤¥Æ¥à¡¢Ç˲õ¤¹¤ë¥¢¥¤¥Æ¥à
+#      ¡ù   ¤òɽ¼¨¤¹¤ë»ö¤¬½ÐÍè¤Þ¤¹¡£'D'¤Ï'M'¤È'N'¤òξÊý²¡¤¹¤Î¤ÈƱ¤¸¤Ç¤¹¡£
+#      ¡ù   ¤¿¤À¤·¡¢¥¢¥¤¥Æ¥à̾¤ÎÀèƬ¤Ë'('¤òÉÕ¤±¤ÆÅÐÏ¿¤·¤¿¤â¤Î¤Ïɽ¼¨¤·¤Þ¤»¤ó¡£
 #      ¡ù
 #    
 #      °Ê²¼¤Î¤è¤¦¤Ê¥­¡¼¥ï¡¼¥É¤Ç»Ï¤Þ¤ë¤â¤Î¤ÏÆÃÊÌ°·¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£
 Ì¤´ÕÄê¤Î¸÷¸»:ààÍþÉÓ#!!
 
 # *´ÕÄê*ºÑ¤ß¤Î¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤ò°ìÅÙ¾²¤ËÍî¤È¤·¤Æ½¦¤¦¤ÈÂÑÀ­¼«Æ°¹ï¤ß'%'¤ò¤¹¤ë¡£
-~*´ÕÄê*ºÑ¤ß¤Î¡ú#%
-~*´ÕÄê*ºÑ¤ß¤Î¡ù#%
+~*´ÕÄê*ºÑ¤ß¤Î¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È#%
+
+# ´û¤Ë»ý¤Ã¤Æ¤¤¤ë¼ïÎà¤ÎÌô¡¢´¬Êª¡¢¥í¥Ã¥É¤Ï½Å¤Í¤é¤ì¤ë¤Î¤ÇÁ´¤Æ½¦¤¦¡£
+
+¼ý½¸Ãæ¤ÎÌô
+¼ý½¸Ãæ¤Î´¬Êª
+¼ý½¸Ãæ¤Î¥í¥Ã¥É
 
 # ¤è¤¯½¦¤¦Êª
-Á´´¶ÃΤΥí¥Ã¥É#!k!!
 ´ÕÄê¤Î¥í¥Ã¥É#!k!!
+Á´´¶ÃΤΥí¥Ã¥É#@z0!k!!
 ¥¹¥Ô¡¼¥É¤Î¥í¥Ã¥É#!k!!
+
 ÌµÅ¨¤ÎÌô#!k
 ³ÍÆÀ#!k
 ·Ð¸³¤ÎÌô#!k
 À¸Ì¿¤ÎÌô#!k
 ÂÎÎϲóÉü#!k
 
-# ´û¤Ë»ý¤Ã¤Æ¤¤¤ë¼ïÎà¤ÎÌô¡¢´¬Êª¡¢¥í¥Ã¥É¤Ï½Å¤Í¤é¤ì¤ë¤Î¤ÇÁ´¤Æ½¦¤¦¡£
-
-¼ý½¸Ãæ¤ÎÌô
-¼ý½¸Ãæ¤Î´¬Êª
-¼ý½¸Ãæ¤Î¥í¥Ã¥É
-
 #
 # ËâÆ»¶ñ½Ñ»Î¤ÏµÛ¼ý¤Ç¤­¤ë¤â¤Î¤ò¤¹¤Ù¤Æ½¦¤¦¡£
 # ¥¢¡¼¥Á¥ã¡¼¤ÏÌð¤ÎºàÎÁ¤ò½¦¤¦¡£
 ~¸÷¸»:°Å°Ç¤Î
 Å´¤Î¤¯¤µ¤Ó#@v0
 ?:[EQU $RACE Vampire]
-~°Å°Ç¤Î´¬Êª
-~°Å°Ç¤Î¾ó
+(~°Å°Ç¤Î´¬Êª
+(~°Å°Ç¤Î¾ó
 ?:1
 
 # ¥ì¥Ù¥ë¤¬10°Ê¾å¤Ê¤éÇ˲õ¤¹¤ëÎã
 #   '$'¥³¥Þ¥ó¥É¤ÇÆɤ߹þ¤à¤«¥²¡¼¥à¤òºÆ³«¤¹¤ë¤È¤Á¤ã¤ó¤ÈÆɤ߹þ¤Þ¤ì¤Þ¤¹¡£
 #
 ?:[GEQ $LEVEL 10]
-!¥ê¥ó¥´¥¸¥å¡¼¥¹¤ÎÌô
-!¶õ¤Î¥Ó¥ó
-!¿å¤ÎÌô
+(!¥ê¥ó¥´¥¸¥å¡¼¥¹¤ÎÌô
+(!¶õ¤Î¥Ó¥ó
+(!¿å¤ÎÌô
 ?:1
 
 # ¥ì¥Ù¥ë¤¬20°Ê²¼¤Ê¤é¼«Æ°Ç˲õ¶Ø»ß¤Ç¾²¤ËÊüÃÖ¤¹¤ëÎã
 ?:[LEQ $LEVEL 20]
-~¤Î¤í¤Þ¤ÎÌô
-~̲¤ê¤ÎÌô
+(~¤Î¤í¤Þ¤ÎÌô
+(~̲¤ê¤ÎÌô
 ?:1
 
 #Ê£»¨¤ÊÎã¡Êï¤â»È¤ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤³¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¾ì¹ç°Ê³°¤Ï¡Ä¡Ë
 ?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life] [EQU $REALM2 Life] [EQU $REALM1 Nature] [EQU $REALM2 Nature] [EQU $REALM1 Craft] [EQU $REALM2 Craft]]]
-!¶õÊ¢½¼Â­
-!¿©ÎÁ
-!¥¹¥é¥¤¥à¥â¥ë¥É
-!¥¨¥ë¥Õ¤Î¹ÔÎÈ
+(!¶õÊ¢½¼Â­
+(!¿©ÎÁ
+(!¥¹¥é¥¤¥à¥â¥ë¥É
+(!¥¨¥ë¥Õ¤Î¹ÔÎÈ
 ?:1
 
 
 ~̵ÌäÎËɶñ:¥ß¥é¡¼¡¦¥·¡¼¥ë¥É
 ~̵ÌäÎÉð´ï:¥À¥¤¥ä¥â¥ó¥É¡¦¥¨¥Ã¥¸
 ~̵ÌäÎÉð´ï:Ê´ºÕ¤Î¥á¥¤¥¹
-!̵ÌäÎÉð´ï
-!̵ÌäÎËɶñ
+(!̵ÌäÎÉð´ï
+(!̵ÌäÎËɶñ
 
 ?:[GEQ $LEVEL 20]
-!̵ÌäÎÉð´ï:(+0,+0)
-!̵ÌäÎËɶñ:,+0]
+(!̵ÌäÎÉð´ï:(+0,+0)
+(!̵ÌäÎËɶñ:,+0]
 ?:1
 
 #
 
 # ÀìÌç³°¤Î²¼µéËâË¡½ñ¤Ï¥ì¥Ù¥ë30°Ê¾å¤Ê¤éÁ´¤Æ¼«Æ°Ç˲õ¤¹¤ë¡£
 ?:[GEQ $LEVEL 30]
-!Æɤá¤Ê¤¤1ºýÌܤÎËâË¡½ñ
-!Æɤá¤Ê¤¤2ºýÌܤÎËâË¡½ñ
-!Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
-!Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(!Æɤá¤Ê¤¤1ºýÌܤÎËâË¡½ñ
+(!Æɤá¤Ê¤¤2ºýÌܤÎËâË¡½ñ
+(!Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(!Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
 ?:1
 
 # Àï»Î¤È¶¸Àï»Î¤Ï¾åµéËâË¡½ñ¤ò¼êÆ°¤ÇÇ˲õ¤¹¤ë¤È·Ð¸³Ãͤˤʤë¤Î¤Ç¡¢½¦¤¦¡£
 # À¸Ì¿¥Ñ¥é¥Ç¥£¥ó¤âÀ¸Ì¿°Ê³°¤ÎËâË¡½ñ¤ò¼êÆ°¤ÇÇ˲õ¤¹¤ë¤È·Ð¸³Ãͤˤʤ롣
 ?:[IOR [EQU $CLASS Warrior] [EQU $CLASS Berserker] [AND [EQU $CLASS Paladin] [EQU $REALM1 Life]]]
-~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
 Æɤá¤Ê¤¤4ºýÌܤÎËâË¡½ñ
-~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
 Æɤá¤Ê¤¤3ºýÌܤÎËâË¡½ñ
 ?:1
 
 
 # ¤½¤Î¾¤Î¾ì¹ç¤â¾åµéËâË¡½ñ¤Ï¹â¤¯Çä¤ì¤ë¤Î¤ÇÄã¥ì¥Ù¥ë¤Ç¤Ï½¦¤¦¡£
 ?:[LEQ $LEVEL 29]
-~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
 Æɤá¤Ê¤¤4ºýÌܤÎËâË¡½ñ
-~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
 Æɤá¤Ê¤¤3ºýÌܤÎËâË¡½ñ
 ?:1
 
+
index 1c8d919..c56a9ff 100644 (file)
@@ -34,6 +34,8 @@
 #      this kind of object.  Starting a line with '~' indicates that you wish 
 #      to leave this kind of object on the floor.  Otherwise, your character 
 #      will automatically attempt to pick up the object.
+#           There is an additional command letter '('.  It indicates that 
+#      you don't wish this item to be displayed in full map. see below.
 #
 #      Notes:
 #      If you want to disable the effect of the '!' indicator temporally, 
 #      up, followed by a general item name with '!' to destroy useless items.
 #    
 #      ! Tips
-#      !  In full map command ('M'), you can press 'M' again to 
-#      !  display auto-pick items. The behavior of the displa
-#      !  is changed by options in 
-#      !  '(6) Object Auto-pick/Destroy Options'.
+#      !     In full map command ('M'), you can press M, N, K, or D to 
+#      ! display locations of items for auto-pickup, leaving, auto-destro
+#      ! or both auto-pickup and leaving.
+#      !     Additional command letter '(' prevents this display.
 #      !
 #
 #      If you begin the last string in a line with '#', this string will
 wanted corpse
 wanted Skeleton
 
+# Berserker cannot use magical devices; rods, wands, and scrolls.
 ?:[EQU $CLASS Berserker]
 !magical devices
 ?:1
@@ -234,24 +237,34 @@ wanted Skeleton
 unaware items
 
 #Artifact lights
-unidentified lites:^Jewel#!!
-unidentified lites:^stone
-unidentified lites:^star#!!
-unidentified lites:^Incandescent Light
-unidentified lites:^Phial#!!
+unidentified lights:^Jewel#!!
+unidentified lights:^levitatioin stone#!!
+unidentified lights:^Palantir#!!
+unidentified lights:^stone#@A0
+unidentified lights:^star#!!
+unidentified lights:^Incandescent Light
+unidentified lights:^Phial#!!
 
 # auto inscribe resistances...
-~*identified* weapons#%
-~*identified* armors#%
+~*identified* artifacts#%
 
+#
+# pick all items which can stack your inventry without inscription.
+#
+collecting rod
+collecting potion
+collecting scroll
+
+#
 # good items
-~rod of Perception#!k!!
+#
+~rod of Perception#@z0!k!!
 ~rod of speed#!k!!
 ~rod of Healing#!k!!
-~rod of Enlightenment#!k!!
-~rod of Detection#!k!d!!
+~rod of Enlightenment#k!!
+~rod of Detection#!k!!
 
-potion of Invulnerability#!*
+potion of Invulnerability#!k
 Acquirement#!k
 potion of Experience
 potion of Augmentation
@@ -265,15 +278,9 @@ potion of constitution
 potion of intelligence
 potion of Charisma
 
-potion of life#!*
+potion of life#!k
 healing#!k
 
-# pick all items which can stack your inventry
-
-collecting rod
-collecting potion
-collecting scroll
-
 #
 # Magic-Eaters pick up all magical device to absorb.
 # Skeletons is material of missiles for Archers.
@@ -337,8 +344,8 @@ Iron Spike#@v0
 ?:1
 
 # higher rank of your spellbooks
-first realm's fourth Book of Samurai Arts#!k
-first realm's third Book of Samurai Arts#!k
+first realm's fourth Book of Kendo#!k
+first realm's third Book of Kendo#!k
 first realm's fourth spellbooks#@md!k
 first realm's third spellbooks#@mc!k
 second realm's fourth spellbooks#@mh!k
index 61c3dce..25cdd82 100644 (file)
@@ -2413,14 +2413,14 @@ D:
 D:ÞÕÁ³°ìÂΤȤʤꡢµ±¤¯¸î¸÷¤È¤Ê¤Ã¤Æ¤³¤Î³»¤òÊñ¤ó¤Ç¤¤¤ë¡£
 
 N:131:¥¤¥«¥Ì¥¹¤Î
-E:of Icanus
+E:of Incanus
 I:36:2:3
 W:50:40:20:100000
 P:2:0d0:0:0:20
 F:INT | WIS | SEARCH | HIDE_TYPE | FEATHER | ACTIVATE 
 F:SUST_INT | SUST_WIS | FREE_ACT | SEE_INVIS | DEC_MANA |
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD
-D:$The robe of the great wizard Gandalf, also known as Icanus in the 
+D:$The robe of the great wizard Gandalf, also known as Incanus in the 
 D:$lands of the South. It is proof against elements, for neither the 
 D:$heat of the South, nor the ice of the North, nor the acidy pits of Dol 
 D:$Guldur were able to hold back the defiant Maia in the pursuit of 
@@ -2979,7 +2979,7 @@ F:LITE | TELEPATHY | REGEN |
 F:HIDE_TYPE | SHOW_MODS | RIDING | QUESTITEM | INSTA_ART
 
 N:182:¤¤¤¤¤«¤²¤ó¤Ê
-E:of irresponsiblity
+E:of irresponsibility
 I:19:63:7
 W:127:1:50:1000000
 P:0:1d1:22:22:10
@@ -3309,7 +3309,7 @@ D:
 D:É÷¸«½áÌõ¡Ë
 
 N:209:¡Ø±£¼Ô¤Î»ç¡Ù
-E:'hermit's perple'
+E:'hermit's purple'
 I:21:2:2
 W:40:40:30:40000
 P:0:1d6:10:5:0
index 014a7b8..f2276e3 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: e_info.txt
 #JZ# Zangband ÆüËܸìÌõ: ÈÄÁÒ
 #JZ# ¡Ö#J0#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÄ Angband ¤Î¤·¤È¤·¤ó¤µ¤ó¤Ë¤è¤ë
index 2e33be2..ec5eb0e 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: f_info.txt
 
 
@@ -565,7 +564,7 @@ E:flower
 G:::G
 
 N:94:Áð¤à¤é
-E:kusamura
+E:brake
 G:#:g
 
 N:95:Çîʪ´Û
index e17ced0..d344929 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: k_info.txt
 #JZ# Zangband ÆüËܸìÌõ: ÈÄÁÒ
 #JZ# ¡Ö#J0#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÄ Angband ¤Î¤·¤È¤·¤ó¤µ¤ó¤Ë¤è¤ë
@@ -1262,7 +1261,7 @@ A:30/1
 F:CON | HIDE_TYPE
 
 N:135:ÅÅ·â
-E:Electricity
+E:Lightning
 G:=:d
 I:45:25:0
 W:35:0:2:3000
@@ -5107,7 +5106,7 @@ W:1:0:333:1000000
 F:INSTA_ART
 
 N:622:& µÝ
-E:& Archery~
+E:& Yumi~
 G:}:y
 I:19:63:0
 W:1:0:50:1000000
@@ -5288,7 +5287,7 @@ A:0/255
 P:0:1d1:0:0:0
 
 N:644:ËâË¡Æ»¶ñ»ÙÇÛ
-E:Magical Item Mastery
+E:Magic Device Mastery
 G:":d
 I:40:23:0
 W:35:0:3:1000
index dd8037f..a057f48 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: misc.txt
 
 # Maximum number of towns
index 0288e69..0ce453d 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000001.txt
 
 # Name
index c7d4adf..45cce0c 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000002.txt
 
 # Name
index 33d3a00..b1989f1 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000003.txt
 
 # Name
index 65eb388..15ae2a0 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000004.txt
 
 # Name
index 775bb77..b0de6eb 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000005.txt
 
 # Name
index 6e357f4..07c57b1 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000006.txt
 
 # Name
index fb4e556..0c42933 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000007.txt
 
 # Name
index 4b3f05f..f8a4f2d 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000019.txt
 # a quick creation by Jeff Coleburn <vsp@netaxs.com>
 
index 4d2e42d..7c21708 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000020.txt
 # a quick creation by Jeff Coleburn <vsp@netaxs.com>
 
index 1580662..a633409 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000021.txt
 # a quick creation by Jeff Coleburn <vsp@netaxs.com>
 
index b2bfa43..d9156c0 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000022.txt
 # a quick creation by Jeff Coleburn <vsp@netaxs.com>
 
index 17974ff..97c52ad 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000023.txt
 # a quick creation by Jeff Coleburn <vsp@netaxs.com>
 
index 94faeb4..337ba21 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000027.txt
 # The Old Castle
 # By Shayne Steele (steele@cs.fsu.edu)
index 80c2031..5c9e320 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0000028.txt
 
 # Name
index 516e2e6..bcc417b 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q00000ms.txt
 
 # Name
index 35b69e0..286c6ba 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q000chao.txt
 
 # Created by Topi Ylinen
index e7a04bb..21106bf 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q000dekn.txt
 
 # Name
index 166b543..bc0748d 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q000eric.txt
 
 # Name
index 9a0ac58..6766359 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q000lyeh.txt
 
 # Name
index 501f3b9..9abf500 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q000natu.txt
 
 # Created by Topi Ylinen
index 685f218..e024bf6 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q000sorc.txt
 
 # Created by Topi Ylinen
index 4d61730..16b0572 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q00water.txt
 
 # Created by Oscar Nelson
index 587c4bc..83f29d6 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # Killing Fields, (C) Topi Ylinen 1999
 
 # Name
index e227cec..4ba42b1 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0thief1.txt
 # Thieves Quest 1
 # By Shayne Steele (steele@cs.fsu.edu)
index 60a454e..12c343f 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0thief2.txt
 # Thieves Quest 2
 # By Shayne Steele (steele@cs.fsu.edu)
index 39bbb63..d5cc07a 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q0willow.txt
 # Old Man Willow Quest
 # By Shayne Steele (steele@cs.fsu.edu)
index 593b966..aa437d5 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: q_info_j.txt
 
 # Includes all the quest files
index 35fc4ee..b20f078 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q_oberon.txt
 
 # Name
index 28feaf0..9d379c0 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: q_pref.txt
 
 # Preferences for quest features
index 9030836..3d0b035 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q_random.txt
 
 
index bc45c11..243c6a1 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q_serpen.txt
 
 # Name
index 0fb4406..1b436c8 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # q_warg.txt
 
 # Name
index fb64298..533a1d7 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # qdarkelf.txt
 # Dark Elven Lords Quest
 # By Shayne Steele (steele@cs.fsu.edu)
index e946a49..3b65673 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # Haunted House, (C) Topi Ylinen 1999
 
 # Name
index cb5955d..c30f000 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 #JZ# Zangband ÆüËܸìÌõ: ÈÄÁÒ
 #JZ# ¡Ö#J0#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÄ Angband ¤Î¤·¤È¤·¤ó¤µ¤ó¤Ë¤è¤ë
 #JZ# ¤â¤Î¤Ç¡¢¡Ö#JZ#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÇ Zangband ¤Ç¿·¤¿¤Ë
@@ -8760,10 +8759,6 @@ F:DROP_CHOSEN |
 F:OPEN_DOOR | BASH_DOOR | 
 #F:TROLL | IM_COLD | IM_POIS
 F:IM_COLD | IM_POIS
-D:$He who laughs at Groo's brains will find there is nothing to laugh 
-D:$about... erm, nobody laughs at Groo and lives.
-D:$¥°¥ë¡¼¤ÎƬ¤ò¾Ð¤¦¼Ô¤Ï¡¢¤½¤Î¤¦¤Á¾Ð¤¨¤Ê¤¤¤³¤È¤Ëµ¤¤Å¤¯¤À¤í¤¦...
-D:$¤Æ¤¤¤¦¤«¥°¥ë¡¼¤ò¾Ð¤Ã¤ÆÀ¸¤­¤Î¤Ó¤¿¼Ô¤Ï¤¤¤Ê¤¤¡£
 
 #JZ#
 #JZ#µð¿Í¥Õ¥¡¥¾¥ë¥È
@@ -13563,7 +13558,7 @@ D:
 #JZ#¤È¤È¤â¤Ë¤Û¤È¤ó¤ÉÀäÌǤ·¤Þ¤·¤¿¤¬¡¢°ìÉô¤¬¥â¥ê¥ä¤ÇÉü³è¤·¤Æ¤¤¤Þ¤·¤¿¡£ by µ×ᤵ¤ó
 #JZ#Jangband ¤Ë¤Ï¤¤¤Ê¤«¤Ã¤¿¤ó¤Ç¤¹¤Í¡£°Õ³°¡£ by ÈÄÁÒ
 N:720:¥°¥ì¡¼¥¿¡¼¡¦¥Ð¥ë¥í¥°
-E:Balrog
+E:Greater Balrog
 G:U:R
 I:120:30d100:20:80:80
 W:50:3:0:13000:0:0
@@ -17884,7 +17879,7 @@ D:
 D:¤¤¤±¤Ë¤¨¤òµñ¤à¤È¹¿¿å¤òµ¯¤³¤·¤Æ¿Í¡¹¤òÁ´ÌǤµ¤»¤ë¡£
 
 N:873:¤»¤Ã¤«¤¯¤À¤«¤é¡Ø¥³¥ó¥Ð¥Ã¥È±ÛÁ°¡Ù
-E:Combat-Echizen, SEKKAKUDAKARA
+E:Combat-Echizen "Because it's time"
 G:p:R
 I:170:20d100:100:350:0
 W:85:2:0:35000:0:0
@@ -19440,7 +19435,7 @@ S:BA_FIRE | HASTE | HOLD | CONF | BLIND
 D:ÃǤ¸¤Æ¥Þ¥ê¥ª¤ÎÎà»÷ÉʤǤϤʤ¤¡ª(ËܿͼçÄ¥)¡£
 
 N:967:¥¬¥­Âç¾­¡Ø¥¸¥ã¥¤¥¢¥ó¡Ù
-E:Gian, the boss of the kids
+E:Jaian, the boss of the kids
 G:p:o
 I:110:100d10:16:100:20
 W:29:3:0:500:0:0
@@ -20078,7 +20073,7 @@ D:
 D:(J.H.¥Ö¥ì¥Ê¥ó¡¢¿¿ºêµÁÇîÌõ °Å¹õ¾ë¤ÎËâ½Ñ»Õ)
 
 N:1005:°Å¹õ¾ë¤ÎËâ½Ñ»Õ¡Ø¥¢¥ó¥µ¥í¥à¡Ù
-E:Antharom, Magic Master in the Castle of Darkness
+E:Ansalom, the Dark Wizard
 G:p:D
 I:120:22d150:50:100:0
 W:55:10:0:20000:0:0
index eee641e..9eb412c 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: t000001.txt
 
 # Outpost
index 15eef12..1f251c5 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: t0000002.txt
 
 # Telmora
@@ -356,7 +355,7 @@ B:10:A:2:
 B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 
-B:$11:N:Rangers Guild:Trallin:Half-elf
+B:$11:N:Archers Guild:Trallin:Half-elf
 B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥È¥¥¥é¥ê¥ó:¥Ï¡¼¥Õ¥¨¥ë
 B:$11:A:0:Enchant missiles:20:40:a:30:0
 B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
index 468445e..c418848 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # Town Name: Morivant
 # And in case you're wondering, that grand thing in the middle
 # of town is a fountain.
@@ -323,7 +322,7 @@ B:10:A:3:
 B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 
-B:$11:N:Rangers Guild:Angros:Elf
+B:$11:N:Archers Guild:Angros:Elf
 B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥¢¥ó¥°¥í¥¹:¥¨¥ë¥Õ
 B:$11:A:0:Enchant missiles:20:40:a:30:0
 B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
index 0cb2a38..212ba4f 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # Town Name: Angwil
 # Note: this is a mainly elven town, as you'll notice by the guild
 # leaders etc.
@@ -227,7 +226,7 @@ B:10:A:2:
 B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 
-B:$11:N:Rangers Tavern:Celegail:Elf
+B:$11:N:Archers Tavern:Celegail:Elf
 B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¼ò¾ì:¥±¥ì¥¬¥¤¥ë:¥¨¥ë¥Õ
 B:$11:A:0:Enchant missiles:22:44:a:30:0
 B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:22:44:a:30:0
index 47c8c21..996ed19 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # t0000006.txt
 
 # The City beneath the Sea
index 47ffe7b..3a14f4f 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: t_lite.txt
 
 # *Basic* town (vanilla style)
index 6b55a05..c53d3d4 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: t_info_j.txt
 
 # Includes the town definitions
index e98a84d..54922cd 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: t_lite.txt
 
 # Town
@@ -592,7 +591,7 @@ B:8:A:2:
 B:$8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 B:8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 
-B:$9:N:Rangers Guild:Trallin:Half-elf
+B:$9:N:Archers Guild:Trallin:Half-elf
 B:9:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥È¥¥¥é¥ê¥ó:¥Ï¡¼¥Õ¥¨¥ë
 B:$9:A:0:Enchant missiles:20:40:a:30:0
 B:9:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
index 6ed3f16..6de63fd 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: t_pref.txt
 
 # Defines the preferences for the town features
index ebbb0f5..c5a52e5 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: v_info.txt
 
 
index 0927574..9cf5a5e 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: w_info.txt
 
 # Defines the layout of the wilderness
index b89a9e4..0c60d16 100644 (file)
@@ -87,11 +87,12 @@ of the Pickpocket
 
 N:17:BIAS_MAGE
 N: 7:BIAS_INT
-4
+5
 'Fractal'
 'Deja-Vu'
-of Martin
+for Ritual
 of Talisman
+of the wiZZard
 
 N:18:BIAS_WARRIOR
 N: 6:BIAS_STR
@@ -100,7 +101,7 @@ N: 6:BIAS_STR
 'Turbo'
 of Resist Smasher
 of the Minotaur
-of the Sumo Warrior
+of Sumo Wrestler
 of Daddy
 
 N:10:BIAS_CON
@@ -108,7 +109,7 @@ N:10:BIAS_CON
 'Endurance'
 'Glowth Period'
 'Trollism'
-'Big Tree'
+'Big Useless Fellow'
 'Healthy One'
 of Pro Wrestler
 
@@ -117,7 +118,7 @@ N:19:BIAS_RANGER
 'Weeds'
 'Radar'
 'Planaria'
-of Stone
+of The Stone
 of Squirrel
 
 N:11:BIAS_CHR
@@ -128,9 +129,7 @@ of Super Model
 of Passion
 
 N:*:Default
-22
-of the Foo
-of the Bar
+19
 'Sambo'
 'Blink'
 'Pizza'
@@ -148,6 +147,6 @@ of Gurnemanz
 of Coral
 of Barahir
 'Generater'
-'Dal-i-Thalion'
 'Bladereturner'
 'Iron Virgin'
+
index 6e39c1b..769bc13 100644 (file)
@@ -2,9 +2,9 @@ N: 1:BIAS_ELEC
 5
 'Registor'
 of R'lyeh
-of thunder
+of Thunder
 of Rubber Coat
-of 1 million volts
+of One Million Volt
 
 N: 2:BIAS_POIS
 5
@@ -18,9 +18,9 @@ N: 5:BIAS_ACID
 5
 'Gelatinous Cube'
 'Skin of Dhole'
-of King Water
-of the Strongest
-of Devine Jewels
+of Aqua Regia
+of Immunity
+of the Devine Jewel
 
 N: 3:BIAS_FIRE
 4
@@ -31,7 +31,7 @@ of Lungorthin
 
 N: 4:BIAS_COLD
 6
-'While Snow'
+'White Snow'
 'Icy Princess'
 of Siberia
 of White Ice
@@ -40,26 +40,27 @@ of Antarctic Land
 
 #N:11:BIAS_CHR
 #0
+
 N:12:BIAS_CHAOS
 7
+'Sad Giant's Shield'
 'Ever-Faithful'
 'Guard of Law'
 of Harmony
 of Reason
 of Seldon
-of the Chaotic Load
+of the Chaos Lord
 
 N:14:BIAS_NECROMANTIC
 6
-'Vecna's Hand'
+'Hand of Vecna'
 'Total Eclipse'
-'Bottom of Abyss'
+'The Depth of Abyss'
 'Jet-black Bird'
-of rituals
+of Rituals
 of the Ruler of Wallachia
 
-#N:15:BIAS_LAW
-#0
+N:15:BIAS_LAW
 N:13:BIAS_PRIESTLY
 N: 8:BIAS_WIS
 8
@@ -68,13 +69,13 @@ of Holy Smoke
 of Piety
 of the Pious Believer
 of Ceremony
-of Protection
+of Guardian Angel
 of Revelation
 of Rite
 
 N:16:BIAS_ROGUE
 N: 9:BIAS_DEX
-11
+10
 'Silentwalker'
 'Mercury'
 'Darknesslurker'
@@ -85,26 +86,24 @@ of the Ninja
 of Phasing
 of the Fairy
 of Avoidance
-of Darkness
 
 N:17:BIAS_MAGE
 N: 7:BIAS_INT
 7
 'Nuts of Wisdom'
 of Brilliance
-of the Magi
+of the Wizard
 of Knowledge
 of the Spellcaster
-for Ritual
 of Arcane
+of Martin
 
 N:18:BIAS_WARRIOR
 N: 6:BIAS_STR
-7
+6
 'Terminater'
 'Die Hard'
 'Force Shield'
-'Sad Giant's Shield'
 of the Valkyrie
 of Daybreak
 of Diamond
@@ -119,10 +118,11 @@ N:10:BIAS_CON
 'Life of Leaf'
 of the Hunter
 of Marinera
-of wood protection
+of Wood Protection
 
 N:*:Default
-12
+13
+'Dal-i-Thalion'
 'Guardian'
 of Champion
 'Defender'
index 125170e..1396627 100644 (file)
@@ -33,7 +33,7 @@ N:780:Vlad Dracula, Prince of Darkness
 1
 says, 'Faugh, I'll be back...so long as human psyche has a blackness. Ho-ho.'
 
-N:873:Combat-Echizen, SEKKAKUDAKARA
+N:873:Combat-Echizen
 1
 says shiftlessly, 'Oh. No.'
 
index c4cada4..4dca54d 100644 (file)
@@ -424,11 +424,11 @@ N:883:Zombified Serpent of Chaos
 1
 screams, 'This CAN'T be happening!'
 
-N:873:Combat-Echizen, SEKKAKUDAKARA
+N:873:Combat-Echizen
 3
 says shiftlessly, 'Shit...!'
 says shiftlessly, 'Yegg...!'
-says shiftlessly, 'Be cheated!'
+says shiftlessly, 'yariyagattana!'
 
 N:878:Dio Brando
 1
index 3f820c2..c2116cb 100644 (file)
@@ -323,9 +323,7 @@ says, 'I won't take that from you!'
 N:505:Goemon
 3
 says, 'Zantetsuken is sharp this night. '
-###########¡Öº£¾¬¤Î»ÂÅ´·õ¤Ï¤Ò¤ÈÌ£°ã¤¦¤¾¡ª¡×
-############# »ÂÅ´·õ¤Ã¤Æ¤É¤ó¤ÊÌõ¤Ë¤Ê¤Ã¤Æ¤ë¤ó¤À¤í¤¦¡©
-says, 'I cut an abbreviated piece of nothing again...'
+mumbles, 'Sign..Another trifling thing I've cut....'
 buttons his lips, '.....'
 
 N:1062:Groo the Wanderer
@@ -665,11 +663,11 @@ says, 'I can't be bothered... minions, slaughter this fool!'
 says, 'Such a doomed, pathetic gesture as yours  verges on the heroic!'
 says, 'Mere mortals such as you should not meddle the affair of the Powers!'
 
-N:873:Combat-Echizen, SEKKAKUDAKARA
+N:873:Combat-Echizen
 4
 says, 'Somethig comes from above! Be careful!'
 says, 'What is this stair?'
-says, 'Because of a reason, I choose this red door!'
+says, 'Because it's time, I choose this red door!'
 chunters, 'Tonight, someone dies again...'
 
 N:878:Dio Brando
index a40372a..bd5644f 100644 (file)
@@ -12,7 +12,7 @@
        Old ZAngband code:    (Mr) Topi Ylinen < f1toyl@uta.fi >
        New ZAngband code:    Robert Ruehlmann < rr9@angband.org >
     ZAngband 2.3.0 - ???:    The ZAngband DevTeam
-       ZAngband Jap ver.:    Mitsuhiro Itakera < m-itakura@geocities.co.jp >
+       ZAngband Jap ver.:    Mitsuhiro Itakura < m-itakura@geocities.co.jp >
 
 
            Hengband: Mr.Hoge (echizen @ s5.xrea.com) & Many others
index 375b9e8..fa4d3f0 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 
 
 # Color redefinitions
index c5e35d0..1c06dbb 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font-ami.prf
 
 #
index 4579854..c2d2286 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font-dos.prf
 
 #
index 36bd582..bcc36e5 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font-ibm.prf
 
 #
index e7b29b1..d15c2e4 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font.prf
 
 #
index 5c341a7..96f31ee 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font-mon.prf
 
 #
index 9963248..6adfa05 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font-win.prf
 
 #
index d852bff..57828a5 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font-x11.prf
 
 
index 41918ef..810a74a 100644 (file)
@@ -1,5 +1,4 @@
 
-# CVS: Last edit by $Author$ on $Date$
 # File: font-xxx.prf
 
 #
index 032a061..fe0cff0 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: font.prf
 
 #
index e60801c..9af1b29 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-ami.prf
 
 #
index 86d843d..2479dbd 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-dos.prf
 
 #
index 976abd2..57e784c 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-gcu.prf
 
 #
index 70310d3..a6cf247 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # Monster attr/char definitions
 
 # Player
index 3aca2b8..2ceee8f 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-mac.prf
 
 #
index 07e1935..1b8d297 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-new.prf
 
 #
index 897069e..f59edb3 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-win.prf
 
 #
index cf4c9e8..3cdced9 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-x11.prf
 
 
@@ -25,12 +24,12 @@ V:29:0x01:0x90:0x00:0xB0
 V:30:0x01:0x00:0x60:0x10
 V:31:0x01:0x60:0xF0:0x40
 
-
-# Hack -- initialization
-?:[NOT [EQU $SYS xxx]]
-
 # Standard file
+?:[EQU $GRAF old]
 %:graf-xxx.prf
 
+# New tiles
+?:[EQU $GRAF new]
+%:graf-new.prf
 ?:1
 
index cf4c9e8..99fa95e 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf-x11.prf
 
 
index e5d5162..84ea548 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 ##### Special attr/char values #####
 
 
@@ -3152,12 +3151,69 @@ F:88:0xCB:0x84
 # Grass
 F:89:0xCB:0x85
 
+#compact rune (same tile as dart trap, nuke me)
+F:90:0xA2:0x92
+
+#flower
+F:93:203/138
+
+#brake
+F:94:207/136
+
+#museum
+F:95:0xD3:0x98
+
 # Tree
 F:96:0xCB:0x86
 
 # Mountain
 F:97:0xCB:0x87
 
+# Building
+F:128:0xD5:0x82
+F:129:0xD5:0x82
+F:130:0xD5:0x81
+F:131:0xD5:0x82
+F:132:0xD5:0x82
+F:133:0xD5:0x82
+F:134:0xD5:0x82
+F:135:0xD5:0x80
+F:136:0xD5:0x81
+F:137:0xD5:0x84
+F:138:0xD5:0x81
+F:139:0xD5:0x80
+F:140:0xD5:0x85
+F:141:0xD5:0x83
+F:142:0xD5:0x83
+F:143:0xD5:0x83
+F:144:0xD5:0x83
+F:145:0xD5:0x83
+F:146:0xD5:0x83
+F:147:0xD5:0x83
+F:148:0xD5:0x83
+F:149:0xD5:0x83
+F:150:0xD5:0x83
+F:151:0xD5:0x83
+F:152:0xD5:0x83
+F:153:0xD5:0x83
+F:154:0xD5:0x83
+F:155:0xD5:0x83
+F:156:0xD5:0x83
+F:157:0xD5:0x83
+F:158:0xD5:0x83
+F:159:0xD5:0x83
+
+#Town
+#F:192:
+
+#Entrance to dungeon
+F:193:0x81:0x9E
+
+#Swamp
+F:194:207/146
+
+#Mirror
+F:195:203/152
 
 # Object attr/char definitions
 
@@ -4747,12 +4803,155 @@ K:573:0xB4:0x87
 K:574:0xB4:0x88
 K:575:0xB4:0x89
 K:576:0xB4:0x8A
+K:577:0xD3:0x99
 
 # Generic Skeleton
-K:577:0xB4:0x8B
+K:578:0xB4:0x8B
 
 # Generic Corpse
-K:578:0xB4:0x8C
+K:579:0xB4:0x8C
+
+#T-shirt
+K:580:0xB4:0x8D
+
+#Wizardstaff
+#K:581:
+
+#Feanorian lamp
+#K:582:
+
+#Set of Gloves of Dragon
+#K:584:
+
+#Pair of Dragon Boots
+#K:585:
+
+#Gun
+#K:588:
+
+#Palantir
+#K:589:
+
+#Stone
+#K:590:
+
+#Poison Needle
+#K:592:
+
+#Capture Ball#
+#K:593:
+
+#Death Scythe 
+#K:594:
+
+#Card
+#K:597:
+
+#[Handbook for Pupils]
+#K:604:
+
+#[Grade Holder's Book]
+#K:605:
+
+#[Note of Acting Master]
+#K:606:
+
+#[Spiritual Enlightenment]
+#K:607:
+
+#Levitation Stone
+#K:609:
+
+#Bead
+#K:610:
+
+#Ethereal Cloak
+#K:611:
+
+#Mirror
+#K:612:
+
+#Black Arrow
+#K:613:
+
+#Sexy Swimsuit
+#K:614:
+
+#Fishingpole
+#K:615:
+
+#Steel Bolt
+K:619:0x89:0x9C
+
+#Can of Toys
+#K:620:
+
+#Stick
+K:621:0xCD:0x98
+
+#Yumi
+K:622:0x89:0x95
+
+#Cloth
+K:623:0xB4:0x8D
+
+#Knight's Shield
+#K:627:
+
+#[Apprentice Handbook]
+#K:631:
+
+#[Minstrel's Music]
+#K:632:
+
+#[Harps of Rivendell]
+#K:633:
+
+#[Lays of Beleriand]
+#K:634:
+
+#Falcon Sword
+K:635:0xCD:0x9E
+
+#Adventurer's guide to Middle Earth
+#K:636:
+
+#[Bugei Shofu]
+#K:637:
+
+#[Yagyuu Bugeichou]
+#K:638:
+
+#[Gorinnosho]
+#K:639:
+
+#[Hokusin Ittouryuu Kaiden]
+#K:640:
+
+#Photograph of #
+#K:643:203/152
+
+#Robe
+K:645:0x88:0x95
+
+#[Dark Incantations]
+#K:646:
+
+#[Immortal Rituals]
+#K:647:
+
+#[Demonthoughts]
+#K:648:
+
+#[Hellfire Tome]
+#K:649:
+
+#Magic Whistle
+#K:651:
+
+#Amulet(pitch dark night)
+#K:652:0xB6:0x9E
+
 
 # Load the special player pictures
 %:xtra-xxx.prf
index 0bc74cb..b2dc669 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: graf.prf
 
 #
index 2de9ace..ae95fe2 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: pref-acn.prf
 
 # This is a minimal "pref" file for RISC OS
index 0174287..08a1c31 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: pref-ami.prf
 
 #
index 94812be..cbc80ad 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: pref-gcu.prf
 
 #
index 6b6989d..a17dda5 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: pref-mac.prf
 
 #
index 10a5871..df651c2 100644 (file)
@@ -131,10 +131,7 @@ X:ironman_nightmare
 X:munchkin_death
 
 
-##### nanka #####
-Y:display_pick
-X:display_nopick
-X:display_destroy
+##### Easy auto-destroyer #####
 X:destroy_items
 Y:leave_worth
 X:leave_equip
index c8ef78d..7cafc15 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: pref-ibm.prf
 
 #
index 5592cbf..8d6b079 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: pref-x11.prf
 
 #
index 2d81a46..1ab6270 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 
 
 # Color redefinitions
index 96d03b9..9163fc2 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: user.prf
 
 #
index 35102ae..7097658 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: xtra-gcu.prf
 
 # Rename this file to "pref-gcu.prf" to allow the VT100 cursor keys
index a151583..d8fbd61 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: xtra-new.prf
 
 #
index 33a6f63..3d24946 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: xtra-xxx.prf
 
 #
 ##### Remap the player icon #####
 
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Human] ]
-R:0:0x8C/0x80
+R:0:0xA4/0x80
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x81
+R:0:0xA4/0x81
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Elf] ]
-R:0:0x8C/0x82
+R:0:0xA4/0x82
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Hobbit] ]
-R:0:0x8C/0x83
+R:0:0xA4/0x83
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Gnome] ]
-R:0:0x8C/0x84
+R:0:0xA4/0x84
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Dwarf] ]
-R:0:0x8C/0x85
+R:0:0xA4/0x85
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Orc] ]
-R:0:0x8C/0x86
+R:0:0xA4/0x86
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Troll] ]
-R:0:0x8C/0x87
-?:[AND [EQU $CLASS Warrior] [EQU $RACE Dunadan] ]
-R:0:0x8C/0x88
+R:0:0xA4/0x87
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Amberite] ]
+R:0:0xA4/0x88
 ?:[AND [EQU $CLASS Warrior] [EQU $RACE High-Elf] ]
-R:0:0x8C/0x89
-
+R:0:0xA4/0x89
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Barbarian] ]
+R:0:0xA4/0x8A
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Ogre] ]
+R:0:0xA4/0x8B
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Giant] ]
+R:0:0xA4/0x8C
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Titan] ]
+R:0:0xA4/0x8D
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Cyclops] ]
+R:0:0xA4/0x8E
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Yeek] ]
+R:0:0xA4/0x8F
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Klackon] ]
+R:0:0xA4/0x90
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Kobold] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Nibelung] ]
+R:0:0xA4/0x92
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Dark-Elf] ]
+R:0:0xA4/0x93
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Draconian] ]
+R:0:0xA4/0x94
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Mindflayer] ]
+R:0:0xA4/0x95
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Imp] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Golem] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Skeleton] ]
+R:0:0xA4/0x98
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Zombie] ]
+R:0:0xA4/0x99
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Vampire] ]
+R:0:0xA4/0x9A
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Spectre] ]
+R:0:0xA4/0x9B
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Sprite] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Beastman] ]
+R:0:0xA4/0x9D
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Ent] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Archon] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Balrog] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Dunadan] ]
+R:0:0xA4/0x81
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA4/0x86
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Kuta] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Android] ]
+R:0:0xA4/0x97
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Human] ]
-R:0:0x8C/0x8A
+R:0:0xA5/0x80
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x8B
+R:0:0xA5/0x81
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Elf] ]
-R:0:0x8C/0x8C
+R:0:0xA5/0x82
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Hobbit] ]
-R:0:0x8C/0x8D
+R:0:0xA5/0x83
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Gnome] ]
-R:0:0x8C/0x8E
+R:0:0xA5/0x84
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Dwarf] ]
-R:0:0x8C/0x8F
+R:0:0xA5/0x85
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Orc] ]
-R:0:0x8C/0x90
+R:0:0xA5/0x86
 ?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Troll] ]
-R:0:0x8C/0x91
-?:[AND [EQU $CLASS Mage] [EQU $RACE Dunadan] ]
-R:0:0x8C/0x92
+R:0:0xA5/0x87
+?:[AND [EQU $CLASS Mage] [EQU $RACE Amberite] ]
+R:0:0xA5/0x88
 ?:[AND [EQU $CLASS Mage] [EQU $RACE High-Elf] ]
-R:0:0x8C/0x93
-
+R:0:0xA5/0x89
+?:[AND [EQU $CLASS Mage] [EQU $RACE Barbarian] ]
+R:0:0xA5/0x8A
+?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xA5/0x8B
+?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Giant] ]
+R:0:0xA5/0x8C
+?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Titan] ]
+R:0:0xA5/0x8D
+?:[AND [EQU $CLASS Mage] [EQU $RACE Cyclops] ]
+R:0:0xA5/0x8E
+?:[AND [EQU $CLASS Mage] [EQU $RACE Yeek] ]
+R:0:0xA5/0x8F
+?:[AND [EQU $CLASS Mage] [EQU $RACE Klackon] ]
+R:0:0xA5/0x90
+?:[AND [EQU $CLASS Mage] [EQU $RACE Kobold] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Mage] [EQU $RACE Nibelung] ]
+R:0:0xA5/0x92
+?:[AND [EQU $CLASS Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xA5/0x93
+?:[AND [EQU $CLASS Mage] [EQU $RACE Draconian] ]
+R:0:0xA5/0x94
+?:[AND [EQU $CLASS Mage] [EQU $RACE Mindflayer] ]
+R:0:0xA5/0x95
+?:[AND [EQU $CLASS Mage] [EQU $RACE Imp] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Mage] [EQU $RACE Golem] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Mage] [EQU $RACE Skeleton] ]
+R:0:0xA5/0x98
+?:[AND [EQU $CLASS Mage] [EQU $RACE Zombie] ]
+R:0:0xA5/0x99
+?:[AND [EQU $CLASS Mage] [EQU $RACE Vampire] ]
+R:0:0xA5/0x9A
+?:[AND [EQU $CLASS Mage] [EQU $RACE Spectre] ]
+R:0:0xA5/0x9B
+?:[AND [EQU $CLASS Mage] [EQU $RACE Sprite] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Mage] [EQU $RACE Beastman] ]
+R:0:0xA5/0x9D
+?:[AND [EQU $CLASS Mage] [EQU $RACE Ent] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Mage] [EQU $RACE Archon] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Mage] [EQU $RACE Balrog] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Mage] [EQU $RACE Dunadan] ]
+R:0:0xA5/0x81
+?:[AND [EQU $CLASS Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA5/0x86
+?:[AND [EQU $CLASS Mage] [EQU $RACE Kuta] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Mage] [EQU $RACE Android] ]
+R:0:0xA5/0x97
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Human] ]
-R:0:0x8C/0x94
+R:0:0xA6/0x80
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x95
+R:0:0xA6/0x81
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Elf] ]
-R:0:0x8C/0x96
+R:0:0xA6/0x82
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Hobbit] ]
-R:0:0x8C/0x97
+R:0:0xA6/0x83
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Gnome] ]
-R:0:0x8C/0x98
+R:0:0xA6/0x84
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Dwarf] ]
-R:0:0x8C/0x99
+R:0:0xA6/0x85
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Orc] ]
-R:0:0x8C/0x9A
+R:0:0xA6/0x86
 ?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Troll] ]
-R:0:0x8C/0x9B
-?:[AND [EQU $CLASS Priest] [EQU $RACE Dunadan] ]
-R:0:0x8C/0x9C
+R:0:0xA6/0x87
+?:[AND [EQU $CLASS Priest] [EQU $RACE Amberite] ]
+R:0:0xA6/0x88
 ?:[AND [EQU $CLASS Priest] [EQU $RACE High-Elf] ]
-R:0:0x8C/0x9D
-
+R:0:0xA6/0x89
+?:[AND [EQU $CLASS Priest] [EQU $RACE Barbarian] ]
+R:0:0xA6/0x8A
+?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Ogre] ]
+R:0:0xA6/0x8B
+?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Giant] ]
+R:0:0xA6/0x8C
+?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Titan] ]
+R:0:0xA6/0x8D
+?:[AND [EQU $CLASS Priest] [EQU $RACE Cyclops] ]
+R:0:0xA6/0x8E
+?:[AND [EQU $CLASS Priest] [EQU $RACE Yeek] ]
+R:0:0xA6/0x8F
+?:[AND [EQU $CLASS Priest] [EQU $RACE Klackon] ]
+R:0:0xA6/0x90
+?:[AND [EQU $CLASS Priest] [EQU $RACE Kobold] ]
+R:0:0xA6/0x91
+?:[AND [EQU $CLASS Priest] [EQU $RACE Nibelung] ]
+R:0:0xA6/0x92
+?:[AND [EQU $CLASS Priest] [EQU $RACE Dark-Elf] ]
+R:0:0xA6/0x93
+?:[AND [EQU $CLASS Priest] [EQU $RACE Draconian] ]
+R:0:0xA6/0x94
+?:[AND [EQU $CLASS Priest] [EQU $RACE Mindflayer] ]
+R:0:0xA6/0x95
+?:[AND [EQU $CLASS Priest] [EQU $RACE Imp] ]
+R:0:0xA6/0x96
+?:[AND [EQU $CLASS Priest] [EQU $RACE Golem] ]
+R:0:0xA6/0x97
+?:[AND [EQU $CLASS Priest] [EQU $RACE Skeleton] ]
+R:0:0xA6/0x98
+?:[AND [EQU $CLASS Priest] [EQU $RACE Zombie] ]
+R:0:0xA6/0x99
+?:[AND [EQU $CLASS Priest] [EQU $RACE Vampire] ]
+R:0:0xA6/0x9A
+?:[AND [EQU $CLASS Priest] [EQU $RACE Spectre] ]
+R:0:0xA6/0x9B
+?:[AND [EQU $CLASS Priest] [EQU $RACE Sprite] ]
+R:0:0xA6/0x9C
+?:[AND [EQU $CLASS Priest] [EQU $RACE Beastman] ]
+R:0:0xA6/0x9D
+?:[AND [EQU $CLASS Priest] [EQU $RACE Ent] ]
+R:0:0xA6/0x97
+?:[AND [EQU $CLASS Priest] [EQU $RACE Archon] ]
+R:0:0xA6/0x9C
+?:[AND [EQU $CLASS Priest] [EQU $RACE Balrog] ]
+R:0:0xA6/0x96
+?:[AND [EQU $CLASS Priest] [EQU $RACE Dunadan] ]
+R:0:0xA6/0x81
+?:[AND [EQU $CLASS Priest] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA6/0x86
+?:[AND [EQU $CLASS Priest] [EQU $RACE Kuta] ]
+R:0:0xA6/0x91
+?:[AND [EQU $CLASS Priest] [EQU $RACE Android] ]
+R:0:0xA6/0x97
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Human] ]
-R:0:0x8C/0x9E
+R:0:0xA7/0x80
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x9F
+R:0:0xA7/0x81
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Elf] ]
-R:0:0x8D/0x80
+R:0:0xA7/0x82
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Hobbit] ]
-R:0:0x8D/0x81
+R:0:0xA7/0x83
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Gnome] ]
-R:0:0x8D/0x82
+R:0:0xA7/0x84
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Dwarf] ]
-R:0:0x8D/0x83
+R:0:0xA7/0x85
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Orc] ]
-R:0:0x8D/0x84
+R:0:0xA7/0x86
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Troll] ]
-R:0:0x8D/0x85
-?:[AND [EQU $CLASS Rogue] [EQU $RACE Dunadan] ]
-R:0:0x8D/0x86
+R:0:0xA7/0x87
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Amberite] ]
+R:0:0xA7/0x88
 ?:[AND [EQU $CLASS Rogue] [EQU $RACE High-Elf] ]
-R:0:0x8D/0x87
-
+R:0:0xA7/0x89
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Barbarian] ]
+R:0:0xA7/0x8A
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Ogre] ]
+R:0:0xA7/0x8B
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Giant] ]
+R:0:0xA7/0x8C
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Titan] ]
+R:0:0xA7/0x8D
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Cyclops] ]
+R:0:0xA7/0x8E
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Yeek] ]
+R:0:0xA7/0x8F
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Klackon] ]
+R:0:0xA7/0x90
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Kobold] ]
+R:0:0xA7/0x91
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Nibelung] ]
+R:0:0xA7/0x92
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Dark-Elf] ]
+R:0:0xA7/0x93
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Draconian] ]
+R:0:0xA7/0x94
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Mindflayer] ]
+R:0:0xA7/0x95
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Imp] ]
+R:0:0xA7/0x96
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Golem] ]
+R:0:0xA7/0x97
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Skeleton] ]
+R:0:0xA7/0x98
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Zombie] ]
+R:0:0xA7/0x99
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Vampire] ]
+R:0:0xA7/0x9A
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Spectre] ]
+R:0:0xA7/0x9B
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Sprite] ]
+R:0:0xA7/0x9C
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Beastman] ]
+R:0:0xA7/0x9D
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Ent] ]
+R:0:0xA7/0x97
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Archon] ]
+R:0:0xA7/0x9C
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Balrog] ]
+R:0:0xA7/0x96
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Dunadan] ]
+R:0:0xA7/0x81
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA7/0x86
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Kuta] ]
+R:0:0xA7/0x91
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Android] ]
+R:0:0xA7/0x97
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Human] ]
-R:0:0x8D/0x88
+R:0:0xA8/0x80
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Elf] ]
-R:0:0x8D/0x89
+R:0:0xA8/0x81
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Elf] ]
-R:0:0x8D/0x8A
+R:0:0xA8/0x82
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Hobbit] ]
-R:0:0x8D/0x8B
+R:0:0xA8/0x83
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Gnome] ]
-R:0:0x8D/0x8C
+R:0:0xA8/0x84
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Dwarf] ]
-R:0:0x8D/0x8D
+R:0:0xA8/0x85
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Orc] ]
-R:0:0x8D/0x8E
+R:0:0xA8/0x86
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Troll] ]
-R:0:0x8D/0x8F
-?:[AND [EQU $CLASS Ranger] [EQU $RACE Dunadan] ]
-R:0:0x8D/0x90
+R:0:0xA8/0x87
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Amberite] ]
+R:0:0xA8/0x88
 ?:[AND [EQU $CLASS Ranger] [EQU $RACE High-Elf] ]
-R:0:0x8D/0x91
-
+R:0:0xA8/0x89
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Barbarian] ]
+R:0:0xA8/0x8A
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Ogre] ]
+R:0:0xA8/0x8B
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Giant] ]
+R:0:0xA8/0x8C
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Titan] ]
+R:0:0xA8/0x8D
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Cyclops] ]
+R:0:0xA8/0x8E
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Yeek] ]
+R:0:0xA8/0x8F
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Klackon] ]
+R:0:0xA8/0x90
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Kobold] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Nibelung] ]
+R:0:0xA8/0x92
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Dark-Elf] ]
+R:0:0xA8/0x93
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Draconian] ]
+R:0:0xA8/0x94
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Mindflayer] ]
+R:0:0xA8/0x95
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Imp] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Golem] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Skeleton] ]
+R:0:0xA8/0x98
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Zombie] ]
+R:0:0xA8/0x99
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Vampire] ]
+R:0:0xA8/0x9A
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Spectre] ]
+R:0:0xA8/0x9B
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Sprite] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Beastman] ]
+R:0:0xA8/0x9D
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Ent] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Archon] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Balrog] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Dunadan] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Kuta] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Android] ]
+R:0:0xA8/0x97
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Human] ]
-R:0:0x8D/0x92
+R:0:0xA9/0x80
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Elf] ]
-R:0:0x8D/0x93
+R:0:0xA9/0x81
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Elf] ]
-R:0:0x8D/0x94
+R:0:0xA9/0x82
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Hobbit] ]
-R:0:0x8D/0x95
+R:0:0xA9/0x83
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Gnome] ]
-R:0:0x8D/0x96
+R:0:0xA9/0x84
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Dwarf] ]
-R:0:0x8D/0x97
+R:0:0xA9/0x85
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Orc] ]
-R:0:0x8D/0x98
+R:0:0xA9/0x86
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Troll] ]
-R:0:0x8D/0x99
-?:[AND [EQU $CLASS Paladin] [EQU $RACE Dunadan] ]
-R:0:0x8D/0x9A
+R:0:0xA9/0x87
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Amberite] ]
+R:0:0xA9/0x88
 ?:[AND [EQU $CLASS Paladin] [EQU $RACE High-Elf] ]
-R:0:0x8D/0x9B
+R:0:0xA9/0x89
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Barbarian] ]
+R:0:0xA9/0x8A
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Ogre] ]
+R:0:0xA9/0x8B
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Giant] ]
+R:0:0xA9/0x8C
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Titan] ]
+R:0:0xA9/0x8D
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Cyclops] ]
+R:0:0xA9/0x8E
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Yeek] ]
+R:0:0xA9/0x8F
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Klackon] ]
+R:0:0xA9/0x90
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Kobold] ]
+R:0:0xA9/0x91
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Nibelung] ]
+R:0:0xA9/0x92
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Dark-Elf] ]
+R:0:0xA9/0x93
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Draconian] ]
+R:0:0xA9/0x94
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Mindflayer] ]
+R:0:0xA9/0x95
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Imp] ]
+R:0:0xA9/0x96
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Golem] ]
+R:0:0xA9/0x97
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Skeleton] ]
+R:0:0xA9/0x98
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Zombie] ]
+R:0:0xA9/0x99
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Vampire] ]
+R:0:0xA9/0x9A
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Spectre] ]
+R:0:0xA9/0x9B
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Sprite] ]
+R:0:0xA9/0x9C
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Beastman] ]
+R:0:0xA9/0x9D
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Ent] ]
+R:0:0xA9/0x97
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Archon] ]
+R:0:0xA9/0x9C
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Balrog] ]
+R:0:0xA9/0x96
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Dunadan] ]
+R:0:0xA9/0x81
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA9/0x86
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Kuta] ]
+R:0:0xA9/0x91
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Android] ]
+R:0:0xA9/0x97
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Human] ]
+R:0:0xAB/0x80
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Elf] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Elf] ]
+R:0:0xAB/0x82
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Hobbit] ]
+R:0:0xAB/0x83
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Gnome] ]
+R:0:0xAB/0x84
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Dwarf] ]
+R:0:0xAB/0x85
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Orc] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Troll] ]
+R:0:0xAB/0x87
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Amberite] ]
+R:0:0xAB/0x88
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE High-Elf] ]
+R:0:0xAB/0x89
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Barbarian] ]
+R:0:0xAB/0x8A
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Ogre] ]
+R:0:0xAB/0x8B
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Giant] ]
+R:0:0xAB/0x8C
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Titan] ]
+R:0:0xAB/0x8D
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Cyclops] ]
+R:0:0xAB/0x8E
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Yeek] ]
+R:0:0xAB/0x8F
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Klackon] ]
+R:0:0xAB/0x90
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Kobold] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Nibelung] ]
+R:0:0xAB/0x92
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Dark-Elf] ]
+R:0:0xAB/0x93
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Draconian] ]
+R:0:0xAB/0x94
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Mindflayer] ]
+R:0:0xAB/0x95
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Imp] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Golem] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Skeleton] ]
+R:0:0xAB/0x98
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Zombie] ]
+R:0:0xAB/0x99
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Vampire] ]
+R:0:0xAB/0x9A
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Spectre] ]
+R:0:0xAB/0x9B
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Sprite] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Beastman] ]
+R:0:0xAB/0x9D
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Ent] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Archon] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Balrog] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Dunadan] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Kuta] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Android] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Monk] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Monk] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS Monk] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS Monk] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS Monk] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS Monk] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS Monk] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS Monk] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS Monk] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS Monk] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS Monk] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS Monk] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Monk] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS Monk] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS Monk] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS Monk] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS Monk] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Monk] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Monk] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS Monk] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS Monk] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS Monk] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS Monk] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Monk] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS Monk] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Monk] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Monk] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Monk] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Monk] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Monk] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Monk] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Human] ]
+R:0:0xAE/0x80
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAE/0x81
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Elf] ]
+R:0:0xAE/0x82
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAE/0x83
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Gnome] ]
+R:0:0xAE/0x84
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAE/0x85
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAE/0x86
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAE/0x87
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Amberite] ]
+R:0:0xAE/0x88
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAE/0x89
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAE/0x8A
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAE/0x8B
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAE/0x8C
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAE/0x8D
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAE/0x8E
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Yeek] ]
+R:0:0xAE/0x8F
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Klackon] ]
+R:0:0xAE/0x90
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Kobold] ]
+R:0:0xAE/0x91
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAE/0x92
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAE/0x93
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Draconian] ]
+R:0:0xAE/0x94
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAE/0x95
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Imp] ]
+R:0:0xAE/0x96
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Golem] ]
+R:0:0xAE/0x97
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAE/0x98
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Zombie] ]
+R:0:0xAE/0x99
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Vampire] ]
+R:0:0xAE/0x9A
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Spectre] ]
+R:0:0xAE/0x9B
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Sprite] ]
+R:0:0xAE/0x9C
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Beastman] ]
+R:0:0xAE/0x9D
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Ent] ]
+R:0:0xAE/0x97
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Archon] ]
+R:0:0xAE/0x9C
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Balrog] ]
+R:0:0xAE/0x96
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAE/0x81
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAE/0x86
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Kuta] ]
+R:0:0xAE/0x91
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Android] ]
+R:0:0xAE/0x97
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS Tourist] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS Imitator] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Human] ]
+R:0:0xA5/0x80
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Elf] ]
+R:0:0xA5/0x81
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Elf] ]
+R:0:0xA5/0x82
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Hobbit] ]
+R:0:0xA5/0x83
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Gnome] ]
+R:0:0xA5/0x84
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Dwarf] ]
+R:0:0xA5/0x85
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Orc] ]
+R:0:0xA5/0x86
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Troll] ]
+R:0:0xA5/0x87
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Amberite] ]
+R:0:0xA5/0x88
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE High-Elf] ]
+R:0:0xA5/0x89
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Barbarian] ]
+R:0:0xA5/0x8A
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Ogre] ]
+R:0:0xA5/0x8B
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Giant] ]
+R:0:0xA5/0x8C
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Titan] ]
+R:0:0xA5/0x8D
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Cyclops] ]
+R:0:0xA5/0x8E
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Yeek] ]
+R:0:0xA5/0x8F
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Klackon] ]
+R:0:0xA5/0x90
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Kobold] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Nibelung] ]
+R:0:0xA5/0x92
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Dark-Elf] ]
+R:0:0xA5/0x93
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Draconian] ]
+R:0:0xA5/0x94
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Mindflayer] ]
+R:0:0xA5/0x95
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Imp] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Golem] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Skeleton] ]
+R:0:0xA5/0x98
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Zombie] ]
+R:0:0xA5/0x99
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Vampire] ]
+R:0:0xA5/0x9A
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Spectre] ]
+R:0:0xA5/0x9B
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Sprite] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Beastman] ]
+R:0:0xA5/0x9D
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Ent] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Archon] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Balrog] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Dunadan] ]
+R:0:0xA5/0x81
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA5/0x86
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Kuta] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Android] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Archer] [EQU $RACE Human] ]
+R:0:0xA8/0x80
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Elf] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Archer] [EQU $RACE Elf] ]
+R:0:0xA8/0x82
+?:[AND [EQU $CLASS Archer] [EQU $RACE Hobbit] ]
+R:0:0xA8/0x83
+?:[AND [EQU $CLASS Archer] [EQU $RACE Gnome] ]
+R:0:0xA8/0x84
+?:[AND [EQU $CLASS Archer] [EQU $RACE Dwarf] ]
+R:0:0xA8/0x85
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Orc] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Troll] ]
+R:0:0xA8/0x87
+?:[AND [EQU $CLASS Archer] [EQU $RACE Amberite] ]
+R:0:0xA8/0x88
+?:[AND [EQU $CLASS Archer] [EQU $RACE High-Elf] ]
+R:0:0xA8/0x89
+?:[AND [EQU $CLASS Archer] [EQU $RACE Barbarian] ]
+R:0:0xA8/0x8A
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Ogre] ]
+R:0:0xA8/0x8B
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Giant] ]
+R:0:0xA8/0x8C
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Titan] ]
+R:0:0xA8/0x8D
+?:[AND [EQU $CLASS Archer] [EQU $RACE Cyclops] ]
+R:0:0xA8/0x8E
+?:[AND [EQU $CLASS Archer] [EQU $RACE Yeek] ]
+R:0:0xA8/0x8F
+?:[AND [EQU $CLASS Archer] [EQU $RACE Klackon] ]
+R:0:0xA8/0x90
+?:[AND [EQU $CLASS Archer] [EQU $RACE Kobold] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Archer] [EQU $RACE Nibelung] ]
+R:0:0xA8/0x92
+?:[AND [EQU $CLASS Archer] [EQU $RACE Dark-Elf] ]
+R:0:0xA8/0x93
+?:[AND [EQU $CLASS Archer] [EQU $RACE Draconian] ]
+R:0:0xA8/0x94
+?:[AND [EQU $CLASS Archer] [EQU $RACE Mindflayer] ]
+R:0:0xA8/0x95
+?:[AND [EQU $CLASS Archer] [EQU $RACE Imp] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Archer] [EQU $RACE Golem] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Archer] [EQU $RACE Skeleton] ]
+R:0:0xA8/0x98
+?:[AND [EQU $CLASS Archer] [EQU $RACE Zombie] ]
+R:0:0xA8/0x99
+?:[AND [EQU $CLASS Archer] [EQU $RACE Vampire] ]
+R:0:0xA8/0x9A
+?:[AND [EQU $CLASS Archer] [EQU $RACE Spectre] ]
+R:0:0xA8/0x9B
+?:[AND [EQU $CLASS Archer] [EQU $RACE Sprite] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Archer] [EQU $RACE Beastman] ]
+R:0:0xA8/0x9D
+?:[AND [EQU $CLASS Archer] [EQU $RACE Ent] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Archer] [EQU $RACE Archon] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Archer] [EQU $RACE Balrog] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Archer] [EQU $RACE Dunadan] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Archer] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Archer] [EQU $RACE Kuta] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Archer] [EQU $RACE Android] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Bard] [EQU $RACE Human] ]
+R:0:0xA8/0x80
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Elf] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Bard] [EQU $RACE Elf] ]
+R:0:0xA8/0x82
+?:[AND [EQU $CLASS Bard] [EQU $RACE Hobbit] ]
+R:0:0xA8/0x83
+?:[AND [EQU $CLASS Bard] [EQU $RACE Gnome] ]
+R:0:0xA8/0x84
+?:[AND [EQU $CLASS Bard] [EQU $RACE Dwarf] ]
+R:0:0xA8/0x85
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Orc] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Troll] ]
+R:0:0xA8/0x87
+?:[AND [EQU $CLASS Bard] [EQU $RACE Amberite] ]
+R:0:0xA8/0x88
+?:[AND [EQU $CLASS Bard] [EQU $RACE High-Elf] ]
+R:0:0xA8/0x89
+?:[AND [EQU $CLASS Bard] [EQU $RACE Barbarian] ]
+R:0:0xA8/0x8A
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Ogre] ]
+R:0:0xA8/0x8B
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Giant] ]
+R:0:0xA8/0x8C
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Titan] ]
+R:0:0xA8/0x8D
+?:[AND [EQU $CLASS Bard] [EQU $RACE Cyclops] ]
+R:0:0xA8/0x8E
+?:[AND [EQU $CLASS Bard] [EQU $RACE Yeek] ]
+R:0:0xA8/0x8F
+?:[AND [EQU $CLASS Bard] [EQU $RACE Klackon] ]
+R:0:0xA8/0x90
+?:[AND [EQU $CLASS Bard] [EQU $RACE Kobold] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Bard] [EQU $RACE Nibelung] ]
+R:0:0xA8/0x92
+?:[AND [EQU $CLASS Bard] [EQU $RACE Dark-Elf] ]
+R:0:0xA8/0x93
+?:[AND [EQU $CLASS Bard] [EQU $RACE Draconian] ]
+R:0:0xA8/0x94
+?:[AND [EQU $CLASS Bard] [EQU $RACE Mindflayer] ]
+R:0:0xA8/0x95
+?:[AND [EQU $CLASS Bard] [EQU $RACE Imp] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Bard] [EQU $RACE Golem] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Bard] [EQU $RACE Skeleton] ]
+R:0:0xA8/0x98
+?:[AND [EQU $CLASS Bard] [EQU $RACE Zombie] ]
+R:0:0xA8/0x99
+?:[AND [EQU $CLASS Bard] [EQU $RACE Vampire] ]
+R:0:0xA8/0x9A
+?:[AND [EQU $CLASS Bard] [EQU $RACE Spectre] ]
+R:0:0xA8/0x9B
+?:[AND [EQU $CLASS Bard] [EQU $RACE Sprite] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Bard] [EQU $RACE Beastman] ]
+R:0:0xA8/0x9D
+?:[AND [EQU $CLASS Bard] [EQU $RACE Ent] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Bard] [EQU $RACE Archon] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Bard] [EQU $RACE Balrog] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Bard] [EQU $RACE Dunadan] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Bard] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Bard] [EQU $RACE Kuta] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Bard] [EQU $RACE Android] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Human] ]
+R:0:0xAB/0x80
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Elf] ]
+R:0:0xAB/0x82
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAB/0x83
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Gnome] ]
+R:0:0xAB/0x84
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAB/0x85
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAB/0x87
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Amberite] ]
+R:0:0xAB/0x88
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAB/0x89
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAB/0x8A
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAB/0x8B
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAB/0x8C
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAB/0x8D
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAB/0x8E
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Yeek] ]
+R:0:0xAB/0x8F
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Klackon] ]
+R:0:0xAB/0x90
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Kobold] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAB/0x92
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAB/0x93
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Draconian] ]
+R:0:0xAB/0x94
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAB/0x95
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Imp] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Golem] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAB/0x98
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Zombie] ]
+R:0:0xAB/0x99
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Vampire] ]
+R:0:0xAB/0x9A
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Spectre] ]
+R:0:0xAB/0x9B
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Sprite] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Beastman] ]
+R:0:0xAB/0x9D
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Ent] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Archon] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Balrog] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Kuta] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Android] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Samurai] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Human] ]
+R:0:0xA4/0x80
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Elf] ]
+R:0:0xA4/0x81
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Elf] ]
+R:0:0xA4/0x82
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Hobbit] ]
+R:0:0xA4/0x83
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Gnome] ]
+R:0:0xA4/0x84
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Dwarf] ]
+R:0:0xA4/0x85
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Orc] ]
+R:0:0xA4/0x86
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Troll] ]
+R:0:0xA4/0x87
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Amberite] ]
+R:0:0xA4/0x88
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE High-Elf] ]
+R:0:0xA4/0x89
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Barbarian] ]
+R:0:0xA4/0x8A
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Ogre] ]
+R:0:0xA4/0x8B
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Giant] ]
+R:0:0xA4/0x8C
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Titan] ]
+R:0:0xA4/0x8D
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Cyclops] ]
+R:0:0xA4/0x8E
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Yeek] ]
+R:0:0xA4/0x8F
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Klackon] ]
+R:0:0xA4/0x90
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Kobold] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Nibelung] ]
+R:0:0xA4/0x92
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Dark-Elf] ]
+R:0:0xA4/0x93
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Draconian] ]
+R:0:0xA4/0x94
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Mindflayer] ]
+R:0:0xA4/0x95
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Imp] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Golem] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Skeleton] ]
+R:0:0xA4/0x98
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Zombie] ]
+R:0:0xA4/0x99
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Vampire] ]
+R:0:0xA4/0x9A
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Spectre] ]
+R:0:0xA4/0x9B
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Sprite] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Beastman] ]
+R:0:0xA4/0x9D
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Ent] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Archon] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Balrog] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Dunadan] ]
+R:0:0xA4/0x81
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA4/0x86
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Kuta] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Android] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Human] ]
+R:0:0xAB/0x80
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Elf] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Elf] ]
+R:0:0xAB/0x82
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Hobbit] ]
+R:0:0xAB/0x83
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Gnome] ]
+R:0:0xAB/0x84
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Dwarf] ]
+R:0:0xAB/0x85
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Orc] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Troll] ]
+R:0:0xAB/0x87
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Amberite] ]
+R:0:0xAB/0x88
+?:[AND [EQU $CLASS Berserker] [EQU $RACE High-Elf] ]
+R:0:0xAB/0x89
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Barbarian] ]
+R:0:0xAB/0x8A
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Ogre] ]
+R:0:0xAB/0x8B
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Giant] ]
+R:0:0xAB/0x8C
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Titan] ]
+R:0:0xAB/0x8D
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Cyclops] ]
+R:0:0xAB/0x8E
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Yeek] ]
+R:0:0xAB/0x8F
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Klackon] ]
+R:0:0xAB/0x90
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Kobold] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Nibelung] ]
+R:0:0xAB/0x92
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Dark-Elf] ]
+R:0:0xAB/0x93
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Draconian] ]
+R:0:0xAB/0x94
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Mindflayer] ]
+R:0:0xAB/0x95
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Imp] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Golem] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Skeleton] ]
+R:0:0xAB/0x98
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Zombie] ]
+R:0:0xAB/0x99
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Vampire] ]
+R:0:0xAB/0x9A
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Spectre] ]
+R:0:0xAB/0x9B
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Sprite] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Beastman] ]
+R:0:0xAB/0x9D
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Ent] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Archon] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Balrog] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Dunadan] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Kuta] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Android] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Ninja] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+
 
+### old preference
+#
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Human] ]
+#R:0:0x8C/0x80
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x81
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Elf] ]
+#R:0:0x8C/0x82
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Hobbit] ]
+#R:0:0x8C/0x83
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Gnome] ]
+#R:0:0x8C/0x84
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Dwarf] ]
+#R:0:0x8C/0x85
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Orc] ]
+#R:0:0x8C/0x86
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Troll] ]
+#R:0:0x8C/0x87
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Dunadan] ]
+#R:0:0x8C/0x88
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE High-Elf] ]
+#R:0:0x8C/0x89
+#
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Human] ]
+#R:0:0x8C/0x8A
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x8B
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Elf] ]
+#R:0:0x8C/0x8C
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Hobbit] ]
+#R:0:0x8C/0x8D
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Gnome] ]
+#R:0:0x8C/0x8E
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Dwarf] ]
+#R:0:0x8C/0x8F
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Orc] ]
+#R:0:0x8C/0x90
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Troll] ]
+#R:0:0x8C/0x91
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Dunadan] ]
+#R:0:0x8C/0x92
+#?:[AND [EQU $CLASS Mage] [EQU $RACE High-Elf] ]
+#R:0:0x8C/0x93
+#
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Human] ]
+#R:0:0x8C/0x94
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x95
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Elf] ]
+#R:0:0x8C/0x96
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Hobbit] ]
+#R:0:0x8C/0x97
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Gnome] ]
+#R:0:0x8C/0x98
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Dwarf] ]
+#R:0:0x8C/0x99
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Orc] ]
+#R:0:0x8C/0x9A
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Troll] ]
+#R:0:0x8C/0x9B
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Dunadan] ]
+#R:0:0x8C/0x9C
+#?:[AND [EQU $CLASS Priest] [EQU $RACE High-Elf] ]
+#R:0:0x8C/0x9D
+#
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Human] ]
+#R:0:0x8C/0x9E
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x9F
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Elf] ]
+#R:0:0x8D/0x80
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Hobbit] ]
+#R:0:0x8D/0x81
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Gnome] ]
+#R:0:0x8D/0x82
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Dwarf] ]
+#R:0:0x8D/0x83
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Orc] ]
+#R:0:0x8D/0x84
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Troll] ]
+#R:0:0x8D/0x85
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Dunadan] ]
+#R:0:0x8D/0x86
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE High-Elf] ]
+#R:0:0x8D/0x87
+#
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Human] ]
+#R:0:0x8D/0x88
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Elf] ]
+#R:0:0x8D/0x89
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Elf] ]
+#R:0:0x8D/0x8A
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Hobbit] ]
+#R:0:0x8D/0x8B
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Gnome] ]
+#R:0:0x8D/0x8C
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Dwarf] ]
+#R:0:0x8D/0x8D
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Orc] ]
+#R:0:0x8D/0x8E
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Troll] ]
+#R:0:0x8D/0x8F
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Dunadan] ]
+#R:0:0x8D/0x90
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE High-Elf] ]
+#R:0:0x8D/0x91
+#
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Human] ]
+#R:0:0x8D/0x92
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Elf] ]
+#R:0:0x8D/0x93
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Elf] ]
+#R:0:0x8D/0x94
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Hobbit] ]
+#R:0:0x8D/0x95
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Gnome] ]
+#R:0:0x8D/0x96
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Dwarf] ]
+#R:0:0x8D/0x97
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Orc] ]
+#R:0:0x8D/0x98
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Troll] ]
+#R:0:0x8D/0x99
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Dunadan] ]
+#R:0:0x8D/0x9A
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE High-Elf] ]
+#R:0:0x8D/0x9B
index ebea4c8..eb3a7f3 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # sound.cfg
 #
 # Configuration file for the Angband sound events
index a1e26e5..120ffd4 100644 (file)
@@ -98,8 +98,8 @@ keyset, and by pushing 'x' in the Rogue-like keyset.
               b  j  n
 
   5/, Stay still
-  <   Go up staircase
-  >   Go down staircase
+  <   Go up staircase or Enter global map mode in the wilderness.
+  >   Go down staircase or return from global map mode in the wilderness
   Shift+direction   run
   Ctrl+direction   attack, open, close, or dig
 
@@ -158,22 +158,32 @@ Below, only the new features in Hengband are explained.
   Then, type these alphabet letter in 'm' command to cast from the spellbook.
 
 - You can inscribe on *identified* items with "%" or "%all".
-  Then, "%" or "%all" is automatically replaced by strings which describe the item's
-  abilities. 
-  Example:  You inscribe with "%all" on a pair of gauntlets of power which provide 
-  resistance to fire. The description will look like {St;Fi} which means 
-  bonus to Strength and resistance to fire.
-  If you inscribe it with "%", its description will look like {Fi} which means
-  its random added ability is resistance to fire.
+  Then, "%" or "%all" is automatically replaced by strings which describe the 
+  item's abilities. 
+  Example:  You inscribe with "%all" on a pair of gauntlets of power which 
+  provide resistance to fire. The description will look like {St;Fi} which 
+  means bonus to Strength and resistance to fire.
+  If you inscribe it with "%", its description will look like {Fi} which 
+  means its random added ability is resistance to fire.
 
 
----- Auto pickup
+---- Auto pickup/destroy
 
-Hengband offers a very powerful auto-pickup/auto-destroy system which you may customize.  Please read the file "autopick_eng.txt".
+Hengband offers two different methods of auto-pickup/destroy.
+- Powerful method
+  Hengband offers a very powerful auto-pickup/auto-destroy system 
+  which you may customize.  Please read the file "autopick_eng.txt".
+
+- Easy method
+  Since the powerful method is slightly difficult to use 
+  effectively, there is another very easy option.  you can turn on 
+  the destroy_items option and/or the always_pickup option to use 
+  this method.  These options are located in (6) Easy Auto-Destroyer 
+  Options and (1) Input Options in the Set options ('=') command.
 
 
 ------ Play Record
-Play record will be written to a file named 'playrec-(character's name).txt' 
+Play record will be written to a file named 'playrec-<character's name>.txt' 
 in the same directory as your user preference file.  It is in ~/.angband/
 Hengband/ for UNIX, or hengband/lib/user/ for other OS.
 '|' command displays play record in the game.
index 44f3931..805462d 100644 (file)
@@ -41,7 +41,7 @@ ANGBAND MENU
                }
 
                MENUITEM SEPARATOR
-
+/*
                POPUP "Bizarre Display"
                {
                        MENUITEM "Term-0 window", 230
@@ -53,7 +53,7 @@ ANGBAND MENU
                        MENUITEM "Term-6 window", 236
                        MENUITEM "Term-7 window", 237
                }
-
+*/
                POPUP "Increase Tile Width"
                {
                        MENUITEM "Term-0 window", 240
@@ -113,16 +113,17 @@ ANGBAND MENU
                }
 
                MENUITEM "&Sound", 410
-               MENUITEM SEPARATOR
-               MENUITEM "Low Priority", 420
-               MENUITEM "Activate Screensaver", 430
-               MENUITEM "&Map", 440
+               MENUITEM "&Back ground pict", 440
+               MENUITEM "Choose BG pict", 441
+               MENUITEM "&HTML dump", 450
        }
 
+/*
        POPUP "&Help"
        {
                MENUITEM "&Contents", 901
        }
+*/
 }
 
 ANGBAND ICON "angband.ico"
index f1ef0fb..472c04e 100644 (file)
@@ -1651,14 +1651,14 @@ bool create_artifact(object_type *o_ptr, bool a_scroll)
                while ((o_ptr->to_d+o_ptr->to_h) > 20)
                {
                        if (one_in_(o_ptr->to_d) && one_in_(o_ptr->to_h)) break;
-                       o_ptr->to_d -= rand_int(3);
-                       o_ptr->to_h -= rand_int(3);
+                       o_ptr->to_d -= (s16b)rand_int(3);
+                       o_ptr->to_h -= (s16b)rand_int(3);
                }
                while ((o_ptr->to_d+o_ptr->to_h) > 10)
                {
                        if (one_in_(o_ptr->to_d) || one_in_(o_ptr->to_h)) break;
-                       o_ptr->to_d -= rand_int(3);
-                       o_ptr->to_h -= rand_int(3);
+                       o_ptr->to_d -= (s16b)rand_int(3);
+                       o_ptr->to_h -= (s16b)rand_int(3);
                }
        }
 
@@ -2299,7 +2299,7 @@ bool activate_random_artifact(object_type * o_ptr)
                        bool pet = (randint(3) == 1);
                        bool group = !(pet && (plev < 50));
 
-                       if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_ELEMENTAL, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_ELEMENTAL, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
 #ifdef JP
                                msg_print("¥¨¥ì¥á¥ó¥¿¥ë¤¬¸½¤ì¤¿...");
@@ -2333,7 +2333,7 @@ bool activate_random_artifact(object_type * o_ptr)
                        bool pet = (randint(3) == 1);
                        bool group = !(pet && (plev < 50));
 
-                       if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
 #ifdef JP
                                msg_print("ⲫ¤Î°­½­¤¬½¼Ëþ¤·¤¿¡£");
@@ -2381,7 +2381,7 @@ bool activate_random_artifact(object_type * o_ptr)
                        }
 
                        if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), type,
-                                           group, FALSE, pet, unique_okay, !pet))
+                                           group, FALSE, pet, unique_okay, (bool)(!pet)))
                        {
 #ifdef JP
                                msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤­»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½­¤ò±¿¤ó¤Ç¤¤¤ë...");
index cfaed81..30143ff 100644 (file)
@@ -1020,7 +1020,7 @@ static hist_type bg[] =
        {"¤¢¤Ê¤¿¤ÏÇöÃ㿧¤ÎÆ·¡¢",                    70, 109, 110, 50},
        {"¤¢¤Ê¤¿¤ÏÎ理ÎÆ·¡¢",                    80, 109, 110, 50},
        {"¤¢¤Ê¤¿¤ÏÀĤ¤Æ·¡¢",                     90, 109, 110, 50},
-       {"¤¢¤Ê¤¿¤ÏøÀÄ¿§¤ÎÆ·¡¢",               100, 109, 110, 50}, /*tansei.cc.u-tokyo¤ÎͳÍè*/
+       {"¤¢¤Ê¤¿¤ÏøÀÄ¿§¤ÎÆ·¡¢",               100, 109, 110, 50}, /*tansei.cc.u-tokyo¤ÎͳÍè */
 
        {"¤Ê¤á¤é¤«¤Ê",                        70, 110, 111, 50},
        {"ÇÈÂǤä¿",                            90, 110, 111, 50},
@@ -1189,7 +1189,7 @@ static hist_type bg[] =
        {"¥Ë¥¯¥·¡¼¤Ç¤·¤¿¡£", 30, 125, 126, 25 },
        {"¿¹¤ÎÍÅÀº¤Ç¤·¤¿¡£", 75, 125, 126, 50 },
        {"¿¹¤ÎÀºÎî¤Ç¤·¤¿¡£", 90, 125, 126, 75 },
-       {"ÍÅÀº¤Îµ®Â²¤Ç¤·¤¿¡£", 100, 125, 126, 85 }, /*nuke me ¥«¥¿¥«¥Ê¤Î¤Û¤¦¤¬¤¤¤¤¤«¤â*/
+       {"ÍÅÀº¤Îµ®Â²¤Ç¤·¤¿¡£", 100, 125, 126, 85 }, /*nuke me ¥«¥¿¥«¥Ê¤Î¤Û¤¦¤¬¤¤¤¤¤«¤â */
 #else
        {"Your parents were ", 100, 124, 125, 50 },
 
@@ -2577,7 +2577,7 @@ static void get_extra(void)
 
        /* Initialize arena and rewards information -KMW- */
        p_ptr->arena_number = 0;
-       p_ptr->inside_arena = 0;
+       p_ptr->inside_arena = FALSE;
        p_ptr->inside_quest = 0;
        p_ptr->leftbldg = FALSE;
        for (i = 0; i < MAX_MANE; i++)
@@ -3158,6 +3158,7 @@ static void player_wipe(void)
 
        /* Assume no cheating */
        noscore = 0;
+        wizard = FALSE;
 
        /* Not waiting to report score */
        wait_report_score = FALSE;
@@ -4680,34 +4681,26 @@ do_cmd_options_aux(6, "
        /* Heino Vander Sanden and Jimmy De Laet */
 
        /* Extra info */
-       Term_putstr(5, 14, -1, TERM_WHITE,
 #ifdef JP
+       Term_putstr(5, 14, -1, TERM_WHITE,
 "ɬ¿Ü¤Î¥¯¥¨¥¹¥È(¥ª¥Ù¥í¥óµÚ¤Óº®Æ٤Υµ¡¼¥Ú¥ó¥È)¤Ë²Ã¤¨¤Æ¡¢ÄɲäΥ¯¥¨¥¹¥È¤Î");
-#else
-               "You can enter the number of quests you'd like to perform in addition");
-#endif
-
        Term_putstr(5, 15, -1, TERM_WHITE,
-#ifdef JP
 "¿ô¤òÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£");
-#else
-               "to the two obligatory ones ( Oberon and the Serpent of Chaos )");
-#endif
-
        Term_putstr(5, 17, -1, TERM_WHITE,
-#ifdef JP
 "Äɲ寥¨¥¹¥È¤ò¹Ô¤Ê¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï '0'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£");
-#else
-               "In case you do not want any additional quests, just enter 0");
-#endif
        Term_putstr(5, 18, -1, TERM_WHITE,
-#ifdef JP
-       "¥é¥ó¥À¥à¤Ë·èÄꤹ¤ë¤Ë¤Ï'*'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£");
+"¥é¥ó¥À¥à¤Ë·èÄꤹ¤ë¤Ë¤Ï'*'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£");
 #else
-       "If you want a random number of random quests, just enter *");
+       Term_putstr(5, 14, -1, TERM_WHITE,
+                   "You can enter the number of quests you'd like to perform in addition");
+       Term_putstr(5, 15, -1, TERM_WHITE,
+                   "to the two obligatory ones ( Oberon and the Serpent of Chaos )");
+       Term_putstr(5, 17, -1, TERM_WHITE,
+                   "In case you do not want any additional quests, just enter 0");
+       Term_putstr(5, 18, -1, TERM_WHITE,
+                   "If you want a random number of random quests, just enter *");
 #endif
 
-
        /* Ask the number of additional quests */
        while (TRUE)
        {
@@ -4825,6 +4818,21 @@ put_str(format("
        /* Clear */
        clear_from(14);
 
+       /* Reset turn; before auto-roll and after choosing race */
+       if ((p_ptr->prace == RACE_VAMPIRE) ||
+           (p_ptr->prace == RACE_SKELETON) ||
+           (p_ptr->prace == RACE_ZOMBIE) ||
+           (p_ptr->prace == RACE_SPECTRE))
+       {
+               /* Undead start just after midnight */
+               turn = (60L * TOWN_DAWN) / 4 + 1;
+       }
+       else
+       {
+               turn = 1;
+       }
+       dungeon_turn = 1;
+
 
        /*** Generate ***/
 
@@ -5214,10 +5222,7 @@ void player_birth(void)
        int i, j;
        char buf[80];
 
-       playtime = 0;
-
-       /* Reset turn */
-       dungeon_turn = 1;
+        playtime = 0;
 
        /* Create a new character */
        while (1)
@@ -5229,21 +5234,6 @@ void player_birth(void)
                if (player_birth_aux()) break;
        }
 
-
-       /* Hack -- enter the world */
-       if ((p_ptr->prace == RACE_VAMPIRE) ||
-           (p_ptr->prace == RACE_SKELETON) ||
-           (p_ptr->prace == RACE_ZOMBIE) ||
-           (p_ptr->prace == RACE_SPECTRE))
-       {
-               /* Undead start just after midnight */
-               turn = (60L * TOWN_DAWN) / 4 + 1;
-       }
-       else
-       {
-               turn = 1;
-       }
-
        /* Note player birth in the message recall */
        message_add(" ");
        message_add("  ");
index 4ad04b6..169bfdd 100644 (file)
@@ -2144,7 +2144,11 @@ c_put_str(TERM_YELLOW, "Wanted monsters", 6, 10);
                sprintf(buf,"%-40s ---- ",r_name + r_ptr->name);
                prt(buf, y+7, 10);
                if (kubi_r_idx[i] > 10000)
+#ifdef JP
                        c_put_str(TERM_RED,"ºÑ", y+7, 56);
+#else
+                       c_put_str(TERM_RED,"done", y+7, 56);
+#endif
                else
                {
                        sprintf(buf,"$%d", 300 * (r_ptr->level + 1));
@@ -4406,7 +4410,7 @@ msg_print("
                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                {
                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                       quest[leaving_quest].complev = p_ptr->lev;
+                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                        {
                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
index 6bcd343..2382d6b 100644 (file)
@@ -11,7 +11,7 @@
  * by Robert Ruehlmann (rr9@angband.org)
  */
 
-static int display_autopick;
+static byte display_autopick;
 static int match_autopick;
 static object_type *autopick_obj;
 
@@ -865,7 +865,7 @@ void map_info(int y, int x, byte *ap, char *cp)
 
        s16b this_o_idx, next_o_idx = 0;
 
-       int feat;
+       byte feat;
 
        byte a;
        byte c;
@@ -1288,13 +1288,25 @@ void map_info(int y, int x, byte *ap, char *cp)
                /* Memorized objects */
                if (o_ptr->marked)
                {
-                       if(display_autopick == 1){
+                       if (display_autopick)
+                       {
+                               byte act;
+
                                match_autopick = is_autopick(o_ptr);
-                               if(match_autopick == -1) continue;
-                               else if (((autopick_action[match_autopick] == DO_AUTOPICK) && display_pick) || ((autopick_action[match_autopick] == DONT_AUTOPICK) && display_nopick) || ((autopick_action[match_autopick] == DO_AUTODESTROY) && display_destroy))
+                               if(match_autopick == -1)
+                                       continue;
+
+                               act = autopick_action[match_autopick];
+
+                               if ((act & DO_DISPLAY) && (act & display_autopick))
+                               {
                                        autopick_obj = o_ptr;
+                               }
                                else
-                               {match_autopick = -1; continue;}
+                               {
+                                       match_autopick = -1;
+                                       continue;
+                               }
                        }
                        /* Normal char */
                        (*cp) = object_char(o_ptr);
@@ -1312,7 +1324,7 @@ void map_info(int y, int x, byte *ap, char *cp)
 
 
        /* Handle monsters */
-       if (c_ptr->m_idx && display_autopick==0 )
+       if (c_ptr->m_idx && display_autopick == 0 )
        {
                monster_type *m_ptr = &m_list[c_ptr->m_idx];
 
@@ -1472,16 +1484,7 @@ void map_info(int y, int x, byte *ap, char *cp)
 
                if (!streq(ANGBAND_GRAF, "new"))
                {
-                       if (!streq(ANGBAND_SYS,"ibm"))
-                       {
-
-                               if (use_graphics && player_symbols)
-                               {
-                                       a = BMP_FIRST_PC_CLASS + p_ptr->pclass;
-                                       c = BMP_FIRST_PC_RACE  + p_ptr->prace;
-                               }
-                       }
-                       else
+                       if (streq(ANGBAND_SYS,"ibm"))
                        {
                                if (use_graphics && player_symbols)
                                {
@@ -2251,20 +2254,21 @@ static cptr simplify_list[][2] =
        {"¤ÎËâË¡½ñ", ""},
        {NULL, NULL}
 #else
-       {"Ring of ",   "="},
-       {"Amulet of ", "\""},
-       {"Scroll of ", "?"},
-       {"Wand of "  , "-"},
-       {"Rod of "   , "-"},
-       {"Staff of " , "_"},
-       {"Potion of ", "!"},
+       {"^Ring of ",   "="},
+       {"^Amulet of ", "\""},
+       {"^Scroll of ", "?"},
+       {"^Scroll titled ", "?"},
+       {"^Wand of "  , "-"},
+       {"^Rod of "   , "-"},
+       {"^Staff of " , "_"},
+       {"^Potion of ", "!"},
        {" Spellbook ",""},
-       {"Book of ",   ""},
+       {"^Book of ",   ""},
        {" Magic [",   "["},
        {" Book [",    "["},
        {" Arts [",    "["},
-       {"Set of ",    ""},
-       {"Pair of ",   ""},
+       {"^Set of ",    ""},
+       {"^Pair of ",   ""},
        {NULL, NULL}
 #endif
 };
@@ -2283,6 +2287,15 @@ static void display_shortened_item_name(object_type *o_ptr, int y)
                for (i = 0; simplify_list[i][1]; i++)
                {
                        cptr org_w = simplify_list[i][0];
+
+                       if (*org_w == '^')
+                       {
+                               if (c == buf)
+                                       org_w++;
+                               else
+                                       continue;
+                       }
+
                        if (!strncmp(c, org_w, strlen(org_w)))
                        {
                                char *s = c;
@@ -2484,6 +2497,10 @@ void display_map(int *cy, int *cx)
              autopick_obj = object_autopick_yx[y][x];
            }
          }
+
+         /* Clear old display */
+         Term_putstr(0, y, 12, 0, "            ");
+
          if (match_autopick != -1)
 #if 1
                  display_shortened_item_name(autopick_obj, y);
@@ -2535,41 +2552,55 @@ prt("
        /* Clear the screen */
        Term_clear();
 
-        display_autopick=0;
+        display_autopick = 0;
 
        /* Display the map */
        display_map(&cy, &cx);
 
        /* Wait for it */
-        if(max_autopick && !p_ptr->wild_mode && (display_pick || display_nopick || display_destroy))
+        if(max_autopick && !p_ptr->wild_mode)
        {
+               display_autopick = ITEM_DISPLAY;
+
+               while (1)
+               {
+                       int i;
+                       byte flag;
+
 #ifdef JP
-               put_str("²¿¤«¥­¡¼¤ò²¡¤¹¤È¥²¡¼¥à¤ËÌá¤ê¤Þ¤¹('M':¥¢¥¤¥Æ¥à¤Î¤ßɽ¼¨)", 23, 17);
+                       put_str("²¿¤«¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤('M':½¦¤¦ 'N':ÊüÃÖ 'D':M+D 'K':²õ¤¹¥¢¥¤¥Æ¥à¤òɽ¼¨)", 23, 1);
 #else
-               put_str("Hit M for display items, hit any other key to continue.", 23, 17);
+                       put_str(" Hit M, N(for ~), K(for !), or D(same as M+N) to display auto-picker items.", 23, 1);
 #endif
-               /* Hilite the player */
-               move_cursor(cy, cx);
-               
-               /* Get any key */
-               if( inkey()=='M')
-               { 
+
+                       /* Hilite the player */
+                       move_cursor(cy, cx);
+
+                       i = inkey();
+
+                       if ('M' == i)
+                               flag = DO_AUTOPICK;
+                       else if ('N' == i)
+                               flag = DONT_AUTOPICK;
+                       else if ('K' == i)
+                               flag = DO_AUTODESTROY;
+                       else if ('D' == i)
+                               flag = (DO_AUTOPICK | DONT_AUTOPICK);
+                       else
+                               break;
+
                        Term_fresh();
                        
+                       if (~display_autopick & flag)
+                               display_autopick |= flag;
+                       else
+                               display_autopick &= ~flag;
                        /* Display the map */
-                       display_autopick=1;
                        display_map(&cy, &cx);
-                       display_autopick=0;
-#ifdef JP
-                       put_str("²¿¤«¥­¡¼¤ò²¡¤¹¤È¥²¡¼¥à¤ËÌá¤ê¤Þ¤¹", 23, 30);
-#else
-                       put_str("Hit any key to continue", 23, 30);
-#endif
-                       /* Hilite the player */
-                       move_cursor(cy, cx);
-                       /* Get any key */
-                       inkey();
                }
+               
+               display_autopick = 0;
+
        }
        else
        {
@@ -3340,8 +3371,8 @@ void update_mon_lite(void)
                }
 
                /* Add to end of temp array */
-               temp_x[temp_n] = fx;
-               temp_y[temp_n] = fy;
+               temp_x[temp_n] = (byte)fx;
+               temp_y[temp_n] = (byte)fy;
                temp_n++;
        }
 
index e5b5e67..dcbaf71 100644 (file)
@@ -337,7 +337,7 @@ int connect_chuukei_server(char *prf_name)
        }
 
        ask.sin_family = AF_INET;
-       ask.sin_port = htons(server_port);
+       ask.sin_port = htons((unsigned short)server_port);
 
 #ifndef WINDOWS
        if ((sd=socket(PF_INET,SOCK_STREAM, 0)) < 0)
@@ -701,7 +701,7 @@ static int read_sock(void)
 
 
 #ifndef WINDOWS
-/* WinÈǤÎÃæÅÀ¤ÈÊɤÎƦÉå¤ò¥Ô¥ê¥ª¥É¤È¥·¥ã¡¼¥×¤Ë¤¹¤ë¡£*/
+/* WinÈǤÎÃæÅÀ¤ÈÊɤÎƦÉå¤ò¥Ô¥ê¥ª¥É¤È¥·¥ã¡¼¥×¤Ë¤¹¤ë¡£ */
 void win2unix(int col, char *buf)
 {
        char kabe;
@@ -778,7 +778,7 @@ static bool flush_ringbuf_client(void)
 #ifdef SJIS
                        euc2sjis(mesg);
 #endif
-                       (void)((*angband_term[0]->text_hook)(x, y, len, col, mesg));
+                       (void)((*angband_term[0]->text_hook)(x, y, len, (byte)col, mesg));
                        strncpy(&Term->scr->c[y][x], mesg, len);
                        for (i = x; i < x+len; i++)
                        {
@@ -792,7 +792,7 @@ static bool flush_ringbuf_client(void)
                                mesg[i] = mesg[0];
                        }
                        mesg[i] = '\0';
-                       (void)((*angband_term[0]->text_hook)(x, y, len, col, mesg));
+                       (void)((*angband_term[0]->text_hook)(x, y, len, (byte)col, mesg));
                        strncpy(&Term->scr->c[y][x], mesg, len);
                        for (i = x; i < x+len; i++)
                        {
@@ -801,7 +801,7 @@ static bool flush_ringbuf_client(void)
                        break;
 
                case 's': /* °ìʸ»ú */
-                       (void)((*angband_term[0]->text_hook)(x, y, 1, col, mesg));
+                       (void)((*angband_term[0]->text_hook)(x, y, 1, (byte)col, mesg));
                        strncpy(&Term->scr->c[y][x], mesg, 1);
                        Term->scr->a[y][x] = col;
                        break;
index 144bcee..9231ea3 100644 (file)
@@ -752,7 +752,7 @@ void py_pickup_aux(int o_idx)
                           (quest[i].k_idx == o_ptr->name1))
                {
                        quest[i].status = QUEST_STATUS_COMPLETED;
-                       quest[i].complev = p_ptr->lev;
+                       quest[i].complev = (byte)p_ptr->lev;
 #ifdef JP
                        msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
 #else
@@ -938,6 +938,12 @@ int is_autopick(object_type *o_ptr)
                /*** ¥¢¥¤¥Æ¥à¤Î¥«¥Æ¥´¥ê»ØÄêͽÌó¸ì ***/
                if (!strncmp(str, "¥¢¥¤¥Æ¥à",8)) len = 8;
                
+               else if (!strncmp(str, "¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È", 16)){
+                       if (object_known_p(o_ptr)
+                           && (artifact_p(o_ptr) || o_ptr->art_name))
+                               len = 16;
+               }
+
                else if (!strncmp(str, "Éð´ï", 4)){
                        switch( o_ptr->tval ){
                        case TV_BOW:
@@ -1364,7 +1370,7 @@ static void auto_pickup_items(cave_type *c_ptr)
                        o_ptr->inscription = inscribe_flags(o_ptr, autopick_insc[idx]);
 
                if (is_autopick2(o_ptr) ||
-                  (idx >= 0 && autopick_action[idx] == DO_AUTOPICK))
+                  (idx >= 0 && (autopick_action[idx] & DO_AUTOPICK)))
                {
                        disturb(0,0);
 
@@ -1385,7 +1391,7 @@ static void auto_pickup_items(cave_type *c_ptr)
                }
                
                else if ((idx == -1 && is_opt_confirm_destroy(o_ptr)) ||
-                        (!always_pickup && (idx != -1 && autopick_action[idx] == DO_AUTODESTROY)))
+                        (!always_pickup && (idx != -1 && (autopick_action[idx] & DO_AUTODESTROY))))
                {
                        disturb(0,0);
                        /* Describe the object (with {terrible/special}) */
@@ -1670,7 +1676,11 @@ static void hit_trap(bool break_trap)
                                if (autosave_l && (p_ptr->chp >= 0))
                                        do_cmd_save_game(TRUE);
 
+#ifdef JP
                                do_cmd_write_nikki(NIKKI_STAIR, 1, "Í¸Í¤ËÍî¤Á¤¿");
+#else
+                               do_cmd_write_nikki(NIKKI_STAIR, 1, "You have fallen through a trap door!");
+#endif
                                dun_level++;
 
                                /* Leaving */
@@ -2340,7 +2350,7 @@ static void natural_attack(s16b m_idx, int attack, bool *fear, bool *mdeath)
 
 
                k = damroll(ddd, dss);
-               k = critical_norm(n_weight, bonus, k, bonus, 0);
+               k = critical_norm(n_weight, bonus, k, (s16b)bonus, 0);
 
                /* Apply the player damage bonuses */
                k += p_ptr->to_d_m;
@@ -3040,7 +3050,7 @@ msg_format("%s 
                        }
 
                        /* Modify the damage */
-                       k = mon_damage_mod(m_ptr, k, (((o_ptr->tval == TV_POLEARM) && (o_ptr->sval == SV_DEATH_SCYTHE)) || ((p_ptr->pclass == CLASS_BERSERKER) && one_in_(2))));
+                       k = mon_damage_mod(m_ptr, k, (bool)(((o_ptr->tval == TV_POLEARM) && (o_ptr->sval == SV_DEATH_SCYTHE)) || ((p_ptr->pclass == CLASS_BERSERKER) && one_in_(2))));
                        if (((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DOKUBARI)) || (mode == HISSATSU_KYUSHO))
                        {
                                if ((randint(randint(r_ptr->level/7)+5) == 1) && !(r_ptr->flags1 & RF1_UNIQUE) && !(r_ptr->flags7 & RF7_UNIQUE2))
@@ -3560,7 +3570,7 @@ bool py_attack(int y, int x, int mode)
        monster_desc(m_name, m_ptr, 0);
 
        /* Auto-Recall if possible and visible */
-       if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+       if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
        /* Track a new monster */
        if (m_ptr->ml) health_track(c_ptr->m_idx);
@@ -4117,7 +4127,7 @@ void move_player(int dir, int do_pickup, bool break_trap)
                        monster_desc(m_name, m_ptr, 0);
 
                        /* Auto-Recall if possible and visible */
-                       if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                       if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
                        /* Track a new monster */
                        if (m_ptr->ml) health_track(c_ptr->m_idx);
@@ -4503,8 +4513,8 @@ msg_format("%s
                        msg_format("You push past %s.", m_name);
 #endif
 
-                       m_ptr->fy = (byte)py;
-                       m_ptr->fx = (byte)px;
+                       m_ptr->fy = py;
+                       m_ptr->fx = px;
                        cave[py][px].m_idx = c_ptr->m_idx;
                        c_ptr->m_idx = 0;
                        update_mon(cave[py][px].m_idx, TRUE);
@@ -4643,7 +4653,7 @@ msg_format("%s
 
                        energy_use = 0;
                        /* Hack -- Enter store */
-                       command_new = '_';
+                       command_new = 253;
                }
 
                /* Handle "building doors" -KMW- */
@@ -4675,7 +4685,7 @@ msg_format("%s
                        {
                                if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, p_ptr->inside_quest, NULL);
                                quest[p_ptr->inside_quest].status = QUEST_STATUS_COMPLETED;
-                               quest[p_ptr->inside_quest].complev = p_ptr->lev;
+                               quest[p_ptr->inside_quest].complev = (byte)p_ptr->lev;
 #ifdef JP
                                msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
 #else
@@ -4697,7 +4707,7 @@ msg_format("%s
                                else if (record_fix_quest)
                                        do_cmd_write_nikki(NIKKI_FIX_QUEST_F, leaving_quest, NULL);
                                quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                               quest[leaving_quest].complev = p_ptr->lev;
+                               quest[leaving_quest].complev = (byte)p_ptr->lev;
                                if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                                        r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
                        }
index facb81c..cfb5cf2 100644 (file)
@@ -53,7 +53,7 @@ void do_cmd_go_up(void)
                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                {
                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                       quest[leaving_quest].complev = p_ptr->lev;
+                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                        {
                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
@@ -135,7 +135,7 @@ if (get_check("
                                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                                {
                                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                                       quest[leaving_quest].complev = p_ptr->lev;
+                                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                                        {
                                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
@@ -266,7 +266,7 @@ void do_cmd_go_down(void)
                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                {
                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                       quest[leaving_quest].complev = p_ptr->lev;
+                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                        {
                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
@@ -337,7 +337,7 @@ void do_cmd_go_down(void)
                        /* Save old player position */
                        p_ptr->oldpx = px;
                        p_ptr->oldpy = py;
-                       dungeon_type = c_ptr->special;
+                       dungeon_type = (byte)c_ptr->special;
                }
                else
                {
@@ -3009,7 +3009,10 @@ void do_cmd_walk(int pickup)
         /* Hack again -- Is there a special encounter ??? */
        if(p_ptr->wild_mode && (cave[py][px].feat != FEAT_TOWN))
         {
-               if (((wilderness[py][px].level + 5) > (p_ptr->lev / 2)) && rand_int(120+p_ptr->lev*10 - wilderness[py][px].level+5) < (21-p_ptr->skill_stl))
+               int tmp = 120 + p_ptr->lev*10 - wilderness[py][px].level + 5;
+               if (tmp < 1) 
+                       tmp = 1;
+               if (((wilderness[py][px].level + 5) > (p_ptr->lev / 2)) && rand_int(tmp) < (21-p_ptr->skill_stl))
                {
                        /* Inform the player of his horrible fate :=) */
 #ifdef JP
@@ -3128,7 +3131,7 @@ void do_cmd_stay(int pickup)
 
                energy_use = 0;
                /* Hack -- enter store */
-               command_new = '_';
+               command_new = 253;
        }
 
        /* Hack -- enter a building if we are on one -KMW- */
@@ -3152,7 +3155,7 @@ void do_cmd_stay(int pickup)
                if (quest[q_index].type == QUEST_TYPE_FIND_EXIT)
                {
                        quest[q_index].status = QUEST_STATUS_COMPLETED;
-                       quest[q_index].complev = p_ptr->lev;
+                       quest[q_index].complev = (byte)p_ptr->lev;
 #ifdef JP
                        msg_print("¥¯¥¨¥¹¥È¤ò´°Î»¤·¤¿¡ª");
 #else
@@ -3170,7 +3173,7 @@ void do_cmd_stay(int pickup)
                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                {
                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                       quest[leaving_quest].complev = p_ptr->lev;
+                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                        {
                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
@@ -3643,59 +3646,8 @@ void do_cmd_fire_aux(int item, object_type *j_ptr)
        bonus = (p_ptr->to_h_b + o_ptr->to_h + j_ptr->to_h);
        chance = (p_ptr->skill_thb + ((weapon_exp[0][j_ptr->sval]-4000)/200 + bonus) * BTH_PLUS_ADJ);
 
-       /* Assume a base multiplier */
-       tmul = 1;
-
-       /* Analyze the launcher */
-       switch (j_ptr->sval)
-       {
-               /* Sling and ammo */
-               case SV_SLING:
-               {
-                       tmul = 2;
-                       energy_use = 8000;
-                       break;
-               }
-
-               /* Short Bow and Arrow */
-               case SV_SHORT_BOW:
-               {
-                       tmul = 2;
-                       energy_use = 10000;
-                       break;
-               }
-
-               /* Long Bow and Arrow */
-               case SV_LONG_BOW:
-               {
-                       tmul = 3;
-                       energy_use = 10000;
-                       break;
-               }
-
-               case SV_NAMAKE_BOW:
-               {
-                       tmul = 3;
-                       energy_use = 7777;
-                       break;
-               }
-
-               /* Light Crossbow and Bolt */
-               case SV_LIGHT_XBOW:
-               {
-                       tmul = 3;
-                       energy_use = 12000;
-                       break;
-               }
-
-               /* Heavy Crossbow and Bolt */
-               case SV_HEAVY_XBOW:
-               {
-                       tmul = 4;
-                       energy_use = 13333;
-                       break;
-               }
-       }
+       energy_use = bow_energy(j_ptr->sval);
+       tmul = bow_tmul(j_ptr->sval);
 
        /* Get extra "power" from "extra might" */
        if (p_ptr->xtra_might) tmul++;
@@ -3934,7 +3886,7 @@ note_dies = "
 
 
                                        /* Hack -- Track this monster race */
-                                       if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                                       if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
                                        /* Hack -- Track this monster */
                                        if (m_ptr->ml) health_track(c_ptr->m_idx);
@@ -4036,7 +3988,11 @@ note_dies = "
 
                if (!o_idx)
                  {
+#ifdef JP
                    msg_format("%s¤Ï¤É¤³¤«¤Ø¹Ô¤Ã¤¿¡£", o_name);
+#else
+                   msg_format("The %s have gone to somewhere.", o_name);
+#endif
                    if (q_ptr->name1)
                      {
                        a_info[j_ptr->name1].cur_num = 0;
@@ -4341,10 +4297,11 @@ bool do_cmd_throw_aux(int mult, bool boomerang, int shuriken)
        }
        
        /* Take a turn */
+       energy_use = 100;
+
+       /* Rogue and Ninja gets bonus */
        if ((p_ptr->pclass == CLASS_ROGUE) || (p_ptr->pclass == CLASS_NINJA))
-               energy_use = 100-p_ptr->lev;
-       else
-               energy_use = 100;
+               energy_use -= p_ptr->lev;
 
        /* Start at the player */
        y = py;
@@ -4496,7 +4453,7 @@ note_dies = "
 
 
                                        /* Hack -- Track this monster race */
-                                       if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                                       if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
                                        /* Hack -- Track this monster */
                                        if (m_ptr->ml) health_track(c_ptr->m_idx);
index 7b012fe..25b9370 100644 (file)
@@ -422,7 +422,7 @@ sprintf(dummy, "%s
                {
                        if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL);
                        quest[i].status = QUEST_STATUS_COMPLETED;
-                       quest[i].complev = p_ptr->lev;
+                       quest[i].complev = (byte)p_ptr->lev;
 #ifdef JP
 msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
 #else
@@ -2731,14 +2731,17 @@ void do_cmd_query_symbol(void)
                all = TRUE;
 #ifdef JP
                if (!get_string("̾Á°(±Ñ¸ì¤Î¾ì¹ç¾®Ê¸»ú¤Ç²Ä)",temp, 70))
-                       temp[0]=0;
-               else
-                       sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
 #else
                if (!get_string("Enter name:",temp, 70))
+#endif
+               {
                        temp[0]=0;
-               else
-                       sprintf(buf, "List of '%s'",temp);
+                       return;
+               }
+#ifdef JP
+               sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
+#else
+               sprintf(buf, "Monsters with a name \"%s\"",temp);
 #endif
        }
        else if (ident_info[i])
@@ -3042,14 +3045,17 @@ if (!get_com("
                all = TRUE;
 #ifdef JP
                if (!get_string("̾Á°(±Ñ¸ì¤Î¾ì¹ç¾®Ê¸»ú¤Ç²Ä)",temp, 70))
-                       temp[0]=0;
-               else
-                       sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
 #else
                if (!get_string("Enter name:",temp, 70))
+#endif
+               {
                        temp[0]=0;
-               else
-                       sprintf(buf, "List of '%s'",temp);
+                       return FALSE;
+               }
+#ifdef JP
+               sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
+#else
+               sprintf(buf, "List of '%s'",temp);
 #endif
        }
        else if (ident_info[i])
index f8c34db..7fe0145 100644 (file)
 
 #include "angband.h"
 
+
+/*
+ *  mark strings for auto dump
+ */
+static char auto_dump_header[] = "# vvvvvvv== %s ==vvvvvvv";
+static char auto_dump_footer[] = "# ^^^^^^^== %s ==^^^^^^^";
+
+/*
+ * Remove old lines automatically generated before.
+ */
+static void remove_auto_dump(cptr orig_file, cptr mark)
+{
+       FILE *tmp_fff, *orig_fff;
+
+       char tmp_file[1024];
+       char buf[1024];
+       bool between_mark = FALSE;
+       bool success = FALSE;
+       int line_num = 0;
+       long header_location = 0;
+       char header_mark_str[80];
+       char footer_mark_str[80];
+       size_t mark_len;
+
+       sprintf(header_mark_str, auto_dump_header, mark);
+       sprintf(footer_mark_str, auto_dump_footer, mark);
+
+       mark_len = strlen(footer_mark_str);
+
+       /* If original file is not exist, nothing to do */
+       orig_fff = my_fopen(orig_file, "r");
+       if (!orig_fff)
+       {
+               return;
+       }
+
+       /* Open a new file */
+       tmp_fff = my_fopen_temp(tmp_file, 1024);
+       if (!tmp_fff) {
+#ifdef JP
+           msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", tmp_file);
+#else
+           msg_format("Failed to create temporary file %s.", tmp_file);
+#endif
+           msg_print(NULL);
+           return;
+       }
+       
+       while (1)
+       {
+               if (my_fgets(orig_fff, buf, 1024))
+               {
+                       if (between_mark)
+                       {
+                               fseek(orig_fff, header_location, SEEK_SET);
+                               between_mark = FALSE;
+                               continue;
+                       }
+                       else
+                       {
+                               break;
+                       }
+               }
+
+               if (!between_mark)
+               {
+                       if (!strcmp(buf, header_mark_str))
+                       {
+                               header_location = ftell(orig_fff);
+                               line_num = 0;
+                               between_mark = TRUE;
+                               success = TRUE;
+                       }
+                       else
+                       {
+                               fprintf(tmp_fff, "%s\n", buf);
+                       }
+               }
+               else
+               {
+                       if (!strncmp(buf, footer_mark_str, mark_len))
+                       {
+                               int tmp;
+
+                               if (!sscanf(buf + mark_len, " (%d)", &tmp)
+                                   || tmp != line_num)
+                               {
+                                       fseek(orig_fff, header_location, SEEK_SET);
+                               }
+
+                               between_mark = FALSE;
+                       }
+                       else
+                       {
+                               line_num++;
+                       }
+               }
+       }
+       my_fclose(orig_fff);
+       my_fclose(tmp_fff);
+
+       if (success)
+       {
+               /* copy contents of temporally file */
+
+               tmp_fff = my_fopen(tmp_file, "r");
+               orig_fff = my_fopen(orig_file, "w");
+               
+               while (!my_fgets(tmp_fff, buf, 1024))
+                       fprintf(orig_fff, "%s\n", buf);
+               
+               my_fclose(orig_fff);
+               my_fclose(tmp_fff);
+       }
+       fd_kill(tmp_file);
+
+       return;
+}
+
+/*
+ *  Open file to append auto dump.
+ */
+static FILE *open_auto_dump(cptr buf, cptr mark, int *line)
+{
+       FILE *fff;
+
+       char header_mark_str[80];
+
+       sprintf(header_mark_str, auto_dump_header, mark);
+
+       /* Remove old macro dumps */
+       remove_auto_dump(buf, mark);
+
+       /* Append to the file */
+       fff = my_fopen(buf, "a");
+
+       /* Failure */
+       if (!fff) {
+#ifdef JP
+               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
+#else
+               msg_format("Failed to open %s.", buf);
+#endif
+               msg_print(NULL);
+               return NULL;
+       }
+
+       /* Start dumping */
+       fprintf(fff, "%s\n", header_mark_str);
+
+#ifdef JP
+       fprintf(fff, "# *·Ù¹ð!!* °Ê¹ß¤Î¹Ô¤Ï¼«Æ°À¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£\n");
+       fprintf(fff, "# *·Ù¹ð!!* ¸å¤Ç¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤Î¤ÇÊÔ½¸¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\n");
+#else
+       fprintf(fff, "# *Warning!!* The lines below are automatic dump.\n");
+       fprintf(fff, "# *Warning!!* Don't edit these! These lines will be deleted automaticaly.\n");
+#endif
+       *line = 2;
+
+       return fff;
+}
+
+/*
+ *  Append foot part and close auto dump.
+ */
+static void close_auto_dump(FILE *fff, cptr mark, int line_num)
+{
+       char footer_mark_str[80];
+
+       sprintf(footer_mark_str, auto_dump_footer, mark);
+
+       /* End of dumping */
+#ifdef JP
+       fprintf(fff, "# *·Ù¹ð!!* °Ê¾å¤Î¹Ô¤Ï¼«Æ°À¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£\n");
+       fprintf(fff, "# *·Ù¹ð!!* ¸å¤Ç¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤Î¤ÇÊÔ½¸¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\n");
+#else
+       fprintf(fff, "# *Warning!!* The lines above are automatic dump.\n");
+       fprintf(fff, "# *Warning!!* Don't edit these! These lines will be deleted automaticaly.\n");
+#endif
+       line_num += 2;
+
+       fprintf(fff, "%s (%d)\n", footer_mark_str, line_num);
+
+       my_fclose(fff);
+
+       return;
+}
+
+
+/*
+ *   Take note to the dialy.
+ */
+
 errr do_cmd_write_nikki(int type, int num, cptr note)
 {
        int day, hour, min;
@@ -994,7 +1187,7 @@ void do_cmd_messages(int num_now)
                        msg = (strlen(msg) >= q) ? (msg + q) : "";
 
                        /* Dump the messages, bottom to top */
-                       Term_putstr(0, 21-j, -1, (i+j < num_now ? TERM_WHITE : TERM_SLATE), msg);
+                       Term_putstr(0, 21-j, -1, (bool)(i+j < num_now ? TERM_WHITE : TERM_SLATE), msg);
 
                        /* Hilite "shower" */
                        if (shower[0])
@@ -1540,9 +1733,9 @@ void do_cmd_options_aux(int page, cptr info)
        Term_clear();
 
 #ifdef JP
-       if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¼«Æ°Ç˲õ¤ò»ÈÍѤ¹¤ë¤È¤­¤Î¤ßÍ­¸ú", 7, 6);
+       if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¼«Æ°Ç˲õ¤ò»ÈÍѤ¹¤ë¤È¤­¤Î¤ßÍ­¸ú", 4, 6);
 #else
-       if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "Following options will protect items from easy auto-destroyer.", 7, 3);
+       if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "Following options will protect items from easy auto-destroyer.", 4, 3);
 #endif
 
        /* Interact with the player */
@@ -1575,11 +1768,11 @@ void do_cmd_options_aux(int page, cptr info)
 #endif
 
                                option_info[opt[i]].o_text);
-                       if ((page == PAGE_AUTODESTROY) && i > 3) c_prt(a, buf, i + 5, 0);
+                       if ((page == PAGE_AUTODESTROY) && i > 0) c_prt(a, buf, i + 5, 0);
                        else c_prt(a, buf, i + 2, 0);
                }
 
-               if ((page == PAGE_AUTODESTROY) && (k > 3)) l = 3;
+               if ((page == PAGE_AUTODESTROY) && (k > 0)) l = 3;
                else l = 0;
                /* Hilite current option */
                move_cursor(k + 2 + l, 50);
@@ -1890,7 +2083,7 @@ void do_cmd_options(void)
                prt("(3) Game-Play Options", 6, 5);
                prt("(4) Disturbance Options", 7, 5);
                prt("(5) Efficiency Options", 8, 5);
-               prt("(6) Object Auto-Pick/Destroy Options", 9, 5);
+               prt("(6) Easy Auto-Destroyer Options", 9, 5);
                prt("(R) Play-record Options", 10, 5);
 
                /* Special choices */
@@ -2188,8 +2381,8 @@ void do_cmd_pickpref(void)
 #endif
        /* ¤¤¤Þ¤Þ¤Ç»È¤Ã¤Æ¤¤¤¿¥á¥â¥ê²òÊü */
        for( i = 0; i < max_autopick; i++){
-               free(autopick_name[i]);
-               free(autopick_insc[i]);
+               string_free(autopick_name[i]);
+               string_free(autopick_insc[i]);
        }
        max_autopick = 0;
 
@@ -2237,13 +2430,14 @@ void do_cmd_pickpref(void)
  */
 static errr macro_dump(cptr fname)
 {
-       int i;
+       static cptr mark = "Macro Dump";
+
+       int i, line_num;
 
        FILE *fff;
 
        char buf[1024];
 
-
        /* Build the filename */
        path_build(buf, 1024, ANGBAND_DIR_USER, fname);
 
@@ -2251,42 +2445,20 @@ static errr macro_dump(cptr fname)
        FILE_TYPE(FILE_TYPE_TEXT);
 
        /* Append to the file */
-       fff = my_fopen(buf, "a");
-
-       /* Failure */
-       if (!fff) {
-#ifdef JP
-               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
-               msg_format("Failed to open %s.", buf);
-#endif
-               msg_print(NULL);
-               return (-1);
-       }
-
-
-       /* Skip space */
-       fprintf(fff, "\n\n");
+       fff = open_auto_dump(buf, mark, &line_num);
+       if (!fff) return (-1);
 
        /* Start dumping */
 #ifdef JP
-       fprintf(fff, "# ¼«Æ°¥Þ¥¯¥í¥»¡¼¥Ö\n\n");
+       fprintf(fff, "\n# ¼«Æ°¥Þ¥¯¥í¥»¡¼¥Ö\n\n");
 #else
-       fprintf(fff, "# Automatic macro dump\n\n");
+       fprintf(fff, "\n# Automatic macro dump\n\n");
 #endif
-
+       line_num += 3;
 
        /* Dump them */
        for (i = 0; i < macro__num; i++)
        {
-               /* Start the macro */
-#ifdef JP
-       fprintf(fff, "# ¼«Æ°¥­¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
-#else
-               fprintf(fff, "# Macro '%d'\n\n", i);
-#endif
-
-
                /* Extract the action */
                ascii_to_text(buf, macro__act[i]);
 
@@ -2300,15 +2472,14 @@ static errr macro_dump(cptr fname)
                fprintf(fff, "P:%s\n", buf);
 
                /* End the macro */
-               fprintf(fff, "\n\n");
-       }
-
-       /* Start dumping */
-       fprintf(fff, "\n\n\n\n");
+               fprintf(fff, "\n");
 
+               /* count number of lines */
+               line_num += 3;
+       }
 
        /* Close */
-       my_fclose(fff);
+       close_auto_dump(fff, mark, line_num);
 
        /* Success */
        return (0);
@@ -2408,6 +2579,8 @@ static void do_cmd_macro_aux_keymap(char *buf)
  */
 static errr keymap_dump(cptr fname)
 {
+       static cptr mark = "Keymap Dump";
+       int line_num;
        int i;
 
        FILE *fff;
@@ -2417,7 +2590,6 @@ static errr keymap_dump(cptr fname)
 
        int mode;
 
-
        /* Roguelike */
        if (rogue_like_commands)
        {
@@ -2438,30 +2610,16 @@ static errr keymap_dump(cptr fname)
        FILE_TYPE(FILE_TYPE_TEXT);
 
        /* Append to the file */
-       fff = my_fopen(buf, "a");
-
-       /* Failure */
-       if (!fff) {
-#ifdef JP
-               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
-               msg_format("Failed to open %s.", buf);
-#endif
-               msg_print(NULL);
-               return (-1);
-       }
-
-
-       /* Skip space */
-       fprintf(fff, "\n\n");
+       fff = open_auto_dump(buf, mark, &line_num);
+       if (!fff) return -1;
 
        /* Start dumping */
 #ifdef JP
-       fprintf(fff, "# ¼«Æ°¥­¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
+       fprintf(fff, "\n# ¼«Æ°¥­¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
 #else
-       fprintf(fff, "# Automatic keymap dump\n\n");
+       fprintf(fff, "\n# Automatic keymap dump\n\n");
 #endif
-
+       line_num += 3;
 
        /* Dump them */
        for (i = 0; i < 256; i++)
@@ -2485,14 +2643,11 @@ static errr keymap_dump(cptr fname)
                /* Dump the macro */
                fprintf(fff, "A:%s\n", buf);
                fprintf(fff, "C:%d:%s\n", mode, key);
+               line_num += 2;
        }
 
-       /* Start dumping */
-       fprintf(fff, "\n\n\n");
-
-
        /* Close */
-       my_fclose(fff);
+       close_auto_dump(fff, mark, line_num);
 
        /* Success */
        return (0);
@@ -3208,6 +3363,9 @@ void do_cmd_visuals(void)
                /* Dump monster attr/chars */
                else if (i == '2')
                {
+                       static cptr mark = "Monster attr/chars";
+                       int line_num;
+
                        /* Prompt */
 #ifdef JP
                        prt("¥³¥Þ¥ó¥É: ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤·¤Þ¤¹", 15, 0);
@@ -3237,30 +3395,19 @@ void do_cmd_visuals(void)
                        safe_setuid_drop();
 
                        /* Append to the file */
-                       fff = my_fopen(buf, "a");
+                       fff = open_auto_dump(buf, mark, &line_num);
+                       if (!fff) continue;
 
                        /* Grab priv's */
                        safe_setuid_grab();
 
-                       /* Failure */
-                       if (!fff) {
-#ifdef JP
-                               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
-                               msg_format("Failed to open %s.", buf);
-#endif
-                               msg_print(NULL);
-                               continue;
-                       }
-
                        /* Start dumping */
-                       fprintf(fff, "\n\n");
 #ifdef JP
-                       fprintf(fff, "# ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
+                       fprintf(fff, "\n# ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
 #else
-                       fprintf(fff, "# Monster attr/char definitions\n\n");
+                       fprintf(fff, "\n# Monster attr/char definitions\n\n");
 #endif
-
+                       line_num += 3;
 
                        /* Dump monsters */
                        for (i = 0; i < max_r_idx; i++)
@@ -3272,18 +3419,16 @@ void do_cmd_visuals(void)
 
                                /* Dump a comment */
                                fprintf(fff, "# %s\n", (r_name + r_ptr->name));
-
+                               line_num++;
 
                                /* Dump the monster attr/char info */
                                fprintf(fff, "R:%d:0x%02X:0x%02X\n\n", i,
                                        (byte)(r_ptr->x_attr), (byte)(r_ptr->x_char));
+                               line_num += 2;
                        }
 
-                       /* All done */
-                       fprintf(fff, "\n\n\n\n");
-
                        /* Close */
-                       my_fclose(fff);
+                       close_auto_dump(fff, mark, line_num);
 
                        /* Message */
 #ifdef JP
@@ -3297,6 +3442,9 @@ void do_cmd_visuals(void)
                /* Dump object attr/chars */
                else if (i == '3')
                {
+                       static cptr mark = "Object attr/chars";
+                       int line_num;
+
                        /* Prompt */
 #ifdef JP
                        prt("¥³¥Þ¥ó¥É: ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤·¤Þ¤¹", 15, 0);
@@ -3326,30 +3474,19 @@ void do_cmd_visuals(void)
                        safe_setuid_drop();
 
                        /* Append to the file */
-                       fff = my_fopen(buf, "a");
+                       fff = open_auto_dump(buf, mark, &line_num);
+                       if (!fff) continue;
 
                        /* Grab priv's */
                        safe_setuid_grab();
 
-                       /* Failure */
-                       if (!fff) {
-#ifdef JP
-                               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
-                               msg_format("Failed to open %s.", buf);
-#endif
-                               msg_print(NULL);
-                               continue;
-                       }
-
                        /* Start dumping */
-                       fprintf(fff, "\n\n");
 #ifdef JP
-                       fprintf(fff, "# ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
+                       fprintf(fff, "\n# ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
 #else
-                       fprintf(fff, "# Object attr/char definitions\n\n");
+                       fprintf(fff, "\n# Object attr/char definitions\n\n");
 #endif
-
+                       line_num += 3;
 
                        /* Dump objects */
                        for (i = 0; i < max_k_idx; i++)
@@ -3361,18 +3498,16 @@ void do_cmd_visuals(void)
 
                                /* Dump a comment */
                                fprintf(fff, "# %s\n", (k_name + k_ptr->name));
-
+                               line_num++;
 
                                /* Dump the object attr/char info */
                                fprintf(fff, "K:%d:0x%02X:0x%02X\n\n", i,
                                        (byte)(k_ptr->x_attr), (byte)(k_ptr->x_char));
+                               line_num += 2;
                        }
 
-                       /* All done */
-                       fprintf(fff, "\n\n\n\n");
-
                        /* Close */
-                       my_fclose(fff);
+                       close_auto_dump(fff, mark, line_num);
 
                        /* Message */
 #ifdef JP
@@ -3386,6 +3521,9 @@ void do_cmd_visuals(void)
                /* Dump feature attr/chars */
                else if (i == '4')
                {
+                       static cptr mark = "Feature attr/chars";
+                       int line_num;
+
                        /* Prompt */
 #ifdef JP
                        prt("¥³¥Þ¥ó¥É: ÃÏ·Á¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤·¤Þ¤¹", 15, 0);
@@ -3415,30 +3553,19 @@ void do_cmd_visuals(void)
                        safe_setuid_drop();
 
                        /* Append to the file */
-                       fff = my_fopen(buf, "a");
+                       fff = open_auto_dump(buf, mark, &line_num);
+                       if (!fff) continue;
 
                        /* Grab priv's */
                        safe_setuid_grab();
 
-                       /* Failure */
-                       if (!fff) {
-#ifdef JP
-                               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
-                               msg_format("Failed to open %s.", buf);
-#endif
-                               msg_print(NULL);
-                               continue;
-                       }
-
                        /* Start dumping */
-                       fprintf(fff, "\n\n");
 #ifdef JP
-                       fprintf(fff, "# ÃÏ·Á¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
+                       fprintf(fff, "\n# ÃÏ·Á¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
 #else
-                       fprintf(fff, "# Feature attr/char definitions\n\n");
+                       fprintf(fff, "\n# Feature attr/char definitions\n\n");
 #endif
-
+                       line_num += 3;
 
                        /* Dump features */
                        for (i = 0; i < max_f_idx; i++)
@@ -3450,17 +3577,16 @@ void do_cmd_visuals(void)
 
                                /* Dump a comment */
                                fprintf(fff, "# %s\n", (f_name + f_ptr->name));
+                               line_num++;
 
                                /* Dump the feature attr/char info */
                                fprintf(fff, "F:%d:0x%02X:0x%02X\n\n", i,
                                        (byte)(f_ptr->x_attr), (byte)(f_ptr->x_char));
+                               line_num += 2;
                        }
 
-                       /* All done */
-                       fprintf(fff, "\n\n\n\n");
-
                        /* Close */
-                       my_fclose(fff);
+                       close_auto_dump(fff, mark, line_num);
 
                        /* Message */
 #ifdef JP
@@ -3490,9 +3616,9 @@ void do_cmd_visuals(void)
                                monster_race *r_ptr = &r_info[r];
 
                                byte da = (r_ptr->d_attr);
-                               char dc = (r_ptr->d_char);
+                               byte dc = (r_ptr->d_char);
                                byte ca = (r_ptr->x_attr);
-                               char cc = (r_ptr->x_char);
+                               byte cc = (r_ptr->x_char);
 
                                /* Label the object */
 #ifdef JP
@@ -3575,9 +3701,9 @@ void do_cmd_visuals(void)
                                object_kind *k_ptr = &k_info[k];
 
                                byte da = (byte)k_ptr->d_attr;
-                               char dc = (byte)k_ptr->d_char;
+                               byte dc = (byte)k_ptr->d_char;
                                byte ca = (byte)k_ptr->x_attr;
-                               char cc = (byte)k_ptr->x_char;
+                               byte cc = (byte)k_ptr->x_char;
 
                                /* Label the object */
 #ifdef JP
@@ -3660,9 +3786,9 @@ void do_cmd_visuals(void)
                                feature_type *f_ptr = &f_info[f];
 
                                byte da = (byte)f_ptr->d_attr;
-                               char dc = (byte)f_ptr->d_char;
+                               byte dc = (byte)f_ptr->d_char;
                                byte ca = (byte)f_ptr->x_attr;
-                               char cc = (byte)f_ptr->x_char;
+                               byte cc = (byte)f_ptr->x_char;
 
                                /* Label the object */
 #ifdef JP
@@ -3867,6 +3993,9 @@ void do_cmd_colors(void)
                /* Dump colors */
                else if (i == '2')
                {
+                       static cptr mark = "Colors";
+                       int line_num;
+
                        /* Prompt */
 #ifdef JP
                        prt("¥³¥Þ¥ó¥É: ¥«¥é¡¼¤ÎÀßÄê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤·¤Þ¤¹", 8, 0);
@@ -3896,30 +4025,19 @@ void do_cmd_colors(void)
                        safe_setuid_drop();
 
                        /* Append to the file */
-                       fff = my_fopen(buf, "a");
+                       fff = open_auto_dump(buf, mark, &line_num);
+                       if (!fff) continue;
 
                        /* Grab priv's */
                        safe_setuid_grab();
 
-                       /* Failure */
-                       if (!fff) {
-#ifdef JP
-                               msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
-                               msg_format("Failed to open %s.", buf);
-#endif
-                               msg_print(NULL);
-                               continue;
-                       }
-
                        /* Start dumping */
-                       fprintf(fff, "\n\n");
 #ifdef JP
-                       fprintf(fff, "# ¥«¥é¡¼¤ÎÀßÄê\n\n");
+                       fprintf(fff, "\n# ¥«¥é¡¼¤ÎÀßÄê\n\n");
 #else
-                       fprintf(fff, "# Color redefinitions\n\n");
+                       fprintf(fff, "\n# Color redefinitions\n\n");
 #endif
-
+                       line_num += 3;
 
                        /* Dump colors */
                        for (i = 0; i < 256; i++)
@@ -3948,18 +4066,16 @@ void do_cmd_colors(void)
 #else
                                fprintf(fff, "# Color '%s'\n", name);
 #endif
-
+                               line_num++;
 
                                /* Dump the monster attr/char info */
                                fprintf(fff, "V:%d:0x%02X:0x%02X:0x%02X:0x%02X\n\n",
                                        i, kv, rv, gv, bv);
+                               line_num += 2;
                        }
 
-                       /* All done */
-                       fprintf(fff, "\n\n\n\n");
-
                        /* Close */
-                       my_fclose(fff);
+                       close_auto_dump(fff, mark, line_num);
 
                        /* Message */
 #ifdef JP
@@ -4819,7 +4935,7 @@ static void do_cmd_knowledge_inven(void)
        store_type  *st_ptr;
        object_type *o_ptr;
 
-       int tval;
+       byte tval;
        int i=0;
         int j=0;
 
@@ -4892,7 +5008,7 @@ static void do_cmd_knowledge_inven(void)
 #ifdef JP
        show_file(TRUE, file_name, "*´ÕÄê*ºÑ¤ßÉð´ï/Ëɶñ¤ÎÂÑÀ­¥ê¥¹¥È", 0, 0);
 #else
-       show_file(TRUE, file_name, "Resistances of *identifyed* equipment", 0, 0);
+       show_file(TRUE, file_name, "Resistances of *identified* equipment", 0, 0);
 #endif
 
        /* Remove the file */
@@ -5072,7 +5188,11 @@ void do_cmd_save_screen_html(void)
 {
        char buf[1024], tmp[256] = "screen.html";
 
+#ifdef JP
        if (!get_string("¥Õ¥¡¥¤¥ë̾: ", tmp, 80))
+#else
+       if (!get_string("File name: ", tmp, 80))
+#endif
                return;
 
        /* Build the filename */
@@ -5447,7 +5567,7 @@ strcpy(base_name, "̤
                        object_prep(q_ptr, z);
 
                        /* Make it an artifact */
-                       q_ptr->name1 = who[k];
+                       q_ptr->name1 = (byte)who[k];
 
                        /* Describe the artifact */
                        object_desc_store(base_name, q_ptr, FALSE, 0);
@@ -5750,7 +5870,11 @@ static void do_cmd_knowledge_spell_exp(void)
 
        if(p_ptr->realm1 != REALM_NONE)
        {
+#ifdef JP
                fprintf(fff,"%s¤ÎËâË¡½ñ\n",realm_names[p_ptr->realm1]);
+#else
+               fprintf(fff,"%s Spellbook\n",realm_names[p_ptr->realm1]);
+#endif
                for (i = 0; i < 32; i++)
                {
                        if (!is_magic(p_ptr->realm1))
@@ -5783,7 +5907,7 @@ static void do_cmd_knowledge_spell_exp(void)
 
        if(p_ptr->realm2 != REALM_NONE)
        {
-               fprintf(fff,"\n%s¤ÎËâË¡½ñ\n",realm_names[p_ptr->realm2]);
+               fprintf(fff,"\n%s Spellbook\n",realm_names[p_ptr->realm2]);
                for (i = 0; i < 32; i++)
                {
                        if (!is_magic(p_ptr->realm1))
@@ -6520,7 +6644,11 @@ void do_cmd_knowledge_dungeon(void)
                                if (!r_info[d_info[i].final_guardian].max_num) seiha = TRUE;
                        }
                        else if (max_dlv[i] == d_info[i].maxdepth) seiha = TRUE;
+#ifdef JP
                        fprintf(fff,"%c%-12s :  %3d ³¬\n", seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
+#else
+                       fprintf(fff,"%c%-16s :  level %3d\n", seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
+#endif
                }
        }
        
@@ -6961,7 +7089,11 @@ sprintf(rand_tmp_str,"%s (%d 
                        fprintf(fff, tmp_str);
                }
        }
+#ifdef JP
        if (!total) fprintf(fff, "¤Ê¤·\n");
+#else
+       if (!total) fprintf(fff, "Nothing.\n");
+#endif
        }       
 
        /* Close the file */
@@ -7073,147 +7205,250 @@ show_file(TRUE, file_name, "
        fd_kill(file_name);
 }
 
+
+/*
+ * Check the status of "autopick"
+ */
+static void do_cmd_knowledge_autopick(void)
+{
+       int k;
+       FILE *fff;
+       char file_name[1024];
+
+       /* Open a new file */
+       fff = my_fopen_temp(file_name, 1024);
+
+       if (!fff)
+       {
+#ifdef JP
+           msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
+#else
+           msg_format("Failed to create temporary file %s.", file_name);
+#endif
+           msg_print(NULL);
+           return;
+       }
+
+       if (!max_autopick)
+       {
+#ifdef JP
+           fprintf(fff, "¼«Æ°Ç˲õ/½¦¤¤¤Ë¤Ï²¿¤âÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+#else
+           fprintf(fff, "No preference for auto picker/destroyer.");
+#endif
+       }
+       else
+       {
+#ifdef JP
+           fprintf(fff, "   ¼«Æ°½¦¤¤/Ç˲õ¤Ë¤Ï¸½ºß %d¹ÔÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£\n\n", max_autopick);
+#else
+           fprintf(fff, "   There are %d registered lines for auto picker/destroyer.\n\n", max_autopick);
+#endif
+       }
+
+       for (k = 0; k < max_autopick; k++)
+       {
+               if (!(autopick_action[k] & DO_AUTOPICK))
+               {
+#ifdef JP
+                       fprintf(fff, "     [ÊüÃÖ]");
+#else
+                       fprintf(fff, "    [Leave]");
+#endif
+               }
+               else if ((autopick_action[k] & DO_AUTODESTROY))
+               {
+#ifdef JP
+                       fprintf(fff, "     [Ç˲õ]");
+#else
+                       fprintf(fff, "  [Destroy]");
+#endif
+               }
+               else
+               {
+#ifdef JP
+                       fprintf(fff, "     [½¦¤¦]");
+#else
+                       fprintf(fff, "   [Pickup]");
+#endif
+               }
+
+               fprintf(fff, " %s", autopick_name[k]);
+               if(autopick_insc[k] != NULL)
+                       fprintf(fff, " {%s}", autopick_insc[k]);
+               fprintf(fff, "\n");
+       }
+       /* Close the file */
+       my_fclose(fff);
+       /* Display the file contents */
+#ifdef JP
+       show_file(TRUE, file_name, "¼«Æ°½¦¤¤/Ç˲õ ÀßÄê¥ê¥¹¥È", 0, 0);
+#else
+       show_file(TRUE, file_name, "Auto-picker/Destroyer", 0, 0);
+#endif
+
+       /* Remove the file */
+       fd_kill(file_name);
+}
+
+
+
 /*
  * Interact with "knowledge"
  */
 void do_cmd_knowledge(void)
 {
-       int i;
-
+       int i,p=0;
        /* File type is "TEXT" */
        FILE_TYPE(FILE_TYPE_TEXT);
-
        /* Save the screen */
        screen_save();
-
        /* Interact until done */
        while (1)
        {
                /* Clear screen */
                Term_clear();
-
                /* Ask for a choice */
 #ifdef JP
-               prt("¸½ºß¤ÎÃ챤ò³Îǧ¤¹¤ë", 2, 0);
+               prt(format("%d/2 ¥Ú¡¼¥¸", (p+1)), 2, 65);
+               prt("¸½ºß¤ÎÃ챤ò³Îǧ¤¹¤ë", 3, 0);
 #else
-               prt("Display current knowledge", 2, 0);
+               prt(format("page %d/2", (p+1)), 2, 65);
+               prt("Display current knowledge", 3, 0);
 #endif
 
-
                /* Give some choices */
 #ifdef JP
-               prt("(1) ´ûÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à                 ¤Î°ìÍ÷", 4, 5);
-               prt("(2) ´ûÃΤÎÀ¸¤­¤Æ¤¤¤ë¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 5, 5);
-               prt("(3) Åݤ·¤¿¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼           ¤Î°ìÍ÷", 6, 5);
-               prt("(4) ´ûÃΤΥ¢¥¤¥Æ¥à                       ¤Î°ìÍ÷", 7, 5);
-               prt("(5) Åݤ·¤¿Å¨¤Î¿ô                         ¤Î°ìÍ÷", 8, 5);
-               prt("(6) ÆÍÁ³ÊÑ°Û                             ¤Î°ìÍ÷", 9, 5);
-               prt("(7) ¸½ºß¤Î¥Ú¥Ã¥È                         ¤Î°ìÍ÷", 10, 5);
-               prt("(8) ¼Â¹ÔÃæ¤Î¥¯¥¨¥¹¥È                     ¤Î°ìÍ÷", 11, 5);
-               prt("(9) ¥×¥ì¥¤¥ä¡¼¤ÎÆÁ                       ¤Î°ìÍ÷", 12, 5);
-               prt("(a) Éð´ï¤Î·Ð¸³ÃÍ                         ¤Î°ìÍ÷", 13, 5);
-               prt("(b) ËâË¡¤Î·Ð¸³ÃÍ                         ¤Î°ìÍ÷", 14, 5);
-               prt("(c) µ»Ç½¤Î·Ð¸³ÃÍ                         ¤Î°ìÍ÷", 15, 5);
-               prt("(d) ¾Þ¶â¼ó                               ¤Î°ìÍ÷", 16, 5);
-               prt("(e) ²æ¤¬²È¤Î¥¢¥¤¥Æ¥à                     ¤Î°ìÍ÷", 17, 5);
-               prt("(f) *´ÕÄê*ºÑ¤ßÁõÈ÷¤ÎÂÑÀ­                 ¤Î°ìÍ÷", 18, 5);
-               prt("(g) ¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó                     ¤Î°ìÍ÷", 19, 5);
-               prt("(h) Æþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó                     ¤Î°ìÍ÷", 20, 5);
-#else
-               prt("(1) Display known artifacts", 4, 5);
-               prt("(2) Display known uniques", 5, 5);
-               prt("(3) Display dead uniques", 6, 5);
-               prt("(4) Display known objects", 7, 5);
-               prt("(5) Display kill count", 8, 5);
-               prt("(6) Display mutations", 9, 5);
-               prt("(7) Display current pets", 10, 5);
-               prt("(8) Display current quests", 11, 5);
-               prt("(9) Display virtues", 12, 5);
-               prt("(a) Display weapon proficiency", 13, 5);
-               prt("(b) Display spell proficiency", 14, 5);
-               prt("(c) Display misc. proficiency", 15, 5);
-               prt("(d) Display wanted monsters", 16, 5);
-               prt("(e) Display home inventory", 17, 5);
-               prt("(f) Display *identifyed* equip.", 18, 5);
-               prt("(g) Display about yourself", 19, 5);
-               prt("(h) Display dungeons", 20, 5);
+               if (p == 0) {
+                       prt("(1) ´ûÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à                 ¤Î°ìÍ÷", 6, 5);
+                       prt("(2) ´ûÃΤΥ¢¥¤¥Æ¥à                       ¤Î°ìÍ÷", 7, 5);
+                       prt("(3) ´ûÃΤÎÀ¸¤­¤Æ¤¤¤ë¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 8, 5);
+                       prt("(4) Åݤ·¤¿¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼           ¤Î°ìÍ÷", 9, 5);
+                       prt("(5) Åݤ·¤¿Å¨¤Î¿ô                         ¤Î°ìÍ÷", 10, 5);
+                       prt("(6) ¾Þ¶â¼ó                               ¤Î°ìÍ÷", 11, 5);
+                       prt("(7) ¸½ºß¤Î¥Ú¥Ã¥È                         ¤Î°ìÍ÷", 12, 5);
+                       prt("(8) ²æ¤¬²È¤Î¥¢¥¤¥Æ¥à                     ¤Î°ìÍ÷", 13, 5);
+                       prt("(9) *´ÕÄê*ºÑ¤ßÁõÈ÷¤ÎÂÑÀ­                 ¤Î°ìÍ÷", 14, 5);
+               } else {
+                       prt("(a) ¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó                     ¤Î°ìÍ÷", 6, 5);
+                       prt("(b) ÆÍÁ³ÊÑ°Û                             ¤Î°ìÍ÷", 7, 5);
+                       prt("(c) Éð´ï¤Î·Ð¸³ÃÍ                         ¤Î°ìÍ÷", 8, 5);
+                       prt("(d) ËâË¡¤Î·Ð¸³ÃÍ                         ¤Î°ìÍ÷", 9, 5);
+                       prt("(e) µ»Ç½¤Î·Ð¸³ÃÍ                         ¤Î°ìÍ÷", 10, 5);
+                       prt("(f) ¥×¥ì¥¤¥ä¡¼¤ÎÆÁ                       ¤Î°ìÍ÷", 11, 5);
+                       prt("(g) Æþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó                     ¤Î°ìÍ÷", 12, 5);
+                       prt("(h) ¼Â¹ÔÃæ¤Î¥¯¥¨¥¹¥È                     ¤Î°ìÍ÷", 13, 5);
+                       prt("(i) ¸½ºß¤Î¼«Æ°½¦¤¤/Ç˲õÀßÄê              ¤Î°ìÍ÷", 14, 5);
+               }
+#else
+               if (p == 0) {
+                       prt("(1) Display known artifacts", 6, 5);
+                       prt("(2) Display known objects", 7, 5);
+                       prt("(3) Display known uniques", 8, 5);
+                       prt("(4) Display dead uniques", 9, 5);
+                       prt("(5) Display kill count", 10, 5);
+                       prt("(6) Display wanted monsters", 11, 5);
+                       prt("(7) Display current pets", 12, 5);
+                       prt("(8) Display home inventory", 13, 5);
+                       prt("(9) Display *identified* equip.", 14, 5);
+               } else {
+                       prt("(a) Display about yourself", 6, 5);
+                       prt("(b) Display mutations", 7, 5);
+                       prt("(c) Display weapon proficiency", 8, 5);
+                       prt("(d) Display spell proficiency", 9, 5);
+                       prt("(e) Display misc. proficiency", 10, 5);
+                       prt("(f) Display virtues", 11, 5);
+                       prt("(g) Display dungeons", 12, 5);
+                       prt("(h) Display current quests", 13, 5);
+                       prt("(i) Display auto pick/destroy", 14, 5);
+               }
 #endif
-
                /* Prompt */
 #ifdef JP
-               prt("¥³¥Þ¥ó¥É:", 22, 0);
+               prt("-³¤¯-", 16, 8);
+               prt("ESC) È´¤±¤ë", 21, 1);
+               prt("SPACE) ¼¡¥Ú¡¼¥¸", 21, 30);
+               /*prt("-) Á°¥Ú¡¼¥¸", 21, 60);*/
+               prt("¥³¥Þ¥ó¥É:", 20, 0);
 #else
-               prt("Command: ", 22, 0);
+               prt("-more-", 16, 8);
+               prt("ESC) Exit menu", 21, 1);
+               prt("SPACE) Next page", 21, 30);
+               /*prt("-) Previous page", 21, 60);*/
+               prt("Command: ", 20, 0);
 #endif
 
-
                /* Prompt */
                i = inkey();
-
                /* Done */
                if (i == ESCAPE) break;
-
                switch (i)
                {
+               case ' ': /* Page change */
+               case '-':
+                       p = 1 - p;
+                       break;
                case '1': /* Artifacts */
                        do_cmd_knowledge_artifacts();
                        break;
-               case '2': /* Uniques */
-                       do_cmd_knowledge_uniques();
+               case '2': /* Objects */
+                       do_cmd_knowledge_objects();
                        break;
                case '3': /* Uniques */
-                       do_cmd_knowledge_uniques_dead();
+                       do_cmd_knowledge_uniques();
                        break;
-               case '4': /* Objects */
-                       do_cmd_knowledge_objects();
+               case '4': /* Uniques */
+                       do_cmd_knowledge_uniques_dead();
                        break;
                case '5': /* Kill count  */
                        do_cmd_knowledge_kill_count();
                        break;
-               case '6': /* Mutations */
-                       do_cmd_knowledge_mutations();
+               case '6': /* wanted */
+                       do_cmd_knowledge_kubi();
                        break;
                case '7': /* Pets */
                        do_cmd_knowledge_pets();
                        break;
-               case '8': /* Quests */
-                       do_cmd_knowledge_quests();
+               case '8': /* Home */
+                       do_cmd_knowledge_home();
                        break;
-               case '9': /* Virtues */
-                       do_cmd_knowledge_virtues();
+               case '9': /* Resist list */
+                       do_cmd_knowledge_inven();
+                       break;
+               /* Next page */
+               case 'a': /* Max stat */
+                       do_cmd_knowledge_stat();
                        break;
-               case 'a': /* weapon-exp */
+               case 'b': /* Mutations */
+                       do_cmd_knowledge_mutations();
+                       break;
+               case 'c': /* weapon-exp */
                        do_cmd_knowledge_weapon_exp();
                        break;
-               case 'b': /* spell-exp */
+               case 'd': /* spell-exp */
                        do_cmd_knowledge_spell_exp();
                        break;
-               case 'c': /* skill-exp */
+               case 'e': /* skill-exp */
                        do_cmd_knowledge_skill_exp();
                        break;
-               case 'd': /* skill-exp */
-                       do_cmd_knowledge_kubi();
-                       break;
-               case 'e': /* skill-exp */
-                       do_cmd_knowledge_home();
+               case 'f': /* Virtues */
+                       do_cmd_knowledge_virtues();
                        break;
-               case 'f': /* Resist list */
-                       do_cmd_knowledge_inven();
+               case 'g': /* Dungeon */
+                       do_cmd_knowledge_dungeon();
                        break;
-               case 'g': /* Max stat */
-                       do_cmd_knowledge_stat();
+               case 'h': /* Quests */
+                       do_cmd_knowledge_quests();
                        break;
-               case 'h': /* Dungeon */
-                       do_cmd_knowledge_dungeon();
+               case 'i': /* Autopick */
+                       do_cmd_knowledge_autopick();
                        break;
                default: /* Unknown option */
                        bell();
                }
-
                /* Flush messages */
                msg_print(NULL);
        }
-
        /* Restore the screen */
        screen_load();
 }
index 58295b8..97b4a24 100644 (file)
@@ -1317,7 +1317,11 @@ static bool cast_sorcery_spell(int spell)
                (void)self_knowledge();
                break;
        case 21: /* Teleport Level */
+#ifdef JP
                if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return FALSE;
+#else
+               if (!get_check("Are you sure? (Teleport Level)")) return FALSE;
+#endif
                (void)teleport_player_level();
                break;
        case 22: /* Word of Recall */
@@ -1826,7 +1830,7 @@ msg_print("
                        bool pet = (randint(3) == 1);
                        bool group = !(pet && (plev < 50));
 
-                       if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
 #ifdef JP
 msg_print("ⲫ¤Î°­½­¤¬½¼Ëþ¤·¤¿¡£");
@@ -2272,7 +2276,7 @@ msg_print("
                                group = TRUE;
                        }
 
-                       if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, group, FALSE, pet, !pet, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, group, FALSE, pet, (bool)(!pet), (bool)(!pet)))
                        {
 #ifdef JP
 msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤­»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½­¤ò±¿¤ó¤Ç¤¤¤ë...");
@@ -2374,7 +2378,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -2739,7 +2743,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -2796,7 +2800,7 @@ msg_print("
                                        type = SUMMON_KAMIKAZE;
                                }
 
-                               if (summon_specific((pet ? -1 : 0), y, x, summon_lev, type, group, FALSE, pet, FALSE, !pet))
+                               if (summon_specific((pet ? -1 : 0), y, x, summon_lev, type, group, FALSE, pet, FALSE, (bool)(!pet)))
                                {
                                        if (!pet)
 #ifdef JP
@@ -2905,7 +2909,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -2934,7 +2938,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -2977,7 +2981,7 @@ msg_print("
                                        type = 0;
                                }
 
-                               if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, !pet))
+                               if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, (bool)(!pet)))
                                {
                                        if (!pet)
 #ifdef JP
@@ -3002,7 +3006,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -3055,7 +3059,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -3111,7 +3115,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -3172,7 +3176,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -3201,7 +3205,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, group, FALSE, pet, unique_okay, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, group, FALSE, pet, unique_okay, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -3239,7 +3243,7 @@ msg_print("
 #endif
 
 
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, (bool)(!pet)))
                        {
                                if (!pet)
 #ifdef JP
@@ -3395,7 +3399,11 @@ msg_print("
                        no_trump = TRUE;
                break;
        case 26: /* Teleport Level */
+#ifdef JP
                if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return FALSE;
+#else
+               if (!get_check("Are you sure? (Teleport Level)")) return FALSE;
+#endif
                (void)teleport_player_level();
                break;
        case 27: /* Teleport Away */
@@ -3724,7 +3732,7 @@ msg_print("
                bool pet = (randint(3) != 1);
                bool group = !(pet && (plev < 50));
 
-               if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint(plev/2), SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+               if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint(plev/2), SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
                {
 #ifdef JP
 msg_print("ⲫ¤Î°­½­¤¬½¼Ëþ¤·¤¿¡£");
@@ -4075,7 +4083,7 @@ static bool cast_music_spell(int spell)
 
        switch (spell)
        {
-       case 0: /* Song of Holding ÃÙÆߤβÎ*/
+       case 0: /* Song of Holding ÃÙÆߤβΠ*/
 #ifdef JP
                msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
 #else
@@ -4639,7 +4647,11 @@ msg_print("
                }
                else if ((o_ptr->tval == TV_MUSIC_BOOK) && (randint(200) < spell))
                {
+#ifdef JP
 msg_print("¤¤¤ä¤Ê²»¤¬¶Á¤¤¤¿");
+#else
+msg_print("An infernal sound echoed.");
+#endif
 
                        aggravate_monsters(0);
                }
index afa58be..ccf5565 100644 (file)
@@ -1056,6 +1056,7 @@ msg_print("
                        (void)do_res_stat(A_INT);
                        (void)do_res_stat(A_CHR);
                        (void)set_shero(0,TRUE);
+                       update_stuff();
                        hp_player(5000);
                        ident = TRUE;
                        break;
@@ -5153,7 +5154,11 @@ msg_print("
                        }
                        case ART_MURAMASA:
                        {
+#ifdef JP
                                if (get_check("ËÜÅö¤Ë»È¤¤¤Þ¤¹¤«¡©"))
+#else
+                               if (get_check("Are you sure?!"))
+#endif
                                {
 #ifdef JP
                                        msg_print("¼Àµ¤¬¿Ì¤¨¤¿¡¥¡¥¡¥");
@@ -5236,7 +5241,7 @@ msg_print("
                        {
                                bool pet = (randint(5) != 1);
 
-                               if (summon_specific((pet ? -1 : 0), py, px, ((p_ptr->lev * 3) / 2), SUMMON_HOUND, TRUE, FALSE, pet, FALSE, !pet))
+                               if (summon_specific((pet ? -1 : 0), py, px, ((p_ptr->lev * 3) / 2), SUMMON_HOUND, TRUE, FALSE, pet, FALSE, (bool)(!pet)))
                                {
 
                                        if (pet)
@@ -5577,7 +5582,11 @@ msg_print("
        {
                if (!o_ptr->xtra4 && ((o_ptr->sval == SV_LITE_TORCH) || (o_ptr->sval == SV_LITE_LANTERN)))
                {
+#ifdef JP
                        msg_print("dzÎÁ¤¬¤Ê¤¤¡£");
+#else
+                       msg_print("It has no fuel.");
+#endif
                        energy_use = 0;
                        return;
                }
@@ -6812,7 +6821,16 @@ static bool select_magic_eater(int mode)
                                        {
                                                if (tval == TV_ROD)
                                                {
-                                                       strcat(dummy, format(" %-22.22s ½¼Å¶:%2d/%2d%3d%%", k_name + k_info[k_idx].name, p_ptr->magic_num1[ctr+ext] ? (p_ptr->magic_num1[ctr+ext] - 1) / (0x10000L * k_info[k_idx].pval) +1 : 0, p_ptr->magic_num2[ctr+ext], chance));
+strcat(dummy, format(
+#ifdef JP
+       " %-22.22s ½¼Å¶:%2d/%2d%3d%%",
+#else
+       " %-22.22s   (%2d/%2d) %3d%%",
+#endif
+       k_name + k_info[k_idx].name, 
+       p_ptr->magic_num1[ctr+ext] ? 
+       (p_ptr->magic_num1[ctr+ext] - 1) / (0x10000L * k_info[k_idx].pval) +1 : 0, 
+       p_ptr->magic_num2[ctr+ext], chance));
                                                        if (p_ptr->magic_num1[ctr+ext] > k_info[k_idx].pval * (p_ptr->magic_num2[ctr+ext]-1) * 0x10000L) col = TERM_RED;
                                                }
                                                else
index 9b7b14f..85ff4bd 100644 (file)
 #define MIND_MIRROR_MASTER  3
 #define MIND_NINJUTSU       4
 
-/* A hack for cave.c */
-#define BMP_FIRST_PC_CLASS 164
-#define BMP_FIRST_PC_RACE 128
-
 
 /*
  * Size of memory reserved for initialization of some arrays
 #define MFLAG_NOPET     0x02    /* Cannot make monster pet */
 #define MFLAG_NOGENO    0x04    /* Cannot genocide */
 #define MFLAG_CHAMELEON 0x08    /* Monster is chameleon */
+#define MFLAG_NOFLOW    0x10    /* Monster is in no_flow_by_smell mode */
 
 
 /*
 
 
 #define is_friendly(A) \
-        (((A)->smart & SM_FRIENDLY) ? TRUE : FALSE)
+        (bool)(((A)->smart & SM_FRIENDLY) ? TRUE : FALSE)
 
 #define is_pet(A) \
-        (((A)->smart & SM_PET) ? TRUE : FALSE)
+        (bool)(((A)->smart & SM_PET) ? TRUE : FALSE)
 
 #define is_hostile(A) \
-        ((is_friendly(A) || is_pet(A)) ? FALSE : TRUE)
+        (bool)((is_friendly(A) || is_pet(A)) ? FALSE : TRUE)
 
 
 /*** Macro Definitions ***/
@@ -4553,9 +4550,11 @@ extern int PlayerUID;
 #define MON_JIZOTAKO      1065
 
 #define MAX_AUTOPICK 1009
-#define DONT_AUTOPICK 0
-#define DO_AUTOPICK 1
-#define DO_AUTODESTROY 2
+#define DO_AUTOPICK    0x01
+#define DO_AUTODESTROY 0x02
+#define DO_DISPLAY     0x04
+#define DONT_AUTOPICK  0x08
+#define ITEM_DISPLAY   0x10
 
 #define MAGIC_GLOVE_REDUCE_MANA 0x0001
 #define MAGIC_FAIL_5PERCENT     0x0002
index 4898a85..bdb6910 100644 (file)
@@ -894,10 +894,8 @@ static void regenmana(int percent)
        {
                new_mana *= 32;
                p_ptr->csp--;
-               p_ptr->csp_frac += 0x10000L;
-
                p_ptr->csp -= (s16b)(new_mana >> 16);   /* div 65536 */
-               new_mana_frac = p_ptr->csp_frac - (new_mana & 0xFFFF);
+               new_mana_frac = p_ptr->csp_frac + 0x10000L - (new_mana & 0xFFFF);
        }
        else
        {
@@ -1246,7 +1244,7 @@ msg_format("%s
 }
 
 
-static void gere_music(s16b music)
+static void gere_music(s32b music)
 {
         switch(music)
         {
@@ -1390,7 +1388,7 @@ else msg_format("%s
 static void check_music()
 {
         magic_type *s_ptr;
-       int shouhimana;
+       u32b shouhimana;
 
         /* Music singed by player */
         if(p_ptr->pclass != CLASS_BARD) return;
@@ -1413,20 +1411,27 @@ static void check_music()
         else
         {
                 p_ptr->csp -= shouhimana / 0x10000;
-               shouhimana = (shouhimana % 0x10000);
+               shouhimana = (shouhimana & 0xffff);
                if (p_ptr->csp_frac < shouhimana)
                {
                        p_ptr->csp--;
-                       p_ptr->csp_frac += 0x10000;
+                       p_ptr->csp_frac += (u16b)(0x10000L - shouhimana);
+               }
+               else
+               {
+                       p_ptr->csp_frac -= (u16b)shouhimana;
                }
-               p_ptr->csp_frac -= shouhimana;
 
                 p_ptr->redraw |= PR_MANA;
                if (p_ptr->magic_num1[1])
                {
                        p_ptr->magic_num1[0] = p_ptr->magic_num1[1];
                        p_ptr->magic_num1[1] = 0;
+#ifdef JP
                        msg_print("²Î¤òºÆ³«¤·¤¿¡£");
+#else
+                       msg_print("You restart singing.");
+#endif
                        p_ptr->action = ACTION_SING;
 
                        /* Recalculate bonuses */
@@ -1894,7 +1899,7 @@ hit_from = "
 
        else if ((cave[py][px].feat == FEAT_DEEP_WATER) && !p_ptr->ffall && !p_ptr->can_swim)
        {
-               if (p_ptr->total_weight > ((adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) / 2))
+               if (p_ptr->total_weight > (((u32b)adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) / 2))
                {
                        /* Take damage */
 #ifdef JP
@@ -2833,9 +2838,10 @@ msg_print("
                    !p_ptr->anti_magic && (randint(6666) == 666))
                {
                        bool pet = (randint(6) == 1);
+                       bool not_pet = (bool)(!pet);
 
                        if (summon_specific((pet ? -1 : 0), py, px,
-                                   dun_level, SUMMON_DEMON, TRUE, FALSE, pet, !pet, !pet))
+                                   dun_level, SUMMON_DEMON, TRUE, FALSE, pet, not_pet, not_pet))
                        {
 #ifdef JP
 msg_print("¤¢¤Ê¤¿¤Ï¥Ç¡¼¥â¥ó¤ò°ú¤­´ó¤»¤¿¡ª");
@@ -2964,9 +2970,10 @@ msg_print("
                   !p_ptr->anti_magic && one_in_(7000))
                {
                        bool pet = (randint(3) == 1);
+                       bool not_pet = (bool)(!pet);
 
                        if (summon_specific((pet ? -1 : 0), py, px, dun_level, SUMMON_ANIMAL,
-                           TRUE, FALSE, pet, !pet, !pet))
+                           TRUE, FALSE, pet, not_pet, not_pet))
                        {
 #ifdef JP
 msg_print("ưʪ¤ò°ú¤­´ó¤»¤¿¡ª");
@@ -3069,9 +3076,10 @@ msg_print("
                   !p_ptr->anti_magic && one_in_(3000))
                {
                        bool pet = (randint(5) == 1);
+                       bool not_pet = (bool)(!pet);
 
                        if (summon_specific((pet ? -1 : 0), py, px, dun_level, SUMMON_DRAGON,
-                           TRUE, FALSE, pet, !pet, !pet))
+                           TRUE, FALSE, pet, not_pet, not_pet))
                        {
 #ifdef JP
 msg_print("¥É¥é¥´¥ó¤ò°ú¤­´ó¤»¤¿¡ª");
@@ -3528,7 +3536,7 @@ msg_print("
                                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                                {
                                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                                       quest[leaving_quest].complev = p_ptr->lev;
+                                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                                        {
                                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
@@ -3601,7 +3609,7 @@ msg_print("
                                                    (quest[i].level < dun_level))
                                                {
                                                        quest[i].status = QUEST_STATUS_FAILED;
-                                                       quest[i].complev = p_ptr->lev;
+                                                       quest[i].complev = (byte)p_ptr->lev;
                                                        r_info[quest[i].r_idx].flags1 &= ~(RF1_QUESTOR);
                                                }
                                        }
@@ -4022,7 +4030,7 @@ msg_print("
                /*** Stairs and Doors and Chests and Traps ***/
 
                /* Enter store */
-               case '_':
+               case 253:
                {
                        if (!p_ptr->wild_mode) do_cmd_store();
                        break;
@@ -5079,14 +5087,15 @@ msg_format("%^s
                }
                else
                {
-                       p_ptr->csp -= (hoge / 0x10000L);
+                       p_ptr->csp -= (s16b)(hoge >> 16);
                        hoge &= 0xFFFFL;
                        if (p_ptr->csp_frac < hoge)
                        {
-                               p_ptr->csp_frac += 0x10000L;
-                               p_ptr->csp --;
+                               p_ptr->csp_frac += 0x10000L - hoge;
+                               p_ptr->csp--;
                        }
-                       p_ptr->csp_frac -= hoge;
+                       else
+                               p_ptr->csp_frac -= hoge;
                }
                p_ptr->redraw |= PR_MANA;
        }
@@ -5616,7 +5625,7 @@ static void dungeon(bool load_game)
 
        /* Update stuff */
        p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_DISTANCE | PU_MON_LITE);
-       p_ptr->update |= (PU_MONSTERS);/*¼«Ê¬¤Ç¸÷¤Ã¤Æ¤¤¤ë¥â¥ó¥¹¥¿¡¼¤Î°Ù*/
+       p_ptr->update |= (PU_MONSTERS);/*¼«Ê¬¤Ç¸÷¤Ã¤Æ¤¤¤ë¥â¥ó¥¹¥¿¡¼¤Î°Ù */
 
        /* Update stuff */
        update_stuff();
@@ -6137,7 +6146,7 @@ quit("
                /* Start in town */
                dun_level = 0;
                p_ptr->inside_quest = 0;
-               p_ptr->inside_arena = 0;
+               p_ptr->inside_arena = FALSE;
                p_ptr->inside_battle = FALSE;
 
                write_level = TRUE;
@@ -6549,8 +6558,8 @@ msg_print("ĥ
                                        death = FALSE;
 
                                        dun_level = 0;
-                                       p_ptr->inside_arena = 0;
-                                       p_ptr->inside_battle = 0;
+                                       p_ptr->inside_arena = FALSE;
+                                       p_ptr->inside_battle = FALSE;
                                        leaving_quest = 0;
                                        p_ptr->inside_quest = 0;
                                        p_ptr->recall_dungeon = dungeon_type;
index 8e3baf5..cde0fba 100644 (file)
@@ -419,7 +419,11 @@ msg_print("
 
                        if (p_ptr->action == ACTION_KAMAE)
                        {
+#ifdef JP
                                msg_print("¹½¤¨¤¬¤È¤±¤¿¡£");
+#else
+                               msg_print("Your posture gets loose.");
+#endif
                                p_ptr->special_defense &= ~(KAMAE_MASK);
                                p_ptr->update |= (PU_BONUS);
                                p_ptr->redraw |= (PR_STATE);
@@ -427,7 +431,11 @@ msg_print("
                        }
                        else if (p_ptr->action == ACTION_KATA)
                        {
+#ifdef JP
                                msg_print("·¿¤¬Êø¤ì¤¿¡£");
+#else
+                               msg_print("Your posture gets loose.");
+#endif
                                p_ptr->special_defense &= ~(KATA_MASK);
                                p_ptr->update |= (PU_BONUS);
                                p_ptr->update |= (PU_MONSTERS);
@@ -565,7 +573,11 @@ msg_print("
 
                        if (p_ptr->special_defense & KATA_MASK)
                        {
+#ifdef JP
                                msg_print("·¿¤¬Êø¤ì¤¿¡£");
+#else
+                               msg_print("Your posture gets loose.");
+#endif
                                p_ptr->special_defense &= ~(KATA_MASK);
                                p_ptr->update |= (PU_BONUS);
                                p_ptr->update |= (PU_MONSTERS);
@@ -3338,7 +3350,11 @@ msg_print("
                }
                if (p_ptr->special_defense & KATA_MASK)
                {
+#ifdef JP
                        msg_print("·¿¤¬Êø¤ì¤¿¡£");
+#else
+                       msg_print("Your posture gets loose.");
+#endif
                        p_ptr->special_defense &= ~(KATA_MASK);
                        p_ptr->update |= (PU_BONUS);
                        p_ptr->update |= (PU_MONSTERS);
@@ -5131,7 +5147,11 @@ get_rnd_line("death_j.txt", 0, death_message);
 
                if (record_danger && (old_chp > warning))
                {
+#ifdef JP
                        sprintf(tmp,"%s¤Ë¤è¤Ã¤Æ¥Ô¥ó¥Á¤Ë´Ù¤¤¤Ã¤¿¡£",hit_from);
+#else
+                       sprintf(tmp,"A critical situation because of %s.",hit_from);
+#endif
                        do_cmd_write_nikki(NIKKI_BUNSHOU, 0, tmp);
                }
 
index d2d1d3c..9f2f76c 100644 (file)
@@ -24,9 +24,9 @@ extern char *macro_trigger_keycode[2][MAX_MACRO_TRIG];
 extern int level_up;
 
 extern int max_autopick;
-extern char *autopick_name[MAX_AUTOPICK];
-extern char *autopick_insc[MAX_AUTOPICK];
-extern s16b autopick_action[MAX_AUTOPICK];
+extern cptr autopick_name[MAX_AUTOPICK];
+extern cptr autopick_insc[MAX_AUTOPICK];
+extern byte autopick_action[MAX_AUTOPICK];
 
 /* tables.c */
 extern s16b ddd[9];
@@ -289,9 +289,6 @@ extern bool equippy_chars;
 extern bool use_command;
 extern bool center_player;
 extern bool center_running;
-extern bool display_pick;
-extern bool display_nopick;
-extern bool display_destroy;
 extern bool destroy_items;
 extern bool leave_worth;
 extern bool leave_equip;
@@ -329,8 +326,8 @@ extern s16b panel_row, panel_col;
 extern s16b panel_row_min, panel_row_max;
 extern s16b panel_col_min, panel_col_max;
 extern s16b panel_col_prt, panel_row_prt;
-extern s16b py;
-extern s16b px;
+extern int py;
+extern int px;
 extern s16b target_who;
 extern s16b target_col;
 extern s16b target_row;
@@ -553,7 +550,7 @@ extern s16b *max_dlv;
 extern byte feat_wall_outer;
 extern byte feat_wall_inner;
 extern byte feat_wall_solid;
-extern s16b floor_type[100], fill_type[100];
+extern byte floor_type[100], fill_type[100];
 extern bool now_damaged;
 extern s16b now_message;
 extern bool use_menu;
@@ -751,6 +748,9 @@ extern errr get_rnd_line(cptr file_name, int entry, char *output);
 #ifdef JP
 extern errr get_rnd_line_jonly(cptr file_name, int entry, char *output, int count);
 #endif
+extern errr counts_write(int where, u32b count);
+extern u32b counts_read(int where);
+
 /* generate.c */
 extern void place_closed_door(int y, int x);
 extern void generate_cave(void);
@@ -793,7 +793,6 @@ extern void curse_equipment(int chance, int heavy_chance);
 extern void mon_take_hit_mon(bool is_psy_spear, int m_idx, int dam, bool *fear, cptr note, int who);
 extern bool process_the_world(int num, int who, bool vs_player);
 extern void monster_gain_exp(int m_idx, int s_idx);
-extern s32b gain_energy(void);
 
 /* monster1.c */
 extern void screen_roff(int r_idx, int remember);
@@ -1307,6 +1306,9 @@ extern void gain_level_reward(int chosen_reward);
 extern bool tgt_pt (int *x, int *y);
 extern void do_poly_wounds(void);
 extern int mon_damage_mod(monster_type *m_ptr, int dam, bool is_psy_spear);
+extern s16b gain_energy(void);
+extern s16b bow_energy(int sval);
+extern int bow_tmul(int sval);
 
 /* mspells1.c */
 extern bool clean_shot(int y1, int x1, int y2, int x2, bool friend);
@@ -1519,5 +1521,3 @@ extern void send_curs_to_chuukei_server(int x, int y);
 extern void flush_ringbuf(void);
 #endif
 
-extern errr counts_write(int where, s32b count);
-extern s32b counts_read(int where);
index 49e575f..096936a 100644 (file)
@@ -407,15 +407,6 @@ errr process_pref_file_command(char *buf)
        char *zz[16];
 
 
-       /* Skip "empty" lines */
-       if (!buf[0]) return (0);
-
-       /* Skip "blank" lines */
-       if (isspace(buf[0])) return (0);
-
-       /* Skip comments */
-       if (buf[0] == '#') return (0);
-
        /* Require "?:*" format */
        if (buf[1] != ':') return (1);
 
@@ -1025,10 +1016,105 @@ static cptr process_pref_file_expr(char **sp, char *fp)
 }
 
 
+
+/*
+ *  Process line for auto picker/destroyer.
+ */
+static errr process_pickpref_file_line(char *buf)
+{
+       char *s, *s2;
+       int i;
+       byte act = 0;
+
+       /* Nuke illegal char */
+       for(i = 0; buf[i]; i++)
+       {
+#ifdef JP
+               if (iskanji(buf[i]))
+               {
+                       i++;
+                       continue;
+               }
+#endif
+               if (isspace(buf[i]) && buf[i] != ' ')
+                       break;
+       }
+       buf[i] = 0;
+       
+       s = buf;
+
+       act = DO_AUTOPICK | DO_DISPLAY;
+       while (1)
+       {
+               if (*s == '!')
+               {
+                       act &= ~DO_AUTOPICK;
+                       act |= DO_AUTODESTROY;
+                       s++;
+               }
+               else if (*s == '~')
+               {
+                       act &= ~DO_AUTOPICK;
+                       act |= DONT_AUTOPICK;
+                       s++;
+               }
+               else if (*s == '(')
+               {
+                       act &= ~DO_DISPLAY;
+                       s++;
+               }
+               else
+                       break;
+       }
+
+       /* don't mind upper or lower case */
+       s2 = NULL;
+       for (i = 0; s[i]; i++)
+       {
+#ifdef JP
+               if (iskanji(s[i]))
+               {
+                       i++;
+                       continue;
+               }
+#endif
+               if (isupper(s[i]))
+                       s[i] = tolower(s[i]);
+
+               /* Auto-inscription? */
+               if (s[i] == '#')
+               {
+                       s[i] = '\0';
+                       s2 = s + i + 1;
+                       break;
+               }
+       }
+       
+       /* Skip empty line */
+       if (*s == 0)
+               return 0;
+       if (max_autopick == MAX_AUTOPICK)
+               return 1;
+       
+       /* Already has the same entry? */ 
+       for(i = 0; i < max_autopick; i++)
+               if(!strcmp(s, autopick_name[i]))
+                       return 0;
+
+       autopick_name[max_autopick] = string_make(s);
+       autopick_action[max_autopick] = act;
+
+       autopick_insc[max_autopick] = string_make(s2);
+       max_autopick++;
+       return 0;
+}
+
+
+
 /*
  * Open the "user pref file" and parse it.
  */
-static errr process_pref_file_aux(cptr name)
+static errr process_pref_file_aux(cptr name, bool read_pickpref)
 {
        FILE *fp;
 
@@ -1055,11 +1141,13 @@ static errr process_pref_file_aux(cptr name)
                /* Count lines */
                line++;
 
-
                /* Skip "empty" lines */
                if (!buf[0]) continue;
 
                /* Skip "blank" lines */
+#ifdef JP
+               if (!iskanji(buf[0]))
+#endif
                if (isspace(buf[0])) continue;
 
                /* Skip comments */
@@ -1098,7 +1186,10 @@ static errr process_pref_file_aux(cptr name)
                if (buf[0] == '%')
                {
                        /* Process that file if allowed */
-                       (void)process_pref_file(buf + 2);
+                       if (read_pickpref)
+                               (void)process_pickpref_file(buf + 2);
+                       else
+                               (void)process_pref_file(buf + 2);
 
                        /* Continue */
                        continue;
@@ -1108,8 +1199,13 @@ static errr process_pref_file_aux(cptr name)
                /* Process the line */
                err = process_pref_file_command(buf);
 
-               /* Oops */
-               if (err) break;
+               /* This is not original pref line... */
+               if (err)
+               {
+                       if (!read_pickpref)
+                               break;
+                       err = process_pickpref_file_line(buf);
+               }
        }
 
 
@@ -1155,7 +1251,7 @@ errr process_pref_file(cptr name)
        path_build(buf, 1024, ANGBAND_DIR_PREF, name);
 
        /* Process the pref file */
-       err = process_pref_file_aux(buf);
+       err = process_pref_file_aux(buf, FALSE);
 
        /* Stop at parser errors, but not at non-existing file */
        if (err < 1)
@@ -1164,7 +1260,7 @@ errr process_pref_file(cptr name)
                path_build(buf, 1024, ANGBAND_DIR_USER, name);
 
                /* Process the pref file */
-               err = process_pref_file_aux(buf);
+               err = process_pref_file_aux(buf, FALSE);
        }
 
        /* Result */
@@ -1586,50 +1682,7 @@ static void display_player_middle(void)
        
        if (inventory[INVEN_BOW].k_idx)
        {
-               switch (inventory[INVEN_BOW].sval)
-               {
-                       /* Sling and ammo */
-                       case SV_SLING:
-                       {
-                               tmul = 2;
-                               break;
-                       }
-
-                       /* Short Bow and Arrow */
-                       case SV_SHORT_BOW:
-                       {
-                               tmul = 2;
-                               break;
-                       }
-
-                       /* Long Bow and Arrow */
-                       case SV_LONG_BOW:
-                       case SV_NAMAKE_BOW:
-                       {
-                               tmul = 3;
-                               break;
-                       }
-
-                       /* Light Crossbow and Bolt */
-                       case SV_LIGHT_XBOW:
-                       {
-                               tmul = 3;
-                               break;
-                       }
-
-                       /* Heavy Crossbow and Bolt */
-                       case SV_HEAVY_XBOW:
-                       {
-                               tmul = 4;
-                               break;
-                       }
-
-                       /* Long Bow and Arrow */
-                       {
-                               tmul = 5;
-                               break;
-                       }
-               }
+               tmul = bow_tmul(inventory[INVEN_BOW].sval);
 
                /* Get extra "power" from "extra might" */
                if (p_ptr->xtra_might) tmul++;
@@ -1667,7 +1720,11 @@ prt_num("
 
        if (p_ptr->prace == RACE_ANDROID)
        {
-put_str("·Ð¸³ÃÍ   ", 10, 28);
+#ifdef JP
+put_str("·Ð¸³ÃÍ     ", 10, 28);
+#else
+put_str("Experience ", 10, 28);
+#endif
 c_put_str(TERM_L_GREEN, "    *****", 10, 28+11);
        }
        else if (p_ptr->exp >= p_ptr->max_exp)
@@ -1691,7 +1748,11 @@ prt_lnum("
 
        if (p_ptr->prace == RACE_ANDROID)
        {
-put_str("ºÇÂç·Ð¸³ ", 11, 28);
+#ifdef JP
+put_str("ºÇÂç·Ð¸³   ", 11, 28);
+#else
+put_str("Max Exo    ", 11, 28);
+#endif
 c_put_str(TERM_L_GREEN, "    *****", 11, 28+11);
        }
        else
@@ -1708,7 +1769,7 @@ prt_lnum("
 put_str("¼¡¥ì¥Ù¥ë   ", 12, 28);
 c_put_str(TERM_L_GREEN, "    *****", 12, 28+11);
 #else
-               put_str("Exp to Adv.", 12, 28);
+               put_str("Exp to Adv", 12, 28);
                c_put_str(TERM_L_GREEN, "    *****", 12, 28+11);
 #endif
 
@@ -1718,7 +1779,7 @@ c_put_str(TERM_L_GREEN, "    *****", 12, 28+11);
 #ifdef JP
 prt_lnum("¼¡¥ì¥Ù¥ë   ",
 #else
-               prt_lnum("Exp to Adv.",
+               prt_lnum("Exp to Adv ",
 #endif
 
                         (s32b)(player_exp[p_ptr->lev - 1] * p_ptr->expfact / 100L),
@@ -1955,7 +2016,6 @@ static void display_player_various(void)
        cptr            desc;
        int         muta_att = 0;
        u32b        f1, f2, f3;
-       int             energy_fire = 100;
        int             shots, shot_frac;
 
        object_type             *o_ptr;
@@ -1976,50 +2036,8 @@ static void display_player_various(void)
        /* If the player is wielding one? */
        if (o_ptr->k_idx)
        {
-               /* Analyze the launcher */
-               switch (o_ptr->sval)
-               {
-                       /* Sling and ammo */
-                       case SV_SLING:
-                       {
-                               energy_fire = 8000;
-                               break;
-                       }
+               s16b energy_fire = bow_energy(o_ptr->sval);
 
-                       /* Short Bow and Arrow */
-                       case SV_SHORT_BOW:
-                       {
-                               energy_fire = 10000;
-                               break;
-                       }
-
-                       /* Long Bow and Arrow */
-                       case SV_LONG_BOW:
-                       {
-                               energy_fire = 10000;
-                               break;
-                       }
-               
-                       case SV_NAMAKE_BOW:
-                       {
-                               energy_fire = 7777;
-                               break;
-                       }
-               
-                       /* Light Crossbow and Bolt */
-                       case SV_LIGHT_XBOW:
-                       {
-                               energy_fire = 12000;
-                               break;
-                       }
-
-                       /* Heavy Crossbow and Bolt */
-                       case SV_HEAVY_XBOW:
-                       {               
-                               energy_fire = 13333;
-                               break;
-                       }
-               }
                /* Calculate shots per round */
                shots = p_ptr->num_fire * 100;
                shot_frac = (shots * 100 / energy_fire) % 100;
@@ -2951,10 +2969,10 @@ static void display_player_flag_aux(int row, int col, char *header,
                object_flags_known(o_ptr, &f[0], &f[1], &f[2]);
 
                /* Default */
-               c_put_str(vuln ? TERM_RED : TERM_SLATE, ".", row, col);
+               c_put_str((byte)(vuln ? TERM_RED : TERM_SLATE), ".", row, col);
 
                /* Check flags */
-               if (f[n - 1] & flag1) c_put_str(vuln ? TERM_L_RED : TERM_WHITE, "+", row, col);
+               if (f[n - 1] & flag1) c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE), "+", row, col);
                if (f[n - 1] & flag2) c_put_str(TERM_WHITE, "*", row, col);
 
                /* Advance */
@@ -2965,16 +2983,16 @@ static void display_player_flag_aux(int row, int col, char *header,
        player_flags(&f[0], &f[1], &f[2]);
 
        /* Default */
-       c_put_str(vuln ? TERM_RED : TERM_SLATE, ".", row, col);
+       c_put_str((byte)(vuln ? TERM_RED : TERM_SLATE), ".", row, col);
 
        /* Check flags */
-       if (f[n-1] & flag1) c_put_str(vuln ? TERM_L_RED : TERM_WHITE, "+", row, col);
+       if (f[n-1] & flag1) c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE), "+", row, col);
 
        /* Timed player flags */
        tim_player_flags(&f[0], &f[1], &f[2], TRUE);
 
        /* Check flags */
-       if (f[n-1] & flag1) c_put_str(vuln ? TERM_ORANGE : TERM_YELLOW, "#", row, col);
+       if (f[n-1] & flag1) c_put_str((byte)(vuln ? TERM_ORANGE : TERM_YELLOW), "#", row, col);
 
        /* Immunity */
        if (im_f[2] & flag1) c_put_str(TERM_YELLOW, "*", row, col);
@@ -3775,12 +3793,12 @@ static void display_player_ben(void)
        b[3] |= (f2 >> 16);
        b[4] |= (f3 & 0xFFFF);
        b[5] |= (f3 >> 16);
-       color[0] = (f1 & 0xFFFF);
-       color[1] = (f1 >> 16);
-       color[2] = (f2 & 0xFFFF);
-       color[3] = (f2 >> 16);
-       color[4] = (f3 & 0xFFFF);
-       color[5] = (f3 >> 16);
+       color[0] = (u16b)(f1 & 0xFFFF);
+       color[1] = (u16b)(f1 >> 16);
+       color[2] = (u16b)(f2 & 0xFFFF);
+       color[3] = (u16b)(f2 >> 16);
+       color[4] = (u16b)(f3 & 0xFFFF);
+       color[5] = (u16b)(f3 >> 16);
 
        /* Scan cols */
        for (x = 0; x < 6; x++)
@@ -3890,12 +3908,12 @@ static void display_player_ben_one(int mode)
        b[n][3] |= (f2 >> 16);
        b[n][4] |= (f3 & 0xFFFF);
        b[n][5] |= (f3 >> 16);
-       color[0] = (f1 & 0xFFFF);
-       color[1] = (f1 >> 16);
-       color[2] = (f2 & 0xFFFF);
-       color[3] = (f2 >> 16);
-       color[4] = (f3 & 0xFFFF);
-       color[5] = (f3 >> 16);
+       color[0] = (u16b)(f1 & 0xFFFF);
+       color[1] = (u16b)(f1 >> 16);
+       color[2] = (u16b)(f2 & 0xFFFF);
+       color[3] = (u16b)(f2 >> 16);
+       color[4] = (u16b)(f3 & 0xFFFF);
+       color[5] = (u16b)(f3 >> 16);
 
 
        /* Scan cols */
@@ -5171,7 +5189,12 @@ msg_format("'%s'
 
                        for (lc_buf_ptr = lc_buf; *lc_buf_ptr != 0; lc_buf_ptr++)
                        {
-                               lc_buf[lc_buf_ptr-lc_buf] = tolower(*lc_buf_ptr);
+#ifdef JP
+                               if (iskanji(*lc_buf_ptr))
+                                       lc_buf_ptr++;
+                               else
+#endif
+                                       lc_buf[lc_buf_ptr-lc_buf] = tolower(*lc_buf_ptr);
                        }
 
                        /* Hack -- keep searching */
@@ -5327,7 +5350,12 @@ prt("
                                /* Make finder lowercase */
                                for (cnt = 0; finder[cnt] != 0; cnt++)
                                {
-                                       finder[cnt] = tolower(finder[cnt]);
+#ifdef JP
+                                       if (iskanji(finder[cnt]))
+                                               cnt++;
+                                       else
+#endif
+                                               finder[cnt] = tolower(finder[cnt]);
                                }
 
                                /* Show it */
@@ -5734,16 +5762,16 @@ void get_name(void)
        {
                /* Use the name */
                strcpy(player_name, tmp);
-
-               /* Process the player name */
-               process_player_name(FALSE);
        }
-       else if (strlen(player_name))
+       else if (0 == strlen(player_name))
        {
-               /* Process the player name */
-               process_player_name(FALSE);
+               /* Use default name */
+               strcpy(player_name, "PLAYER");
        }
 
+       /* Process the player name */
+       process_player_name(FALSE);
+
        strcpy(tmp,ap_ptr->title);
 #ifdef JP
        if(ap_ptr->no == 1)
@@ -6881,7 +6909,7 @@ errr get_rnd_line(cptr file_name, int entry, char *output)
                }
 
        }
-
+       
        /* Get the number of entries */
        while (TRUE)
        {
@@ -6924,18 +6952,15 @@ errr get_rnd_line(cptr file_name, int entry, char *output)
                        /* Count the lines */
                        line_num++;
 
-#ifdef JP
-                      while(TRUE){
-                      test=my_fgets(fp, buf, 1024);
-                      if(test || buf[0]!='#')break;
-                                 }
-                        if (test==0){
-#else
-                       /* Try to read the line */
-                       if (my_fgets(fp, buf, 1024) == 0)
+                       while(TRUE)
                        {
-#endif
+                               test = my_fgets(fp, buf, 1024);
+                               if(test || buf[0] != '#')
+                                       break;
+                       }
 
+                        if (test==0)
+                       {
                                /* Found the line */
                                if (counter == line) break;
                        }
@@ -6975,166 +7000,36 @@ errr get_rnd_line_jonly(cptr file_name, int entry, char *output, int count)
     result=get_rnd_line(file_name, entry, output);
     if(result)break;
     kanji=0;
-    for(j=0 ; j<strlen(output) ; j++) kanji|=iskanji( output[j] );
+    for(j=0; output[j]; j++) kanji |= iskanji(output[j]);
     if(kanji)break;
   }
   return(result);
 }
 #endif
 
-
-/*AUTOPICK*/
+/*
+ * Process file for auto picker/destroyer.
+ */
 errr process_pickpref_file(cptr name)
 {
-       FILE *fp;
-
-       char buf[1024] , *s, *s2, isnew;
-
-       int i;
-
-       int num = -1;
+       char buf[1024];
 
        errr err = 0;
 
-       bool bypass = FALSE;
-
        /* Build the filename */
        path_build(buf, 1024, ANGBAND_DIR_USER, name);
 
-       /* Open the file */
-       fp = my_fopen(buf, "r");
-
-       /* No such file */
-       if (!fp) return (-1);
-
-
-       /* Process the file */
-       while (0 == my_fgets(fp, buf, 1024))
-       {
-               /* Count lines */
-               num++;
+       err = process_pref_file_aux(buf, TRUE);
 
-               /* Skip "empty" lines */
-               if (buf[0] == '\0') continue;
-
-               /* Skip comments */
-               if (buf[0] == '#') continue;
-
-               /* Process "?:<expr>" */
-               if ((buf[0] == '?') && (buf[1] == ':'))
-               {
-                       char f;
-                       cptr v;
-                       char *s;
-
-                       /* Start */
-                       s = buf + 2;
-
-                       /* Parse the expr */
-                       v = process_pref_file_expr(&s, &f);
-
-                       /* Set flag */
-                       bypass = (streq(v, "0") ? TRUE : FALSE);
-
-                       /* Continue */
-                       continue;
-               }
-
-               /* Apply conditionals */
-               if (bypass) continue;
-
-               /* Process "%:<file>" */
-               if (buf[0] == '%')
-               {
-                       /* Process that file if allowed */
-                       (void)process_pickpref_file(buf + 2);
-
-                       /* Continue */
-                       continue;
-               }
-
-                /* Nuke illegal char */
-                for(i=0 ; buf[i]; i++)
-               {
-#ifdef JP
-                       if (iskanji(buf[i]))
-                       {
-                               i++;
-                               continue;
-                       }
-#endif
-                       if (isspace(buf[i]) && buf[i] != ' ')
-                               break;
-               }
-               buf[i]=0;
-
-                s = buf;
-                /* Skip '!','~' */
-                if(buf[0] == '!' || buf[0] == '~') s++;
-
-                /* Auto-inscription? */
-                s2=strchr(s,'#');
-                if (s2) {*s2=0; s2++;}
-
-                /* Skip empty line */
-                if (*s == 0) continue;
-
-               /* don't mind upper or lower case */
-               for (i = 0; s[i]; i++)
-               {
-#ifdef JP
-                       if (iskanji(s[i]))
-                       {
-                               i++;
-                               continue;
-                       }
-#endif
-                       if ('#' == s[i])
-                               break;
-                       else if (isupper(s[i]))
-                               s[i] = tolower(s[i]);
-               }
-                /* Already has the same entry? */ 
-               isnew=1;
-                for(i=0;i<max_autopick;i++)
-                       if( !strcmp(s,autopick_name[i]) ){isnew=0;break;} 
-
-               if(isnew==0) continue;
-               autopick_name [max_autopick] = malloc(strlen(s) + 1);
-               strcpy(autopick_name [max_autopick], s);
-               switch(buf[0]){
-               case '~':
-                       autopick_action[max_autopick] = DONT_AUTOPICK;
-                       break;
-               case '!':
-                       autopick_action[max_autopick] = DO_AUTODESTROY;
-                       break;
-               default:
-                       autopick_action[max_autopick] = DO_AUTOPICK;
-                       break;
-               }
-                if( s2 ) {
-                    autopick_insc[max_autopick] = malloc(strlen(s2) + 1);
-                    strcpy(autopick_insc[max_autopick], s2);
-                } else {
-                    autopick_insc[max_autopick]=NULL;
-               }
-               max_autopick++;
-               if(max_autopick==MAX_AUTOPICK) break;
-       }
-
-       /* Close the file */
-       my_fclose(fp);
        /* Result */
        return (err);
 }
 
-static errr counts_seek(int fd, s32b where, bool flag)
+static errr counts_seek(int fd, u32b where, bool flag)
 {
        huge seekpoint;
        char temp1[128], temp2[128];
-       s32b zero_header[3] = {0L, 0L, 0L};
+       u32b zero_header[3] = {0L, 0L, 0L};
        int i;
 
 #ifdef SAVEFILE_USE_UID
@@ -7148,7 +7043,7 @@ static errr counts_seek(int fd, s32b where, bool flag)
        seekpoint = 0;
        while (1)
        {
-               if (fd_seek(fd, seekpoint + 3 * sizeof(s32b)))
+               if (fd_seek(fd, seekpoint + 3 * sizeof(u32b)))
                        return 1;
                if (fd_read(fd, (char*)(temp2), sizeof(temp2)))
                {
@@ -7156,7 +7051,7 @@ static errr counts_seek(int fd, s32b where, bool flag)
                                return 1;
                        /* add new name */
                        fd_seek(fd, seekpoint);
-                       fd_write(fd, (char*)zero_header, 3*sizeof(s32b));
+                       fd_write(fd, (char*)zero_header, 3*sizeof(u32b));
                        fd_write(fd, (char*)(temp1), sizeof(temp1));
                        break;
                }
@@ -7164,16 +7059,16 @@ static errr counts_seek(int fd, s32b where, bool flag)
                if (strcmp(temp1, temp2) == 0)
                        break;
 
-               seekpoint += 128 + 3 * sizeof(s32b);
+               seekpoint += 128 + 3 * sizeof(u32b);
        }
 
-       return fd_seek(fd, seekpoint + where * sizeof(s32b));
+       return fd_seek(fd, seekpoint + where * sizeof(u32b));
 }
 
-s32b counts_read(int where)
+u32b counts_read(int where)
 {
        int fd;
-       s32b count = 0;
+       u32b count = 0;
        char buf[1024];
 
 #ifdef JP
@@ -7184,7 +7079,7 @@ s32b counts_read(int where)
        fd = fd_open(buf, O_RDONLY);
 
        if (counts_seek(fd, where, FALSE) ||
-           fd_read(fd, (char*)(&count), sizeof(s32b)))
+           fd_read(fd, (char*)(&count), sizeof(u32b)))
                count = 0;
 
        (void)fd_close(fd);
@@ -7192,7 +7087,7 @@ s32b counts_read(int where)
        return count;
 }
 
-errr counts_write(int where, s32b count)
+errr counts_write(int where, u32b count)
 {
        int fd;
        char buf[1024];
@@ -7215,7 +7110,7 @@ errr counts_write(int where, s32b count)
        if (fd_lock(fd, F_WRLCK)) return 1;
 
        counts_seek(fd, where, TRUE);
-       fd_write(fd, (char*)(&count), sizeof(s32b));
+       fd_write(fd, (char*)(&count), sizeof(u32b));
 
        if (fd_lock(fd, F_UNLCK)) return 1;
 
index 1b74fbb..e088e1c 100644 (file)
@@ -2264,7 +2264,8 @@ t = object_desc_str(t, "(
               (bow_ptr->sval == SV_HEAVY_XBOW)) && (o_ptr->tval == TV_BOLT))))
        {
                int avgdam = 10;
-               int tmul,energy_fire;
+               int tmul;
+               s16b energy_fire;
 
                avgdam = o_ptr->dd * (o_ptr->ds + 1) * 10 / 2;
 
@@ -2277,60 +2278,8 @@ t = object_desc_str(t, "(
                /* effect of ammo */
                if (known) avgdam += (o_ptr->to_d * 10);
 
-               /* Stop compiler warnings */
-               energy_fire = 100;
-               tmul = 1;
-
-               /* Analyze the launcher */
-               switch (bow_ptr->sval)
-               {
-                       /* Sling and ammo */
-                       case SV_SLING:
-                       {
-                               tmul = 2;
-                               energy_fire = 8000;
-                               break;
-                       }
-
-                       /* Short Bow and Arrow */
-                       case SV_SHORT_BOW:
-                       {
-                               tmul = 2;
-                               energy_fire = 10000;
-                               break;
-                       }
-
-                       /* Long Bow and Arrow */
-                       case SV_LONG_BOW:
-                       {
-                               tmul = 3;
-                               energy_fire = 10000;
-                               break;
-                       }
-
-                       case SV_NAMAKE_BOW:
-                       {
-                               tmul = 3;
-                               energy_fire = 7777;
-                               break;
-                       }
-
-                       /* Light Crossbow and Bolt */
-                       case SV_LIGHT_XBOW:
-                       {
-                               tmul = 3;
-                               energy_fire = 12000;
-                               break;
-                       }
-
-                       /* Heavy Crossbow and Bolt */
-                       case SV_HEAVY_XBOW:
-                       {
-                               tmul = 4;
-                               energy_fire = 13333;
-                               break;
-                       }
-               }
+               energy_fire = bow_energy(bow_ptr->sval);
+               tmul = bow_tmul(bow_ptr->sval);
 
                /* Get extra "power" from "extra might" */
                if (p_ptr->xtra_might) tmul++;
@@ -2348,8 +2297,7 @@ t = object_desc_str(t, "(
                t = object_desc_num(t, avgdam);
                t = object_desc_chr(t, '/');
 
-               tmul = p_ptr->num_fire;
-               if (tmul == 0)
+               if (p_ptr->num_fire == 0)
                {
                        t = object_desc_chr(t, '0');
                }
index e2875fe..4374cba 100644 (file)
@@ -1904,7 +1904,7 @@ if (why) msg_format("
        /* The dungeon is ready */
        character_dungeon = TRUE;
 
-       if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) wiz_lite(TRUE, (p_ptr->pclass == CLASS_NINJA));
+       if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) wiz_lite(TRUE, (bool)(p_ptr->pclass == CLASS_NINJA));
 
        /* Remember when this level was "created" */
        old_turn = turn;
index 6768b2c..0bc3272 100644 (file)
@@ -1009,7 +1009,7 @@ bool build_tunnel2(int x1, int y1, int x2, int y2, int type, int cutoff)
        {
                /*
                * Divide path in half and call routine twice.
-               */
+                */
                dx = (x2 - x1) / 2;
                dy = (y2 - y1) / 2;
 
index 714eaa9..50951a2 100644 (file)
 #  define iskanji(x) ((((int)(x) & 0xff) >= 0xa1 && ((int)(x) & 0xff) <= 0xfe) || ((int)(x) & 0xff) == 0x8e)
 #  define iskana(x)  (0)
 # elif defined(SJIS)
-#  define iskanji(x)  ((0x81<=(unsigned char)(x) && (unsigned char)(x)<=0x9f)|| (0xe0<=(unsigned char)(x) && (unsigned char)(x)<=0xfc))
-#  define iskana(x)  (((x) >= 0xA0) && ((x)<= 0xDF))
+#  define iskanji(x)  ((0x81<=((int)(x) & 0xff) && ((int)(x) & 0xff)<=0x9f)|| (0xe0<=((int)(x) & 0xff) && ((int)(x) & 0xff)<=0xfc))
+#  define iskana(x)  ((((int)(x) & 0xff) >= 0xA0) && (((int)(x) & 0xff)<= 0xDF))
 # elif defined(MSDOS)
 #  include <jctype.h>
 # else
index 3d42a6d..61b1607 100644 (file)
@@ -814,7 +814,11 @@ static bool cast_hissatsu_spell(int spell)
                                        char m_name[80];
 
                                        monster_desc(m_name, &m_list[c_ptr->m_idx], 0);
+#ifdef JP
                                        msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡ª", m_name);
+#else
+                                       msg_format("%s is unharmed!", m_name);
+#endif
                                }
                                else py_attack(y, x, HISSATSU_SEKIRYUKA);
                        }
index 6963e67..85fd3c5 100644 (file)
@@ -114,7 +114,7 @@ static void set_proxy()
 
        path_build(buf, 1024, ANGBAND_DIR_PREF, "proxy.prf");
 
-       /* ¥Õ¥¡¥¤¥ë¤«¤éÀßÄê¤òÆɤࡣ*/
+       /* ¥Õ¥¡¥¤¥ë¤«¤éÀßÄê¤òÆɤࡣ */
        fp = my_fopen(buf, "r");
 
        if (!fp)
@@ -132,10 +132,10 @@ static void set_proxy()
 
        my_fclose(fp);
 
-       /* ¥Ý¥¤¥ó¥¿¤òÍÑ°Õ¡£*/
+       /* ¥Ý¥¤¥ó¥¿¤òÍÑ°Õ¡£ */
        s = buf;
 
-       /* "http://" ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤ÎÉôʬ¤ò¥«¥Ã¥È¤¹¤ë¡£*/
+       /* "http://" ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤ÎÉôʬ¤ò¥«¥Ã¥È¤¹¤ë¡£ */
 #if defined(WINDOWS)
        if (!strnicmp(s, "http://", 7))
        {
@@ -163,7 +163,7 @@ static void set_proxy()
        len = strlen(s);
        proxy = malloc(len + 1);
 
-       /* ¥Ý¡¼¥ÈÈֹ椬¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢¤¢¤ì¤Ðproxy_port¤ËÀßÄê¡£*/
+       /* ¥Ý¡¼¥ÈÈֹ椬¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢¤¢¤ì¤Ðproxy_port¤ËÀßÄê¡£ */
        --len;
        while (len > 0 && isdigit(s[len]))
                --len;
@@ -274,7 +274,7 @@ static int connect_server(int timeout, const char *host, int port)
        val.it_value.tv_sec = timeout;
        val.it_value.tv_usec = 0;
 
-       /* ¥¿¥¤¥à¥¢¥¦¥È¡¢¤â¤·¤¯¤ÏÃæÃǤ·¤¿»þ¤Î½èÍý¡£*/
+       /* ¥¿¥¤¥à¥¢¥¦¥È¡¢¤â¤·¤¯¤ÏÃæÃǤ·¤¿»þ¤Î½èÍý¡£ */
        if ((ret = sigsetjmp(env,1)) != 0)
        {
 #ifdef JP
@@ -332,9 +332,9 @@ static int connect_server(int timeout, const char *host, int port)
        to.sin_family = AF_INET;
 
        if(proxy && proxy[0] && proxy_port)
-               to.sin_port = htons(proxy_port);
+               to.sin_port = htons((unsigned short int)proxy_port);
        else
-               to.sin_port = htons(port);
+               to.sin_port = htons((unsigned short int)port);
 
 #ifndef WINDOWS
        if ((sd = socket(PF_INET, SOCK_STREAM, 0)) < 0)
index e38c307..74ef1be 100644 (file)
@@ -1429,10 +1429,15 @@ static void rd_extra(void)
 
        /* Read arena and rewards information */
        rd_s16b(&p_ptr->arena_number);
-       rd_s16b(&p_ptr->inside_arena);
+       rd_s16b(&tmp16s);
+       p_ptr->inside_arena = (bool)tmp16s;
        rd_s16b(&p_ptr->inside_quest);
        if (z_older_than(10, 3, 5)) p_ptr->inside_battle = FALSE;
-       else rd_s16b(&p_ptr->inside_battle);
+       else
+       {
+               rd_s16b(&tmp16s);
+               p_ptr->inside_battle = (bool)tmp16s;
+       }
        rd_byte(&p_ptr->exit_bldg);
        rd_byte(&p_ptr->leftbldg);
 
@@ -1469,7 +1474,7 @@ note(format("
        }
        else
        {
-                byte max = max_d_idx;
+                byte max = (byte)max_d_idx;
 
                 rd_byte(&max);
 
@@ -1518,7 +1523,10 @@ note(format("
        if (z_older_than(10, 3, 8))
                p_ptr->recall_dungeon = DUNGEON_ANGBAND;
        else
-               rd_s16b(&p_ptr->recall_dungeon);
+       {
+               rd_s16b(&tmp16s);
+               p_ptr->recall_dungeon = (byte)tmp16s;
+       }
        rd_s16b(&p_ptr->see_infra);
        rd_s16b(&p_ptr->tim_infra);
        rd_s16b(&p_ptr->oppose_fire);
@@ -1756,7 +1764,7 @@ note(format("
        }
        if (!z_older_than(11, 0, 5))
        {
-               rd_s32b(&p_ptr->count);
+               rd_u32b(&p_ptr->count);
        }
 }
 
@@ -1918,8 +1926,10 @@ static errr rd_dungeon(void)
        rd_s16b(&base_level);
 
        rd_s16b(&num_repro);
-       rd_s16b(&py);
-       rd_s16b(&px);
+       rd_s16b(&tmp16s);
+       py = (int)tmp16s;
+       rd_s16b(&tmp16s);
+       px = (int)tmp16s;
        if (z_older_than(10, 3, 13) && !dun_level && !p_ptr->inside_arena) {py = 33;px = 131;}
        rd_s16b(&cur_hgt);
        rd_s16b(&cur_wid);
index 074e0ed..ae453f6 100644 (file)
@@ -1,4 +1,3 @@
-/* CVS: Last edit by $Author$ on $Date$ */
 /* File: main-dos.c */
 
 /*
index d875584..5d91434 100644 (file)
@@ -1536,14 +1536,13 @@ static void term_window_resize(term_data *td)
  */
 static errr term_force_font(term_data *td, cptr path)
 {
-       int i;
-
        int wid, hgt;
 
+#ifndef JP
+       int i;
        char *base;
-
        char buf[1024];
-
+#endif
 
        /* Forget the old font (if needed) */
        if (td->font_id) DeleteObject(td->font_id);
@@ -1656,7 +1655,6 @@ static void term_change_font(term_data *td)
 {
 #ifdef JP
        CHOOSEFONT cf;
-    LOGFONT    lf;
 
        memset(&cf, 0, sizeof(cf));
        cf.lStructSize = sizeof(cf);
@@ -2728,8 +2726,9 @@ static void init_windows(void)
 
        term_data *td;
 
+#ifndef JP
        char buf[1024];
-
+#endif
 
        /* Main window */
        td = &data[0];
index 6fb7c37..a61e5d9 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: Makefile.dos
 
 # Purpose: Makefile support for "main-dos.c"
index 860915e..c7a0941 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: Makefile.ibm
 
 # Purpose: Makefile support for "main-ibm.c" and Gnu C
index 2de3154..a297c0f 100644 (file)
@@ -1,4 +1,3 @@
-# CVS: Last edit by $Author$ on $Date$
 # File: Makefile
 
 # This is not a very "nice" Makefile, but it usually works.
@@ -242,7 +241,8 @@ LIBS = -L/usr/X11R6/lib -lX11 -lncurses
 ##
 ## Variation -- compile for FreeBSD
 ##
-#CFLAGS = -Wall -O2  -fno-strength-reduce -m486 -pipe -g -D"USE_X11" $(JP_OPT) -D"USE_GCU" -I/usr/X11R6/include -DUSE_NCURSES
+# (for Japanese ver.)
+#CFLAGS = -Wall -O2  -fno-strength-reduce -m486 -pipe -g -D"USE_X11" -D"JP" -D"EUC" -D"USE_GCU" -I/usr/X11R6/include -DUSE_NCURSES -DDEFAULT_LOCALE="\"ja_JP.EUC\""
 #LIBS = -L/usr/X11R6/lib -lX11 -lncurses -lmytinfo -lxpg4
 
 ##
index c5dbbdd..fa2cd49 100644 (file)
@@ -192,7 +192,11 @@ bool make_attack_normal(int m_idx)
 
        if (p_ptr->special_defense & KATA_IAI)
        {
+#ifdef JP
                msg_print("Áê¼ê¤¬½±¤¤¤«¤«¤ëÁ°¤ËÁÇÁ᤯Éð´ï¤ò¿¶¤ë¤Ã¤¿¡£");
+#else
+               msg_format("You took sen, draw and cut in one motion before %s move.", m_name);
+#endif
                if (py_attack(m_ptr->fy, m_ptr->fx, HISSATSU_IAI)) return TRUE;
        }
 
@@ -308,7 +312,7 @@ bool make_attack_normal(int m_idx)
                                    msg_format("·âÂष¤¿¡£");
                                else
                                    msg_format("%^s¤Ï·âÂव¤ì¤¿¡£", m_name);
-                               syouryaku = 1;/*£²²óÌܰʹߤϾÊά*/
+                               syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
 #else
                                msg_format("%^s is repelled.", m_name);
 #endif
@@ -704,7 +708,7 @@ bool make_attack_normal(int m_idx)
                                    msg_format("%s", act);
                                else /*if(syouryaku==-1)*/
                                    msg_format("%^s%s", m_name, act);
-                               syouryaku = 1;/*£²²óÌܰʹߤϾÊά*/
+                               syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
 #else
                                msg_format("%^s %s", m_name, act);
 #endif
@@ -2193,7 +2197,7 @@ msg_format("%s
                                            msg_format("%s¤«¤ï¤·¤¿¡£", (p_ptr->special_attack & ATTACK_SUIKEN) ? "´ñ̯¤ÊÆ°¤­¤Ç" : "");
                                        else
                                            msg_format("%s%^s¤Î¹¶·â¤ò¤«¤ï¤·¤¿¡£", (p_ptr->special_attack & ATTACK_SUIKEN) ? "´ñ̯¤ÊÆ°¤­¤Ç" : "", m_name);
-                                       syouryaku = 1;/*£²²óÌܰʹߤϾÊά*/
+                                       syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
 #else
                                        msg_format("%^s misses you.", m_name);
 #endif
@@ -2247,7 +2251,11 @@ msg_format("%^s
                monster_desc(m_name, m_ptr, 0);
 
                p_ptr->csp -= 7;
+#ifdef JP
                msg_format("%^s¤ËÈ¿·â¤·¤¿¡ª", m_name);
+#else
+               msg_format("Your counterattack to %s!", m_name);
+#endif
                py_attack(m_ptr->fy, m_ptr->fx, HISSATSU_COUNTER);
                fear = FALSE;
        }
index 9e35180..42a2912 100644 (file)
@@ -371,7 +371,7 @@ msg_format("%^s
                /*
                * Run (sometimes) if at 10% or less of max hit points,
                * or (usually) when hit for half its current hit points
-               */
+                */
                if (((percentage <= 10) && (rand_int(10) < percentage)) ||
                        ((dam >= m_ptr->hp) && (rand_int(100) < 80)))
                {
@@ -878,7 +878,7 @@ static bool find_safety(int m_idx, int *yp, int *xp)
                        if (!cave_floor_grid(c_ptr)) continue;
 
                        /* Check for "availability" (if monsters can flow) */
-                       if (!stupid_monsters && !p_ptr->no_flowed)
+                       if (!stupid_monsters && !(m_ptr->mflag2 & MFLAG_NOFLOW))
                        {
                                /* Ignore grids very far from the player */
                                if (c_ptr->when < cave[py][px].when) continue;
@@ -1026,7 +1026,7 @@ static bool get_moves(int m_idx, int *mm)
        bool         done = FALSE;
        bool         will_run = mon_will_run(m_idx);
        cave_type       *c_ptr;
-       bool         no_flow = (p_ptr->no_flowed && (cave[m_ptr->fy][m_ptr->fx].cost > 2));
+       bool         no_flow = ((m_ptr->mflag2 & MFLAG_NOFLOW) && (cave[m_ptr->fy][m_ptr->fx].cost > 2));
        bool         can_pass_wall;
 
        /* Flow towards the player */
@@ -3537,12 +3537,10 @@ msg_print("
                                                        {
                                                                /* Dump a message */
 #ifdef JP
-msg_format("%^s¤Ï%s¤ò½¦¤ª¤¦¤È¤·¤¿¤¬¡¢¤À¤á¤À¤Ã¤¿¡£",
+msg_format("%^s¤Ï%s¤ò½¦¤ª¤¦¤È¤·¤¿¤¬¡¢¤À¤á¤À¤Ã¤¿¡£", m_name, o_name);
 #else
-                                                               msg_format("%^s tries to pick up %s, but fails.",
+msg_format("%^s tries to pick up %s, but fails.", m_name, o_name);
 #endif
-
-                                                                       m_name, o_name);
                                                        }
                                                }
                                        }
@@ -3613,6 +3611,12 @@ msg_format("%^s
                if (do_turn) break;
        }
 
+       /*
+        *  Forward movements failed, but now recieved LOS attack!
+        *  Try to flow by smell.
+        */
+       if (p_ptr->no_flowed && i > 2 &&  m_ptr->target_y)
+               m_ptr->mflag2 &= ~MFLAG_NOFLOW;
 
        /* If we haven't done anything, try casting a spell again */
        if (!do_turn && !do_move && !m_ptr->monfear && !stupid_monsters && !(p_ptr->riding == m_idx) && aware)
@@ -3821,6 +3825,11 @@ void process_monsters(void)
                fx = m_ptr->fx;
                fy = m_ptr->fy;
 
+               /* Flow by smell is allowed */
+               if (!stupid_monsters && !p_ptr->no_flowed)
+               {
+                       m_ptr->mflag2 &= ~MFLAG_NOFLOW;
+               }
 
                /* Assume no move */
                test = FALSE;
@@ -3842,7 +3851,7 @@ void process_monsters(void)
 
                /* Hack -- Monsters can "smell" the player from far away */
                /* Note that most monsters have "aaf" of "20" or so */
-               else if (!stupid_monsters && !p_ptr->no_flowed &&
+               else if (!stupid_monsters && !(m_ptr->mflag2 & MFLAG_NOFLOW) &&
                        (cave_floor_bold(py, px) || (cave[py][px].feat == FEAT_TREES)) &&
                        (cave[py][px].when == cave[fy][fx].when) &&
                        (cave[fy][fx].dist < MONSTER_FLOW_DEPTH) &&
@@ -3896,6 +3905,10 @@ void process_monsters(void)
                m_ptr->target_y = 0;
                m_ptr->target_x = 0;
 
+               /* Give up flow_by_smell when it might useless */
+               if (p_ptr->no_flowed && one_in_(3))
+                       m_ptr->mflag2 |= MFLAG_NOFLOW;
+
                /* Hack -- notice death or departure */
                if (!alive || death) break;
 
@@ -4083,7 +4096,11 @@ void monster_gain_exp(int m_idx, int s_idx)
 
                if (is_pet(m_ptr) || m_ptr->ml)
                {
+#ifdef JP
                        msg_format("%s¤Ï%s¤Ë¿Ê²½¤·¤¿¡£", m_name, r_name + r_ptr->name);
+#else
+                       msg_format("%^s evolved into %s.", m_name, r_name + r_ptr->name);
+#endif
                        r_info[old_r_idx].r_xtra1 |= MR1_SINKA;
                }
                update_mon(m_idx, FALSE);
@@ -4091,26 +4108,3 @@ void monster_gain_exp(int m_idx, int s_idx)
        }
        if (m_idx == p_ptr->riding) p_ptr->update |= PU_BONUS;
 }
-
-
-/*
- * ¥¨¥Í¥ë¥®¡¼¤ÎÁý²ÃÎÌ10d5¤ò®¤¯·×»»¤¹¤ë¤¿¤á¤Î´Ø¿ô
- */
-
-#define Go_no_JuuJou 5*5*5*5*5*5*5*5*5*5
-
-s32b gain_energy(void)
-{
-       int i;
-       s32b energy_result = 10;
-       s32b tmp;
-
-       tmp = rand_int(Go_no_JuuJou);
-
-       for (i = 0; i < 9; i ++){
-               energy_result += tmp % 5;
-               tmp /= 5;
-       }
-
-       return energy_result + tmp;
-}
index 1feb645..c4f54fb 100644 (file)
@@ -721,7 +721,11 @@ put_str(format("Lv   %s   Fail Info", ((use_mind == MIND_BERSERKER) || (use_mind
 
                                        if (use_menu)
                                        {
+#ifdef JP
                                                if (i == (menu_line-1)) strcpy(psi_desc, "  ¡Õ ");
+#else
+                                               if (i == (menu_line-1)) strcpy(psi_desc, "  >  ");
+#endif
                                                else strcpy(psi_desc, "     ");
                                        }
                                        else
@@ -2014,7 +2018,11 @@ msg_format("%s
                {
                        if ((use_mind == MIND_KI) && (n != 5) && p_ptr->magic_num1[0])
                        {
+#ifdef JP
                                msg_print("µ¤¤¬»¶¤Ã¤Æ¤·¤Þ¤Ã¤¿¡¥¡¥¡¥");
+#else
+                               msg_print("Your improved Force has gone away...");
+#endif
                                p_ptr->magic_num1[0] = 0;
                        }
 
index 61ca179..eefc4a2 100644 (file)
@@ -11,7 +11,7 @@ static char *mind_tips[5][MAX_MIND_POWERS] =
        "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤È¡¢»À¡¢±ê¡¢Î䵤¡¢ÅÅ·â¡¢ÆǤÎÂÑÀ­¤âÆÀ¤é¤ì¤ë¡£",
        "¥ì¥Ù¥ë25̤Ëþ¤Ç¡¢¥¢¥¤¥Æ¥à¤ÎÊ·°Ïµ¤¤òÃΤ롣¥ì¥Ù¥ë25°Ê¾å¤Ç¡¢¥¢¥¤¥Æ¥à¤ò´ÕÄꤹ¤ë¡£",
        "¥ì¥Ù¥ë25̤Ëþ¤Ç¡¢¼«Ê¬¤òÃæ¿´¤È¤·¤¿Àº¿À¹¶·â¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£¥ì¥Ù¥ë25°Ê¾å¤Ç¡¢»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÀº¿À¹¶·â¤ò¹Ô¤¦¡£",
-       "¶²ÉݤȽý¤«¤é²óÉü¤·¡¢¥Ò¡¼¥íµ¤Ê¬¤«¤Ä²Ã®¾õÂ֤Ǥʤ±¤ì¤ÐHP¤¬¾¯¤·²óÉü¤¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢²Ã®¤¹¤ë¡£",
+       "¶²ÉݤÈۯ۰¤«¤é²óÉü¤·¡¢¥Ò¡¼¥íµ¤Ê¬¤«¤Ä²Ã®¾õÂ֤Ǥʤ±¤ì¤ÐHP¤¬¾¯¤·²óÉü¤¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢²Ã®¤¹¤ë¡£",
        "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î­¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£",
        "Àº¿À¹¶·â¤Îµå¤òÊü¤Ä¡£¥â¥ó¥¹¥¿¡¼¤ËÌ¿Ã椹¤ë¤È¡¢0¡Á1.5¥¿¡¼¥ó¾ÃÈñ¤¹¤ë¡£Äñ¹³¤µ¤ì¤Ê¤±¤ì¤Ð¡¢MP¤¬²óÉü¤¹¤ë¡£",
        "̵½ýµå¤ò¤âÀÚ¤êÎö¤¯½ã¿è¤Ê¥¨¥Í¥ë¥®¡¼¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£",
@@ -130,7 +130,7 @@ static char *mind_tips[5][MAX_MIND_POWERS] =
        "gives stone skin and some resistance to elements for a while. The level increased, the more number of resistances given.",
        "gives feeling of an item. or identify an item at level 25.",
        "generate a ball centered on you which inflict monster with PSI damage. or inflict all monsters with PSI damage at level 25",
-       "removes fear and cut. gives hiroism and speed. heals HP a little unless you already have hiroism and temporal speed boost.",
+       "removes fear and stun. gives hiroism and speed. heals HP a little unless you already have hiroism and temporal speed boost.",
        "pulls a distant item close to you.",
        "fires a ball which damages monsters and absorbs monsters' mind power. absorbing is takes more turns which from 0 to 1.5.",
        "fires a beam of pure energy which penetrate the invulnerability barrier.",
index f33c6a5..151708e 100644 (file)
@@ -518,7 +518,11 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw");
        /* Describe movement */
        if (r_idx == MON_CHAMELEON)
        {
+#ifdef JP
                roff("¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë²½¤±¤ë¡£");
+#else
+               roff("and can take the shape of other monster.");
+#endif
                return;
        }
        else
@@ -819,8 +823,7 @@ else                            roff("
                               (long)1000 / (p_ptr->max_plv+2) + 5) / 10);
 
                        /* Mention the experience */
-                       roff(format(" is worth %s%ld.%02ld point%s",
-                                   (r_ptr->flags1 & RF1_UNIQUE) ? "" : "about ", 
+                       roff(format(" is worth about %ld.%02ld point%s",
                                    (long)i, (long)j,
                                    (((i == 1) && (j == 0)) ? "" : "s")));
 
@@ -3051,7 +3054,7 @@ case RBE_DR_MANA:  q = "
         * Notice "Quest" monsters, but only if you
         * already encountered the monster.
         */
-       if ((flags1 & RF1_QUESTOR) && (cheat_know || ((r_ptr->r_sights) && (r_ptr->max_num) && ((r_idx == MON_OBERON) || (r_idx == MON_SERPENT)))))
+       if ((flags1 & RF1_QUESTOR) && ((r_ptr->r_sights) && (r_ptr->max_num) && ((r_idx == MON_OBERON) || (r_idx == MON_SERPENT))))
        {
 #ifdef JP
                c_roff(TERM_VIOLET, "¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò»¦¤·¤¿¤¤¤È¤¤¤¦¶¯¤¤Íß˾¤ò´¶¤¸¤Æ¤¤¤ë...");
@@ -3387,7 +3390,7 @@ monster_hook_type get_monster_hook(void)
        }
        else
        {
-               return monster_dungeon;
+               return (monster_hook_type)monster_dungeon;
        }
 }
 
@@ -3398,12 +3401,12 @@ monster_hook_type get_monster_hook2(int y, int x)
        switch (cave[y][x].feat)
        {
        case FEAT_SHAL_WATER:
-               return monster_shallow_water;
+               return (monster_hook_type)monster_shallow_water;
        case FEAT_DEEP_WATER:
-               return monster_deep_water;
+               return (monster_hook_type)monster_deep_water;
        case FEAT_DEEP_LAVA:
        case FEAT_SHAL_LAVA:
-               return monster_lava;
+               return (monster_hook_type)monster_lava;
        default:
                return NULL;
        }
index a16acc7..40f87bc 100644 (file)
@@ -597,19 +597,19 @@ static bool summon_specific_aux(int r_idx)
 
                case SUMMON_DEMON:
                {
-                       okay = (r_ptr->flags3 & RF3_DEMON);
+                       okay = (bool)(r_ptr->flags3 & RF3_DEMON);
                        break;
                }
 
                case SUMMON_UNDEAD:
                {
-                       okay = (r_ptr->flags3 & RF3_UNDEAD);
+                       okay = (bool)(r_ptr->flags3 & RF3_UNDEAD);
                        break;
                }
 
                case SUMMON_DRAGON:
                {
-                       okay = (r_ptr->flags3 & RF3_DRAGON);
+                       okay = (bool)(r_ptr->flags3 & RF3_DRAGON);
                        break;
                }
 
@@ -714,7 +714,7 @@ static bool summon_specific_aux(int r_idx)
 
                case SUMMON_ANIMAL:
                {
-                       okay = (r_ptr->flags3 & (RF3_ANIMAL));
+                       okay = (bool)(r_ptr->flags3 & (RF3_ANIMAL));
                        break;
                }
 
@@ -2497,9 +2497,19 @@ void choose_new_monster(int m_idx, bool born, int r_idx)
 
        if (m_idx == p_ptr->riding)
        {
+               char m_name[80];
+               monster_desc(m_name, m_ptr, 0);
+#ifdef JP
                msg_format("ÆÍÁ³%s¤¬ÊѿȤ·¤¿¡£", old_m_name);
+#else
+               msg_format("Suddenly, %s transforms!", old_m_name);
+#endif
                if (!(r_ptr->flags7 & RF7_RIDING))
+#ifdef JP
                        if (rakuba(0, TRUE)) msg_print("ÃÏÌ̤ËÍî¤È¤µ¤ì¤¿¡£");
+#else
+                       if (rakuba(0, TRUE)) msg_format("You have fallen from %s.", m_name);
+#endif
        }
 
        /* Extract the monster base speed */
@@ -3591,7 +3601,7 @@ bool multiply_monster(int m_idx, bool clone, bool friendly, bool pet)
                return FALSE;
 
        /* Create a new monster (awake, no groups) */
-       if (!place_monster_aux(y, x, m_ptr->r_idx, FALSE, FALSE, friendly, pet, TRUE, (m_ptr->mflag2 & MFLAG_NOPET)))
+       if (!place_monster_aux(y, x, m_ptr->r_idx, FALSE, FALSE, friendly, pet, TRUE, (bool)(m_ptr->mflag2 & MFLAG_NOPET)))
                return FALSE;
 
        if (clone)
index a91d798..8a0dfe6 100644 (file)
@@ -1599,7 +1599,11 @@ msg_format("%^s
                        {
                                p_ptr->magic_num1[1] = p_ptr->magic_num1[0];
                                p_ptr->magic_num1[0] = 0;
+#ifdef JP
                                msg_print("²Î¤¬ÅÓÀڤ줿¡£");
+#else
+                               msg_print("Your singing is interrupted.");
+#endif
                                p_ptr->action = ACTION_NONE;
 
                                /* Recalculate bonuses */
@@ -1625,8 +1629,11 @@ msg_format("%^s
                                if (p_ptr->health_who == p_ptr->riding) p_ptr->redraw |= PR_HEALTH;
                                p_ptr->redraw |= (PR_UHEALTH);
                        }
+
+#ifdef JP
                        if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
                                msg_print("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª");
+#endif
                        learn_spell(MS_DISPEL);
                        break;
                }
@@ -1948,7 +1955,11 @@ else msg_format("%^s
                {
                        disturb(1, 0);
                        if (m_ptr->r_idx == MON_JAIAN)
+#ifdef JP
                                msg_format("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×");
+#else
+                               msg_format("'Booooeeeeee'");
+#endif
 #ifdef JP
 else if (blind) msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
 #else
@@ -2101,7 +2112,11 @@ else msg_format("%^s
                {
                        disturb(1, 0);
                        if (m_ptr->r_idx == MON_BOTEI)
+#ifdef JP
                                msg_format("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×");
+#else
+                               msg_format("'Boty-Build cutter!!!'");
+#endif
 #ifdef JP
 else if (blind) msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
 #else
@@ -3581,12 +3596,20 @@ msg_format("%^s
 
                                                if((f3 & TR3_TELEPORT) || (p_ptr->muta1 & MUT1_VTELEPORT) || (p_ptr->pclass == CLASS_IMITATOR))
                                                {
+#ifdef JP
                                                        if(get_check("¤Ä¤¤¤Æ¤¤¤­¤Þ¤¹¤«¡©"))
+#else
+                                                       if(get_check("Do you follow it? "))
+#endif
                                                        {
                                                                if (randint(3) == 1)
                                                                {
                                                                        teleport_player(200);
+#ifdef JP
                                                                        msg_print("¼ºÇÔ¡ª");
+#else
+                                                                       msg_print("Failed!");
+#endif
                                                                }
                                                                else teleport_player_to(m_ptr->fy, m_ptr->fx, TRUE);
                                                                p_ptr->energy -= 100;
index d83cd47..0bc486f 100644 (file)
@@ -189,6 +189,7 @@ bool monst_spell_monst(int m_idx)
 
        bool friendly = is_friendly(m_ptr);
        bool pet = is_pet(m_ptr);
+       bool not_pet = (bool)(!pet);
 
        /* Cannot cast spells when confused */
        if (m_ptr->confused) return (FALSE);
@@ -1098,7 +1099,11 @@ msg_format("%^s
                                                disturb(1, 0);
 
                                                if (m_ptr->r_idx == MON_JAIAN)
+#ifdef JP
                                                        msg_format("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×");
+#else
+                                                       msg_format("'Booooeeeeee'");
+#endif
                                                else if (blind)
                                                {
 #ifdef JP
@@ -1401,7 +1406,11 @@ msg_format("%^s
                                                disturb(1, 0);
 
                                                if (m_ptr->r_idx == MON_BOTEI)
+#ifdef JP
                                                        msg_format("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×");
+#else
+                                                       msg_format("'Boty-Build cutter!!!'");
+#endif
                                                else if (blind)
                                                {
 #ifdef JP
@@ -1821,8 +1830,17 @@ msg_format("%^s
 
                                                if (m_ptr->r_idx == MON_ROLENTO)
                                                {
-if (blind) msg_format("%^s¤¬²¿¤«¤òÅꤲ¤¿¡£", m_name);
-else msg_format("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", m_name, t_name);
+#ifdef JP
+if (blind)
+       msg_format("%^s¤¬²¿¤«¤òÅꤲ¤¿¡£", m_name);
+else
+       msg_format("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", m_name, t_name);
+#else
+if (blind)
+       msg_format("%^s throws something.", m_name);
+else
+       msg_format("%^s throws a hand grenade.", m_name);
+#endif
                                                }
                                                else
                                                {
@@ -3354,12 +3372,20 @@ msg_format("%^s
 
                                                        if((f3 & TR3_TELEPORT) || (p_ptr->muta1 & MUT1_VTELEPORT) || (p_ptr->pclass == CLASS_IMITATOR))
                                                        {
+#ifdef JP
                                                                if(get_check("¤Ä¤¤¤Æ¤¤¤­¤Þ¤¹¤«¡©"))
+#else
+                                                               if(get_check("Do you follow it? "))
+#endif
                                                                {
                                                                        if (randint(3) == 1)
                                                                        {
                                                                                teleport_player(200);
+#ifdef JP
                                                                                msg_print("¼ºÇÔ¡ª");
+#else
+                                                                               msg_print("Failed!");
+#endif
                                                                        }
                                                                        else teleport_player_to(m_ptr->fy, m_ptr->fx, TRUE);
                                                                        p_ptr->energy -= 100;
@@ -3737,7 +3763,7 @@ msg_format("%^s
                                        }
                                }
 
-                               count += summon_specific(m_idx, y, x, rlev, 0, FALSE, friendly, pet, !pet, FALSE);
+                               count += summon_specific(m_idx, y, x, rlev, 0, FALSE, friendly, pet, not_pet, FALSE);
 
                                if (known && !see_t && count)
                                {
@@ -3771,7 +3797,7 @@ msg_format("%^s
 
                                for (k = 0; k < s_num_6; k++)
                                {
-                                       count += summon_specific(m_idx, y, x, rlev, 0, TRUE, friendly, pet, !pet, FALSE);
+                                       count += summon_specific(m_idx, y, x, rlev, 0, TRUE, friendly, pet, not_pet, FALSE);
                                }
 
                                if (known && !see_t && count)
@@ -4092,7 +4118,7 @@ msg_format("%s
 
                                for (k = 0; k < s_num_6; k++)
                                {
-                                       count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, !pet, FALSE);
+                                       count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, not_pet, FALSE);
                                }
 
                                if (known && !see_t && count)
@@ -4127,7 +4153,7 @@ msg_format("%^s
 
                                for (k = 0; k < s_num_4; k++)
                                {
-                                       count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, TRUE, friendly, pet, !pet, FALSE);
+                                       count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, TRUE, friendly, pet, not_pet, FALSE);
                                }
 
                                if (known && !see_t && count)
index 723e582..52c5556 100644 (file)
@@ -618,7 +618,11 @@ put_str("MP 
 
                                        if (use_menu)
                                        {
+#ifdef JP
                                                if (i == (menu_line-1)) strcpy(psi_desc, "  ¡Õ");
+#else
+                                               if (i == (menu_line-1)) strcpy(psi_desc, "  > ");
+#endif
                                                else strcpy(psi_desc, "    ");
                                        }
                                        else sprintf(psi_desc, "  %c)", I2A(i));
@@ -734,6 +738,7 @@ static bool cast_learned_spell(int spell, bool success)
        int             damage = 0;
        bool    unique_okay = FALSE;
        bool   pet = success;
+       bool   not_pet = (bool)(!pet);
        bool   no_trump = FALSE;
 
        if (!success || (randint(50+plev) < plev/10)) unique_okay = TRUE;
@@ -1397,7 +1402,11 @@ msg_print("̵
                break;
        case MS_WORLD:
                world_player = TRUE;
+#ifdef JP
                msg_print("¡Ö»þ¤è¡ª¡×");
+#else
+               msg_print("'Time!'");
+#endif
                msg_print(NULL);
 
                p_ptr->energy += (randint(200)+1200);
@@ -1569,7 +1578,11 @@ msg_print("
                        if (summon_kin_player(pet, summon_lev, py, px, FALSE))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿Ãç´Ö¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned fellows is angry!");
+#endif
                        }
                        else
                        {
@@ -1587,10 +1600,14 @@ msg_print("
                        msg_print("You summons Cyberdemons!");
 #endif
                for (k = 0 ;k < 1 ; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned Cyberdemons are angry!");
+#endif
                        }
                        else
                        {
@@ -1607,10 +1624,14 @@ msg_print("
                        msg_print("You summons help.");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned monster is angry!");
+#endif
                        }
                        else
                        {
@@ -1627,10 +1648,14 @@ msg_print("
                        msg_print("You summons monsters!");
 #endif
                for (k = 0;k < plev / 15 + 2; k++)
-                       if(summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, unique_okay, !pet))
+                       if(summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, unique_okay, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned monsters are angry!");
+#endif
                        }
                        else
                        {
@@ -1647,10 +1672,14 @@ msg_print("
                        msg_print("You summons ants.");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANT, TRUE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANT, TRUE, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥¢¥ê¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned ants are angry!");
+#endif
                        }
                        else
                        {
@@ -1667,10 +1696,14 @@ msg_print("
                        msg_print("You summons spiders.");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿ÃØéá¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned spiders are angry!");
+#endif
                        }
                        else
                        {
@@ -1687,10 +1720,14 @@ msg_print("
                        msg_print("You summons hounds.");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥Ï¥¦¥ó¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned hounds are angry!");
+#endif
                        }
                        else
                        {
@@ -1707,10 +1744,14 @@ msg_print("
                        msg_print("You summons hydras.");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, !pet, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, not_pet, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥Ò¥É¥é¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned hydras are angry!");
+#endif
                        }
                        else
                        {
@@ -1727,10 +1768,14 @@ msg_print("ŷ
                        msg_print("You summons angel!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANGEL, !pet, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANGEL, not_pet, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿Å·»È¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned angel is angry!");
+#endif
                        }
                        else
                        {
@@ -1747,10 +1792,14 @@ msg_print("
                        msg_print("You summons a demon from the Courts of Chaos!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, !pet, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, not_pet, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned demon is angry!");
+#endif
                        }
                        else
                        {
@@ -1767,10 +1816,14 @@ msg_print("
                        msg_print("You summons an undead adversary!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, !pet, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, not_pet, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned undead is angry!");
+#endif
                        }
                        else
                        {
@@ -1787,10 +1840,14 @@ msg_print("
                        msg_print("You summons dragon!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, !pet, FALSE, pet, FALSE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, not_pet, FALSE, pet, FALSE, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned dragon is angry!");
+#endif
                        }
                        else
                        {
@@ -1807,10 +1864,14 @@ msg_print("
                        msg_print("You summons greater undead!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, !pet, FALSE, pet, unique_okay, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, not_pet, FALSE, pet, unique_okay, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned greater undead is angry!");
+#endif
                        }
                        else
                        {
@@ -1827,10 +1888,14 @@ msg_print("
                        msg_print("You summons ancient dragons!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_DRAGON, !pet, FALSE, pet, unique_okay, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_DRAGON, not_pet, FALSE, pet, unique_okay, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¸ÅÂå¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned ancient dragon is angry!");
+#endif
                        }
                        else
                        {
@@ -1847,10 +1912,14 @@ msg_print("
                        msg_print("You summons Lords of Amber!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_AMBERITES, !pet, FALSE, pet, unique_okay, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_AMBERITES, not_pet, FALSE, pet, unique_okay, not_pet))
                        {
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥¢¥ó¥Ð¡¼¤Î²¦¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned Lords of Amber are angry!");
+#endif
                        }
                        else
                        {
@@ -1867,18 +1936,26 @@ msg_print("
                        msg_print("You summons special opponents!");
 #endif
                for (k = 0;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNIQUE, !pet, FALSE, pet, TRUE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNIQUE, not_pet, FALSE, pet, TRUE, not_pet))
                        {
                                count++;
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned special opponents are angry!");
+#endif
                        }
                for (k = count;k < 1; k++)
-                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, !pet, FALSE, pet, TRUE, !pet))
+                       if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, not_pet, FALSE, pet, TRUE, not_pet))
                        {
                                count++;
                                if (!pet)
+#ifdef JP
 msg_print("¾¤´Ô¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned greater undead are angry!");
+#endif
                        }
                if (!count)
                {
@@ -1891,7 +1968,11 @@ msg_print("
        }
        if (no_trump)
        {
+#ifdef JP
 msg_print("²¿¤â¸½¤ì¤Ê¤«¤Ã¤¿¡£");
+#else
+msg_print("No one have appeared.");
+#endif
        }
 
        return TRUE;
@@ -2091,7 +2172,11 @@ void learn_spell(int monspell)
        if (randint(p_ptr->lev + 70) > monster_powers[monspell].level + 40)
        {
                p_ptr->magic_num2[monspell] = 1;
+#ifdef JP
                msg_format("%s¤ò³Ø½¬¤·¤¿¡ª", monster_powers[monspell].name);
+#else
+               msg_format("You have studyed %s!", monster_powers[monspell].name);
+#endif
                gain_exp(monster_powers[monspell].level * monster_powers[monspell].smana);
 
                /* Sound */
index 402b83f..082daac 100644 (file)
@@ -211,7 +211,7 @@ muta_desc = "
                        muta_class = &(p_ptr->muta1);
                        muta_which = MUT1_MIDAS_TCH;
 #ifdef JP
-muta_desc = "¡Ö¥ß¥À¥¹²¦¤Î¼ê¡×¤ÎǽÎϤòÆÀ¤¿¡£";/*¥È¥¥¡¼¥à¥ì¥¤¥À¡¼¥¹¤Ë¤¢¤ê¤Þ¤·¤¿¤Í¡£*/
+muta_desc = "¡Ö¥ß¥À¥¹²¦¤Î¼ê¡×¤ÎǽÎϤòÆÀ¤¿¡£";/*¥È¥¥¡¼¥à¥ì¥¤¥À¡¼¥¹¤Ë¤¢¤ê¤Þ¤·¤¿¤Í¡£ */
 #else
                        muta_desc = "You gain the Midas touch.";
 #endif
index 0da9ad4..c922305 100644 (file)
@@ -7147,6 +7147,47 @@ if (ver && !verify("
 }
 
 
+bool py_pickup_floor_aux(void)
+{
+       s16b this_o_idx;
+
+       object_type *o_ptr;
+
+       cptr q, s;
+
+       int item;
+
+       /* Restrict the choices */
+       item_tester_hook = inven_carry_okay;
+
+       /* Get an object */
+#ifdef JP
+       q = "¤É¤ì¤ò½¦¤¤¤Þ¤¹¤«¡©";
+       s = "¤â¤¦¥¶¥Ã¥¯¤Ë¤Ï¾²¤Ë¤¢¤ë¤É¤Î¥¢¥¤¥Æ¥à¤âÆþ¤é¤Ê¤¤¡£";
+#else
+       q = "Get which item? ";
+       s = "You no longer have any room for the objects on the floor.";
+#endif
+
+       if (get_item(&item, q, s, (USE_FLOOR)))
+       {
+               this_o_idx = 0 - item;
+       }
+       else
+       {
+               return (FALSE);
+       }
+
+       /* Access the object */
+       o_ptr = &o_list[this_o_idx];
+
+       /* Pick up the object */
+       py_pickup_aux(this_o_idx);
+
+       return (TRUE);
+}
+
+
 /*
  * Make the player carry everything in a grid
  *
@@ -7165,8 +7206,6 @@ void py_pickup_floor(int pickup)
 
        int can_pickup = 0;
 
-       bool do_ask = TRUE;
-
        /* Scan the pile of objects */
        for (this_o_idx = cave[py][px].o_idx; this_o_idx; this_o_idx = next_o_idx)
        {
@@ -7358,7 +7397,7 @@ void py_pickup_floor(int pickup)
 
                        /* Build a prompt */
 #ifdef JP
-                                        (void)sprintf(out_val, "%s¤ò½¦¤¤¤Þ¤¹¤«? ", o_name);
+                       (void) sprintf(out_val, "%s¤ò½¦¤¤¤Þ¤¹¤«? ", o_name);
 #else
                        (void) sprintf(out_val, "Pick up %s? ", o_name);
 #endif
@@ -7372,78 +7411,32 @@ void py_pickup_floor(int pickup)
                        }
                }
 
-               /* Don't ask */
-               do_ask = FALSE;
-
-               /* Remember the object to pick up */
-               this_o_idx = floor_o_idx;
-       }
-
-       /* Allow the user to choose an object */
-       if (do_ask)
-       {
-               cptr q, s;
-
-               int item;
+               /* Access the object */
+               o_ptr = &o_list[floor_o_idx];
 
 #ifdef ALLOW_EASY_SENSE
 
                /* Option: Make object sensing easy */
                if (easy_sense)
                {
-                       int i;
-
-                       /* Sense each object in the stack */
-                       for (i = 0; i < floor_num; i++)
-                       {
-                               /* Access the object */
-                               o_ptr = &o_list[floor_list[i]];
-
-                               /* Sense the object */
-                               (void) sense_object(o_ptr);
-                       }
+                       /* Sense the object */
+                       (void) sense_object(o_ptr);
                }
 
 #endif /* ALLOW_EASY_SENSE */
 
-               /* Restrict the choices */
-               item_tester_hook = inven_carry_okay;
-
-               /* Get an object */
-#ifdef JP
-               q = "¤É¤ì¤ò½¦¤¤¤Þ¤¹¤«¡©";
-               s = "¤Ê¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£";
-#else
-               q = "Get which item? ";
-               s = "You see nothing there.";
-#endif
-
-               if (get_item(&item, q, s, (USE_FLOOR)))
-               {
-                       this_o_idx = 0 - item;
-               }
-               else
-               {
-                       return;
-               }
+               /* Pick up the object */
+               py_pickup_aux(floor_o_idx);
        }
 
-       /* Access the object */
-       o_ptr = &o_list[this_o_idx];
-
-#ifdef ALLOW_EASY_SENSE
-
-       /* Option: Make object sensing easy */
-       if (easy_sense)
+       /* Allow the user to choose an object */
+       else
        {
-               /* Sense the object */
-               (void) sense_object(o_ptr);
+               while (can_pickup--)
+               {
+                       if (!py_pickup_floor_aux()) break;
+               }
        }
-
-#endif /* ALLOW_EASY_SENSE */
-
-       /* Pick up the object */
-       py_pickup_aux(this_o_idx);
 }
 
 #endif /* ALLOW_EASY_FLOOR */
index f724d3c..e7c7c86 100644 (file)
@@ -5771,7 +5771,7 @@ void inven_item_describe(int item)
         /* "no more" ¤Î¾ì¹ç¤Ï¤³¤Á¤é¤Çɽ¼¨¤¹¤ë */
         if (o_ptr->number <= 0)
         {
-                /*FIRST*//*¤³¤³¤Ï¤â¤¦Ä̤é¤Ê¤¤¤«¤â*/
+                /*FIRST*//*¤³¤³¤Ï¤â¤¦Ä̤é¤Ê¤¤¤«¤â */
                 msg_format("¤â¤¦%s¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£", o_name);
         }
         else
@@ -7175,8 +7175,8 @@ static void drain_essence(void)
        u32b old_f1, old_f2, old_f3, new_f1, new_f2, new_f3;
        object_type *o_ptr;
        cptr            q, s;
-       byte iy, ix, marked;
-       s16b next_o_idx, weight, number;
+       byte iy, ix, marked, number;
+       s16b next_o_idx, weight;
 
        for (i = 0; i < MAX_ESSENCE; i++)
                drain_value[i] = 0;
index 820afbd..7178c78 100644 (file)
@@ -298,7 +298,7 @@ bool gain_magic(void)
 q = "¤É¤Î¥¢¥¤¥Æ¥à¤ÎËâÎϤò¼è¤ê¹þ¤ß¤Þ¤¹¤«? ";
 s = "ËâÎϤò¼è¤ê¹þ¤á¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
 #else
-       q = "Gain power which item? ";
+       q = "Gain power of which item? ";
        s = "You have nothing to gain power.";
 #endif
 
@@ -318,13 +318,21 @@ s = "
 
        if (!object_known_p(o_ptr))
        {
+#ifdef JP
                msg_print("´ÕÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¼è¤ê¹þ¤á¤Ê¤¤¡£");
+#else
+               msg_print("You need to identify before absorbing.");
+#endif
                return FALSE;
        }
 
        if (o_ptr->timeout)
        {
+#ifdef JP
                msg_print("½¼Å¶Ãæ¤Î¥¢¥¤¥Æ¥à¤Ï¼è¤ê¹þ¤á¤Ê¤¤¡£");
+#else
+               msg_print("This item is still charging.");
+#endif
                return FALSE;
        }
 
@@ -1052,9 +1060,17 @@ msg_print("
                                        if (cave[y][x].m_idx)
                                        {
                                                if (one_in_(2))
+#ifdef JP
 msg_print("¤¢¡¼¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¡ª¡ª¡ª");
+#else
+msg_print("Ahhhtatatatatatatatatatatatatatataatatatatattaaaaa!!!!");
+#endif
                                                else
+#ifdef JP
 msg_print("¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¡ª¡ª¡ª");
+#else
+msg_print("Oraoraoraoraoraoraoraoraoraoraoraoraoraoraoraoraora!!!!");
+#endif
                                                py_attack(y, x, 0);
                                                if (cave[y][x].m_idx)
                                                {
@@ -1280,26 +1296,42 @@ msg_print("
 
                                if (p_ptr->riding)
                                {
+#ifdef JP
                                        msg_print("º£¤Ï¾èÇÏÃæ¤À¡£");
+#else
+                                       msg_print("You ARE riding.");
+#endif
                                        return FALSE;
                                }
                                if (!do_riding(TRUE)) return TRUE;
                                m_ptr = &m_list[p_ptr->riding];
                                r_ptr = &r_info[m_ptr->r_idx];
                                monster_desc(m_name, m_ptr, 0);
+#ifdef JP
                                msg_format("%s¤Ë¾è¤Ã¤¿¡£",m_name);
+#else
+                               msg_format("You ride on %s.",m_name);
+#endif
                                if (is_pet(m_ptr)) break;
                                rlev = r_ptr->level;
                                if (r_ptr->flags1 & RF1_UNIQUE) rlev = rlev * 3 / 2;
                                if (rlev > 60) rlev = 60+(rlev-60)/2;
                                if ((randint(skill_exp[GINOU_RIDING]/120+p_ptr->lev*2/3) > rlev) && one_in_(2) && !p_ptr->inside_arena && !p_ptr->inside_battle && !(r_ptr->flags7 & (RF7_GUARDIAN)) && !(r_ptr->flags1 & (RF1_QUESTOR)) && (rlev < p_ptr->lev*3/2+rand_int(p_ptr->lev/5)))
                                {
+#ifdef JP
                                        msg_format("%s¤ò¼ê¤Ê¤º¤±¤¿¡£",m_name);
+#else
+                                       msg_format("You tame %s.",m_name);
+#endif
                                        set_pet(m_ptr);
                                }
                                else
                                {
+#ifdef JP
                                        msg_format("%s¤Ë¿¶¤êÍî¤È¤µ¤ì¤¿¡ª",m_name);
+#else
+                                       msg_format("You have thrown off by %s.",m_name);
+#endif
                                        rakuba(1,TRUE);
                                }
                        }
index 8175572..b40353a 100644 (file)
 /*#define SCORE_PATH "http://www.kmc.gr.jp/~habu/local/scoretest/score.cgi" */
 
 /*
-  simple buffer library
* simple buffer library
  */
 
-typedef struct _buf{
-  size_t max_size;
-  size_t size;
-  char *data;
+typedef struct {
+       size_t max_size;
+       size_t size;
+       char *data;
 } BUF;
 
 #define        BUFSIZE (65536)
@@ -54,165 +54,162 @@ typedef struct _buf{
 #ifdef SUNOS4
 static int Vasprintf(char **buf, const char *fmt, va_list ap)
 {
-    int ret;
+       int ret;
 
-    *buf = malloc(BUFSIZE);
+       *buf = malloc(BUFSIZE);
 
-    ret = vsnprintf(*buf, BUFSIZE, fmt, ap);
+       ret = vsnprintf(*buf, BUFSIZE, fmt, ap);
 
-    return ret;
+       return ret;
 }
 #endif
 
 #if defined(WINDOWS) || defined(MACINTOSH) || defined(SGI)
 static int Vasprintf(char **buf, const char *fmt, va_list ap)
 {
-    int ret;
-    *buf = malloc(BUFSIZE * 4);
+       int ret;
+       *buf = malloc(BUFSIZE * 4);
 
-    ret = vsprintf(*buf, fmt, ap);
+       ret = vsprintf(*buf, fmt, ap);
 
-    return ret;
+       return ret;
 }
 #endif
 
 static BUF* buf_new(void)
 {
-    BUF *p;
-
-    p = malloc(sizeof(BUF));
-    if((p = malloc(sizeof(BUF))) == NULL)
-       return NULL;
-
-    p->size = 0;
-    p->max_size = BUFSIZE;
-    if((p->data = malloc(BUFSIZE)) == NULL){
-       free(p);
-       return NULL;
-    }
-    return p;
+       BUF *p;
+
+       if ((p = malloc(sizeof(BUF))) == NULL)
+               return NULL;
+
+       p->size = 0;
+       p->max_size = BUFSIZE;
+       if ((p->data = malloc(BUFSIZE)) == NULL)
+       {
+               free(p);
+               return NULL;
+       }
+       return p;
 }
 
 #if 0
 static void buf_delete(BUF *b)
 {
-    free(b->data);
-    free(b);
+       free(b->data);
+       free(b);
 }
 #endif
 
 static int buf_append(BUF *buf, const char *data, size_t size)
 {
-    while(buf->size + size > buf->max_size){
-       char *tmp;
-       if((tmp = malloc(buf->max_size * 2)) == NULL) return -1;
+       while (buf->size + size > buf->max_size)
+       {
+               char *tmp;
+               if ((tmp = malloc(buf->max_size * 2)) == NULL) return -1;
 
-       memcpy(tmp, buf->data, buf->max_size);
-       free(buf->data);
+               memcpy(tmp, buf->data, buf->max_size);
+               free(buf->data);
 
-       buf->data = tmp;
+               buf->data = tmp;
 
-       buf->max_size *= 2;
-    }
-    memcpy(buf->data + buf->size, data, size);
-    buf->size += size;
+               buf->max_size *= 2;
+       }
+       memcpy(buf->data + buf->size, data, size);
+       buf->size += size;
 
-    return buf->size;
+       return buf->size;
 }
 
 static int buf_sprintf(BUF *buf, const char *fmt, ...)
 {
-    int                ret;
-    char       *tmpbuf;
-    va_list    ap;
+       int             ret;
+       char    *tmpbuf;
+       va_list ap;
 
-    va_start(ap, fmt);
-    vasprintf(&tmpbuf, fmt, ap);
-    va_end(ap);
+       va_start(ap, fmt);
+       vasprintf(&tmpbuf, fmt, ap);
+       va_end(ap);
 
-    if(!tmpbuf)
-       return -1;
+       if(!tmpbuf) return -1;
 
-    ret = buf_append(buf, tmpbuf, strlen(tmpbuf));
+       ret = buf_append(buf, tmpbuf, strlen(tmpbuf));
 
-    free(tmpbuf);
+       free(tmpbuf);
 
-    return ret;
+       return ret;
 }
 
 #if 0
 static int buf_read(BUF *buf, int fd)
 {
-    int len;
+       int len;
 #ifndef MACINTOSH
-    char tmp[BUFSIZE];
+       char tmp[BUFSIZE];
 #else
        char *tmp;
        
        tmp = calloc( BUFSIZE , sizeof(char) );
 #endif
 
-    while((len = read(fd, tmp, BUFSIZE)) > 0)
-       buf_append(buf, tmp, len);
+       while ((len = read(fd, tmp, BUFSIZE)) > 0)
+               buf_append(buf, tmp, len);
 
-    return buf->size;
+       return buf->size;
 }
 #endif
 
 #if 0
 static int buf_write(BUF *buf, int fd)
 {
-    write(fd, buf->data, buf->size);
+       write(fd, buf->data, buf->size);
 
-    return buf->size;
+       return buf->size;
 }
 
 static int buf_search(BUF *buf, const char *str)
 {
-    char *ret;
+       char *ret;
 
-    ret = strstr(buf->data, str);
+       ret = strstr(buf->data, str);
 
-    if(!ret)
-       return -1;
+       if (!ret) return -1;
 
-    return ret - buf->data;
+       return ret - buf->data;
 }
 
 static BUF * buf_subbuf(BUF *buf, int pos1, size_t sz)
 {
-    BUF *ret;
+       BUF *ret;
 
-    if(pos1 < 0)
-       return NULL;
+       if (pos1 < 0) return NULL;
 
-    ret = buf_new();
+       ret = buf_new();
 
-    if(sz <= 0)
-       sz = buf->size - pos1;
+       if (sz <= 0) sz = buf->size - pos1;
 
-    buf_append(ret, buf->data + pos1, sz);
+       buf_append(ret, buf->data + pos1, sz);
 
-    return ret;
+       return ret;
 }
 #endif
 
 static void http_post(int sd, char *url, BUF *buf)
 {
-  BUF *output;
+       BUF *output;
 
-  output = buf_new();
-  buf_sprintf(output, "POST %s HTTP/1.0\r\n", url);
-  buf_sprintf(output, "User-Agent: Hengband %d.%d.%d\r\n",
-             FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+       output = buf_new();
+       buf_sprintf(output, "POST %s HTTP/1.0\r\n", url);
+       buf_sprintf(output, "User-Agent: Hengband %d.%d.%d\r\n",
+                   FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
 
-  buf_sprintf(output, "Content-Length: %d\r\n", buf->size);
-  buf_sprintf(output, "Content-Encoding: binary\r\n");
-  buf_sprintf(output, "Content-Type: application/octet-stream\r\n");
-  buf_sprintf(output, "\r\n");
-  buf_append(output, buf->data, buf->size);
+       buf_sprintf(output, "Content-Length: %d\r\n", buf->size);
+       buf_sprintf(output, "Content-Encoding: binary\r\n");
+       buf_sprintf(output, "Content-Type: application/octet-stream\r\n");
+       buf_sprintf(output, "\r\n");
+       buf_append(output, buf->data, buf->size);
 
-  soc_write(sd, output->data, output->size);
+       soc_write(sd, output->data, output->size);
 }
 
 
@@ -227,14 +224,15 @@ static errr make_dump(BUF* dumpbuf)
 
        /* Open a new file */
        fff = my_fopen_temp(file_name, 1024);
-       if (!fff) {
+       if (!fff)
+       {
 #ifdef JP
-           msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
+               msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
 #else
-           msg_format("Failed to create temporary file %s.", file_name);
+               msg_format("Failed to create temporary file %s.", file_name);
 #endif
-           msg_print(NULL);
-           return 1;
+               msg_print(NULL);
+               return 1;
        }
 
        /* °ìö°ì»þ¥Õ¥¡¥¤¥ë¤òºî¤ë¡£Ä̾ï¤Î¥À¥ó¥×½ÐÎϤȶ¦Ä̲½¤¹¤ë¤¿¤á¡£ */
@@ -267,66 +265,54 @@ errr report_score(void)
 #endif
 
 #ifdef WINDOWS
-    WSADATA wsaData;
-    WORD wVersionRequested =(WORD) (( 1) |  ( 1 << 8));
+       WSADATA wsaData;
+       WORD wVersionRequested =(WORD) (( 1) |  ( 1 << 8));
 #endif
 
+       BUF *score;
+       int sd;
+       char seikakutmp[128];
 
-  BUF *score;
-  int sd;
-  char date[10];
-  char seikakutmp[128];
-  time_t ct = time(NULL);
-
-  score = buf_new();
+       score = buf_new();
 
 #ifdef JP
-  sprintf(seikakutmp, "%s%s", ap_ptr->title, (ap_ptr->no ? "¤Î" : ""));
+       sprintf(seikakutmp, "%s%s", ap_ptr->title, (ap_ptr->no ? "¤Î" : ""));
 #else
-  sprintf(seikakutmp, "%s ", ap_ptr->title);
+       sprintf(seikakutmp, "%s ", ap_ptr->title);
 #endif
 
-  /* HiperMegaHack -- Ê¸»ú¥³¡¼¥É¤òÁ÷¤ë */
-#if defined(EUC)
-  buf_sprintf(score, "code: 0\n");
-#elif defined(SJIS)
-  buf_sprintf(score, "code: 1\n");
-#elif defined(JIS)
-  buf_sprintf(score, "code: 2\n");
-#endif
-  buf_sprintf(score, "name: %s\n", player_name);
+       buf_sprintf(score, "name: %s\n", player_name);
 #ifdef JP
-  buf_sprintf(score, "version: ÊѶòÈÚÅÜ %d.%d.%d\n",
-             FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+       buf_sprintf(score, "version: ÊѶòÈÚÅÜ %d.%d.%d\n",
+                   FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
 #else
-  buf_sprintf(score, "version: Hengband %d.%d.%d\n",
-             FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+       buf_sprintf(score, "version: Hengband %d.%d.%d\n",
+                   FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
 #endif
-  buf_sprintf(score, "score: %d\n", total_points());
-  buf_sprintf(score, "level: %d\n", p_ptr->lev);
-  buf_sprintf(score, "depth: %d\n", dun_level);
-  buf_sprintf(score, "maxlv: %d\n", p_ptr->max_plv);
-  buf_sprintf(score, "maxdp: %d\n", max_dlv[DUNGEON_ANGBAND]);
-  buf_sprintf(score, "au: %d\n", p_ptr->au);
-  buf_sprintf(score, "turns: %d\n", turn_real(turn));
-  buf_sprintf(score, "sex: %d\n", p_ptr->psex);
-  buf_sprintf(score, "race: %s\n", rp_ptr->title);
-  buf_sprintf(score, "class: %s\n", cp_ptr->title);
-  buf_sprintf(score, "seikaku: %s\n", seikakutmp);
-  buf_sprintf(score, "realm1: %s\n", realm_names[p_ptr->realm1]);
-  buf_sprintf(score, "realm2: %s\n", realm_names[p_ptr->realm2]);
-  buf_sprintf(score, "killer: %s\n", died_from);
-  strftime(date, 9, "%Y/%m/%d", localtime(&ct));
-  buf_sprintf(score, "date: %s\n", date);
-  buf_sprintf(score, "-----charcter dump-----\n");
-
-  make_dump(score);
+       buf_sprintf(score, "score: %d\n", total_points());
+       buf_sprintf(score, "level: %d\n", p_ptr->lev);
+       buf_sprintf(score, "depth: %d\n", dun_level);
+       buf_sprintf(score, "maxlv: %d\n", p_ptr->max_plv);
+       buf_sprintf(score, "maxdp: %d\n", max_dlv[DUNGEON_ANGBAND]);
+       buf_sprintf(score, "au: %d\n", p_ptr->au);
+       buf_sprintf(score, "turns: %d\n", turn_real(turn));
+       buf_sprintf(score, "sex: %d\n", p_ptr->psex);
+       buf_sprintf(score, "race: %s\n", rp_ptr->title);
+       buf_sprintf(score, "class: %s\n", cp_ptr->title);
+       buf_sprintf(score, "seikaku: %s\n", seikakutmp);
+       buf_sprintf(score, "realm1: %s\n", realm_names[p_ptr->realm1]);
+       buf_sprintf(score, "realm2: %s\n", realm_names[p_ptr->realm2]);
+       buf_sprintf(score, "killer: %s\n", died_from);
+       buf_sprintf(score, "-----charcter dump-----\n");
+
+       make_dump(score);
 
 #ifdef WINDOWS
-    if(WSAStartup(wVersionRequested, &wsaData)){
-       msg_print("Report: WSAStartup failed.");
-       goto report_end;
-    }
+       if (WSAStartup(wVersionRequested, &wsaData))
+       {
+               msg_print("Report: WSAStartup failed.");
+               goto report_end;
+       }
 #endif
 
 #ifdef MACINTOSH
@@ -335,7 +321,8 @@ errr report_score(void)
 #else
        err = InitOpenTransport();
 #endif
-       if (err != noErr){
+       if (err != noErr)
+       {
                msg_print("Report: OpenTransport failed.");
                return 1;
        }
@@ -343,7 +330,7 @@ errr report_score(void)
 
        Term_clear();
 
-       while(1)
+       while (1)
        {
                char buff[160];
 #ifdef JP
@@ -364,9 +351,9 @@ errr report_score(void)
                (void)inkey();
                
 #ifdef JP
-               if(!get_check("¤â¤¦°ìÅÙÀܳ¤ò»î¤ß¤Þ¤¹¤«? "))
+               if (!get_check("¤â¤¦°ìÅÙÀܳ¤ò»î¤ß¤Þ¤¹¤«? "))
 #else
-               if(!get_check("Try again? "))
+               if (!get_check("Try again? "))
 #endif
                {
                        err = 1;
@@ -380,7 +367,7 @@ errr report_score(void)
 #endif
        Term_fresh();
        http_post(sd, SCORE_PATH, score);
-       
+
        disconnect_server(sd);
  report_end:
 #ifdef WINDOWS
@@ -399,7 +386,3 @@ errr report_score(void)
 }
 
 #endif /* WORLD_SCORE */
-
-
-
-
index f4dfa6c..13ed2eb 100644 (file)
@@ -2799,7 +2799,7 @@ static void generate_hmap(int y0, int x0, int xsiz, int ysiz, int grd, int roug,
        * Scale factor for middle points:
        * About sqrt(2) * 256 - correct for a square lattice
        * approximately correct for everything else.
-       */
+        */
        diagsize = 362;
 
        /* maximum of xsize and ysize */
index 1278df3..147e44e 100644 (file)
@@ -1007,7 +1007,7 @@ static void wr_extra(void)
 
        /* Max Player and Dungeon Levels */
        wr_s16b(p_ptr->max_plv);
-        tmp8u = max_d_idx;
+        tmp8u = (byte)max_d_idx;
         wr_byte(tmp8u);
         for (i = 0; i < tmp8u; i++)
                 wr_s16b(max_dlv[i]);
@@ -1141,7 +1141,7 @@ static void wr_extra(void)
 
        wr_s32b(p_ptr->visit);
 
-       wr_s32b(p_ptr->count);
+       wr_u32b(p_ptr->count);
 }
 
 
@@ -1170,8 +1170,8 @@ static void wr_dungeon(void)
        wr_byte(dungeon_type);
        wr_u16b(base_level);
        wr_u16b(num_repro);
-       wr_u16b(py);
-       wr_u16b(px);
+       wr_u16b((u16b)py);
+       wr_u16b((u16b)px);
        wr_u16b(cur_hgt);
        wr_u16b(cur_wid);
        wr_u16b(max_panel_rows);
@@ -2158,7 +2158,7 @@ msg_format("
                character_loaded = TRUE;
 
                {
-                       s32b tmp = counts_read(2);
+                       u32b tmp = counts_read(2);
                        if (tmp > p_ptr->count)
                                p_ptr->count = tmp;
                        if (counts_read(0) > playtime || counts_read(1) == playtime)
index 5a20f0d..41fd234 100644 (file)
@@ -1700,7 +1700,7 @@ static bool project_m(int who, int r, int y, int x, int dam, int typ , int flg)
        /* Is the monster "seen"? */
        bool seen = m_ptr->ml;
 
-       bool slept = m_ptr->csleep;
+       bool slept = (bool)(m_ptr->csleep > 0);
 
        /* Were the effects "obvious" (if seen)? */
        bool obvious = FALSE;
@@ -3373,7 +3373,11 @@ note = "
 
                        if (is_pet(m_ptr) || (r_ptr->flags1 & (RF1_UNIQUE | RF1_QUESTOR)) || (r_ptr->flags7 & (RF7_UNIQUE_7 | RF7_UNIQUE2)))
                        {
+#ifdef JP
 note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+#else
+ note = " is unaffected!";
+#endif
                        }
                        else
                        {
@@ -5530,9 +5534,17 @@ note = "
                                else
                                {
                                        delete_monster_idx(c_ptr->m_idx);
+#ifdef JP
                                        msg_format("%s¤Ï¾ÃÌǤ·¤¿¡ª",m_name);
+#else
+                                       msg_format("%^s disappered!",m_name);
+#endif
 
+#ifdef JP
                                        take_hit(DAMAGE_GENO, randint((r_ptr->level+1)/2), "¥â¥ó¥¹¥¿¡¼¾ÃÌǤμöʸ¤ò¾§¤¨¤¿ÈèÏ«", -1);
+#else
+                                       take_hit(DAMAGE_GENO, randint((r_ptr->level+1)/2), "the strain of casting Genocide One", -1);
+#endif
                                        dam = 0;
 
                                        chg_virtue(V_VITALITY, -1);
@@ -5657,7 +5669,7 @@ note_dies = "
 
        /* Modify the damage */
        tmp = dam;
-       dam = mon_damage_mod(m_ptr, dam, (typ == GF_PSY_SPEAR));
+       dam = mon_damage_mod(m_ptr, dam, (bool)(typ == GF_PSY_SPEAR));
 #ifdef JP
        if ((tmp > 0) && (dam == 0)) note = "¤Ï¥À¥á¡¼¥¸¤ò¼õ¤±¤Æ¤¤¤Ê¤¤";
 #else
@@ -5724,7 +5736,7 @@ note = "
                chg_virtue(V_VALOUR, -1);
 
                /* Teleport */
-               teleport_away(c_ptr->m_idx, do_dist, !who);
+               teleport_away(c_ptr->m_idx, do_dist, (bool)(!who));
 
                /* Hack -- get new location */
                y = m_ptr->fy;
@@ -6060,7 +6072,7 @@ msg_print("
                                {
                                        pet = TRUE;
                                }
-                               count += summon_specific((pet ? -1 : 0), py, px, (pet ? p_ptr->lev*2/3+randint(p_ptr->lev/2) : dun_level), 0, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), py, px, (pet ? p_ptr->lev*2/3+randint(p_ptr->lev/2) : dun_level), 0, TRUE, friendly, pet, FALSE, (bool)(!pet));
                                if (randint(6) != 1) break;
                        }
                        case 23: case 24: case 25:
@@ -6201,7 +6213,7 @@ msg_print("
  * We return "TRUE" if any "obvious" effects were observed.  XXX XXX Actually,
  * we just assume that the effects were obvious, for historical reasons.
  */
-static bool project_p(int who, int r, int y, int x, int dam, int typ, int a_rad, int monspell)
+static bool project_p(int who, cptr who_name, int r, int y, int x, int dam, int typ, int a_rad, int monspell)
 {
        int k = 0;
 
@@ -6295,9 +6307,8 @@ else msg_print("
        /* Get the monster name */
        monster_desc(m_name, m_ptr, 0);
 
-       /* Get the monster's real name */
-       monster_desc(killer, m_ptr, 0x88);
-
+       /* Get the monster's real name (gotten before polymorph!) */
+       strcpy(killer, who_name);
 
        /* Analyze the damage */
        switch (typ)
@@ -6476,7 +6487,11 @@ if (fuzzy) msg_print("
 
                        else if ((inventory[INVEN_RARM].name1 == ART_ZANTETSU) || (inventory[INVEN_LARM].name1 == ART_ZANTETSU))
                        {
+#ifdef JP
                                msg_print("Ìð¤ò»Â¤ê¼Î¤Æ¤¿¡ª");
+#else
+                               msg_print("You cut down the arrow!");
+#endif
                                break;
                        }
                        take_hit(DAMAGE_ATTACK, dam, killer, monspell);
@@ -7855,6 +7870,9 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
 
        bool jump = FALSE;
 
+       /* Attacker's name (prepared before polymorph)*/
+       char who_name[80];
+
        rakubadam_p = 0;
        rakubadam_m = 0;
 
@@ -7886,6 +7904,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
        {
                x1 = m_list[who].fx;
                y1 = m_list[who].fy;
+               monster_desc(who_name, &m_list[who], 0x88);
        }
 
        /* Oops */
@@ -8052,7 +8071,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                            monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
 
                                            /* Hack -- auto-recall */
-                                           if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                                           if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
                                            /* Hack - auto-track */
                                            if (m_ptr->ml) health_track(cave[project_m_y][project_m_x].m_idx);
@@ -8075,7 +8094,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                            monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
                            
                            /* Hack -- auto-recall */
-                           if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                           if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
                            
                            /* Hack - auto-track */
                            if (m_ptr->ml) health_track(cave[project_m_y][project_m_x].m_idx);
@@ -8208,7 +8227,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                            monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
                            
                            /* Hack -- auto-recall */
-                           if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                           if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
                            
                            /* Hack - auto-track */
                            if (m_ptr->ml) health_track(cave[project_m_y][project_m_x].m_idx);
@@ -8354,7 +8373,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                {
                        flg &= ~(PROJECT_HIDE);
 
-                       breath_shape(path_g, dist, &grids, gx, gy, gm, &gm_rad, rad, y1, x1, y2, x2, (typ == GF_DISINTEGRATE), TRUE);
+                       breath_shape(path_g, dist, &grids, gx, gy, gm, &gm_rad, rad, y1, x1, y2, x2, (bool)(typ == GF_DISINTEGRATE), TRUE);
                }
                else
                {
@@ -8680,7 +8699,7 @@ else msg_print("
                                monster_type *m_ptr = &m_list[cave[y][x].m_idx];
 
                                /* Hack -- auto-recall */
-                               if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                               if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
                                /* Hack - auto-track */
                                if (m_ptr->ml) health_track(cave[y][x].m_idx);
@@ -8713,9 +8732,9 @@ else msg_print("
                                /* Affect the player */
                                if ((y == y2) && (x == x2) && (y == py) && (x == px) && (flg & PROJECT_MONSTER))
                                {
-                                       if (project_p(who, d+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
+                                       if (project_p(who, who_name, d+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
                                }
-                               else if (project_p(who, d, y, x, dam, typ, rad, monspell)) notice = TRUE;
+                               else if (project_p(who, who_name, d, y, x, dam, typ, rad, monspell)) notice = TRUE;
                        }
                        else
                        {
@@ -8724,10 +8743,10 @@ else msg_print("
                                {
                                        if (!((flg & PROJECT_BEAM) || (flg & PROJECT_STOP)))
                                        {
-                                               if (project_p(who, dist+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
+                                               if (project_p(who, who_name, dist+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
                                        }
                                }
-                               else if (project_p(who, dist, y, x, dam, typ, rad, monspell)) notice = TRUE;
+                               else if (project_p(who, who_name, dist, y, x, dam, typ, rad, monspell)) notice = TRUE;
                        }
                }
        }
index 843b15d..58edb49 100644 (file)
@@ -5613,7 +5613,11 @@ void discharge_minion(bool force)
        }
        if (!okay || p_ptr->riding)
        {
+#ifdef JP
                if (!get_check("ËÜÅö¤ËÁ´¥Ú¥Ã¥È¤òÇúÇˤ·¤Þ¤¹¤«¡©"))
+#else
+               if (!get_check("You will blast all pets. Are you sure? "))
+#endif
                        return;
        }
        for (i = 1; i < m_max; i++)
@@ -5631,7 +5635,11 @@ void discharge_minion(bool force)
                        {
                                char m_name[80];
                                monster_desc(m_name, m_ptr, 0x00);
+#ifdef JP
                                msg_format("%s¤ÏÇúÇˤµ¤ì¤ë¤Î¤ò·ù¤¬¤ê¡¢¾¡¼ê¤Ë¼«Ê¬¤ÎÀ¤³¦¤Ø¤Èµ¢¤Ã¤¿¡£", m_name);
+#else
+                               msg_format("%^s resists to be blasted, and run away.", m_name);
+#endif
                                delete_monster_idx(i);
                                continue;
                        }
@@ -5916,7 +5924,11 @@ bool lite_area(int dam, int rad)
 
        if (d_info[dungeon_type].flags1 & DF1_DARKNESS)
        {
+#ifdef JP
                msg_print("¥À¥ó¥¸¥ç¥ó¤¬¸÷¤òµÛ¼ý¤·¤¿¡£");
+#else
+               msg_print("The darkness of this dungeon absorb your light.");
+#endif
                return FALSE;
        }
 
@@ -6165,8 +6177,8 @@ msg_print("
        c_ptr->m_idx = p_ptr->riding;
 
        /* Move the monster */
-       m_ptr->fy = (byte)py;
-       m_ptr->fx = (byte)px;
+       m_ptr->fy = py;
+       m_ptr->fx = px;
 
        /* Move the player */
        px = tx;
@@ -6705,7 +6717,7 @@ int activate_hi_summon(int y, int x, bool can_pet)
 {
        int i;
        int count = 0;
-       bool pet = FALSE, friendly = FALSE;
+       bool pet = FALSE, friendly = FALSE, not_pet;
        int summon_lev;
 
        if (can_pet)
@@ -6719,6 +6731,8 @@ int activate_hi_summon(int y, int x, bool can_pet)
                        pet = TRUE;
                }
        }
+       not_pet = (bool)(!pet);
+
        summon_lev = (pet ? p_ptr->lev * 2 / 3 + randint(p_ptr->lev / 2) : dun_level);
 
        for (i = 0; i < (randint(7) + (dun_level / 40)); i++)
@@ -6726,48 +6740,48 @@ int activate_hi_summon(int y, int x, bool can_pet)
                switch (randint(25) + (dun_level / 20))
                {
                        case 1: case 2:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANT, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANT, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 3: case 4:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_SPIDER, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_SPIDER, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 5: case 6:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HOUND, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HOUND, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 7: case 8:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HYDRA, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HYDRA, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 9: case 10:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANGEL, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANGEL, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 11: case 12:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNDEAD, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNDEAD, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 13: case 14:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DRAGON, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DRAGON, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 15: case 16:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DEMON, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DEMON, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        case 17:
                                if (pet || friendly) break;
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_AMBERITES, TRUE, friendly, pet, TRUE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_AMBERITES, TRUE, friendly, pet, TRUE, not_pet);
                                break;
                        case 18: case 19:
                                if (pet || friendly) break;
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNIQUE, TRUE, friendly, pet, TRUE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNIQUE, TRUE, friendly, pet, TRUE, not_pet);
                                break;
                        case 20: case 21:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, (!friendly && !pet), !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, (bool)(!friendly && !pet), not_pet);
                                break;
                        case 22: case 23:
-                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_DRAGON, TRUE, friendly, pet, (!friendly && !pet), !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_DRAGON, TRUE, friendly, pet, (bool)(!friendly && !pet), not_pet);
                                break;
                        case 24:
-                               count += summon_specific((pet ? -1 : 0), y, x, 100, SUMMON_CYBER, TRUE, friendly, pet, FALSE, !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x, 100, SUMMON_CYBER, TRUE, friendly, pet, FALSE, not_pet);
                                break;
                        default:
-                               count += summon_specific((pet ? -1 : 0), y, x,pet ? summon_lev : (((summon_lev * 3) / 2) + 5), 0, TRUE, friendly, pet, (!friendly && !pet), !pet);
+                               count += summon_specific((pet ? -1 : 0), y, x,pet ? summon_lev : (((summon_lev * 3) / 2) + 5), 0, TRUE, friendly, pet, (bool)(!friendly && !pet), not_pet);
                }
        }
 
index d26508d..84ebc05 100644 (file)
@@ -338,7 +338,7 @@ msg_print("
 
 #ifdef JP
        if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
-                               msg_format("¡Ø¤³¤Ã¤Á¤À¤¡¡¢%s¡Ù", player_name);
+               msg_format("¡Ø¤³¤Ã¤Á¤À¤¡¡¢%s¡Ù", player_name);
 #endif
 
        /* Save the old location */
@@ -596,7 +596,7 @@ msg_print("
                        (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
                {
                        quest[leaving_quest].status = QUEST_STATUS_FAILED;
-                       quest[leaving_quest].complev = p_ptr->lev;
+                       quest[leaving_quest].complev = (byte)p_ptr->lev;
                        if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
                        {
                                r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
@@ -2576,6 +2576,18 @@ void identify_item(object_type *o_ptr)
 }
 
 
+bool item_tester_hook_identify(object_type *o_ptr)
+{
+       return (bool)!object_known_p(o_ptr);
+}
+
+bool item_tester_hook_identify_weapon_armour(object_type *o_ptr)
+{
+       if (object_known_p(o_ptr))
+               return FALSE;
+       return item_tester_hook_weapon_armour(o_ptr);
+}
+
 /*
  * Identify an object in the inventory (or on the floor)
  * This routine does *not* automatically combine objects.
@@ -2591,12 +2603,14 @@ bool ident_spell(bool only_equip)
        item_tester_no_ryoute = TRUE;
 
        if (only_equip)
-               item_tester_hook = item_tester_hook_weapon_armour;
+               item_tester_hook = item_tester_hook_identify_weapon_armour;
+       else
+               item_tester_hook = item_tester_hook_identify;
 
        /* Get an item */
 #ifdef JP
 q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò´ÕÄꤷ¤Þ¤¹¤«? ";
-s = "´ÕÄê¤Ç¤­¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
+s = "´ÕÄꤹ¤ë¤Ù¤­¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
 #else
        q = "Identify which item? ";
        s = "You have nothing to identify.";
@@ -2726,6 +2740,18 @@ msg_print("
 
 
 
+bool item_tester_hook_identify_fully(object_type *o_ptr)
+{
+       return (bool)(!object_known_p(o_ptr) || !(o_ptr->ident & IDENT_MENTAL));
+}
+
+bool item_tester_hook_identify_fully_weapon_armour(object_type *o_ptr)
+{
+       if (!item_tester_hook_identify_fully(o_ptr))
+               return FALSE;
+       return item_tester_hook_weapon_armour(o_ptr);
+}
+
 /*
  * Fully "identify" an object in the inventory  -BEN-
  * This routine returns TRUE if an item was identified.
@@ -2739,12 +2765,14 @@ bool identify_fully(bool only_equip)
 
        item_tester_no_ryoute = TRUE;
        if (only_equip)
-               item_tester_hook = item_tester_hook_weapon_armour;
+               item_tester_hook = item_tester_hook_identify_fully_weapon_armour;
+       else
+               item_tester_hook = item_tester_hook_identify_fully;
 
        /* Get an item */
 #ifdef JP
 q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò´ÕÄꤷ¤Þ¤¹¤«? ";
-s = "´ÕÄê¤Ç¤­¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
+s = "´ÕÄꤹ¤ë¤Ù¤­¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
 #else
        q = "Identify which item? ";
        s = "You have nothing to identify.";
@@ -4171,7 +4199,7 @@ static void spell_info(char *p, int spell, int realm)
                case 16: sprintf(p, " %s25+d25", s_dur); break;
                case 17: sprintf(p, " %s", s_random); break;
                case 18: sprintf(p, " %s%dd8", s_dam, (4 + ((plev - 5) / 4))); break;
-               case 19: sprintf(p, " ºÇÂç%s50", s_dur); break;
+               case 19: sprintf(p, " %s25+d25", s_dur); break;
                case 21: sprintf(p, " %s3*100", s_dam); break;
                case 22: sprintf(p, " %sd%d", s_dam, plev * 3); break;
                case 23: sprintf(p, " %s%d", s_dam, 100 + plev * 2); break;
@@ -5429,7 +5457,7 @@ bool polymorph_monster(int y, int x)
                delete_monster_idx(c_ptr->m_idx);
 
                /* Create a new monster (no groups) */
-               if (place_monster_aux(y, x, new_r_idx, FALSE, FALSE, friendly, pet, FALSE, (m_ptr->mflag2 & MFLAG_NOPET)))
+               if (place_monster_aux(y, x, new_r_idx, FALSE, FALSE, friendly, pet, FALSE, (bool)(m_ptr->mflag2 & MFLAG_NOPET)))
                {
                        /* Success */
                        polymorphed = TRUE;
@@ -5439,7 +5467,7 @@ bool polymorph_monster(int y, int x)
                        monster_terrain_sensitive = FALSE;
 
                        /* Placing the new monster failed */
-                       place_monster_aux(y, x, old_r_idx, FALSE, FALSE, friendly, pet, TRUE, (m_ptr->mflag2 & MFLAG_NOPET));
+                       place_monster_aux(y, x, old_r_idx, FALSE, FALSE, friendly, pet, TRUE, (bool)(m_ptr->mflag2 & MFLAG_NOPET));
 
                        monster_terrain_sensitive = TRUE;
                }
@@ -5914,5 +5942,5 @@ bool summon_kin_player(bool pet, int level, int y, int x, bool group)
                summon_kin_type = 'V';
                break;
        }       
-       return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, group, FALSE, pet, FALSE, !pet);
+       return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, group, FALSE, pet, FALSE, (bool)(!pet));
 }
index 97ae174..53a8327 100644 (file)
@@ -14830,8 +14830,8 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* Mage */
        {
                                /*"¸«½¬¤¤",*/
-                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸*/
-                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸ */
+                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
                 "¸¸½Ñ»Õ",
                 "¼ö½Ñ»Õ",
                 "¾¤Îî»Õ",
@@ -14844,26 +14844,26 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
 
        /* Priest */
        {
-                "¿®¼Ô",                 /*¿®ÅÌ*/
-                "»øÁÎ",             /*¶µ²ñÊô»Å¼Ô¡¢¸«½¬¤¤ÁΡ¢È¼ÁΡ¢½¾¼Ô*/
+                "¿®¼Ô",                 /*¿®ÅÌ */
+                "»øÁÎ",             /*¶µ²ñÊô»Å¼Ô¡¢¸«½¬¤¤ÁΡ¢È¼ÁΡ¢½¾¼Ô */
                 "½ÏÎýÁÎ",
-                "À»¿¦¼Ô",                 /*À»¿¦¼Ô*/
-                "ÅÁÆ»»Õ",               /*»Êº×ɾµÄ°÷¡¢½¤Æ»²ñ²ñ°÷*/
-                "ËÒ»Õ",               /*¥é¥Þ¶µ¤ÎÁÎ*/
-                "À»¿Í",               /*Âç»Ê¶µ¡¢Áí¼ç¶µ¡¢ÁíÂç»Ê¶µ*/
-                "º×»Ê",                 /*º×»Ê¡¢»Êº×*/
-                "º×»ÊĹ",               /*Âçº×»Ê¡¢º×»ÊĹ*/
+                "À»¿¦¼Ô",                 /*À»¿¦¼Ô */
+                "ÅÁÆ»»Õ",               /*»Êº×ɾµÄ°÷¡¢½¤Æ»²ñ²ñ°÷ */
+                "ËÒ»Õ",               /*¥é¥Þ¶µ¤ÎÁΠ*/
+                "À»¿Í",               /*Âç»Ê¶µ¡¢Áí¼ç¶µ¡¢ÁíÂç»Ê¶µ */
+                "º×»Ê",                 /*º×»Ê¡¢»Êº× */
+                "º×»ÊĹ",               /*Âçº×»Ê¡¢º×»ÊĹ */
                 "¶µ¹Ä",
        },
 
        /* Rogues */
        {
-               /* "¤´¤í¤Ä¤­",*/                     /*¤´¤í¤Ä¤­¡¢É÷ÍèË·¡¢Éâϲ¼Ô*/
+               /* "¤´¤í¤Ä¤­",*/                     /*¤´¤í¤Ä¤­¡¢É÷ÍèË·¡¢Éâϲ¼Ô */
                 "¤¹¤ê",
-                "Äɤ¤¤Ï¤®",                     /*Äɤ¤Çí¤®¡¢¶¯Åð¡¢Å¥ËÀ*/
-                "ÌëÅð",                         /*¶¯Åð¡¢ÌëÅð¡¢Å¥ËÀ*/
-                "¤³¤½Å¥",                       /*¤³¤½Å¥¡¢¾®Å¥ËÀ*/
-                "¥Ú¥Æ¥ó»Õ",                     /*ÇîÅÌ¡¢¥Ú¥Æ¥ó»Õ¡¢º¾µ½»Õ*/
+                "Äɤ¤¤Ï¤®",                     /*Äɤ¤Çí¤®¡¢¶¯Åð¡¢Å¥ËÀ */
+                "ÌëÅð",                         /*¶¯Åð¡¢ÌëÅð¡¢Å¥ËÀ */
+                "¤³¤½Å¥",                       /*¤³¤½Å¥¡¢¾®Å¥ËÀ */
+                "¥Ú¥Æ¥ó»Õ",                     /*ÇîÅÌ¡¢¥Ú¥Æ¥ó»Õ¡¢º¾µ½»Õ */
                 "¥í¥¦¥·¡¼¥Õ",
                 "¥Ï¥¤¥·¡¼¥Õ",
                 "¥Þ¥¹¥¿¡¼¥·¡¼¥Õ",
@@ -14875,11 +14875,11 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        {
                 "»È¤¤Áö¤ê",
                 "ÃÚÉ×",
-                "À͸õ",                         /*À͸õ¡¢¸«Ä¥¤ê¡¢Ä廡ʼ*/
+                "À͸õ",                         /*À͸õ¡¢¸«Ä¥¤ê¡¢Ä廡ʼ */
                 "¼í¿Í",
                 "ÄÉÀ×¼Ô",
                 "ÀèƳ¼Ô",
-                "õ¸±¼Ô",                       /*³«Âó¼Ô¡¢Ãµ¸±¼Ô*/
+                "õ¸±¼Ô",                       /*³«Âó¼Ô¡¢Ãµ¸±¼Ô */
                 "ÌîÉú",
                 "ÌîÉúƬ",
                 "ÌîÉú¤ÎÁíÎÎ",
@@ -14887,7 +14887,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
 
        /* Paladins */
        {
-                "ͦ»Î",                 /*¿§ÃË¡¢°¦¿Í¡¢¤·¤ã¤ì¼Ô¡¢Í¦´º¤Ê¿Í*/
+                "ͦ»Î",                 /*¿§ÃË¡¢°¦¿Í¡¢¤·¤ã¤ì¼Ô¡¢Í¦´º¤Ê¿Í */
                 "±Ò»Î",
                 "Êݸî¼Ô",
                 "ËɱҼÔ",
@@ -14902,7 +14902,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* Warrior-Mage */
        {
                "¸«½¬¤¤",
-               "ÅÌÄï",                 /*ÃúÃÕ¡¢Îý½¬À¸*/
+               "ÅÌÄï",                 /*ÃúÃÕ¡¢Îý½¬À¸ */
                "°ì¿ÍÁ°",
                "¸Å»²Ê¼",
                "Ëâ½Ñʼ»Î",
@@ -14959,8 +14959,8 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* High Mage; same as Mage */
        {
                                /*"¸«½¬¤¤",*/
-                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸*/
-                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸ */
+                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
                 "¸¸½Ñ»Õ",
                 "¼ö½Ñ»Õ",
                 "¾¤Îî»Õ",
@@ -15016,8 +15016,8 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* Sorcerer; same as Mage */
        {
                                /*"¸«½¬¤¤",*/
-                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸*/
-                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸ */
+                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
                 "¸¸½Ñ»Õ",
                 "¼ö½Ñ»Õ",
                 "¾¤Îî»Õ",
@@ -15073,7 +15073,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* Red Mage; same as Warrior-Mage */
        {
                "¸«½¬¤¤",
-               "ÅÌÄï",                 /*ÃúÃÕ¡¢Îý½¬À¸*/
+               "ÅÌÄï",                 /*ÃúÃÕ¡¢Îý½¬À¸ */
                "°ì¿ÍÁ°",
                "¸Å»²Ê¼",
                "Ëâ½Ñʼ»Î",
@@ -15116,8 +15116,8 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* Blue Mage; same as Mage */
        {
                                /*"¸«½¬¤¤",*/
-                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸*/
-                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+                "Îý½¬À¸",                 /*ÃúÃÕ¡¢Îý½¬À¸ */
+                "´ñ½Ñ»Õ",               /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
                 "¸¸½Ñ»Õ",
                 "¼ö½Ñ»Õ",
                 "¾¤Îî»Õ",
@@ -16863,31 +16863,7 @@ option_type option_info[] =
 #endif
 
 
-       /*** Object Auto-Pick/Destroy ***/
-
-#ifdef JP
-        { &display_pick,                TRUE,  7, 7, 8,
-        "display_pick",                 "Á´ÂΥޥåפǼ«Æ°½¦¤¤¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë" },
-#else
-        { &display_pick,                TRUE,  7, 7, 8,
-        "display_pick",                 "Display auto-pick items on the small scale map" },
-#endif
-
-#ifdef JP
-        { &display_nopick,              FALSE, 7, 7, 9,
-        "display_nopick",               "Á´ÂΥޥåפǾ²¤ËÊüÃÖ¤¹¤ë¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë" },
-#else
-        { &display_nopick,              FALSE, 7, 7, 9,
-        "display_nopick",               "Display ignored items on the small scale map" },
-#endif
-
-#ifdef JP
-        { &display_destroy,             FALSE, 7, 7, 10,
-        "display_destroy",              "Á´ÂΥޥåפǼ«Æ°Ç˲õ¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë" },
-#else
-        { &display_destroy,             FALSE, 7, 7, 10,
-        "display_destroy",              "Display auto-destroy items on the small scale map" },
-#endif
+       /*** Easy Object Auto-Destroyer ***/
 
 #ifdef JP
         { &destroy_items,               FALSE, 7, 7, 0,
index 1783dbc..67961ae 100644 (file)
@@ -132,11 +132,11 @@ struct feature_type
        s16b unused;            /* Extra bytes (unused) */
 
        byte d_attr;            /* Default feature attribute */
-       char d_char;            /* Default feature character */
+       byte d_char;            /* Default feature character */
 
 
        byte x_attr;            /* Desired feature attribute */
-       char x_char;            /* Desired feature character */
+       byte x_char;            /* Desired feature character */
 };
 
 
@@ -185,11 +185,11 @@ struct object_kind
 
 
        byte d_attr;            /* Default object attribute */
-       char d_char;            /* Default object character */
+       byte d_char;            /* Default object character */
 
 
        byte x_attr;            /* Desired object attribute */
-       char x_char;            /* Desired object character */
+       byte x_char;            /* Desired object character */
 
 
        byte flavor;                    /* Special object flavor (or zero) */
@@ -375,11 +375,11 @@ struct monster_race
 
 
        byte d_attr;                    /* Default monster attribute */
-       char d_char;                    /* Default monster character */
+       byte d_char;                    /* Default monster character */
 
 
        byte x_attr;                    /* Desired monster attribute */
-       char x_char;                    /* Desired monster character */
+       byte x_char;                    /* Desired monster character */
 
 
        byte max_num;                   /* Maximum population allowed per level */
@@ -595,11 +595,11 @@ struct object_type
        char *name;
 
        byte d_attr;            /* Default object attribute */
-       char d_char;            /* Default object character */
+       byte d_char;            /* Default object character */
 
 
        byte x_attr;            /* Desired object attribute */
-       char x_char;            /* Desired object character */
+       byte x_char;            /* Desired object character */
 
 
        byte flavor;                    /* Special object flavor (or zero) */
@@ -1055,9 +1055,9 @@ struct player_type
 
        s16b town_num;                  /* Current town number */
        s16b arena_number;              /* monster number in arena -KMW- */
-       s16b inside_arena;              /* Is character inside arena? */
+       bool inside_arena;              /* Is character inside arena? */
        s16b inside_quest;              /* Inside quest level */
-       s16b inside_battle;             /* Is character inside tougijou? */
+       bool inside_battle;             /* Is character inside tougijou? */
 
        s16b rewards[MAX_BACT]; /* Status of rewards in town */
 
@@ -1079,7 +1079,7 @@ struct player_type
        s16b stat_max_max[6];   /* Maximal "maximal" stat values */
        s16b stat_cur[6];       /* Current "natural" stat values */
 
-       s32b count;
+       u32b count;
 
        s16b fast;                      /* Timed -- Fast */
        s16b slow;                      /* Timed -- Slow */
@@ -1144,7 +1144,7 @@ struct player_type
        s16b vir_types[8];
 
        s16b word_recall;       /* Word of recall counter */
-       s16b recall_dungeon;
+       byte recall_dungeon;
 
        s16b energy;            /* Current energy */
 
@@ -1462,7 +1462,7 @@ struct wilderness_type
        int         town;
        int         road;
        u32b        seed;
-       byte        level;
+       s16b        level;
        byte        entrance;
 };
 
@@ -1561,21 +1561,21 @@ struct dungeon_info_type {
        byte dy;
        byte dx;
 
-       s16b floor1;            /* Floor tile 1 */
+       byte floor1;            /* Floor tile 1 */
        byte floor_percent1;    /* Chance of type 1 */
-       s16b floor2;            /* Floor tile 2 */
+       byte floor2;            /* Floor tile 2 */
        byte floor_percent2;    /* Chance of type 2 */
-       s16b floor3;            /* Floor tile 3 */
+       byte floor3;            /* Floor tile 3 */
        byte floor_percent3;    /* Chance of type 3 */
-       s16b outer_wall;        /* Outer wall tile */
-       s16b inner_wall;        /* Inner wall tile */
+       byte outer_wall;        /* Outer wall tile */
+       byte inner_wall;        /* Inner wall tile */
        s16b stream1;           /* stream tile */
        s16b stream2;           /* stream tile */
-       s16b fill_type1;        /* Cave tile 1 */
+       byte fill_type1;        /* Cave tile 1 */
        byte fill_percent1;     /* Chance of type 1 */
-       s16b fill_type2;        /* Cave tile 2 */
+       byte fill_type2;        /* Cave tile 2 */
        byte fill_percent2;     /* Chance of type 2 */
-       s16b fill_type3;        /* Cave tile 3 */
+       byte fill_type3;        /* Cave tile 3 */
        byte fill_percent3;     /* Chance of type 3 */
        s16b mindepth;          /* Minimal depth */
        s16b maxdepth;          /* Maximal depth */
@@ -1587,17 +1587,17 @@ struct dungeon_info_type {
        int min_m_alloc_level;  /* Minimal number of monsters per level */
        int max_m_alloc_chance; /* There is a 1/max_m_alloc_chance chance per round of creating a new monster */
 
-       s32b flags1;            /* Flags 1 */
+       u32b flags1;            /* Flags 1 */
 
-       s32b mflags1;           /* The monster flags that are allowed */
-       s32b mflags2;
-       s32b mflags3;
-       s32b mflags4;
-       s32b mflags5;
-       s32b mflags6;
-       s32b mflags7;
-       s32b mflags8;
-       s32b mflags9;
+       u32b mflags1;           /* The monster flags that are allowed */
+       u32b mflags2;
+       u32b mflags3;
+       u32b mflags4;
+       u32b mflags5;
+       u32b mflags6;
+       u32b mflags7;
+       u32b mflags8;
+       u32b mflags9;
 
        char r_char[5];         /* Monster race allowed */
        int final_object;       /* The object you'll find at the bottom */
@@ -1609,3 +1609,7 @@ struct dungeon_info_type {
        int obj_great;
        int obj_good;
 };
+
+
+
+
index bb97a6c..d37ac47 100644 (file)
@@ -131,7 +131,11 @@ void user_name(char *buf, int id)
 
 #ifdef CAPITALIZE_USER_NAME
                /* Hack -- capitalize the user name */
-               if (islower(buf[0])) buf[0] = toupper(buf[0]);
+#ifdef JP
+               if (!iskanji(buf[0]))
+#endif
+                       if (islower(buf[0]))
+                               buf[0] = toupper(buf[0]);
 #endif /* CAPITALIZE_USER_NAME */
 
                return;
@@ -1674,7 +1678,7 @@ static char inkey_aux(void)
 
        char buf[1024];
 
-       /* Hack : ¥­¡¼ÆþÎÏÂÔ¤Á¤Ç»ß¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Î®¤ì¤¿¹Ô¤Îµ­²±¤ÏÉÔÍס£*/
+       /* Hack : ¥­¡¼ÆþÎÏÂÔ¤Á¤Ç»ß¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Î®¤ì¤¿¹Ô¤Îµ­²±¤ÏÉÔÍס£ */
        num_more = 0;
 
        /* Wait for a keypress */
@@ -2391,7 +2395,7 @@ void message_add(cptr str)
                }
                else
                {
-                       num_more++;/*ή¤ì¤¿¹Ô¤Î¿ô¤ò¿ô¤¨¤Æ¤ª¤¯*/
+                       num_more++;/*ή¤ì¤¿¹Ô¤Î¿ô¤ò¿ô¤¨¤Æ¤ª¤¯ */
                        now_message++;
                }
 
@@ -2574,7 +2578,7 @@ static void msg_flush(int x)
        }
        now_damaged = FALSE;
 
-       if (!nagasu)
+       if (!alive || !nagasu)
        {
                /* Pause for response */
 #ifdef JP
@@ -2589,13 +2593,13 @@ static void msg_flush(int x)
                {
                        int cmd = inkey();
                        if (cmd == ESCAPE) {
-                           num_more = -9999; /*auto_more¤Î¤È¤­¡¢Á´¤Æή¤¹¡£*/
+                           num_more = -9999; /*auto_more¤Î¤È¤­¡¢Á´¤Æή¤¹¡£ */
                            break;
                        } else if (cmd == ' ') {
-                           num_more = 0; /*£±²èÌ̤À¤±Î®¤¹¡£*/
+                           num_more = 0; /*£±²èÌ̤À¤±Î®¤¹¡£ */
                            break;
                        } else if ((cmd == '\n') || (cmd == '\r')) {
-                           num_more--; /*£±¹Ô¤À¤±Î®¤¹¡£*/
+                           num_more--; /*£±¹Ô¤À¤±Î®¤¹¡£ */
                            break;
                        }
                        if (quick_messages) break;
@@ -3048,7 +3052,7 @@ void c_roff(byte a, cptr str)
 
                /* Dump */
 #ifdef JP
-                Term_addch(a|0x10, ch);
+                Term_addch((byte)(a|0x10), ch);
 #else
                Term_addch(a, ch);
 #endif
@@ -3060,7 +3064,7 @@ void c_roff(byte a, cptr str)
                        s++;
                        x++;
                        ch = *s;
-                       Term_addch(a|0x20, ch);
+                       Term_addch((byte)(a|0x20), ch);
                }
 #endif
                /* Advance */
@@ -4795,3 +4799,4 @@ void roff_to_buf(cptr str, int maxlen, char *tbuf)
 
        return;
 }
+
index 2b29a10..b7d2b91 100644 (file)
@@ -36,9 +36,9 @@ char *macro_trigger_keycode[2][MAX_MACRO_TRIG];
 /* ¥ì¥Ù¥ë¥¢¥Ã¥×¤Î»þ¤Ë¾å¾ºÎ̤òɽ¼¨¤¹¤ë¤Î¤Ë»È¤¦ */
 int level_up = 0;
 int max_autopick=0;
-char *autopick_name[MAX_AUTOPICK];
-char *autopick_insc[MAX_AUTOPICK];
-s16b autopick_action[MAX_AUTOPICK];
+cptr autopick_name[MAX_AUTOPICK];
+cptr autopick_insc[MAX_AUTOPICK];
+byte autopick_action[MAX_AUTOPICK];
 
 /*
  * Executable version
@@ -353,8 +353,8 @@ s16b panel_col_prt, panel_row_prt;
 /*
  * Player location in dungeon
  */
-s16b py;
-s16b px;
+int py;
+int px;
 
 /*
  * Targetting variables
@@ -996,10 +996,6 @@ bool use_command;
 bool center_player;
 bool center_running;
 
-bool display_pick;
-bool display_nopick;
-bool display_destroy;
-
 /* Auto-destruction options */
 bool destroy_items;
 bool leave_worth;
@@ -1215,7 +1211,7 @@ s16b *max_dlv;
 byte feat_wall_outer;
 byte feat_wall_inner;
 byte feat_wall_solid;
-s16b floor_type[100], fill_type[100];
+byte floor_type[100], fill_type[100];
 
 bool now_damaged;
 s16b now_message;
index 127c1bb..b030e3a 100644 (file)
@@ -853,7 +853,7 @@ void wilderness_gen(void)
        for (i = 0; i < lim; i++)
        {
                /* Make a resident */
-               (void)alloc_monster((generate_encounter==TRUE)?0:3, ((generate_encounter==TRUE) || (one_in_(2) && (!p_ptr->town_num)))?FALSE:TRUE);
+               (void)alloc_monster(generate_encounter ? 0 : 3, (bool)!(generate_encounter || (one_in_(2) && (!p_ptr->town_num))));
        }
 
        if(generate_encounter) ambush_flag = TRUE;
@@ -940,7 +940,7 @@ struct wilderness_grid
 {
        int             terrain;    /* Terrain type */
        int             town;       /* Town number */
-       byte    level;          /* Level of the wilderness */
+       s16b    level;          /* Level of the wilderness */
        byte    road;       /* Road */
        char    name[32];       /* Name of the town/wilderness */
 };
index 3e8f68e..e07c92b 100644 (file)
@@ -334,6 +334,7 @@ static void do_cmd_wiz_change_aux(void)
        int i, j;
        int tmp_int;
        long tmp_long;
+       s16b tmp_s16b;
        char tmp_val[160];
        char ppp[80];
 
@@ -373,31 +374,31 @@ static void do_cmd_wiz_change_aux(void)
 #endif
 
        /* Extract */
-       tmp_long = atol(tmp_val);
+       tmp_s16b = atoi(tmp_val);
 
        /* Verify */
-       if (tmp_long < 0) tmp_long = 0L;
-       if (tmp_long > 8000) tmp_long = 8000L;
+       if (tmp_s16b < 0) tmp_s16b = 0L;
+       if (tmp_s16b > 8000) tmp_s16b = 8000L;
 
        for (j = 0; j <= TV_SWORD - TV_BOW;j++)
        {
                for (i = 0;i < 64;i++)
                {
-                       weapon_exp[j][i] = tmp_long;
+                       weapon_exp[j][i] = tmp_s16b;
                        if (weapon_exp[j][i] > weapon_exp_settei[p_ptr->pclass][j][i][1]) weapon_exp[j][i] = weapon_exp_settei[p_ptr->pclass][j][i][1];
                }
        }
 
        for (j = 0; j < 10; j++)
        {
-               skill_exp[j] = tmp_long;
+               skill_exp[j] = tmp_s16b;
                if (skill_exp[j] > skill_exp_settei[p_ptr->pclass][j][1]) skill_exp[j] = skill_exp_settei[p_ptr->pclass][j][1];
        }
 
        for (j = 0; j < 32; j++)
-               spell_exp[j] = (tmp_long > 1600 ? 1600 : tmp_long);
+               spell_exp[j] = (tmp_s16b > 1600 ? 1600 : tmp_s16b);
        for (; j < 64; j++)
-               spell_exp[j] = (tmp_long > 1400 ? 1400 : tmp_long);
+               spell_exp[j] = (tmp_s16b > 1400 ? 1400 : tmp_s16b);
 
        /* Default */
        sprintf(tmp_val, "%ld", (long)(p_ptr->au));
@@ -1464,7 +1465,7 @@ static void do_cmd_wiz_jump(void)
        dun_level = command_arg;
 
        if (!dun_level) dungeon_type = 0;
-       p_ptr->inside_arena = 0;
+       p_ptr->inside_arena = FALSE;
        leaving_quest = p_ptr->inside_quest;
 
        /* Leaving an 'only once' quest marks it as failed */
@@ -1473,7 +1474,7 @@ static void do_cmd_wiz_jump(void)
                (quest[leaving_quest].status == QUEST_STATUS_TAKEN))
        {
                quest[leaving_quest].status = QUEST_STATUS_FAILED;
-               quest[leaving_quest].complev = p_ptr->lev;
+               quest[leaving_quest].complev = (byte)p_ptr->lev;
                if (record_fix_quest)
                        do_cmd_write_nikki(NIKKI_FIX_QUEST_F, leaving_quest, NULL);
        }
@@ -1905,7 +1906,7 @@ void do_cmd_debug(void)
 
                /* Wizard Light the Level */
                case 'w':
-               wiz_lite(TRUE, (p_ptr->pclass == CLASS_NINJA));
+               wiz_lite(TRUE, (bool)(p_ptr->pclass == CLASS_NINJA));
                break;
 
                /* Increase Experience */
index 7be3b77..d10064d 100644 (file)
@@ -2034,7 +2034,7 @@ static void fix_message(void)
                for (i = 0; i < h; i++)
                {
                        /* Dump the message on the appropriate line */
-                       Term_putstr(0, (h - 1) - i, -1, (i < now_message) ? TERM_WHITE : TERM_SLATE, message_str((s16b)i));
+                       Term_putstr(0, (h - 1) - i, -1, (byte)((i < now_message) ? TERM_WHITE : TERM_SLATE), message_str((s16b)i));
 
                        /* Cursor */
                        Term_locate(&x, &y);
@@ -4561,7 +4561,7 @@ void calc_bonuses(void)
                int speed = m_list[p_ptr->riding].mspeed;
                if (m_list[p_ptr->riding].mspeed > 110)
                {
-                       p_ptr->pspeed = 110 + ((speed-110)*(skill_exp[GINOU_RIDING]*3 + p_ptr->lev*160L - 10000L)/(22000L));
+                       p_ptr->pspeed = 110 + (s16b)((speed-110)*(skill_exp[GINOU_RIDING]*3 + p_ptr->lev*160L - 10000L)/(22000L));
                        if (p_ptr->pspeed < 110) p_ptr->pspeed = 110;
                }
                else
index 990773e..61349b3 100644 (file)
@@ -440,7 +440,7 @@ void check_quest_completion(monster_type *m_ptr)
                                        if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL);
                                        /* completed quest */
                                        quest[i].status = QUEST_STATUS_COMPLETED;
-                                       quest[i].complev = p_ptr->lev;
+                                       quest[i].complev = (byte)p_ptr->lev;
 
                                        if (!(quest[i].flags & QUEST_FLAG_SILENT))
                                        {
@@ -481,7 +481,7 @@ msg_print("
                                        else
                                        {
                                                quest[i].status = QUEST_STATUS_COMPLETED;
-                                               quest[i].complev = p_ptr->lev;
+                                               quest[i].complev = (byte)p_ptr->lev;
 #ifdef JP
 msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
 #else
@@ -508,7 +508,7 @@ msg_print("
                                        if (record_rand_quest && (quest[i].type == QUEST_TYPE_RANDOM)) do_cmd_write_nikki(NIKKI_RAND_QUEST_C, i, NULL);
                                        /* completed quest */
                                        quest[i].status = QUEST_STATUS_COMPLETED;
-                                       quest[i].complev = p_ptr->lev;
+                                       quest[i].complev = (byte)p_ptr->lev;
                                        if (!(quest[i].flags & QUEST_FLAG_PRESET))
                                        {
                                                create_stairs = TRUE;
@@ -548,7 +548,7 @@ msg_print("
                                        if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL);
                                         /* completed quest */
                                        quest[i].status = QUEST_STATUS_COMPLETED;
-                                       quest[i].complev = p_ptr->lev;
+                                       quest[i].complev = (byte)p_ptr->lev;
 
                                        if (!quest[i].flags & QUEST_FLAG_SILENT)
                                        {
@@ -2048,7 +2048,7 @@ msg_format("%s
                        else if (r_ptr->r_tkills < MAX_SHORT) r_ptr->r_tkills++;
 
                        /* Hack -- Auto-recall */
-                       monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                       monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
                }
 
                if ((m_ptr->r_idx == MON_BANOR) || (m_ptr->r_idx == MON_LUPART))
@@ -2969,7 +2969,7 @@ cptr name = "
                                monster_desc(m_name, m_ptr, 0x08);
 
                                /* Hack -- track this monster race */
-                               monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+                               monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
 
                                /* Hack -- health bar for this monster */
                                health_track(c_ptr->m_idx);
@@ -4553,7 +4553,11 @@ msg_print("
 
                        if (p_ptr->prace == RACE_ANDROID)
                        {
+#ifdef JP
                                msg_print("¤·¤«¤·²¿¤âµ¯¤³¤é¤Ê¤«¤Ã¤¿¡£");
+#else
+                               msg_print("But, nothing happen.");
+#endif
                        }
                        else if (p_ptr->exp < PY_MAX_EXP)
                        {
@@ -4590,7 +4594,11 @@ msg_print("
 
                        if (p_ptr->prace == RACE_ANDROID)
                        {
+#ifdef JP
                                msg_print("¤·¤«¤·²¿¤âµ¯¤³¤é¤Ê¤«¤Ã¤¿¡£");
+#else
+                               msg_print("But, nothing happen.");
+#endif
                        }
                        else
                        {
@@ -5164,14 +5172,22 @@ msg_print("
                                                if (!buki_motteruka(INVEN_RARM)) break;
                                                object_desc(o_name, &inventory[INVEN_RARM], TRUE, 0);
                                                (void)curse_weapon(FALSE, INVEN_RARM);
+#ifdef JP
                                                reward = format("%s¤¬Ç˲õ¤µ¤ì¤¿¡£", o_name);
+#else
+                                               reward = format("destroying %s", o_name);
+#endif
                                        }
                                        else
                                        {
                                                if (!inventory[INVEN_BODY].k_idx) break;
                                                object_desc(o_name, &inventory[INVEN_BODY], TRUE, 0);
                                                (void)curse_armor();
+#ifdef JP
                                                reward = format("%s¤¬Ç˲õ¤µ¤ì¤¿¡£", o_name);
+#else
+                                               reward = format("destroying %s", o_name);
+#endif
                                        }
                                        break;
                                default:
@@ -5628,3 +5644,140 @@ msg_print("
        /* A "valid" direction was entered */
        return (TRUE);
 }
+
+
+/*
+ * ¥¨¥Í¥ë¥®¡¼¤ÎÁý²ÃÎÌ10d5¤ò®¤¯·×»»¤¹¤ë¤¿¤á¤Î´Ø¿ô
+ */
+
+#define Go_no_JuuJou 5*5*5*5*5*5*5*5*5*5
+
+s16b gain_energy(void)
+{
+       int i;
+       s32b energy_result = 10;
+       s32b tmp;
+
+       tmp = rand_int(Go_no_JuuJou);
+
+       for (i = 0; i < 9; i ++){
+               energy_result += tmp % 5;
+               tmp /= 5;
+       }
+
+       return (s16b)(energy_result + tmp);
+}
+
+
+/*
+ * Return bow energy 
+ */
+s16b bow_energy(int sval)
+{
+       int energy = 100;
+
+       /* Analyze the launcher */
+       switch (sval)
+       {
+               /* Sling and ammo */
+               case SV_SLING:
+               {
+                       energy = 8000;
+                       break;
+               }
+
+               /* Short Bow and Arrow */
+               case SV_SHORT_BOW:
+               {
+                       energy = 10000;
+                       break;
+               }
+
+               /* Long Bow and Arrow */
+               case SV_LONG_BOW:
+               {
+                       energy = 10000;
+                       break;
+               }
+
+               /* Bow of irresponsiblity and Arrow */
+               case SV_NAMAKE_BOW:
+               {
+                       energy = 7777;
+                       break;
+               }
+
+               /* Light Crossbow and Bolt */
+               case SV_LIGHT_XBOW:
+               {
+                       energy = 12000;
+                       break;
+               }
+
+               /* Heavy Crossbow and Bolt */
+               case SV_HEAVY_XBOW:
+               {
+                       energy = 13333;
+                       break;
+               }
+       }
+
+       return (energy);
+}
+
+
+/*
+ * Return bow tmul
+ */
+int bow_tmul(int sval)
+{
+       int tmul = 0;
+
+       /* Analyze the launcher */
+       switch (sval)
+       {
+               /* Sling and ammo */
+               case SV_SLING:
+               {
+                       tmul = 2;
+                       break;
+               }
+
+               /* Short Bow and Arrow */
+               case SV_SHORT_BOW:
+               {
+                       tmul = 2;
+                       break;
+               }
+
+               /* Long Bow and Arrow */
+               case SV_LONG_BOW:
+               {
+                       tmul = 3;
+                       break;
+               }
+
+               /* Bow of irresponsiblity and Arrow */
+               case SV_NAMAKE_BOW:
+               {
+                       tmul = 3;
+                       break;
+               }
+
+               /* Light Crossbow and Bolt */
+               case SV_LIGHT_XBOW:
+               {
+                       tmul = 3;
+                       break;
+               }
+
+               /* Heavy Crossbow and Bolt */
+               case SV_HEAVY_XBOW:
+               {
+                       tmul = 4;
+                       break;
+               }
+       }
+
+       return (tmul);
+}
index d145019..1030143 100644 (file)
@@ -617,7 +617,11 @@ uint vstrnfmt(char *buf, uint max, cptr fmt, va_list vp)
                                if (!isspace(tmp[q]))
                                {
                                        /* Capitalize if possible */
-                                       if (islower(tmp[q])) tmp[q] = toupper(tmp[q]);
+#ifdef JP
+                                       if (!iskanji(tmp[q]))
+#endif
+                                               if (islower(tmp[q]))
+                                                       tmp[q] = toupper(tmp[q]);
 
                                        /* Done */
                                        break;