Only in hengband/: .DS_Store
Only in hengband/: Angband_j.rsrc
Only in hengband/: Hengband(68k).make
Only in hengband/: Hengband(OSX)
Only in hengband/: Hengband(OSX).make
Only in hengband/: Hengband(PPC).make
diff -ur hengband_cvs/lib/edit/m_info.txt hengband/lib/edit/m_info.txt
--- hengband_cvs/lib/edit/m_info.txt	Fri Nov 15 23:24:12 2002
+++ hengband/lib/edit/m_info.txt	Wed Jun 16 09:06:04 2004
@@ -3703,3 +3703,197 @@
 
 # Crusade
 R:9:0
+
+
+### Medium ###
+N:27
+I:LIFE:WIS:0x06:1:1:400
+# Life
+R:0:1
+T:1:1:30:4  #0
+T:2:2:35:4
+T:3:3:35:4
+T:4:4:35:4
+T:5:5:35:4
+T:8:6:40:4
+T:11:10:40:3
+T:13:12:45:3
+T:15:12:45:4  #1
+T:16:15:50:4
+T:17:15:50:4
+T:18:16:50:4
+T:19:16:50:4
+T:20:18:50:4
+T:30:38:55:5
+T:35:70:75:5
+T:26:26:50:75  #2
+T:28:28:70:150
+T:32:32:60:75
+T:36:35:60:75
+T:38:35:70:75
+T:40:60:80:115
+T:45:45:80:125
+T:50:110:95:250
+T:10:18:50:40  #3
+T:25:25:50:50
+T:40:45:80:115
+T:44:84:80:225
+T:46:64:80:115
+T:48:60:80:100
+T:49:100:90:200
+T:50:100:80:250
+
+# Sorcery
+R:1:0
+
+# Neture
+R:2:1
+T:1:1:35:2  #0
+T:3:3:40:2
+T:4:4:40:3
+T:7:7:55:2
+T:7:7:50:3
+T:7:7:50:3
+T:8:8:50:3
+T:9:9:45:3
+T:10:8:80:4  #1
+T:11:9:40:3
+T:12:10:40:4
+T:14:12:55:4
+T:16:12:55:4
+T:18:22:65:8
+T:31:31:75:10
+T:40:60:90:50
+T:14:14:50:25  #2
+T:16:16:70:60
+T:22:30:85:70
+T:27:33:85:40
+T:35:35:80:80
+T:40:40:90:200
+T:45:55:90:250
+T:50:80:90:250
+T:28:28:60:150  #3
+T:30:30:60:160
+T:35:50:75:125
+T:33:33:75:35
+T:38:38:75:45
+T:42:40:75:100
+T:45:85:95:250
+T:48:85:75:150
+
+# Chaos
+R:3:0
+
+# Death
+R:4:1
+T:1:1:25:4  #0
+T:2:2:25:4
+T:3:3:25:4
+T:5:5:27:4
+T:7:7:30:4
+T:11:11:75:6
+T:12:12:30:4
+T:14:14:40:5
+T:16:16:40:5  #1
+T:19:19:30:4
+T:22:22:50:10
+T:28:30:85:30
+T:33:80:90:30
+T:37:35:60:16
+T:45:50:80:70
+T:47:45:95:100
+T:15:20:80:180  #2
+T:16:16:80:30
+T:18:18:30:15
+T:35:35:75:50
+T:42:95:70:90
+T:44:40:60:125
+T:45:44:70:40
+T:48:50:80:200
+T:30:30:75:50  #3
+T:37:85:85:220
+T:38:50:95:250
+T:42:60:80:200
+T:48:60:75:150
+T:49:80:80:125
+T:50:110:95:250
+T:50:115:95:250
+
+# Trump
+R:5:0
+
+# Arcane
+R:6:0
+
+# Craft
+R:7:0
+
+# Deamon
+R:8:1
+T:2:2:20:4  #0
+T:3:2:22:4
+T:5:4:25:4
+T:7:8:30:6
+T:11:8:30:1
+T:13:10:50:6
+T:15:13:35:5
+T:16:16:45:7
+T:19:19:45:9  #1
+T:24:20:60:20
+T:26:25:50:11
+T:29:30:50:12
+T:33:33:50:12
+T:35:75:80:8
+T:42:34:70:15
+T:44:90:85:40
+T:16:16:45:9  #2
+T:19:22:60:20
+T:37:50:60:35
+T:38:35:80:200
+T:39:55:80:200
+T:42:38:80:35
+T:46:45:75:40
+T:50:108:80:250
+T:10:10:66:8  #3
+T:32:32:85:35
+T:41:48:80:200
+T:46:62:85:100
+T:48:111:85:250
+T:49:60:80:200
+T:50:105:80:200
+T:50:80:85:250
+
+# Crusade
+R:9:1
+T:1:1:20:4  #0
+T:3:1:30:4
+T:5:4:35:4
+T:8:8:30:4
+T:9:9:50:4
+T:13:12:50:4
+T:15:14:55:4
+T:17:12:55:4
+T:18:18:50:4  #1
+T:22:19:55:4
+T:24:22:50:4
+T:27:25:80:5
+T:29:28:65:4
+T:34:28:65:4
+T:43:43:85:5
+T:40:40:85:5
+T:8:8:33:40  #2
+T:20:20:60:50
+T:25:21:65:70
+T:28:28:60:70
+T:35:32:70:100
+T:38:80:95:100
+T:46:55:80:100
+T:48:111:85:150
+T:10:10:66:40  #3
+T:35:45:80:125
+T:36:33:75:100
+T:42:40:80:75
+T:44:50:80:75
+T:47:80:85:100
+T:48:100:90:200
+T:50:100:80:250
diff -ur hengband_cvs/lib/edit/s_info.txt hengband/lib/edit/s_info.txt
--- hengband_cvs/lib/edit/s_info.txt	Fri Nov 15 23:24:13 2002
+++ hengband/lib/edit/s_info.txt	Wed Jun 16 09:06:04 2004
@@ -8967,3 +8967,335 @@
 S:0:0:7000  # SUDE
 S:1:4000:8000  # NITOURYU
 S:2:0:0  # RIDING
+
+### Medium ###
+N:27
+# Bow
+W:0:0:0:1  # 0
+W:0:1:0:1  # 
+W:0:2:0:3  # SLING
+W:0:3:0:1  # 
+W:0:4:0:1  # 
+W:0:5:0:1  # 
+W:0:6:0:1  # 
+W:0:7:0:1  # 
+W:0:8:0:1  # 
+W:0:9:0:1  # 
+W:0:10:0:1  # 10
+W:0:11:0:1  # 
+W:0:12:1:4  # SHORT_BOW
+W:0:13:1:4  # LONG_BOW
+W:0:14:0:1  # 
+W:0:15:0:1  # 
+W:0:16:0:1  # 
+W:0:17:0:1  # 
+W:0:18:0:1  # 
+W:0:19:0:1  # 
+W:0:20:0:1  # 20
+W:0:21:0:1  # 
+W:0:22:0:1  # 
+W:0:23:0:3  # LIGHT_XBOW
+W:0:24:0:3  # HEAVY_XBOW
+W:0:25:0:1  # 
+W:0:26:0:1  # 
+W:0:27:0:1  # 
+W:0:28:0:1  # 
+W:0:29:0:1  # 
+W:0:30:0:1  # 30
+W:0:31:0:1  # 
+W:0:32:0:1  # 
+W:0:33:0:1  # 
+W:0:34:0:1  # 
+W:0:35:0:1  # 
+W:0:36:0:1  # 
+W:0:37:0:1  # 
+W:0:38:0:1  # 
+W:0:39:0:1  # 
+W:0:40:0:1  # 40
+W:0:41:0:1  # 
+W:0:42:0:1  # 
+W:0:43:0:1  # 
+W:0:44:0:1  # 
+W:0:45:0:1  # 
+W:0:46:0:1  # 
+W:0:47:0:1  # 
+W:0:48:0:1  # 
+W:0:49:0:1  # 
+W:0:50:0:1  # 50
+W:0:51:0:1  # 
+W:0:52:0:1  # 
+W:0:53:0:1  # 
+W:0:54:0:1  # 
+W:0:55:0:1  # 
+W:0:56:0:1  # 
+W:0:57:0:1  # 
+W:0:58:0:1  # 
+W:0:59:0:1  # 
+W:0:60:0:1  # 60
+W:0:61:0:1  # 
+W:0:62:0:1  # 
+W:0:63:0:4  # NAMAKE
+# Digging
+W:1:0:0:1  # 0
+W:1:1:0:1  # SHOVEL
+W:1:2:0:1  # GNOMISH_SHOVEL
+W:1:3:0:1  # DWARVEN_SHOVEL
+W:1:4:0:1  # PICK
+W:1:5:0:1  # ORCISH_PICK
+W:1:6:0:1  # DWARVEN_PICK
+W:1:7:0:1  # MATTOCK
+W:1:8:0:1  # 
+W:1:9:0:1  # 
+W:1:10:0:1  # 10
+W:1:11:0:1  # 
+W:1:12:0:1  # 
+W:1:13:0:1  # 
+W:1:14:0:1  # 
+W:1:15:0:1  # 
+W:1:16:0:1  # 
+W:1:17:0:1  # 
+W:1:18:0:1  # 
+W:1:19:0:1  # 
+W:1:20:0:1  # 20
+W:1:21:0:1  # 
+W:1:22:0:1  # 
+W:1:23:0:1  # 
+W:1:24:0:1  # 
+W:1:25:0:1  # 
+W:1:26:0:1  # 
+W:1:27:0:1  # 
+W:1:28:0:1  # 
+W:1:29:0:1  # 
+W:1:30:0:1  # 30
+W:1:31:0:1  # 
+W:1:32:0:1  # 
+W:1:33:0:1  # 
+W:1:34:0:1  # 
+W:1:35:0:1  # 
+W:1:36:0:1  # 
+W:1:37:0:1  # 
+W:1:38:0:1  # 
+W:1:39:0:1  # 
+W:1:40:0:1  # 40
+W:1:41:0:1  # 
+W:1:42:0:1  # 
+W:1:43:0:1  # 
+W:1:44:0:1  # 
+W:1:45:0:1  # 
+W:1:46:0:1  # 
+W:1:47:0:1  # 
+W:1:48:0:1  # 
+W:1:49:0:1  # 
+W:1:50:0:1  # 50
+W:1:51:0:1  # 
+W:1:52:0:1  # 
+W:1:53:0:1  # 
+W:1:54:0:1  # 
+W:1:55:0:1  # 
+W:1:56:0:1  # 
+W:1:57:0:1  # 
+W:1:58:0:1  # 
+W:1:59:0:1  # 
+W:1:60:0:1  # 60
+W:1:61:0:1  # 
+W:1:62:0:1  # 
+W:1:63:0:1  # 
+# Hafted
+W:2:0:0:1  # 0
+W:2:1:0:1  # CLUB
+W:2:2:0:1  # WHIP
+W:2:3:0:1  # QUARTERSTAFF
+W:2:4:0:1  # NUNCHAKU
+W:2:5:0:1  # MACE
+W:2:6:0:1  # BALL_AND_CHAIN
+W:2:7:0:3  # JO_STAFF
+W:2:8:0:1  # WAR_HAMMER
+W:2:9:0:1  # 
+W:2:10:0:1  # 10
+W:2:11:0:1  # THREE_PIECE_ROD
+W:2:12:0:1  # MORNING_STAR
+W:2:13:0:1  # FLAIL
+W:2:14:0:2  # BO_STAFF
+W:2:15:0:1  # LEAD_FILLED_MACE
+W:2:16:0:1  # TETSUBO
+W:2:17:0:1  # 
+W:2:18:0:1  # TWO_HANDED_FLAIL
+W:2:19:0:1  # GREAT_HAMMER
+W:2:20:0:1  # MACE_OF_DISRUPTION
+W:2:21:0:2  # WIZSTAFF
+W:2:22:0:1  # 
+W:2:23:0:1  # 
+W:2:24:0:1  # 
+W:2:25:0:1  # 
+W:2:26:0:1  # 
+W:2:27:0:1  # 
+W:2:28:0:1  # 
+W:2:29:0:1  # 
+W:2:30:0:1  # 30
+W:2:31:0:1  # 
+W:2:32:0:1  # 
+W:2:33:0:1  # 
+W:2:34:0:1  # 
+W:2:35:0:1  # 
+W:2:36:0:1  # 
+W:2:37:0:1  # 
+W:2:38:0:1  # 
+W:2:39:0:1  # 
+W:2:40:0:0  # TSURIZAO
+W:2:41:0:1  # 
+W:2:42:0:1  # 
+W:2:43:0:1  # 
+W:2:44:0:1  # 
+W:2:45:0:1  # 
+W:2:46:0:1  # 
+W:2:47:0:1  # 
+W:2:48:0:1  # 
+W:2:49:0:1  # 
+W:2:50:0:1  # GROND
+W:2:51:0:1  # 
+W:2:52:0:1  # 
+W:2:53:0:1  # 
+W:2:54:0:1  # 
+W:2:55:0:1  # 
+W:2:56:0:1  # 
+W:2:57:0:1  # 
+W:2:58:0:1  # 
+W:2:59:0:1  # 
+W:2:60:0:1  # 60
+W:2:61:0:1  # 
+W:2:62:0:1  # 
+W:2:63:0:4  # NAMAKE
+# Polearm
+W:3:0:0:1  # 0
+W:3:1:0:1  # HATCHET
+W:3:2:0:2  # SPEAR
+W:3:3:0:3  # SICKLE
+W:3:4:0:1  # AWL_PIKE
+W:3:5:0:1  # TRIDENT
+W:3:6:0:1  # FAUCHARD
+W:3:7:0:1  # BROAD_SPEAR
+W:3:8:0:1  # PIKE
+W:3:9:0:4  # NAGINATA
+W:3:10:0:1  # BEAKED_AXE
+W:3:11:0:1  # BROAD_AXE
+W:3:12:0:1  # LUCERNE_HAMMER
+W:3:13:0:1  # GLAIVE
+W:3:14:0:1  # LAJATANG
+W:3:15:0:1  # HALBERD
+W:3:16:0:1  # GUISARME
+W:3:17:0:1  # SCYTHE
+W:3:18:0:1  # 
+W:3:19:0:1  # 
+W:3:20:0:1  # LANCE
+W:3:21:0:1  # 
+W:3:22:0:1  # BATTLE_AXE
+W:3:23:0:1  # 
+W:3:24:0:1  # 
+W:3:25:0:1  # GREAT_AXE
+W:3:26:0:1  # TRIFURCATE_SPEAR
+W:3:27:0:1  # 
+W:3:28:0:1  # LOCHABER_AXE
+W:3:29:0:1  # HEAVY_LANCE
+W:3:30:0:1  # SCYTHE_OF_SLICING
+W:3:31:0:1  # 
+W:3:32:0:1  # 
+W:3:33:0:1  # 
+W:3:34:0:1  # 
+W:3:35:0:1  # 
+W:3:36:0:1  # 
+W:3:37:0:1  # 
+W:3:38:0:1  # 
+W:3:39:0:1  # 
+W:3:40:0:1  # 40
+W:3:41:0:1  # 
+W:3:42:0:1  # 
+W:3:43:0:1  # 
+W:3:44:0:1  # 
+W:3:45:0:1  # 
+W:3:46:0:1  # 
+W:3:47:0:1  # 
+W:3:48:0:1  # 
+W:3:49:0:1  # 
+W:3:50:0:1  # DEATH_SCYTHE
+W:3:51:0:1  # 
+W:3:52:0:1  # 
+W:3:53:0:1  # 
+W:3:54:0:1  # 
+W:3:55:0:1  # 
+W:3:56:0:1  # 
+W:3:57:0:1  # 
+W:3:58:0:1  # 
+W:3:59:0:1  # 
+W:3:60:0:1  # 60
+W:3:61:0:1  # 
+W:3:62:0:1  # 
+W:3:63:0:1  # 
+# Sword
+W:4:0:0:1  # 0
+W:4:1:0:1  # BROKEN_DAGGER
+W:4:2:0:1  # BROKEN_SWORD
+W:4:3:0:1  # 
+W:4:4:0:1  # DAGGER
+W:4:5:0:1  # MAIN_GAUCHE
+W:4:6:0:4  # TANTO
+W:4:7:0:1  # RAPIER
+W:4:8:0:1  # SMALL_SWORD
+W:4:9:0:1  # BASILLARD
+W:4:10:0:1  # SHORT_SWORD
+W:4:11:0:1  # SABRE
+W:4:12:0:1  # CUTLASS
+W:4:13:0:2  # WAKIZASHI
+W:4:14:0:1  # KHOPESH
+W:4:15:0:1  # TULWAR
+W:4:16:0:1  # BROAD_SWORD
+W:4:17:0:1  # LONG_SWORD
+W:4:18:0:1  # SCIMITAR
+W:4:19:0:2  # NINJATO
+W:4:20:0:2  # KATANA
+W:4:21:0:1  # BASTARD_SWORD
+W:4:22:0:1  # GREAT_SCIMITAR
+W:4:23:0:1  # CLAYMORE
+W:4:24:0:1  # ESPADON
+W:4:25:0:1  # TWO_HANDED_SWORD
+W:4:26:0:1  # FLAMBERGE
+W:4:27:0:1  # NO_DACHI
+W:4:28:0:1  # EXECUTIOERS_SWORD
+W:4:29:0:1  # ZWEIHANDER
+W:4:30:0:1  # BLADE_OF_CHAOS
+W:4:31:0:1  # DIAMOND_EDGE
+W:4:32:0:4  # DOKUBARI
+W:4:33:0:1  # 
+W:4:34:0:1  # 
+W:4:35:0:1  # 
+W:4:36:0:1  # 
+W:4:37:0:1  # 
+W:4:38:0:1  # 
+W:4:39:0:1  # 
+W:4:40:0:1  # 40
+W:4:41:0:1  # 
+W:4:42:0:1  # 
+W:4:43:0:1  # 
+W:4:44:0:1  # 
+W:4:45:0:1  # 
+W:4:46:0:1  # 
+W:4:47:0:1  # 
+W:4:48:0:1  # 
+W:4:49:0:1  # 
+W:4:50:0:1  # 50
+W:4:51:0:1  # 
+W:4:52:0:1  # 
+W:4:53:0:1  # 
+W:4:54:0:1  # 
+W:4:55:0:1  # 
+W:4:56:0:1  # 
+W:4:57:0:1  # 
+W:4:58:0:1  # 
+W:4:59:0:1  # 
+W:4:60:0:1  # 60
+W:4:61:0:1  # 
+W:4:62:0:1  # 
+W:4:63:0:1  # 
+# Skill
+S:0:0:6000  # SUDE
+S:1:0:2000  # NITOURYU
+S:2:0:500  # RIDING
diff -ur hengband_cvs/lib/edit/t0000001.txt hengband/lib/edit/t0000001.txt
--- hengband_cvs/lib/edit/t0000001.txt	Wed Jun 16 10:04:10 2004
+++ hengband/lib/edit/t0000001.txt	Wed Jun 16 09:06:04 2004
@@ -459,8 +459,8 @@
 B:0:A:3:¥¯¥¨¥¹¥È:0:0:q:6:0
 B:$0:A:4:Teleport to other town:500:500:m:42:0
 B:0:A:4:Â¾¤ÎÄ®¤Ø°ÜÆ°:500:500:m:42:0
-B:$0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
-B:0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
+B:$0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
+B:0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
 
 B:$1:N:Mayor:Uldrik:Human
 B:1:N:Â¼Ä¹:¥¦¥ë¥É¥ê¥Ã¥¯:¿Í´Ö
Only in hengband/lib/edit: t0000001.txt.orig
Only in hengband/lib/edit: t0000001.txt.rej
diff -ur hengband_cvs/lib/edit/t0000002.txt hengband/lib/edit/t0000002.txt
--- hengband_cvs/lib/edit/t0000002.txt	Wed Jun 16 10:04:10 2004
+++ hengband/lib/edit/t0000002.txt	Wed Jun 16 09:06:04 2004
@@ -305,8 +305,8 @@
 B:4:A:2:±½¤òÊ¹¤¯:10:10:u:19:0
 B:$4:A:3:Teleport to other town:500:500:m:42:0
 B:4:A:3:Â¾¤ÎÄ®¤Ø°ÜÆ°:500:500:m:42:0
-B:$4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
-B:4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
+B:$4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
+B:4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
 
 B:$5:N:Beastmaster:Lorien:Elf
 B:5:N:¥â¥ó¥¹¥¿¡¼Àç¿Í:¥í¥ê¥¨¥ó:¥¨¥ë¥Õ
@@ -336,8 +336,8 @@
 B:7:A:0:Éð´ï¤ò¶¯²½¤¹¤ë:400:800:w:23:0
 B:$7:A:1:Enchant armor:300:600:a:24:0
 B:7:A:1:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:300:600:a:24:0
-B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
-B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
+B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
 
 B:$9:N:Temple of Life:Crysania:Human
 B:9:N:À¸Ì¿Ëâ½Ñ¤ÎÅã:¥¯¥ê¥µ¥Ë¥¢:¿Í´Ö
@@ -354,8 +354,8 @@
 B:10:A:1:°ìÇñ¤¹¤ë:0:100:r:17:0
 B:$10:A:2:Identify possessions:100:2000:i:26:0
 B:10:A:2:»ý¤ÁÊªÁ´¤Æ¤ò´ÕÄê:100:2000:i:26: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: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: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:0
 
 B:$11:N:Archers Guild:Trallin:Half-elf
 B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥È¥¥¥é¥ê¥ó:¥Ï¡¼¥Õ¥¨¥ë¥Õ
@@ -363,8 +363,8 @@
 B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
 B:$11:A:1:Enchant bow:400:800:b:31:0
 B:11:A:1:µÝ¤ò¶¯²½¤¹¤ë:400:800:b:31:0
-B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
+B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
 
 B:$12:N:Paladins Guild:Langordathur:Human
 B:12:N:¥Ñ¥é¥Ç¥£¥ó¤Î¥®¥ë¥É:¥é¥ó¥´¥ë¥À¥¹¡¼¥ë:¿Í´Ö
@@ -372,8 +372,8 @@
 B:12:A:0:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:300:600:a:24:0
 B:$12:A:1:See Healers:0:150:h:28:0
 B:12:A:1:¼£ÎÅ²È¤Ë²ñ¤¦:0:150:h:28:0
-B:$12:C:0:0: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
-B:12:C:0:0: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
+B:$12:C:0:0: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
+B:12:C:0:0: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
 
 D:######################################################################################################################################################################################################
 D:#---------------------TTTT-------------------------------------------------------------TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT#
diff -ur hengband_cvs/lib/edit/t0000003.txt hengband/lib/edit/t0000003.txt
--- hengband_cvs/lib/edit/t0000003.txt	Wed Jun 16 10:04:10 2004
+++ hengband/lib/edit/t0000003.txt	Wed Jun 16 09:06:04 2004
@@ -264,8 +264,8 @@
 B:4:A:2:±½¤òÊ¹¤¯:10:10:u:19:0
 B:$4:A:3:Teleport to other town:500:500:m:42:0
 B:4:A:3:Â¾¤ÎÄ®¤Ø°ÜÆ°:500:500:m:42:0
-B:$4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
-B:4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
+B:$4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
+B:4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
 
 B:$5:N:Beastmaster:Draxle:Draconian
 B:5:N:¥â¥ó¥¹¥¿¡¼Àç¿Í:¥É¥é¥¯¥¹¥ë:¥É¥é¥³¥Ë¥¢¥ó
@@ -287,8 +287,8 @@
 B:7:A:1:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:300:600:a:24:0
 B:$7:A:2:Request quest:0:0:q:6:0
 B:7:A:2:¥¯¥¨¥¹¥È:0:0:q:6:0
-B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
-B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0:0
+B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0:0
 
 B:$8:N:Tower of Sorcery:Tanistil:Elf
 B:8:N:¸­¼Ô¤ÎÅã:¥¿¥Ë¥¹¥Æ¥£¥ë:¥¨¥ë¥Õ
@@ -319,8 +319,8 @@
 B:10:A:2:»ý¤ÁÊªÁ´¤Æ¤ò´ÕÄê:100:600:i:26:0
 B:$10:A:3:request Quest:0:0:q:6:0
 B:10:A:3:¥¯¥¨¥¹¥È:0:0:q:6: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: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: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:0
 
 B:$11:N:Archers Guild:Angros:Elf
 B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥¢¥ó¥°¥í¥¹:¥¨¥ë¥Õ
@@ -328,8 +328,8 @@
 B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
 B:$11:A:1:Enchant bow:400:800:b:31:0
 B:11:A:1:µÝ¤ò¶¯²½¤¹¤ë:400:800:b:31:0
-B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
+B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
 
 B:$12:N:Paladins Guild:Vilios:Human
 B:12:N:¥Ñ¥é¥Ç¥£¥ó¤Î¥®¥ë¥É:¥ô¥£¥ê¥ª¥¹:¿Í´Ö
@@ -337,8 +337,8 @@
 B:12:A:0:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:400:1000:a:24:0
 B:$12:A:1:See Healers:0:150:h:28:0
 B:12:A:1:¼£ÎÅ²È¤Ë²ñ¤¦:0:150:h:28:0
-B:$12:C:0:0: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
-B:12:C:0:0: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
+B:$12:C:0:0: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
+B:12:C:0:0: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
 
 B:$13:N:Trump Tower:Pelloi:Amberite
 B:13:N:¥È¥é¥ó¥×Ëâ½Ñ¤ÎÅã:¥Ú¥í¥¤:¥¢¥ó¥Ð¥é¥¤¥È
diff -ur hengband_cvs/lib/edit/t0000004.txt hengband/lib/edit/t0000004.txt
--- hengband_cvs/lib/edit/t0000004.txt	Wed Jun 16 10:04:10 2004
+++ hengband/lib/edit/t0000004.txt	Wed Jun 16 09:06:04 2004
@@ -171,8 +171,8 @@
 B:4:A:2:±½¤òÊ¹¤¯:10:10:u:19:0
 B:$4:A:3:Teleport to other town:500:500:m:42:0
 B:4:A:3:Â¾¤ÎÄ®¤Ø°ÜÆ°:500:500:m:42:0
-B:$4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
-B:4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
+B:$4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
+B:4:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
 
 B:$5:N:Beastmaster:Aradreth:Elf
 B:5:N:¥â¥ó¥¹¥¿¡¼Àç¿Í:¥¢¥é¥É¥ì¥¹:¥¨¥ë¥Õ
@@ -194,8 +194,8 @@
 B:7:A:1:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:200:500:a:24:0
 B:$7:A:2:Request quest:0:0:q:6:0
 B:7:A:2:¥¯¥¨¥¹¥È:0:0:q:6:0
-B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
-B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
+B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
 
 B:$8:N:Wizards Tower:Valceronwe:Sprite
 B:8:N:¸­¼Ô¤ÎÅã:¥ô¥¡¥ë¥»¥í¥ó:ÍÅÀº
@@ -205,8 +205,8 @@
 B:8:A:1:Á´¤Æ¤Î¥¢¥¤¥Æ¥à¤òºÆ½¼Å¶:0:0:a:45:0
 B:$8:A:2:Identify posessions:200:1000:i:26:0
 B:8:A:2:»ý¤ÁÊªÁ´¤Æ¤ò´ÕÄê:200:1000:i:26:0
-B:$8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
-B:8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
+B:$8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0
 
 B:$9:N:Inner Temple:Kabir:Dwarf
 B:9:N:»û±¡:¥«¥Ó¡¼:¥É¥ï¡¼¥Õ
@@ -214,8 +214,8 @@
 B:9:A:0:¼£ÎÅ¤Îµ§Åø:0:100:h:28:0
 B:$9:A:1:Restoration:300:1000:r:29:0
 B:9:A:1:Ç½ÎÏ²óÉü:300:1000:r:29:0
-B:$9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2
+B:9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2
 
 B:$10:N:Thieves Den:Molvrae:Dark Elf
 B:10:N:ÅðÂ±¤Î¥¢¥¸¥È:¥â¥ë¥Ö¥é¥¨:¥À¡¼¥¯¡¦¥¨¥ë¥Õ
@@ -223,8 +223,8 @@
 B:10:A:1:°ìÇñ¤¹¤ë:0:50:r:17:0
 B:$10:A:2:Identify possessions:175:800:i:26:0
 B:10:A:2:»ý¤ÁÊªÁ´¤Æ¤ò´ÕÄê:175:800:i:26: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: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: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:0
 
 B:$11:N:Archers Tavern:Celegail:Elf
 B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¼ò¾ì:¥±¥ì¥¬¥¤¥ë:¥¨¥ë¥Õ
@@ -232,8 +232,8 @@
 B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:22:44:a:30:0
 B:$11:A:1:Enchant bow:400:500:b:31:0
 B:11:A:1:µÝ¤ò¶¯²½¤¹¤ë:400:500:b:31:0
-B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
+B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
 
 B:$12:N:Paladins Sanctum:Calpirosse:Half-Elf
 B:12:N:¥Ñ¥é¥Ç¥£¥ó¤ÎÀ»½ê:¥«¥ë¥Ñ¥¤¥í¥¹:¥Ï¡¼¥Õ¥¨¥ë¥Õ
@@ -241,8 +241,8 @@
 B:12:A:0:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:240:440:a:24:0
 B:$12:A:1:See Healers:0:100:h:28:0
 B:12:A:1:¼£ÎÅ²È¤Ë²ñ¤¦:0:100:h:28:0
-B:$12:C:0:0: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
-B:12:C:0:0: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
+B:$12:C:0:0: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
+B:12:C:0:0: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
 
 B:$13:N:Trump Tower:Colleuse:Amberite
 B:13:N:¥È¥é¥ó¥×Ëâ½Ñ¤ÎÅã:¥³¥ì¥¦¥¹:¥¢¥ó¥Ð¥é¥¤¥È
@@ -250,8 +250,8 @@
 B:13:A:0:¥À¥ó¥¸¥ç¥ó¤Øµ¢´Ô:0:150:r:33:0
 B:$13:A:1:Teleport to dungeon-level:100000:1000000:t:34:0
 B:13:A:1:³¬¤ò»ØÄê¤·¤Æ¥Æ¥ì¥Ý¡¼¥È:100000:1000000:t:34:0
-B:$13:R:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:13:R:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$13:R:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:13:R:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 B:$13:M:0:0:0:0:0:2:0:0:0:0
 B:13:M:0:0:0:0:0:2:0:0:0:0
 
diff -ur hengband_cvs/lib/edit/t0000005.txt hengband/lib/edit/t0000005.txt
--- hengband_cvs/lib/edit/t0000005.txt	Wed Jun 16 10:04:10 2004
+++ hengband/lib/edit/t0000005.txt	Wed Jun 16 09:03:28 2004
@@ -128,8 +128,8 @@
 B:4:A:1:¿©»ö¤ò¤¹¤ë:2:2:f:18:1
 B:$4:A:2:Listen for rumors:10:10:u:19:0
 B:4:A:2:±½¤òÊ¹¤¯:10:10:u:19:0
-B:$4:R:2:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
-B:4:R:2:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
+B:$4:R:2:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
+B:4:R:2:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
 B:$4:A:3:Identify item:100:100:i:44:0
 B:4:A:3:¥¢¥¤¥Æ¥à´ÕÄê:100:100:i:44:0
 
@@ -152,8 +152,8 @@
 B:14:A:0:¥¯¥¨¥¹¥È:0:0:q:6:1
 B:$14:A:1:Cure mutation:1000:5000:m:35:0
 B:14:A:1:ÆÍÁ³ÊÑ°Û¤ò¼£ÎÅ¤¹¤ë:1000:5000:m:35:0
-B:$14:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0
-B:14:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0
+B:$14:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0
+B:14:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0
 B:$14:M:0:0:0:2:0:0:0:0:0:0
 B:14:M:0:0:0:2:0:0:0:0:0:0
 
diff -ur hengband_cvs/lib/edit/t_lite.txt hengband/lib/edit/t_lite.txt
--- hengband_cvs/lib/edit/t_lite.txt	Wed Jun 16 10:04:10 2004
+++ hengband/lib/edit/t_lite.txt	Wed Jun 16 09:06:04 2004
@@ -524,8 +524,8 @@
 B:0:A:1:¿©»ö¤ò¤¹¤ë:1:1:f:18:1
 B:$0:A:2:Listen for rumors:5:5:u:19:0
 B:0:A:2:±½¤òÊ¹¤¯:5:5:u:19:0
-B:$0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
-B:0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0
+B:$0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
+B:0:R:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:1:1:0:1:0:1:1:1:0:1
 
 B:$1:N:Mayor:Uldrik:Human
 B:1:N:Â¼Ä¹:¥¦¥ë¥É¥ê¥Ã¥¯:¿Í´Ö
@@ -590,8 +590,8 @@
 B:6:A:0:Éð´ï¤ò¶¯²½¤¹¤ë:400:800:w:23:0
 B:$6:A:1:Enchant armor:300:600:a:24:0
 B:6:A:1:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:300:600:a:24:0
-B:$6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
-B:6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
+B:$6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
 
 B:$7:N:Temple of Life:Crysania:Human
 B:7:N:À¸Ì¿Ëâ½Ñ¤ÎÅã:¥¯¥ê¥µ¥Ë¥¢:¿Í´Ö
@@ -608,8 +608,8 @@
 B:8:A:1:°ìÇñ¤¹¤ë:0:100:r:17:0
 B:$8:A:2:Identify possessions:100:2000:i:26:0
 B:8:A:2:»ý¤ÁÊªÁ´¤Æ¤ò´ÕÄê:100:2000:i:26: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: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: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:0
 
 B:$9:N:Archers Guild:Trallin:Half-elf
 B:9:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥È¥¥¥é¥ê¥ó:¥Ï¡¼¥Õ¥¨¥ë¥Õ
@@ -617,8 +617,8 @@
 B:9:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
 B:$9:A:1:Enchant bow:400:800:b:31:0
 B:9:A:1:µÝ¤ò¶¯²½¤¹¤ë:400:800:b:31:0
-B:$9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
+B:9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:2
 
 B:$10:N:Paladins Guild:Langordathur:Human
 B:10:N:¥Ñ¥é¥Ç¥£¥ó¤Î¥®¥ë¥É:¥é¥ó¥´¥ë¥À¥¹¡¼¥ë:¿Í´Ö
@@ -626,8 +626,8 @@
 B:10:A:0:ËÉ¶ñ¤ò¶¯²½¤¹¤ë:300:600:a:24:0
 B:$10:A:1:See Healers:0:200:h:28:0
 B:10:A:1:¼£ÎÅ²È¤Ë²ñ¤¦:0:200:h:28:0
-B:$10:C:0:0: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
-B:10:C:0:0: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
+B:$10:C:0:0: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
+B:10:C:0:0: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
 
 B:$11:N:Tower of Sorcery:Tanistil:Elf
 B:11:N:Àç½Ñ¤ÎÅã:¥¿¥Ë¥¹¥Æ¥£¥ë:¥¨¥ë¥Õ
@@ -655,8 +655,8 @@
 B:13:A:0:¥¯¥¨¥¹¥È:0:0:q:6:1
 B:$13:A:1:Cure mutation:1000:5000:m:35:0
 B:13:A:1:ÆÍÁ³ÊÑ°Û¤ò¼£ÎÅ¤¹¤ë:1000:5000:m:35:0
-B:$13:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0
-B:13:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0
+B:$13:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0
+B:13:R:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0
 B:$13:M:0:0:0:2:0:0:0:0:0:0
 B:13:M:0:0:0:2:0:0:0:0:0:0
 
Only in hengband/lib/edit: t_lite.txt.orig
Only in hengband/lib/edit: t_lite.txt.rej
diff -ur hengband_cvs/lib/help/editor.txt hengband/lib/help/editor.txt
--- hengband_cvs/lib/help/editor.txt	Tue Mar 23 12:46:47 2004
+++ hengband/lib/help/editor.txt	Wed Jun 16 09:03:29 2004
@@ -312,7 +312,7 @@
       Half-Giant, Half-Titan, Cyclops, Yeek, Klackon, Kobold,
       Nibelung, Dark-Elf, Draconian, Mindflayer, Imp, Golem,
       Skeleton, Zombie, Vampire, Spectre, Sprite, Beastman, Ent,
-      Archon, Balrog, Dunadan, Shadow-Fairy, Kutar, Android,
+      Archon, Balrog, Dunadan, Shadow-Fairy, Kutar, Android, Shoggoth
 
     $CLASS
      Returns name of player class. One of below:
Only in hengband/lib/help: editor.txt.orig
diff -ur hengband_cvs/lib/help/jeditor.txt hengband/lib/help/jeditor.txt
--- hengband_cvs/lib/help/jeditor.txt	Wed Jun 16 10:04:11 2004
+++ hengband/lib/help/jeditor.txt	Wed Jun 16 09:03:29 2004
@@ -544,7 +544,7 @@
    Cyclops, Yeek, Klackon, Kobold, Nibelung, Dark-Elf, Draconian,
    Mindflayer, Imp, Golem, Skeleton, Zombie, Vampire, Spectre, Sprite,
    Beastman, Ent, Archon, Balrog, Dunadan, Shadow-Fairy, Kuta,
-   Android
+   Android, Shoggoth
    ¤Î¤É¤ì¤«
 
 $CLASS
diff -ur hengband_cvs/lib/help/jraceclas.txt hengband/lib/help/jraceclas.txt
--- hengband_cvs/lib/help/jraceclas.txt	Wed Jun 16 10:04:11 2004
+++ hengband/lib/help/jraceclas.txt	Wed Jun 16 09:03:29 2004
@@ -411,8 +411,16 @@
     ¿ÈÂÎ¤Î¤¤¤¿¤ë¤È¤³¤í¤ËÅÅ»Ò²óÏ©¤¬ÁÈ¤ß¹þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ÅÅ·â¤Ë¤è¤Ã¤ÆÄÌ
     ¾ï¤è¤ê¤âÂç¤­¤Ê¥À¥á¡¼¥¸¤ò¼õ¤±¤Æ¤·¤Þ¤¤¤Þ¤¹¡£Èà¤é¤Ï¿©Êª¤«¤é¤Û¤È¤ó¤ÉÆ°
     ÎÏ¤òÆÀ¤é¤ì¤Þ¤»¤ó¤¬¡¢Ìý¤òÊäµë¤¹¤ë»ö¤ÇÆ°ÎÏ¸»¤òÆÀ¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£
-    
 
+***** <Shoggoth>
+--- ¥·¥ç¥´¥¹ ---
+
+    ¥·¥ç¥´¥¹¤ÏÀä¤¨´Ö¤Ê¤¯¡Ö¥Æ¥±¥ê¡¦¥ê¡ª¡×¤È¶«¤Ö¡¢¥¼¥ê¡¼¾õ¤Î°­Ì´¤Î¤è¤¦¤Ê
+    Â¸ºß¤Ç¤¹¡£¶ò¤«¤Ç¤¹¤¬¡¢³°¤Ê¤ë¿À¤È´Ø·¸¤¬¤¢¤ë¤Î¤Ç¸­¤¤¤Ç¤¹¡£¥¿¥Õ¤Ç¤¢¤ê¡¢
+    Ëãáã¤¹¤ë¤³¤È¤âÛ¯Û°¤È¤¹¤ë¤³¤È¤â¤¢¤ê¤Þ¤»¤ó¡£¸÷¤Ê¤·¤ÇÊª¤ò¸«¤ë¤³¤È¤¬¤Ç
+    ¤­¡¢¸«¤¨¤Ê¤¤Êª¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¶«¤ÓÀ¼¤ÏÅ¨¤òµ¯¤³¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
+    ¥·¥ç¥´¥¹¤ÏÄÌ¾ï¤Ï·Ð¸³ÃÍ¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤¬¡¢¿©»ö¤Ë¤è¤ê·Ð¸³ÃÍ¤ò
+    ÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥·¥ç¥´¥¹¤Ï²¿¤Ç¤â¿©¤Ù¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
         
 ***** <TheClasses>
 === ¿¦¶È ===
@@ -1061,6 +1069,7 @@
 ±Æ¥Õ¥§¥¢¥ê¡¼   -2   +2   +2   +1   -1   +0      7         +20%
 ¥¯¥¿¡¼         +0   -1   -1   +1   +2   +3      11        +40%
 ¥¢¥ó¥É¥í¥¤¥É   +4   -5   -5   +0   +4   -2      13        +100%
+¥·¥ç¥´¥¹       +2   -4   +4   +0   +4   -6      13        +100%
 
 
 --- Table 2 - Class Statistic Bonus Table ---
@@ -1159,6 +1168,7 @@
 ±Æ¥Õ¥§¥¢¥ê¡¼   +7    +8    +0    +6    +12   +15   -10   -5    40 feet
 ¥¯¥¿¡¼         -2    +5    +5    +5    -2    +6    +0    -5    None
 ¥¢¥ó¥É¥í¥¤¥É   +0    -5    +0    -2    +3    +14   +20   +10   None
+¥·¥ç¥´¥¹       -5    +0    +8    -inf  +0    +7    +20   +0    None
 
 
 --- Table 5 - Class Skill Bonus Table ---
diff -ur hengband_cvs/lib/help/raceclas.txt hengband/lib/help/raceclas.txt
--- hengband_cvs/lib/help/raceclas.txt	Wed Mar 24 19:09:41 2004
+++ hengband/lib/help/raceclas.txt	Wed Jun 16 09:03:29 2004
@@ -458,6 +458,15 @@
     gain very little nutrition from the food of mortals, but they can
     use flasks of oil as their energy source.
 
+***** <Shoggoth>
+--- Shoggoth ---
+
+    A Shoggoth is a jelly-like nightmare that constantly cries
+    'Tekeli-li!'.  Although it is stupid, its relationship to the
+    outer gods makes it wise.  It is tough and it can't be paralyzed
+    or stunned.  It can see without light and see the invisible.  Its
+    cry wakes its enemies up.  It doesn't acquire experience normally,
+    but it can acquire experience by eating.  It can eat anything.
 
 ***** <TheClasses>
 === The Classes ===
@@ -1143,6 +1152,7 @@
 Shadow-Fairy   -2   +2   +2   +1   -1   +0      7         +20%
 Kutar          +0   -1   -1   +1   +2   +3      11        +40%
 Android        +4   -5   -5   +0   +4   -2      13        +100%
+Shoggoth       +2   -4   +4   +0   +4   -6      13        +100%
 
 
 --- Table 2 - Class Statistic Bonus Table ---
@@ -1244,6 +1254,7 @@
 Shadow-Fairy   +7    +8    +0    +6    +12   +15   -10   -5    40 feet
 Kutar          -2    +5    +5    +5    -2    +6    +0    -5    None
 Android        +0    -5    +0    -2    +3    +14   +20   +10   None
+Shoggoth       -5    +0    +8    -inf  +0    +7    +20   +0    None
 
 
 --- Table 5 - Class Skill Bonus Table ---
diff -ur hengband_cvs/lib/pref/pref-opt.prf hengband/lib/pref/pref-opt.prf
--- hengband_cvs/lib/pref/pref-opt.prf	Wed Dec 17 04:41:47 2003
+++ hengband/lib/pref/pref-opt.prf	Wed Jun 16 09:06:04 2004
@@ -76,7 +76,8 @@
 Y:empty_levels
 X:bound_walls_perm
 Y:last_words
-Y:send_score
+#FIXME Öà½÷¤µ¤ó³«È¯Ãæ¥Ð¡¼¥¸¥ç¥ó¤Ê¤Î¤Ç¥¹¥³¥¢¤ÏÁ÷¤ì¤Þ¤»¤ó
+#Y:send_score
 X:allow_debug_opts
 
 ##### Disturbance #####
Only in hengband/lib/pref: pref-opt.prf.orig
diff -ur hengband_cvs/lib/pref/xtra-new.prf hengband/lib/pref/xtra-new.prf
--- hengband_cvs/lib/pref/xtra-new.prf	Fri Feb 22 01:58:49 2002
+++ hengband/lib/pref/xtra-new.prf	Wed Jun 16 09:06:04 2004
@@ -145,4 +145,6 @@
 R:0:0x93/0
 ?:[EQU $CLASS Ninja]
 R:0:0x95/0
+?:[EQU $CLASS Medium]
+R:0:0x94/0
 
diff -ur hengband_cvs/lib/pref/xtra-xxx.prf hengband/lib/pref/xtra-xxx.prf
--- hengband_cvs/lib/pref/xtra-xxx.prf	Fri Feb  1 21:57:43 2002
+++ hengband/lib/pref/xtra-xxx.prf	Wed Jun 16 09:06:04 2004
@@ -138,3 +138,5 @@
 R:0:0xAD/0
 ?:[EQU $CLASS Ninja]
 R:0:0xAA/0
+?:[EQU $CLASS Medium]
+R:0:0xA6/0
Only in hengband/lib/xtra/sound: sound.cfg.orig
Only in hengband/lib/xtra/sound: sound.cfg.rej
Only in hengband/: miko.patch
Only in hengband/: pict.rsrc
Only in hengband/: shog.patch
Only in hengband/src: .DS_Store
diff -ur hengband_cvs/src/artifact.c hengband/src/artifact.c
--- hengband_cvs/src/artifact.c	Wed Jun 16 10:04:08 2004
+++ hengband/src/artifact.c	Wed Jun 16 09:06:04 2004
@@ -1040,7 +1040,8 @@
 		break;
 
 	case BIAS_PRIESTLY:
-		if((o_ptr->tval == TV_SWORD || o_ptr->tval == TV_POLEARM) &&
+		if((o_ptr->tval == TV_SWORD || o_ptr->tval == TV_POLEARM ||
+		    o_ptr->tval == TV_HAFTED) &&
 		   !(have_flag(o_ptr->art_flags, TR_BLESSED)))
 		{
 			/* A free power for "priestly" random artifacts */
@@ -1672,6 +1673,7 @@
 				artifact_bias = BIAS_MAGE;
 				break;
 			case CLASS_PRIEST:
+			case CLASS_MEDIUM:
 				artifact_bias = BIAS_PRIESTLY;
 				break;
 			case CLASS_ROGUE:
diff -ur hengband_cvs/src/avatar.c hengband/src/avatar.c
--- hengband_cvs/src/avatar.c	Wed Jun 16 10:04:08 2004
+++ hengband/src/avatar.c	Wed Jun 16 09:06:04 2004
@@ -216,6 +216,7 @@
 		p_ptr->vir_types[i++] = V_ENCHANT;
 		break;
 	case CLASS_PRIEST:
+	case CLASS_MEDIUM:
 		p_ptr->vir_types[i++] = V_FAITH;
 		p_ptr->vir_types[i++] = V_TEMPERANCE;
 		break;
@@ -332,7 +333,7 @@
 	case RACE_HIGH_ELF: case RACE_KUTA:
 		p_ptr->vir_types[i++] = V_VITALITY;
 		break;
-	case RACE_HALF_GIANT: case RACE_GOLEM: case RACE_ANGEL: case RACE_DEMON:
+	case RACE_HALF_GIANT: case RACE_GOLEM: case RACE_ANGEL: case RACE_DEMON: case RACE_SHOGGOTH:
 		p_ptr->vir_types[i++] = V_JUSTICE;
 		break;
 	case RACE_HALF_TITAN:
diff -ur hengband_cvs/src/birth.c hengband/src/birth.c
--- hengband_cvs/src/birth.c	Wed Jun 16 10:04:08 2004
+++ hengband/src/birth.c	Wed Jun 16 09:26:55 2004
@@ -1608,6 +1608,16 @@
 	{", and you firmly believe that you are a real one.", 95, 158, 0, 50},
 	{", and you are almost indistinguishable from a real one.", 100, 158, 0, 100},
 #endif
+
+        /*
+         * just a placeholder --- if you care about the background,
+         * edit it manually
+         */
+#ifdef JP
+	{"¤¢¤Ê¤¿¤Ï¼«Â¸¤¹¤ë¸»¡Ø¥¦¥Ü=¥µ¥¹¥é¡Ù¤«¤éÀ¸¤Þ¤ì¤Þ¤·¤¿¡£", 100, 170, 0, 0},
+#else
+	{"You were born of Ubbo-Sathla, the Unbegotten Source.", 100, 170, 0, 0}
+#endif
 };
 
 static cptr race_jouhou[MAX_RACES] =
@@ -1685,7 +1695,9 @@
   
 "¥¯¥¿¡¼¤È¤·¤Æ¤¤¤ëÌµÉ½¾ð¤ÎÆæ¤ÎÀ¸Êª¤Ç¤¹¡£Èà¤é¤Ï³°¸«¤¬¤«¤ï¤¤¤é¤·¤¤¤¿¤á¡¢Ì¥ÎÏ¤¬¹â¤¤¤Ç¤¹¡£Èà¤é¤Ïº®Íð¤·¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢º®Íð¤·¤Æ¤â¥¯¥¿¡¼¤È¤·¤Æ¤¤¤ë¤¿¤áÊÑ¤ï¤ê¤Ê¤¤¤«¤é¤Ç¤¹¡£¤·¤«¤â¡¢¤½¤Î¥¯¥¿¡¼¤È¤·¤Æ¤¤¤ë³°¸«¤«¤éÅ¨¤Ë¸«¤Ä¤«¤ê¤Ë¤¯¤¤¤Ç¤¹¡£¤·¤«¤·¡¢Èà¤é¤ÏÃí°ÕÎÏ¤¬¾¯¤Ê¤¤¤¿¤áÃµº÷¤äÃÎ³ÐÇ½ÎÏ¤Ï°­¤¤¤Ç¤¹¡£Èà¤é¤Ï¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤È²£¤Ë¿­¤Ó¤ÆAC¤ò¾å¤²¤ëµ»¤ò³Ð¤¨¤Þ¤¹¤¬¡¢¿­¤Ó¤Æ¤¤¤ë´Ö¤ÏËâË¡ËÉ¸æÇ½ÎÏ¤ÏÄã¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£",
   
-"¥¢¥ó¥É¥í¥¤¥É¤Ïµ¡³£¤Î¿ÈÂÎ¤ò»ý¤Ä¿Í¹©Åª¤ÊÂ¸ºß¤Ç¤¹¡£ËâË¡¤ò¤¦¤Þ¤¯»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢Àï»Î¤È¤·¤Æ¤ÏÈó¾ï¤ËÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£Èà¤é¤ÏÂ¾¤Î¼ïÂ²¤Î¤è¤¦¤Ë·Ð¸³ÃÍ¤òÆÀ¤ÆÀ®Ä¹¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¿ÈÂÎ¤Ë¿È¤Ë¤Ä¤±¤ëÁõÈ÷¤Ë¤è¤Ã¤ÆÀ®Ä¹¤·¤Þ¤¹¡£¤¿¤À¤·¡¢»ØÎØ¡¢¥¢¥ß¥å¥ì¥Ã¥È¡¢¸÷¸»¤ÏÀ®Ä¹¤Ë±Æ¶Á¤·¤Þ¤»¤ó¡£Èà¤é¤ÏÆÇ¤ÎÂÑÀ­¤ò»ý¤Á¡¢ËãáãÃÎ¤é¤º¤Ç¡¢À¸Ì¿ÎÏ¤òµÛ¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£¤Þ¤¿¡¢¿ÈÂÎ¤¬´è¾æ¤Ê¤Î¤ÇAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤Þ¤¹¡£¤·¤«¤·¿ÈÂÎ¤Î¤¤¤¿¤ë¤È¤³¤í¤ËÅÅ»Ò²óÏ©¤¬ÁÈ¤ß¹þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ÅÅ·â¤Ë¤è¤Ã¤ÆÄÌ¾ï¤è¤ê¤âÂç¤­¤Ê¥À¥á¡¼¥¸¤ò¼õ¤±¤Æ¤·¤Þ¤¤¤Þ¤¹¡£Èà¤é¤Ï¿©Êª¤«¤é¤Û¤È¤ó¤ÉÆ°ÎÏ¤òÆÀ¤é¤ì¤Þ¤»¤ó¤¬¡¢Ìý¤òÊäµë¤¹¤ë»ö¤ÇÆ°ÎÏ¸»¤òÆÀ¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£"
+"¥¢¥ó¥É¥í¥¤¥É¤Ïµ¡³£¤Î¿ÈÂÎ¤ò»ý¤Ä¿Í¹©Åª¤ÊÂ¸ºß¤Ç¤¹¡£ËâË¡¤ò¤¦¤Þ¤¯»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢Àï»Î¤È¤·¤Æ¤ÏÈó¾ï¤ËÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£Èà¤é¤ÏÂ¾¤Î¼ïÂ²¤Î¤è¤¦¤Ë·Ð¸³ÃÍ¤òÆÀ¤ÆÀ®Ä¹¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¿ÈÂÎ¤Ë¿È¤Ë¤Ä¤±¤ëÁõÈ÷¤Ë¤è¤Ã¤ÆÀ®Ä¹¤·¤Þ¤¹¡£¤¿¤À¤·¡¢»ØÎØ¡¢¥¢¥ß¥å¥ì¥Ã¥È¡¢¸÷¸»¤ÏÀ®Ä¹¤Ë±Æ¶Á¤·¤Þ¤»¤ó¡£Èà¤é¤ÏÆÇ¤ÎÂÑÀ­¤ò»ý¤Á¡¢ËãáãÃÎ¤é¤º¤Ç¡¢À¸Ì¿ÎÏ¤òµÛ¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£¤Þ¤¿¡¢¿ÈÂÎ¤¬´è¾æ¤Ê¤Î¤ÇAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤Þ¤¹¡£¤·¤«¤·¿ÈÂÎ¤Î¤¤¤¿¤ë¤È¤³¤í¤ËÅÅ»Ò²óÏ©¤¬ÁÈ¤ß¹þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢ÅÅ·â¤Ë¤è¤Ã¤ÆÄÌ¾ï¤è¤ê¤âÂç¤­¤Ê¥À¥á¡¼¥¸¤ò¼õ¤±¤Æ¤·¤Þ¤¤¤Þ¤¹¡£Èà¤é¤Ï¿©Êª¤«¤é¤Û¤È¤ó¤ÉÆ°ÎÏ¤òÆÀ¤é¤ì¤Þ¤»¤ó¤¬¡¢Ìý¤òÊäµë¤¹¤ë»ö¤ÇÆ°ÎÏ¸»¤òÆÀ¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£",
+
+"¥·¥ç¥´¥¹¤ÏÀä¤¨´Ö¤Ê¤¯¡Ö¥Æ¥±¥ê¡¦¥ê¡ª¡×¤È¶«¤Ö¡¢¥¼¥ê¡¼¾õ¤Î°­Ì´¤Î¤è¤¦¤ÊÂ¸ºß¤Ç¤¹¡£¶ò¤«¤Ç¤¹¤¬¡¢³°¤Ê¤ë¿À¤È´Ø·¸¤¬¤¢¤ë¤Î¤Ç¸­¤¤¤Ç¤¹¡£¥¿¥Õ¤Ç¤¢¤ê¡¢Ëãáã¤¹¤ë¤³¤È¤âÛ¯Û°¤È¤¹¤ë¤³¤È¤â¤¢¤ê¤Þ¤»¤ó¡£¸÷¤Ê¤·¤ÇÊª¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¡¢¸«¤¨¤Ê¤¤Êª¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¶«¤ÓÀ¼¤ÏÅ¨¤òµ¯¤³¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¥·¥ç¥´¥¹¤ÏÄÌ¾ï¤Ï·Ð¸³ÃÍ¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤¬¡¢¿©»ö¤Ë¤è¤ê·Ð¸³ÃÍ¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥·¥ç¥´¥¹¤Ï²¿¤Ç¤â¿©¤Ù¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£"
 
 #else
 
@@ -1761,7 +1773,9 @@
 
 "A Kutar is an expressionless animal-like living creature.  The word 'kuta' means 'absentmindedly' or 'vacantly'.  Their absentmindedness hurts their searching and perception skills, but renders them incapable of being confused.  Their unearthly calmness and serenity make them among the most stealthy of any race.  Kutars, although expressionless, are beautiful and so have a high charisma.  Members of this race can learn to expand their body horizontally.  This increases armour class, but renders them vulnerable to magical attacks.",
 
-"An android is a artificial creation with a body of machinery.  They are poor at spell casting, but they make excellent warriors.  They don't acquire experience like other races, but rather gain in power as they attach new equipment to their frame.  Rings, amulets, and lights do not influence growth.  Androids are resistant to poison, can move freely, and are immune to life-draining attacks.  Moreover, because of their hard metallic bodies, they get a bonus to AC.  Androids have electronic circuits throughout their body and must beware of electric shocks.  They gain very little nutrition from the food of mortals, but they can use flasks of oil as their energy source."
+"An android is a artificial creation with a body of machinery.  They are poor at spell casting, but they make excellent warriors.  They don't acquire experience like other races, but rather gain in power as they attach new equipment to their frame.  Rings, amulets, and lights do not influence growth.  Androids are resistant to poison, can move freely, and are immune to life-draining attacks.  Moreover, because of their hard metallic bodies, they get a bonus to AC.  Androids have electronic circuits throughout their body and must beware of electric shocks.  They gain very little nutrition from the food of mortals, but they can use flasks of oil as their energy source.",
+
+"A Shoggoth is a jelly-like nightmare that constantly cries 'Tekeli-li!'.  Although it is stupid, its relationship to the outer gods makes it wise.  It is tough and it can't be paralyzed or stunned.  It can see without light and see the invisible.  Its cry wakes its enemies up.  It doesn't acquire experience normally, but it can acquire experience by eating.  It can eat anything."
 
 #endif
 };
@@ -1821,7 +1835,10 @@
 
 "¶À»È¤¤¤Ï¡¢ËâÎÏ¤Î¹þ¤á¤é¤ì¤¿¶À¤òºî¤ê½Ð¤·¤Æ¡¢¤½¤ì¤ò¿¨ÇÞ¤È¤·¤Æ¹¶·â¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤ë¶ÀËâË¡¤ò»È¤¤¤Þ¤¹¡£¶À»È¤¤¤Ï¶À¤Î¾å¤Ç¼ÂÎÏ¤òÈ¯´ø¤·¡¢¶À¤Î¾å¤Ç¤ÏÁÇÁá¤¤¥Æ¥ì¥Ý¡¼¥È¤¬²ÄÇ½¤È¤Ê¤ê¤Þ¤¹¡£ËâË¡¤Î¶À¤Ï¡¢¥ì¥Ù¥ë¤Ë¤è¤Ã¤Æ°ìÅÙ¤ËÀ©¸æ¤Ç¤­¤ë¿ô¤¬À©¸Â¤µ¤ì¤Þ¤¹¡£¶ÀËâË¡¤ËÉ¬Í×¤ÊÇ½ÎÏ¤ÏÃÎÇ½¤Ç¤¹¡£",
 
-"Ç¦¼Ô¤Ï°Å°Ç¤ËÀø¤à¶²¤ë¤Ù¤­°Å»¦¼Ô¤Ç¤¢¤ê¡¢¸÷¸»¤ò»ý¤¿¤º¤Ë¹ÔÆ°¤·¡¢Áê¼ê¤ÎÉÔ°Õ¤ò¤Ä¤­°ì·â¤ÇÂ©¤Îº¬¤ò»ß¤á¤Þ¤¹¡£¤Þ¤¿¡¢Áê¼ê¤òÏÇ¤ï¤¹¤¿¤á¤ÎÇ¦½Ñ¤â¿È¤Ë¤Ä¤±¤Þ¤¹¡£æ«¤ä¥É¥¢¤ò¸«¤Ä¤±¤ëÇ½ÎÏ¤ËÍ¥¤ì¡¢æ«¤Î²ò½ü¤ä¸°³«¤±¤Ë½ÏÃ£¤·¤Æ¤¤¤Þ¤¹¡£·ÚÁõ¤ò¹¥¤ß¡¢½Å¤¤³»¤äÉð´ï¤òÁõÈ÷¤¹¤ë¤ÈÃø¤·¤¯Æ°¤­¤¬À©¸Â¤µ¤ì¡¢¤Þ¤¿¡¢½â¤òÁõÈ÷¤·¤è¤¦¤È¤Ï¤·¤Þ¤»¤ó¡£·ÚÁõ¤Ê¤é¤Ð¡¢¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤Ë¤Ä¤ì¤è¤êÂ®¤¯¤è¤êÀÅ¤«¤Ë¹ÔÆ°¤Ç¤­¤Þ¤¹¡£¤µ¤é¤ËÇ¦¼Ô¤Ï¶²ÉÝ¤»¤º¡¢À®Ä¹¤¹¤ì¤ÐÆÇ¤¬¤Û¤È¤ó¤É¸ú¤«¤Ê¤¯¤Ê¤ê¡¢Æ©ÌÀ¤Ê¤â¤Î¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£Ç¦½Ñ¤ËÉ¬Í×¤ÊÇ½ÎÏ¤Ï´ïÍÑ¤µ¤Ç¤¹¡£"
+"Ç¦¼Ô¤Ï°Å°Ç¤ËÀø¤à¶²¤ë¤Ù¤­°Å»¦¼Ô¤Ç¤¢¤ê¡¢¸÷¸»¤ò»ý¤¿¤º¤Ë¹ÔÆ°¤·¡¢Áê¼ê¤ÎÉÔ°Õ¤ò¤Ä¤­°ì·â¤ÇÂ©¤Îº¬¤ò»ß¤á¤Þ¤¹¡£¤Þ¤¿¡¢Áê¼ê¤òÏÇ¤ï¤¹¤¿¤á¤ÎÇ¦½Ñ¤â¿È¤Ë¤Ä¤±¤Þ¤¹¡£æ«¤ä¥É¥¢¤ò¸«¤Ä¤±¤ëÇ½ÎÏ¤ËÍ¥¤ì¡¢æ«¤Î²ò½ü¤ä¸°³«¤±¤Ë½ÏÃ£¤·¤Æ¤¤¤Þ¤¹¡£·ÚÁõ¤ò¹¥¤ß¡¢½Å¤¤³»¤äÉð´ï¤òÁõÈ÷¤¹¤ë¤ÈÃø¤·¤¯Æ°¤­¤¬À©¸Â¤µ¤ì¡¢¤Þ¤¿¡¢½â¤òÁõÈ÷¤·¤è¤¦¤È¤Ï¤·¤Þ¤»¤ó¡£·ÚÁõ¤Ê¤é¤Ð¡¢¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤Ë¤Ä¤ì¤è¤êÂ®¤¯¤è¤êÀÅ¤«¤Ë¹ÔÆ°¤Ç¤­¤Þ¤¹¡£¤µ¤é¤ËÇ¦¼Ô¤Ï¶²ÉÝ¤»¤º¡¢À®Ä¹¤¹¤ì¤ÐÆÇ¤¬¤Û¤È¤ó¤É¸ú¤«¤Ê¤¯¤Ê¤ê¡¢Æ©ÌÀ¤Ê¤â¤Î¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£Ç¦½Ñ¤ËÉ¬Í×¤ÊÇ½ÎÏ¤Ï´ïÍÑ¤µ¤Ç¤¹¡£",
+
+"Öà½÷¤Ï¿À¤Ë¤½¤Î¿È¤òÊû¤²¤¿²µ½÷¤Ç¤¹¡£ÈóÎÏ¤ÊÈà½÷Ã£¤ÏÉð´ï¤ÇÄ¾ÀÜÅ¨¤ÈÀï¤¦¤³¤È¤Ï¶ì¼ê¤Ç¤¹¤¬¡¢µÝ¤ò¹½¤¨¿´¤ò¸¦¤®¤¹¤Þ¤·¤ÆÊü¤ÄÌð¤Ï¡¢Å¨¤ò¤Ï¤º¤¹¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£¤Þ¤¿¡¢¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤È¡¢ÌÚ¤ò¤Ê¤®ÅÝ¤·Å¨¤ò¼Í´Ó¤¯À»¤Ê¤ëÎÏ¤òÌð¤Ë¤³¤á¤ÆÊü¤Ä¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¿å¤Î¾å¤Ç¿È¤òÀ¶¤á¤ë¤³¤È¤Ë¤è¤ê¡¢¼Ù°­¤ÊãÒ¤ì¤òÊ§¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¿À¤Ë»Å¤¨¤ëÈà½÷Ã£¤Ïµ§¤ê¤ò¾§¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Öà½÷¤Ï¿À¤Ë½ËÊ¡¤µ¤ì¤¿Éð´ï°Ê³°¤ò¿È¤ËÉÕ¤±¤ë¤³¤È¤ò¹¥¤Þ¤º¡¢µÝ¤ò°ú¤¯¤Î¤Ë¼ÙËâ¤Ë¤Ê¤ë½â¤ò»ý¤Ä¤³¤È¤â¹¥¤ß¤Þ¤»¤ó¡£¤³¤ì¤é¤òÁõÈ÷¤¹¤ë¤Èµ§¤ê¤Î½¸Ãæ¤¬Íð¤ì¤Æ¼ºÇÔ¤·¤ä¤¹¤¯¤Ê¤ê¡¢¤Þ¤¿¡¢Ìð¤â¤¦¤Þ¤¯·â¤Æ¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£Öà½÷¤ËÉ¬Í×¤ÊÇ½ÎÏ¤Ï´ïÍÑ¤µ¤È¸­¤µ¤Ç¤¹¡£",
+
 
 #else
 
@@ -1877,7 +1894,10 @@
 
 "Mirror-Masters are spell casters; like other mages, they must live by their wits.  They can create magical mirrors, and employ them in the casting of Mirror-Magic spells.  A Mirror-Master standing on a mirror has greater ability and, for example, can perform quick teleports.  The maximum number of Magical Mirrors which can be controlled simultaneously depends on the level.  Intelligence determines a Mirror-Master's spell casting ability.",
 
-"A Ninja is a fearful assassin lurking in darkness.  He or she can navigate effectively with no light source, catch enemies unawares, and kill with a single blow.  Ninjas can use Ninjutsu, and are good at locating hidden traps and doors, disarming traps and picking locks.  Since heavy armors, heavy weapons, or shields will restrict their motion greatly, they prefer light clothes, and become faster and more stealthy as they gain levels.  A Ninja knows no fear and, at high level, becomes almost immune to poison and able to see invisible things.  Dexterity determines a Ninja's ability to use Ninjutsu."
+"A Ninja is a fearful assassin lurking in darkness.  He or she can navigate effectively with no light source, catch enemies unawares, and kill with a single blow.  Ninjas can use Ninjutsu, and are good at locating hidden traps and doors, disarming traps and picking locks.  Since heavy armors, heavy weapons, or shields will restrict their motion greatly, they prefer light clothes, and become faster and more stealthy as they gain levels.  A Ninja knows no fear and, at high level, becomes almost immune to poison and able to see invisible things.  Dexterity determines a Ninja's ability to use Ninjutsu.",
+
+"A Medium is the maiden who offered the body to God.  Since they are powerless, fighting with an enemy with arms is weak.  However, the arrow concentrated and shot does not miss an enemy.  Moreover, if a level goes up, an arrow can be loaded with holy power, which can beat a tree and can pierce through an enemy.  Moreover, vicious impurity can also be paid by purifying the body on water.  They can recite a prayer.  A Medium dislike to attach to the body except the arms blessed by God, and it is not fond to have the shield which becomes obstructive in drawing a bow, either.  Since concentration is confused when these are equipped, a prayer becomes easy to go wrong.  Moreover, it also will become impossible to shoot an arrow well.  Dexterity is a primary stat of Medium."
+
 #endif
 };
 
@@ -2974,6 +2994,11 @@
 			chart = 155;
 			break;
 		}
+		case RACE_SHOGGOTH:
+		{
+			chart = 170;
+			break;
+		}
 		default:
 		{
 			chart = 0;
@@ -3724,6 +3749,12 @@
 		{ TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
 		{ TV_SWORD, SV_DAGGER }
 	},
+	{
+		/* Medium */
+		{ TV_SORCERY_BOOK, 0 }, /* Hack: for realm1 book */
+		{ TV_SOFT_ARMOR, SV_ROBE },
+		{ TV_BOW, SV_SHORT_BOW },
+	},
 };
 
 
@@ -3836,6 +3867,14 @@
 
 		break;
 
+	case RACE_SHOGGOTH:
+		/* Slime Molds */
+		object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_SLIME_MOLD));
+		q_ptr->number = (byte)rand_range(15, 23);
+		add_outfit(q_ptr);
+
+		break;
+
 	default:
 		/* Food rations */
 		object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
@@ -3856,7 +3895,8 @@
 
 		add_outfit(q_ptr);
 	}
-	else if (p_ptr->pclass != CLASS_NINJA)
+	else if ((p_ptr->pclass != CLASS_NINJA)
+                 && (p_ptr->prace != RACE_SHOGGOTH))
 	{
 		/* Hack -- Give the player some torches */
 		object_prep(q_ptr, lookup_kind(TV_LITE, SV_LITE_TORCH));
@@ -3956,6 +3996,17 @@
 
 		add_outfit(q_ptr);
 	}
+	else if (p_ptr->pclass == CLASS_MEDIUM)
+	{
+		/* Hack -- Give the player some arrows */
+		object_prep(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
+		q_ptr->number = (byte)rand_range(25, 30);
+
+		object_aware(q_ptr);
+		object_known(q_ptr);
+
+		(void)inven_carry(q_ptr);
+	}
 
 	if(p_ptr->pseikaku == SEIKAKU_SEXY)
 	{
@@ -5623,9 +5674,11 @@
 
 	/* Extra info */
 #ifdef JP
-	put_str("Ãí°Õ¡§¡ÔÀ­ÊÌ¡Õ¤Î°ã¤¤¤Ï¥²¡¼¥à¾å¤Û¤È¤ó¤É±Æ¶Á¤òµÚ¤Ü¤·¤Þ¤»¤ó¡£", 23, 5);
+	put_str("Ãí°Õ¡§¡ÔÀ­ÊÌ¡Õ¤Î°ã¤¤¤Ï¥²¡¼¥à¾å¤Û¤È¤ó¤É±Æ¶Á¤òµÚ¤Ü¤·¤Þ¤»¤ó¤¬¡¢", 22, 5);
+	put_str("  ½÷À­¤Ë¤·¤«Áª¤Ù¤Ê¤¤¿¦¶È¤¬¤¢¤ê¤Þ¤¹¡£", 23, 5);
 #else
-	put_str("Note: Your 'sex' does not have any significant gameplay effects.", 23, 5);
+	put_str("Note: Your 'sex' does not have any significant gameplay",22, 5);
+	put_str("  effects, but a certain class can be chosen only as a female.", 23, 5);
 #endif
 
 
@@ -5808,12 +5861,25 @@
 			}
 		}
 
+		if (p_ptr->psex == SEX_MALE && p_ptr->pclass == CLASS_MEDIUM)
+		{
 #ifdef JP
-		if (get_check_strict("¤è¤í¤·¤¤¤Ç¤¹¤«¡©", CHECK_DEFAULT_Y)) break;
+			prt("Öà½÷¤Ï½÷À­¤·¤«Áª¤Ù¤Þ¤»¤ó¡£²¿¤«¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤", 0, 0);
 #else
-		if (get_check_strict("Are you sure? ", CHECK_DEFAULT_Y)) break;
+			prt("Mediums have to be female. Hit any key.", 0, 0);
+#endif
+			(void)inkey();
+			prt("", 0, 0);
+		}
+		else
+		{
+#ifdef JP
+			if (get_check_strict("¤è¤í¤·¤¤¤Ç¤¹¤«¡©", CHECK_DEFAULT_Y)) break;
+#else
+			if (get_check_strict("Are you sure? ", CHECK_DEFAULT_Y)) break;
 #endif
-		c_put_str(TERM_WHITE, "              ", 5, 15);
+			c_put_str(TERM_WHITE, "              ", 5, 15);
+		}
 	}
 
 	/* Choose the magic realms */
diff -ur hengband_cvs/src/cmd1.c hengband/src/cmd1.c
--- hengband_cvs/src/cmd1.c	Wed Jun 16 10:04:08 2004
+++ hengband/src/cmd1.c	Wed Jun 16 09:03:29 2004
@@ -2939,6 +2939,7 @@
 							case RACE_SPECTRE:
 							case RACE_DEMON:
 							case RACE_DRACONIAN:
+                                                        case RACE_SHOGGOTH:
 								mult = 30;break;
 							default:
 								mult = 10;break;
diff -ur hengband_cvs/src/cmd2.c hengband/src/cmd2.c
--- hengband_cvs/src/cmd2.c	Wed Jun 16 10:04:08 2004
+++ hengband/src/cmd2.c	Wed Jun 16 09:55:33 2004
@@ -2921,7 +2921,16 @@
  */
 static int breakage_chance(object_type *o_ptr)
 {
-	int archer_bonus = (p_ptr->pclass == CLASS_ARCHER ? (p_ptr->lev-1)/7 + 4: 0);
+	int archer_bonus = 0;
+	if (p_ptr->pclass == CLASS_ARCHER)
+	{
+		archer_bonus = (p_ptr->lev-1)/7 + 4;
+	}
+	else if (p_ptr->pclass == CLASS_MEDIUM && !p_ptr->icky_wield[0] &&
+		 !p_ptr->icky_wield[1] && !p_ptr->cumber_shield)
+	{
+		archer_bonus = (p_ptr->lev-1)/10 + 4;
+	}
 
 	/* Examine the item type */
 	switch (o_ptr->tval)
@@ -2957,7 +2966,7 @@
 }
 
 
-static s16b tot_dam_aux_shot(object_type *o_ptr, int tdam, monster_type *m_ptr)
+static s16b tot_dam_aux_shot(object_type *o_ptr, int tdam, monster_type *m_ptr, int xtra_slay)
 {
 	int mult = 10;
 
@@ -2968,6 +2977,8 @@
 	/* Extract the flags */
 	object_flags(o_ptr, flgs);
 
+	if(xtra_slay) add_flag(flgs, xtra_slay);
+
 	/* Some "weapons" and "ammo" do extra damage */
 	switch (o_ptr->tval)
 	{
@@ -3348,8 +3359,13 @@
  * for the damage multiplier.
  *
  * Note that Bows of "Extra Shots" give an extra shot.
+ *
+ * dcfa_flags are applied for various cases. see defines.h(DCFA_*)
+ * xtra_slay will be added to the flags of the object.(eg. TR_SLAY_DEMON)
+ * x_to_h will be added to bonus
+ * x_to_d will be added to damage
  */
-void do_cmd_fire_aux(int item, object_type *j_ptr)
+bool do_cmd_fire_aux(int item, object_type *j_ptr, int dcfa_flags, int xtra_slay, int x_to_h, int x_to_d, int penetrate)
 {
 	int dir;
 	int j, y, x, ny, nx, ty, tx, prev_y, prev_x;
@@ -3392,22 +3408,17 @@
 	tdis = 10;
 
 	/* Base damage from thrown object plus launcher bonus */
-	tdam = damroll(o_ptr->dd, o_ptr->ds) + o_ptr->to_d + j_ptr->to_d;
+	tdam = damroll(o_ptr->dd, o_ptr->ds) + o_ptr->to_d + j_ptr->to_d + x_to_d;
 
 	/* Actually "fire" the object */
-	bonus = (p_ptr->to_h_b + o_ptr->to_h + j_ptr->to_h);
+	bonus = (p_ptr->to_h_b + o_ptr->to_h + j_ptr->to_h) + x_to_h;
 	if ((j_ptr->sval == SV_LIGHT_XBOW) || (j_ptr->sval == SV_HEAVY_XBOW))
 		chance = (p_ptr->skill_thb + (p_ptr->weapon_exp[0][j_ptr->sval] / 400 + bonus) * BTH_PLUS_ADJ);
 	else
 		chance = (p_ptr->skill_thb + ((p_ptr->weapon_exp[0][j_ptr->sval] - (WEAPON_EXP_MASTER / 2)) / 200 + bonus) * BTH_PLUS_ADJ);
 
 	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++;
-
-	tmul = tmul * (100 + (int)(adj_str_td[p_ptr->stat_ind[A_STR]]) - 128);
+	tmul = extra_bow_tmul(j_ptr->sval);
 
 	/* Boost the damage */
 	tdam *= tmul;
@@ -3427,7 +3438,7 @@
 
 		/* need not to reset project_length (already did)*/
 
-		return;
+		return FALSE;
 	}
 
 	/* Start at the player */
@@ -3502,15 +3513,47 @@
 	for (cur_dis = 0; cur_dis <= tdis; )
 	{
 		/* Hack -- Stop at the target */
-		if ((y == ty) && (x == tx)) break;
+		if (!(dcfa_flags & DCFA_THRU) && (y == ty) && (x == tx)) break;
+
+		/* Assume not stick_to */
+		stick_to = FALSE;
 
 		/* Calculate the new location (see "project()") */
 		ny = y;
 		nx = x;
 		mmove2(&ny, &nx, py, px, ty, tx);
 
+
+		if (cave_have_flag_bold(ny, nx, FF_TREE) &&
+		    (dcfa_flags & DCFA_TREE))
+		{
+#ifdef JP
+			msg_print("ÌÚ¤ÏÊ´ºÕ¤µ¤ì¤¿¡£");
+#else
+			msg_print("A tree was crushed.");
+#endif
+			cave_set_feat(ny, nx, (one_in_(3) ? feat_brake : feat_grass));
+
+			/* Update some things */
+			p_ptr->update |= (PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
+
+			/* Reduce duration */
+			penetrate -= 7;
+			if ((penetrate <= 0) && (!cave[ny][nx].m_idx))
+			{
+				x = nx;
+				y = ny;
+				break;
+			}
+		}
+
 		/* Stopped by walls/doors */
-		if (!cave_have_flag_bold(ny, nx, FF_PROJECT) && !cave[ny][nx].m_idx) break;
+		if (!cave_have_flag_bold(ny, nx, FF_PROJECT) && !cave[ny][nx].m_idx)
+		{
+			penetrate = 0;
+
+			break;
+		}
 
 		/* Advance the distance */
 		cur_dis++;
@@ -3561,6 +3604,36 @@
 			/* Note the collision */
 			hit_body = TRUE;
 
+			/* Hit effect */
+			if (penetrate > 0)
+			{
+				/* The player can see the (on screen) missile */
+				if (panel_contains(y, x) && player_can_see_bold(y, x))
+				{
+					u16b p = bolt_pict(y, x, y, x, GF_LITE);
+					byte a = PICT_A(p);
+					char c = PICT_C(p);
+
+					/* Draw, Hilite, Fresh, Pause, Erase */
+					print_rel(c, a, y, x);
+					move_cursor_relative(y, x);
+					Term_fresh();
+					Term_xtra(TERM_XTRA_DELAY, msec);
+					lite_spot(y, x);
+					Term_fresh();
+				}
+
+				/* The player cannot see the missile */
+				else
+				{
+					/* Pause anyway, for consistancy */
+					Term_xtra(TERM_XTRA_DELAY, msec);
+				}
+			}
+
+			/* Reduce duration */
+			penetrate -= 5;
+
 			if (MON_CSLEEP(m_ptr))
 			{
 				if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_COMPASSION, -1);
@@ -3597,6 +3670,7 @@
 			if (test_hit_fire(chance - cur_dis, r_ptr->ac, m_ptr->ml))
 			{
 				bool fear = FALSE;
+				int fdam;
 
 				/* Handle unseen monster */
 				if (!visible)
@@ -3634,32 +3708,44 @@
 				}
 
 				/* Apply special damage XXX XXX XXX */
-				tdam = tot_dam_aux_shot(q_ptr, tdam, m_ptr);
-				tdam = critical_shot(q_ptr->weight, q_ptr->to_h, tdam);
+				fdam = tot_dam_aux_shot(q_ptr, tdam, m_ptr, xtra_slay);
+				fdam = critical_shot(q_ptr->weight, q_ptr->to_h, fdam);
 
 				/* No negative damage */
-				if (tdam < 0) tdam = 0;
+				if (fdam < 0) fdam = 0;
 
 				/* Modify the damage */
-				tdam = mon_damage_mod(m_ptr, tdam, FALSE);
+				fdam = mon_damage_mod(m_ptr, fdam, FALSE);
+
+				/* Increase base-damage */
+				tdam += 2;
+
+				/* Decrease the chance */
+				chance -= 4;
+				if (chance < 0) chance = 0;
 
 				/* Complex message */
 				if (p_ptr->wizard || cheat_xtra)
 				{
+					msg_format("tdam:%d fdam:%d chance:%d ", tdam, fdam, chance);
+
 #ifdef JP
 					msg_format("%d/%d ¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤¿¡£",
-						   tdam, m_ptr->hp);
+						   fdam, m_ptr->hp);
 #else
 					msg_format("You do %d (out of %d) damage.",
-						   tdam, m_ptr->hp);
+						   fdam, m_ptr->hp);
 #endif
 
 				}
 
 				/* Hit the monster, check for death */
-				if (mon_take_hit(c_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_ptr(m_ptr))))
+				if (mon_take_hit(c_ptr->m_idx, fdam, &fear, extract_note_dies(real_r_ptr(m_ptr))))
 				{
 					/* Dead monster */
+
+					/* Reduce duration */
+					penetrate -= 1;
 				}
 
 				/* No death */
@@ -3678,13 +3764,20 @@
 #else
 						msg_format("%^s have stuck into %s!",o_name, m_name);
 #endif
+						/* Reduce duration */
+						penetrate -= 2;
+					}
+					else
+					{
+						/* Reduce duration */
+						penetrate -= 5;
 					}
 
 					/* Message */
-					message_pain(c_ptr->m_idx, tdam);
+					message_pain(c_ptr->m_idx, fdam);
 
 					/* Anger the monster */
-					if (tdam > 0) anger_monster(m_ptr);
+					if (fdam > 0) anger_monster(m_ptr);
 
 					/* Take note */
 					if (fear && m_ptr->ml)
@@ -3713,7 +3806,7 @@
 			}
 
 			/* Stop looking */
-			break;
+			if (penetrate <= 0) break;
 		}
 	}
 
@@ -3737,7 +3830,7 @@
 			{
 				a_info[j_ptr->name1].cur_num = 0;
 			}
-			return;
+			return TRUE;
 		}
 
 		o_ptr = &o_list[o_idx];
@@ -3767,6 +3860,8 @@
 	{
 		/* Drop (or break) near that location */
 		(void)drop_near(q_ptr, j, prev_y, prev_x);
+
+		return TRUE;
 	}
 }
 
@@ -3828,7 +3923,7 @@
 	}
 
 	/* Fire the item */
-	do_cmd_fire_aux(item, j_ptr);
+	(void)do_cmd_fire_aux(item, j_ptr, DCFA_NONE, 0, 0, 0, 0);
 }
 
 
diff -ur hengband_cvs/src/cmd6.c hengband/src/cmd6.c
--- hengband_cvs/src/cmd6.c	Wed Jun 16 10:04:08 2004
+++ hengband/src/cmd6.c	Wed Jun 16 09:06:05 2004
@@ -605,12 +605,134 @@
 		/* Waybread is always fully satisfying. */
 		set_food(MAX(p_ptr->food, PY_FOOD_MAX - 1));
 	}
+	else if (prace_is_(RACE_SHOGGOTH))
+	{
+		/* A shoggoth happily eats anything. */
+		set_food(MAX(p_ptr->food, PY_FOOD_MAX - 1));
+	}
 	else
 	{
 		/* Food can feed the player */
 		(void)set_food(p_ptr->food + o_ptr->pval);
 	}
 
+        if ((prace_is_(RACE_SHOGGOTH)) && (!(p_ptr->is_dead)))
+        {
+          object_type forge;
+          object_type *q_ptr = &forge;
+          u32b value, exp;
+          int level = MAX(k_info[o_ptr->k_idx].level - 8, 1);
+
+          /* Wipe the object */
+          object_wipe(q_ptr);
+
+          object_copy(q_ptr, o_ptr);
+          /*
+           * we do consider discount here --- this should prevent the
+           * abuse of the magic 'Trump Branding' and such
+           */
+          q_ptr->curse_flags = 0L;
+
+          if (object_is_fixed_artifact(o_ptr))
+          {
+            level = (level + MAX(a_info[o_ptr->name1].level - 8, 5)) / 2;
+            level += MIN(20, a_info[o_ptr->name1].rarity/(a_info[o_ptr->name1].gen_flags & TRG_INSTA_ART ? 10 : 3));
+          }
+          else if (object_is_ego(o_ptr))
+          {
+            level += MAX(3, (e_info[o_ptr->name2].rating - 5)/2);
+          }
+          else if (o_ptr->art_name)
+          {
+            s32b total_flags = flag_cost(o_ptr, o_ptr->pval);
+            int fake_level;
+
+            if (!object_is_weapon_ammo(o_ptr))
+            {
+              /* For armors */
+              if (total_flags < 15000) fake_level = 10;
+              else if (total_flags < 35000) fake_level = 25;
+              else fake_level = 40;
+            }
+            else
+            {
+              /* For weapons */
+              if (total_flags < 20000) fake_level = 10;
+              else if (total_flags < 45000) fake_level = 25;
+              else fake_level = 40;
+            }
+
+            level = MAX(level, (level + MAX(fake_level - 8, 5)) / 2
+                        + 3);
+          }
+
+          value = object_value_real(q_ptr);
+          /* Apply discount (if any) */
+          if (q_ptr->discount) value -= (value * q_ptr->discount / 100L);
+
+          if ((o_ptr->tval == TV_CORPSE) && (o_ptr->pval > 0))
+          {
+            monster_race *r_ptr = &r_info[q_ptr->pval];
+            value = r_ptr->mexp * r_ptr->level;
+          }
+
+          if (value > 0)
+          {
+            if ((o_ptr->tval == TV_SOFT_ARMOR) && (o_ptr->sval == SV_ABUNAI_MIZUGI) && (p_ptr->pseikaku != SEIKAKU_SEXY)) value /= 32;
+            if (value > 5000000L) value = 5000000L;
+            if ((o_ptr->tval == TV_DRAG_ARMOR) || (o_ptr->tval == TV_CARD))
+              level /= 2;
+
+            if (object_is_artifact(o_ptr) || object_is_ego(o_ptr) ||
+                (o_ptr->tval == TV_DRAG_ARMOR) ||
+                ((o_ptr->tval == TV_HELM) && (o_ptr->sval == SV_DRAGON_HELM)) ||
+                ((o_ptr->tval == TV_SHIELD) && (o_ptr->sval == SV_DRAGON_SHIELD)) ||
+                ((o_ptr->tval == TV_GLOVES) && (o_ptr->sval == SV_SET_OF_DRAGON_GLOVES)) ||
+                ((o_ptr->tval == TV_BOOTS) && (o_ptr->sval == SV_PAIR_OF_DRAGON_GREAVE)) ||
+                ((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DIAMOND_EDGE)))
+            {
+              if (level > 65) level = 35 + (level - 65) / 5;
+              else if (level > 35) level = 25 + (level - 35) / 3;
+              else if (level > 15) level = 15 + (level - 15) / 2;
+              exp = MIN(100000L, value) * level * level / 2;
+              if (value > 100000L)
+                exp += (value - 100000L) * level * level / 8;
+            }
+            else
+            {
+              exp = MIN(100000L, value) * level;
+              if (value > 100000L)
+                exp += (value - 100000L) * level / 4;
+            }
+            exp /= 32;
+            if ((o_ptr->tval == TV_WHISTLE)
+                || (o_ptr->tval == TV_CAPTURE)
+                || ((o_ptr->tval >= TV_WEARABLE_BEGIN)
+                    && (o_ptr->tval <= TV_WEARABLE_END)))
+              exp /= 2;
+            else if (o_ptr->tval != TV_CORPSE)
+              exp /= 8;
+            p_ptr->exp += exp;
+
+            /* Slowly recover from experience drainage */
+            if (p_ptr->exp < p_ptr->max_exp)
+            {
+              /* Gain max experience (20%) (was 10%) */
+              p_ptr->max_exp += exp / 5;
+            }
+
+            /* Check Experience */
+            check_experience();
+          }
+        }
+
+        /* if you eat a fixed artifact, you can't find it again */
+        if ((prace_is_(RACE_SHOGGOTH)) && (object_is_fixed_artifact(o_ptr)))
+        {
+          artifact_type *a_ptr = &a_info[o_ptr->name1];
+          a_ptr->cur_num = 1;
+        }
+
 	/* Destroy a food in the pack */
 	if (item >= 0)
 	{
@@ -636,6 +758,8 @@
 {
 	if (o_ptr->tval==TV_FOOD) return TRUE;
 
+        if (prace_is_(RACE_SHOGGOTH)) return TRUE;
+
 #if 0
 	if (prace_is_(RACE_SKELETON))
 	{
@@ -1306,6 +1430,7 @@
 
 		case SV_POTION_EXPERIENCE:
 			if (p_ptr->prace == RACE_ANDROID) break;
+			if (p_ptr->prace == RACE_SHOGGOTH) break;
 			chg_virtue(V_ENLIGHTEN, 1);
 			if (p_ptr->exp < PY_MAX_EXP)
 			{
@@ -6783,7 +6908,7 @@
 		case TV_ARROW:
 		case TV_BOLT:
 		{
-			do_cmd_fire_aux(item, &inventory[INVEN_BOW]);
+			(void)do_cmd_fire_aux(item, &inventory[INVEN_BOW], DCFA_NONE, 0, 0, 0, 0);
 			break;
 		}
 
Only in hengband/src: crbobj
diff -ur hengband_cvs/src/defines.h hengband/src/defines.h
--- hengband_cvs/src/defines.h	Mon May 31 07:13:27 2004
+++ hengband/src/defines.h	Wed Jun 16 09:15:37 2004
@@ -195,7 +195,7 @@
 /*
  * Maximum number of player "class" types (see "table.c", etc)
  */
-#define MAX_CLASS            27
+#define MAX_CLASS            28
 
 #define MAX_SEIKAKU          12
 
@@ -866,11 +866,12 @@
 #define RACE_S_FAIRY            34
 #define RACE_KUTA               35
 #define RACE_ANDROID            36
+#define RACE_SHOGGOTH           37
 
 /*
  * Maximum number of player "race" types (see "table.c", etc)
  */
-#define MAX_RACES               37
+#define MAX_RACES               38
 
 
 /*
@@ -903,6 +904,7 @@
 #define CLASS_SMITH             24
 #define CLASS_MIRROR_MASTER     25
 #define CLASS_NINJA             26
+#define CLASS_MEDIUM            27
 
 #define SEIKAKU_FUTUU	 0
 #define SEIKAKU_CHIKARA	 1
@@ -5410,6 +5412,17 @@
 #define SKEY_PGDOWN 	  0xf006
 #define SKEY_TOP    	  0xf007
 #define SKEY_BOTTOM 	  0xf008
+
+
+/*
+ * Bit flags for the "do_cmd_fire_aux()" function
+ *   TREE: Destroy trees
+ *   THRU: Do not stop at th target
+ */
+#define DCFA_NONE	0
+#define DCFA_TREE	0x01
+#define DCFA_THRU	0x02
+
 
 /*
  * Bit flags for move_player_effect()
diff -ur hengband_cvs/src/do-spell.c hengband/src/do-spell.c
--- hengband_cvs/src/do-spell.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/do-spell.c	Wed Jun 16 09:17:43 2004
@@ -8373,6 +8373,7 @@
 			int base;
 
 			if (p_ptr->pclass == CLASS_PRIEST ||
+			    p_ptr->pclass == CLASS_MEDIUM ||
 			    p_ptr->pclass == CLASS_HIGH_MAGE ||
 			    p_ptr->pclass == CLASS_SORCERER)
 				base = plev + plev / 2;
diff -ur hengband_cvs/src/dungeon.c hengband/src/dungeon.c
--- hengband_cvs/src/dungeon.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/dungeon.c	Wed Jun 16 09:06:05 2004
@@ -278,6 +278,7 @@
 		}
 
 		case CLASS_PRIEST:
+		case CLASS_MEDIUM:
 		case CLASS_BARD:
 		{
 			/* Good (light) sensing */
@@ -507,6 +508,7 @@
 		}
 
 		case CLASS_PRIEST:
+		case CLASS_MEDIUM:
 		case CLASS_BARD:
 		case CLASS_ROGUE:
 		case CLASS_FORCETRAINER:
diff -ur hengband_cvs/src/effects.c hengband/src/effects.c
--- hengband_cvs/src/effects.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/effects.c	Wed Jun 16 09:03:29 2004
@@ -3482,7 +3482,7 @@
 
 	if (p_ptr->is_dead) return FALSE;
 
-	if (prace_is_(RACE_GOLEM) || ((p_ptr->pclass == CLASS_BERSERKER) && (p_ptr->lev > 34))) v = 0;
+	if (prace_is_(RACE_GOLEM) || prace_is_(RACE_SHOGGOTH) || ((p_ptr->pclass == CLASS_BERSERKER) && (p_ptr->lev > 34))) v = 0;
 
 	/* Knocked out */
 	if (p_ptr->stun > 100)
@@ -3945,6 +3945,10 @@
 	/* Hack -- Force good values */
 	v = (v > 20000) ? 20000 : (v < 0) ? 0 : v;
 
+        /* a Shoggoth can't be gorged */
+        if ((prace_is_(RACE_SHOGGOTH)) && (v >= PY_FOOD_MAX))
+          v = PY_FOOD_MAX - 1;
+
 	/* Fainting / Starving */
 	if (p_ptr->food < PY_FOOD_FAINT)
 	{
@@ -5489,6 +5493,7 @@
 	if (p_ptr->is_dead) return;
 
 	if (p_ptr->prace == RACE_ANDROID) return;
+	if (p_ptr->prace == RACE_SHOGGOTH) return;
 
 	/* Gain some experience */
 	s64b_add(&(p_ptr->exp), &(p_ptr->exp_frac), amount, amount_frac);
diff -ur hengband_cvs/src/externs.h hengband/src/externs.h
--- hengband_cvs/src/externs.h	Wed Jun 16 10:04:09 2004
+++ hengband/src/externs.h	Wed Jun 16 09:06:05 2004
@@ -723,7 +723,7 @@
 extern void do_cmd_run(void);
 extern void do_cmd_rest(void);
 extern void do_cmd_fire(void);
-extern void do_cmd_fire_aux(int item, object_type *j_ptr);
+extern bool do_cmd_fire_aux(int item, object_type *j_ptr, int dcfa_flags, int xtra_slay, int x_to_h, int x_to_d, int penetrate);
 extern void do_cmd_throw(void);
 extern bool do_cmd_throw_aux(int mult, bool boomerang, int shuriken);
 
@@ -1471,6 +1471,7 @@
 extern s16b gain_energy(void);
 extern s16b bow_energy(int sval);
 extern int bow_tmul(int sval);
+extern int extra_bow_tmul(int sval);
 extern cptr your_alignment(void);
 extern int weapon_exp_level(int weapon_exp);
 extern int riding_exp_level(int riding_exp);
diff -ur hengband_cvs/src/files.c hengband/src/files.c
--- hengband_cvs/src/files.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/files.c	Wed Jun 16 09:06:05 2004
@@ -1770,12 +1770,7 @@
 
 	if (inventory[INVEN_BOW].k_idx)
 	{
-		tmul = bow_tmul(inventory[INVEN_BOW].sval);
-
-		/* Get extra "power" from "extra might" */
-		if (p_ptr->xtra_might) tmul++;
-
-		tmul = tmul * (100 + (int)(adj_str_td[p_ptr->stat_ind[A_STR]]) - 128);
+		tmul = extra_bow_tmul(inventory[INVEN_BOW].sval);
 	}
 
 	/* shoot power */
@@ -2536,6 +2531,11 @@
 		add_flag(flgs, TR_SLOW_DIGEST);
 		add_flag(flgs, TR_HOLD_LIFE);
 		break;
+        case RACE_SHOGGOTH:
+                  add_flag(flgs, TR_SEE_INVIS);
+                  add_flag(flgs, TR_FREE_ACT);
+                  add_flag(flgs, TR_AGGRAVATE);
+                  break;
 	default:
 		; /* Do nothing */
 	}
diff -ur hengband_cvs/src/flavor.c hengband/src/flavor.c
--- hengband_cvs/src/flavor.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/flavor.c	Wed Jun 16 09:06:05 2004
@@ -2317,7 +2317,7 @@
 	if (bow_ptr->k_idx && (o_ptr->tval == p_ptr->tval_ammo))
 	{
 		int avgdam = o_ptr->dd * (o_ptr->ds + 1) * 10 / 2;
-		int tmul = bow_tmul(bow_ptr->sval);
+		int tmul = extra_bow_tmul(bow_ptr->sval);
 		s16b energy_fire = bow_energy(bow_ptr->sval);
 
 		/* See if the bow is "known" - then set damage bonus */
@@ -2325,11 +2325,6 @@
 
 		/* Effect of ammo */
 		if (known) avgdam += (o_ptr->to_d * 10);
-
-		/* Get extra "power" from "extra might" */
-		if (p_ptr->xtra_might) tmul++;
-
-		tmul = tmul * (100 + (int)(adj_str_td[p_ptr->stat_ind[A_STR]]) - 128);
 
 		/* Launcher multiplier */
 		avgdam *= tmul;
diff -ur hengband_cvs/src/init1.c hengband/src/init1.c
--- hengband_cvs/src/init1.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/init1.c	Wed Jun 16 09:23:43 2004
@@ -3816,6 +3816,14 @@
 				/* Apply magic (no messages, no artifacts) */
 				apply_magic(o_ptr, base_level, AM_NO_FIXED_ART | AM_GOOD);
 
+				/* Paranoia -- proper item can be an artifact */
+				if ((random & RANDOM_ARTIFACT) &&
+				    (o_ptr->tval >= TV_SHOT) &&
+				    (o_ptr->tval <= TV_RING))
+				{
+					create_artifact(o_ptr, FALSE);
+				}
+
 				drop_here(o_ptr, *y, *x);
 			}
 
diff -ur hengband_cvs/src/monster2.c hengband/src/monster2.c
--- hengband_cvs/src/monster2.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/monster2.c	Wed Jun 16 09:06:05 2004
@@ -2034,7 +2034,7 @@
 		r_ptr->r_flags2 |= RF2_ELDRITCH_HORROR;
 
 		/* Demon characters are unaffected */
-		if (prace_is_(RACE_IMP) || prace_is_(RACE_DEMON) || (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)) return;
+		if (prace_is_(RACE_IMP) || prace_is_(RACE_DEMON) || prace_is_(RACE_SHOGGOTH) || (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)) return;
 		if (p_ptr->wizard) return;
 
 		/* Undead characters are 50% likely to be unaffected */
@@ -3202,7 +3202,18 @@
 		 (mode & PM_FORCE_FRIENDLY) || is_friendly_idx(who))
 	{
 		if (!monster_has_hostile_align(NULL, 0, -1, r_ptr)) set_friendly(m_ptr);
+	}else if((p_ptr->pclass == CLASS_MEDIUM) &&
+		 (r_ptr->d_char == 'q') &&
+		 !(r_ptr->flags3 & RF3_EVIL) &&
+		 !(r_ptr->flags1 & RF1_UNIQUE) &&
+		 !(r_ptr->flags7 & RF7_NAZGUL) &&
+		 !(r_ptr->flags7 & RF7_UNIQUE2) &&
+		 !(r_ptr->flags7 & RF7_CHAMELEON))
+	{
+		/* symbol 'q' monsters are friendly to Medium */
+		if (!monster_has_hostile_align(NULL, 0, -1, r_ptr)) set_friendly(m_ptr);
 	}
+	    
 
 	/* Assume no sleeping */
 	m_ptr->mtimed[MTIMED_CSLEEP] = 0;
diff -ur hengband_cvs/src/racial.c hengband/src/racial.c
--- hengband_cvs/src/racial.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/racial.c	Wed Jun 16 10:01:25 2004
@@ -292,6 +292,211 @@
 	return TRUE;
 }
 
+/*
+ * do_cmd_cast calls this function if the player's class
+ * is 'Medium'.
+ */
+static bool do_cmd_hamaya(void)
+{
+	int item;
+	object_type *j_ptr;
+	cptr q, s;
+
+	/* Get the "bow" (if any) */
+	j_ptr = &inventory[INVEN_BOW];
+
+	/* Require a launcher */
+	if (!j_ptr->tval)
+	{
+#ifdef JP
+		msg_print("¼Í·âÍÑ¤ÎÉð´ï¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£");
+#else
+		msg_print("You have nothing to fire with.");
+#endif
+		flush();
+		return FALSE;
+	}
+
+	if (j_ptr->sval == SV_CRIMSON)
+	{
+#ifdef JP
+		msg_print("¤³¤ÎÉð´ï¤ÏÈ¯Æ°¤·¤Æ»È¤¦¤â¤Î¤Î¤è¤¦¤À¡£");
+#else
+		msg_print("Do activate.");
+#endif
+		flush();
+		return FALSE;
+	}
+
+
+	/* Require proper missile */
+	item_tester_tval = p_ptr->tval_ammo;
+
+	/* Get an item */
+#ifdef JP
+	q = "¤É¤ì¤ò·â¤Á¤Þ¤¹¤«? ";
+	s = "È¯¼Í¤µ¤ì¤ë¥¢¥¤¥Æ¥à¤¬¤¢¤ê¤Þ¤»¤ó¡£";
+#else
+	q = "Fire which item? ";
+	s = "You have nothing to fire.";
+#endif
+
+	if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR)))
+	{
+		flush();
+		return FALSE;
+	}
+
+	/* Fire the item */
+	{
+		char o_name[MAX_NLEN];
+
+		object_desc(o_name, &inventory[item], (OD_OMIT_PREFIX | OD_NO_PLURAL | OD_NAME_ONLY));
+#ifdef JP
+		msg_format("µ§¤ê¤ò¤³¤á¤Æ%s¤òÊü¤Ä¡ª", o_name);
+#else
+		msg_format("You pray and shoot the %s!", o_name);
+#endif
+	}
+
+	{
+		int flag = DCFA_TREE | DCFA_THRU;
+		int slay = TR_SLAY_EVIL;
+		int xh = p_ptr->lev / 3;
+		int xd = p_ptr->lev / 5;
+		int power = 0;
+		if (p_ptr->lev >= 30) power = (p_ptr->lev - 30) * 10 / 3 + 35;
+		if (p_ptr->lev >= 45) slay = TR_KILL_EVIL;
+		if (do_cmd_fire_aux(item, j_ptr, flag, slay, xh, xd, power))
+		{
+			if (one_in_(3))
+			{
+#ifdef JP
+				msg_print("È¿Æ°¤ÇâÁÚô¤ò´¶¤¸¤¿¡£");
+#else
+				msg_print("Since you concentrated too much, you got giddy.");
+#endif
+				(void)set_stun(p_ptr->stun + randint1(5) + 1);
+			}
+			return TRUE;
+		}
+		else
+		{
+			return FALSE;
+		}
+	}
+}
+
+/* ¤ß¤½¤®¤ò¹Ô¤¦
+ * ¸ú²Ì
+ * ¡¡½ËÊ¡¤µ¤ì¤ë,ÁõÈ÷¤¬²ò¼ö¤µ¤ì¤ë,¾õÂÖ°Û¾ï¤¬¼£¤ë,ÁõÈ÷¤¬*²ò¼ö*¤µ¤ì¤ë,
+ * ¡¡ÂÐ¼Ù°­·ë³¦
+ * ¡¡¥é¥ó¥À¥à¤Ç¼þ°Ï¤Î¥â¥ó¥¹¥¿¡¼¤òÌ¥Î»¤·¡¢ÅÜ¤é¤»¤ë
+ */
+static bool do_cmd_ablution(void)
+{
+	int eff;
+	int plev = p_ptr->lev;
+	int term = randint1(plev) + plev * 2;
+
+	if ((cave[py][px].feat != feat_shallow_water) && (cave[py][px].feat != feat_deep_water))
+	{
+#ifdef JP
+		msg_print("¤³¤³¤Ë¤ÏÂÎ¤òÀ¶¤á¤ë¿å¤¬Ìµ¤¤¡£");
+#else
+		msg_print("No spring water around here.");
+#endif
+
+		return FALSE;
+	}
+
+	/* inside 'The Sewer' quest */
+	if (p_ptr->inside_quest == 2)
+	{
+#ifdef JP
+		msg_print("¤³¤Î¿å¤ÏÂçÊÑ±ø¤ì¤Æ¤¤¤ë¡£");
+#else
+		msg_print("This water is very dirty.");
+#endif
+
+		return FALSE;
+	}
+
+#ifdef JP
+	msg_print("À¶¿å¤ËÂÎ¤ò¤Ò¤¿¤·¤ÆãÒ¤ì¤òÍî¤È¤·¤¿¡£");
+#else
+	msg_print("Impurity of the body was dropped on spring water.");
+#endif
+
+	eff = plev;
+	
+	set_blessed(term, FALSE);
+
+	if (eff >= 10)
+	{
+		if (remove_curse())
+		{
+#ifdef JP
+			msg_print("Ã¯¤«¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
+#else
+			msg_print("You feel as if someone is watching over you.");
+#endif
+		}
+	}
+
+	if (eff >= 15)
+	{
+		bool affect = FALSE;
+		affect |= set_poisoned(0);
+		affect |= set_image(0);
+		affect |= set_stun(0);
+		affect |= set_cut(0);
+		affect |= set_blind(0);
+		affect |= set_afraid(0);
+		affect |= set_confused(0);
+		affect |= set_shero(0,TRUE);
+		if (affect)
+		{
+#ifdef JP
+			msg_print("ÂÎ¤¬Ìþ¤µ¤ì¤¿µ¤¤¬¤¹¤ë¡£");
+#else
+			msg_print("You feel cured.");
+#endif
+		}
+	}
+
+	if (eff >= 20)
+	{
+		if (remove_all_curse())
+		{
+#ifdef JP
+			msg_print("Ã¯¤«¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
+#else
+			msg_print("You feel as if someone is watching over you.");
+#endif
+		}
+	}
+
+	if (eff >= 25)
+	{
+		(void)set_protevil(term, FALSE);
+	}
+
+	if (randint1(100) >= p_ptr->skill_stl * 3 + 5)
+	{
+		int rol = randint1(20);
+		if (rol <= 1)
+		{
+			charm_animals(plev * 2);
+		}
+		else
+		{
+			aggravate_monsters(0);
+		}
+	}
+	return TRUE;
+}
+
 bool gain_magic(void)
 {
 	int item;
@@ -1348,6 +1553,18 @@
 			energy_use = 0;
 			break;
 		}
+		case CLASS_MEDIUM:
+		{
+			if (command == -3)
+			{
+				if (!do_cmd_hamaya()) return FALSE;
+			}
+			else if (command == -4)
+			{
+				if (!do_cmd_ablution()) return FALSE;
+			}
+			break;
+		}
 		}
 	}
 	else if (p_ptr->mimic_form)
@@ -1786,6 +2003,7 @@
 							}
 							break;
 						case CLASS_PRIEST:
+						case CLASS_MEDIUM:
 						case CLASS_PALADIN:
 							if (one_in_(3))
 							{
@@ -2593,6 +2811,30 @@
 		power_desc[num].stat = A_DEX;
 		power_desc[num].fail = 0;
 		power_desc[num++].number = -3;
+		break;
+	}
+	case CLASS_MEDIUM:
+	{
+#ifdef JP
+strcpy(power_desc[num].name, "ÇËËâÌð");
+#else
+		strcpy(power_desc[num].name, "Evil Blast Arrow");
+#endif
+		power_desc[num].level = 20;
+		power_desc[num].cost = (p_ptr->lev + 100) / 3;
+		power_desc[num].stat = A_WIS;
+		power_desc[num].fail = 10;
+		power_desc[num++].number = -3;
+#ifdef JP
+strcpy(power_desc[num].name, "¤ß¤½¤®");
+#else
+		strcpy(power_desc[num].name, "Ablution");
+#endif
+		power_desc[num].level = 5;
+		power_desc[num].cost = 10;
+		power_desc[num].stat = A_WIS;
+		power_desc[num].fail = 5;
+		power_desc[num++].number = -4;
 		break;
 	}
 	default:
diff -ur hengband_cvs/src/spells2.c hengband/src/spells2.c
--- hengband_cvs/src/spells2.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/spells2.c	Wed Jun 16 09:06:05 2004
@@ -845,6 +845,24 @@
 #endif
 			}
 			break;
+		case CLASS_MEDIUM:
+			if (plev > 4)
+			{
+#ifdef JP
+info[i++] = "¤¢¤Ê¤¿¤Ï¿å¤Î¾å¤ÇÂÎ¤ÎãÒ¤ì¤òÍî¤È¤¹¤³¤È¤¬¤Ç¤­¤ë¡£";
+#else
+				info[i++] = "You can drop impurity of the body on water. ";
+#endif
+			}
+			if (plev > 19)
+			{
+#ifdef JP
+info[i++] = "¤¢¤Ê¤¿¤ÏÅ¨¤ò´ÓÄÌ¤¹¤ëÀ»¤Ê¤ëÌð¤òÊü¤Ä¤³¤È¤¬¤Ç¤­¤ë¡£";
+#else
+				info[i++] = "You can fire a holy arrow.";
+#endif
+			}
+			break;
 	}
 
 	if (p_ptr->muta1)
diff -ur hengband_cvs/src/spells3.c hengband/src/spells3.c
--- hengband_cvs/src/spells3.c	Wed Jun 16 10:04:09 2004
+++ hengband/src/spells3.c	Wed Jun 16 09:06:05 2004
@@ -4255,6 +4255,12 @@
 	/* Hack -- Priest prayer penalty for "edged" weapons  -DGK */
 	if (((p_ptr->pclass == CLASS_PRIEST) || (p_ptr->pclass == CLASS_SORCERER)) && p_ptr->icky_wield[0]) chance += 25;
 	if (((p_ptr->pclass == CLASS_PRIEST) || (p_ptr->pclass == CLASS_SORCERER)) && p_ptr->icky_wield[1]) chance += 25;
+	if (p_ptr->pclass == CLASS_MEDIUM)
+	{
+		if (p_ptr->icky_wield[0]) chance += 20;
+		if (p_ptr->icky_wield[1]) chance += 20;
+		if (p_ptr->cumber_shield) chance += 20;
+	}
 
 	chance = mod_spell_chance_1(chance);
 
@@ -5985,6 +5991,9 @@
 				break;
 			case RACE_DEMON:
 				summon_kin_type = 'U';
+				break;
+                        case RACE_SHOGGOTH:
+				summon_kin_type = 'j';
 				break;
 			default:
 				summon_kin_type = 'p';
diff -ur hengband_cvs/src/tables.c hengband/src/tables.c
--- hengband_cvs/src/tables.c	Wed Jun 16 10:04:10 2004
+++ hengband/src/tables.c	Wed Jun 16 09:06:06 2004
@@ -2839,7 +2839,7 @@
 		72,  6, 180, 25,
 		66,  4, 150, 20,
 		0,
-		0x7FFFFFF,
+		0xFFFFFFF,
 	},
 	{
 #ifdef JP
@@ -2854,7 +2854,7 @@
 		66,  6, 130, 15,
 		62,  6, 100, 10,
 		2,
-		0x677E7FF,
+		0xE77E7FF,
 	},
 	{
 #ifdef JP
@@ -2869,7 +2869,7 @@
 		60,  4, 100,  6,
 		54,  4, 80,  6,
 		3,
-		0x677E75B,
+		0xE77E75B,
 
 	},
 	{
@@ -2885,7 +2885,7 @@
 		36,  3, 60,  3,
 		33,  3, 50,  3,
 		4,
-		0x76FFC0B,
+		0xF6FFC0B,
 	},
 	{
 #ifdef JP
@@ -2900,7 +2900,7 @@
 		42,  3, 90,  6,
 		39,  3, 75,  3,
 		4,
-		0x767D60F,
+		0xF67D60F,
 	},
 	{
 #ifdef JP
@@ -2960,7 +2960,7 @@
 		82, 5, 190, 20,
 		78,  6, 180, 15,
 		0,
-		0x7FFF7FF,
+		0xFFFF7FF,
 	},
 	{
 #ifdef JP
@@ -2975,7 +2975,7 @@
 		90, 10, 190, 20,
 		82, 10, 180, 15,
 		4,
-		0x777E75B,
+		0xF77E75B,
 	},
 	{
 #ifdef JP
@@ -2990,7 +2990,7 @@
 		82, 5, 200, 20,
 		78,  6, 190, 15,
 		0,
-		0x5C0A09D,
+		0xDC0A09D,
 	},
 	{
 #ifdef JP
@@ -3080,7 +3080,7 @@
 		60,  3, 80,  4,
 		54,  3, 70,  4,
 		2,
-		0x04D8011,
+		0x84D8011,
 	},
 	{
 #ifdef JP
@@ -3110,7 +3110,7 @@
 		43,  3, 92,  6,
 		40,  3, 78,  3,
 		5,
-		0x569040F,
+		0xD69040F,
 	},
 	{
 #ifdef JP
@@ -3125,7 +3125,7 @@
 		60,  4, 100,  6,
 		54,  4, 80,  6,
 		5,
-		0x677C7DF,
+		0xE77C7DF,
 	},
 	{
 #ifdef JP
@@ -3140,7 +3140,7 @@
 		76,  1, 160,  5,
 		72,  1, 130,  5,
 		2,
-		0x7FFE757,
+		0xFFFE757,
 	},
 	{
 #ifdef JP
@@ -3260,7 +3260,7 @@
 		32,  2, 75,  2,
 		29,  2, 65,  2,
 		4,
-		0x623F65E,
+		0xE23F65E,
 	},
 	{
 #ifdef JP
@@ -3304,7 +3304,7 @@
 		82, 5, 190, 20,
 		78,  6, 180, 15,
 		3,
-		0x779F777,
+		0xF79F777,
 	},
 	{
 #ifdef JP
@@ -3336,7 +3336,7 @@
 		82, 5, 190, 20,
 		78,  6, 180, 15,
 		0,
-		0x7FFF7FF,
+		0xFFFF7FF,
 	},
 	{
 #ifdef JP
@@ -3382,6 +3382,21 @@
 		0,
 		0x0800001,
 	},
+	{
+#ifdef JP
+		"¥·¥ç¥´¥¹",
+#endif
+		"Shoggoth",
+
+		{ 2, -4, 4, 0, 4, -6 },
+		-5, 0, 8, -100, 0, 7, 20, 0,
+		13, 200,
+		255, 255,
+		72, 12, 240, 64,
+		66, 12, 220, 64,
+		0,
+		0x1909325,
+	},
 };
 
 
@@ -3712,6 +3727,17 @@
 		15, 10, 10, 0,  0,  0, 25,18,
 		2,  20, 40
 	},
+	{
+#ifdef JP
+		"Öà½÷",
+#endif
+		"Medium",
+
+		{-5, 0, 3, 2, -3, 2},
+		25, 35, 60, 5,  16, 10, 34, 65,
+		8,  11, 13,  0,  0,  0,  6, 60,
+		0, 25, 30
+	},
 };
 
 player_seikaku seikaku_info[MAX_SEIKAKU] =
@@ -4039,6 +4065,7 @@
 	(CH_NONE),				/* Kaji */
 	(CH_NONE),				/* Mirror-master */
 	(CH_NONE),				/* Ninja */
+	(CH_LIFE | CH_CRUSADE | CH_NATURE | CH_DEATH | CH_DAEMON),	/* Medium */
 };
 
 
@@ -4081,6 +4108,7 @@
 	(CH_NONE),				/* Kaji */
 	(CH_NONE),				/* Mirror-master */
 	(CH_NONE),				/* Ninja */
+	(CH_NONE),				/* Medium */
 };
 
 
@@ -4605,6 +4633,19 @@
 		"°Å»¦¼Ô",
 		"»à¤ÎÄ¹¤­ÏÓ",
 	},
+	/* Medium */
+	{
+		"Ìµ¹¤¤Ê¾¯½÷",
+		"¸æ¿ÀÇÏ¤Î¾¯½÷",
+		"À»¾¯½÷",
+		"Ä«Ì¸¤ÎÖà½÷",
+		"Í¼·î¤ÎÖà½÷",
+		"É±Öà½÷",
+		"»³¿À¤ÎÖà½÷",
+		"Î¶¿À¤ÎÖà½÷",
+		"¿À»Ò",
+		"¾ï²µ½÷",
+	},
 };
 
 #else
@@ -4986,6 +5027,19 @@
 		"Shadowstrike",
 		"Assassinator",
 		"Death Lord",
+	},
+	/* Medium */
+	{
+		"Pure Girl",
+		"Jinme'S Girl",
+		"Saint Girl",
+		"Mist Maiden",
+		"Moon Maiden",
+		"Princess Maiden",
+		"Hanuman Maiden",
+		"Ryujin Maiden",
+		"Kamiko",
+		"Eternal Maiden",
 	},
 };
 #endif
diff -ur hengband_cvs/src/types.h hengband/src/types.h
--- hengband_cvs/src/types.h	Wed Jun 16 10:04:10 2004
+++ hengband/src/types.h	Wed Jun 16 09:06:06 2004
@@ -1164,22 +1164,26 @@
 
 	bool old_cumber_armor;
 	bool old_cumber_glove;
+	bool old_cumber_shield;
 	bool old_heavy_wield[2];
 	bool old_heavy_shoot;
 	bool old_icky_wield[2];
 	bool old_riding_wield[2];
 	bool old_riding_ryoute;
+	bool old_bow_ryoute;
 	bool old_monlite;
 
 	s16b old_lite;		/* Old radius of lite (if any) */
 
 	bool cumber_armor;	/* Mana draining armor */
 	bool cumber_glove;	/* Mana draining gloves */
+	bool cumber_shield;	/* Icky shield */
 	bool heavy_wield[2];	/* Heavy weapon */
 	bool heavy_shoot;	/* Heavy shooter */
 	bool icky_wield[2];	/* Icky weapon */
 	bool riding_wield[2];	/* Riding weapon */
 	bool riding_ryoute;	/* Riding weapon */
+	bool bow_ryoute;	/* Can't use hand for shoot */
 	bool monlite;
 
 	s16b cur_lite;		/* Radius of lite (if any) */
diff -ur hengband_cvs/src/xtra1.c hengband/src/xtra1.c
--- hengband_cvs/src/xtra1.c	Wed Jun 16 10:04:10 2004
+++ hengband/src/xtra1.c	Wed Jun 16 09:06:06 2004
@@ -2473,6 +2473,7 @@
 		case CLASS_MONK:
 		case CLASS_FORCETRAINER:
 		case CLASS_SORCERER:
+		case CLASS_MEDIUM:
 		{
 			if (inventory[INVEN_RARM].tval <= TV_SWORD) cur_wgt += inventory[INVEN_RARM].weight;
 			if (inventory[INVEN_LARM].tval <= TV_SWORD) cur_wgt += inventory[INVEN_LARM].weight;
@@ -2542,6 +2543,7 @@
 			case CLASS_MAGE:
 			case CLASS_HIGH_MAGE:
 			case CLASS_BLUE_MAGE:
+			case CLASS_MEDIUM:
 			{
 				msp -= msp * (cur_wgt - max_wgt) / 600;
 				break;
@@ -3553,6 +3555,12 @@
 			p_ptr->resist_pois = TRUE;
 			p_ptr->hold_life = TRUE;
 			break;
+		case RACE_SHOGGOTH:
+                  p_ptr->see_inv = TRUE;
+                  p_ptr->see_nocto = TRUE;
+                  p_ptr->free_act = TRUE;
+                  p_ptr->cursed |= (TRC_AGGRAVATE);
+                  break;
 		default:
 			/* Do nothing */
 			;
@@ -4664,7 +4672,6 @@
 	}
 
 
-	/* Compute "extra shots" if needed */
 	if (o_ptr->k_idx)
 	{
 		/* Analyze the launcher */
@@ -4696,50 +4703,6 @@
 				break;
 			}
 		}
-
-		/* Apply special flags */
-		if (o_ptr->k_idx && !p_ptr->heavy_shoot)
-		{
-			/* Extra shots */
-			p_ptr->num_fire += (extra_shots * 100);
-
-			/* Hack -- Rangers love Bows */
-			if ((p_ptr->pclass == CLASS_RANGER) &&
-			    (p_ptr->tval_ammo == TV_ARROW))
-			{
-				p_ptr->num_fire += (p_ptr->lev * 4);
-			}
-
-			if ((p_ptr->pclass == CLASS_CAVALRY) &&
-			    (p_ptr->tval_ammo == TV_ARROW))
-			{
-				p_ptr->num_fire += (p_ptr->lev * 3);
-			}
-
-			if (p_ptr->pclass == CLASS_ARCHER)
-			{
-				if (p_ptr->tval_ammo == TV_ARROW)
-					p_ptr->num_fire += ((p_ptr->lev * 5)+50);
-				else if ((p_ptr->tval_ammo == TV_BOLT) || (p_ptr->tval_ammo == TV_SHOT))
-					p_ptr->num_fire += (p_ptr->lev * 4);
-			}
-
-			/*
-			 * Addendum -- also "Reward" high level warriors,
-			 * with _any_ missile weapon -- TY
-			 */
-			if (p_ptr->pclass == CLASS_WARRIOR &&
-			   (p_ptr->tval_ammo <= TV_BOLT) &&
-			   (p_ptr->tval_ammo >= TV_SHOT))
-			{
-				p_ptr->num_fire += (p_ptr->lev * 2);
-			}
-			if ((p_ptr->pclass == CLASS_ROGUE) &&
-			    (p_ptr->tval_ammo == TV_SHOT))
-			{
-				p_ptr->num_fire += (p_ptr->lev * 4);
-			}
-		}
 	}
 
 	if (p_ptr->ryoute)
@@ -4798,6 +4761,7 @@
 				case CLASS_MAGE:
 				case CLASS_HIGH_MAGE:
 				case CLASS_BLUE_MAGE:
+				case CLASS_MEDIUM:
 					num = 3; wgt = 100; mul = 2; break;
 
 				/* Priest, Mindcrafter */
@@ -4938,6 +4902,19 @@
 			/* Icky weapon */
 			p_ptr->icky_wield[i] = TRUE;
 		}
+		else if ((p_ptr->pclass == CLASS_MEDIUM) && (!(have_flag(flgs, TR_BLESSED))))
+		{
+			/* Reduce the real bonuses */
+			p_ptr->to_h[i] -= 2;
+			p_ptr->to_d[i] -= 2;
+
+			/* Reduce the mental bonuses */
+			p_ptr->dis_to_h[i] -= 2;
+			p_ptr->dis_to_d[i] -= 2;
+
+			/* Icky weapon */
+			p_ptr->icky_wield[i] = TRUE;
+		}
 		else if (p_ptr->pclass == CLASS_BERSERKER)
 		{
 			p_ptr->to_h[i] += p_ptr->lev/5;
@@ -5043,6 +5020,10 @@
 		p_ptr->dis_to_h_b -= penalty;
 	}
 
+	/* Even one hand cannot be used for shoot? */
+	p_ptr->bow_ryoute = FALSE;
+	if (!empty_hands(FALSE)) p_ptr->bow_ryoute = TRUE;
+
 	/* Different calculation for monks with empty hands */
 	if (((p_ptr->pclass == CLASS_MONK) || (p_ptr->pclass == CLASS_FORCETRAINER) || (p_ptr->pclass == CLASS_BERSERKER)) &&
 		(empty_hands_status & EMPTY_HAND_RARM) && !p_ptr->hidarite)
@@ -5136,6 +5117,20 @@
 		monk_armour_aux = TRUE;
 	}
 
+	/* Assume player not encumbered by shield */
+	p_ptr->cumber_shield = FALSE;
+	for (i = 0 ; i < 2 ; i++)
+	{
+		if (inventory[INVEN_RARM+i].tval == TV_SHIELD)
+		{
+			if (p_ptr->pclass == CLASS_MEDIUM ||
+			    p_ptr->pclass == CLASS_NINJA)
+			{
+				p_ptr->cumber_shield = TRUE;
+			}
+		}
+	}
+	
 	for (i = 0; i < 2; i++)
 	{
 		if (buki_motteruka(INVEN_RARM+i))
@@ -5170,6 +5165,64 @@
 		}
 	}
 
+	/* Compute "extra shots" if needed */
+	o_ptr = &inventory[INVEN_BOW];
+	if (o_ptr->k_idx)
+	{
+		/* Apply special flags */
+		if (!p_ptr->heavy_shoot)
+		{
+			/* Extra shots */
+			p_ptr->num_fire += (extra_shots * 100);
+
+			/* Hack -- Rangers love Bows */
+			if ((p_ptr->pclass == CLASS_RANGER) &&
+			    (p_ptr->tval_ammo == TV_ARROW))
+			{
+				p_ptr->num_fire += (p_ptr->lev * 4);
+			}
+
+			if ((p_ptr->pclass == CLASS_CAVALRY) &&
+			    (p_ptr->tval_ammo == TV_ARROW))
+			{
+				p_ptr->num_fire += (p_ptr->lev * 3);
+			}
+
+			if ((p_ptr->pclass == CLASS_MEDIUM) &&
+			    (p_ptr->tval_ammo == TV_ARROW) &&
+			    !p_ptr->icky_wield[0] &&
+			    !p_ptr->icky_wield[1] &&
+			    !p_ptr->cumber_shield)
+			{
+				p_ptr->num_fire += (p_ptr->lev * 2);
+			}
+
+			if (p_ptr->pclass == CLASS_ARCHER)
+			{
+				if (p_ptr->tval_ammo == TV_ARROW)
+					p_ptr->num_fire += ((p_ptr->lev * 5)+50);
+				else if ((p_ptr->tval_ammo == TV_BOLT) || (p_ptr->tval_ammo == TV_SHOT))
+					p_ptr->num_fire += (p_ptr->lev * 4);
+			}
+
+			/*
+			 * Addendum -- also "Reward" high level warriors,
+			 * with _any_ missile weapon -- TY
+			 */
+			if (p_ptr->pclass == CLASS_WARRIOR &&
+			   (p_ptr->tval_ammo <= TV_BOLT) &&
+			   (p_ptr->tval_ammo >= TV_SHOT))
+			{
+				p_ptr->num_fire += (p_ptr->lev * 2);
+			}
+			if ((p_ptr->pclass == CLASS_ROGUE) &&
+			    (p_ptr->tval_ammo == TV_SHOT))
+			{
+				p_ptr->num_fire += (p_ptr->lev * 4);
+			}
+		}
+	}
+
 	/* Maximum speed is (+99). (internally it's 110 + 99) */
 	/* Temporary lightspeed forces to be maximum speed */
 	if ((p_ptr->lightspeed && !p_ptr->riding) || (new_speed > 209))
@@ -5334,6 +5387,33 @@
 	/* Hack -- handle "xtra" mode */
 	if (character_xtra) return;
 
+	/* Take note when "shield state" changes */
+	if (p_ptr->old_cumber_shield != p_ptr->cumber_shield)
+	{
+		/* Message */
+		if (p_ptr->cumber_shield)
+		{
+#ifdef JP
+			msg_print("½â¤¬¤È¤Æ¤â¼ÙËâ¤Ë´¶¤¸¤ë¡£");
+#else
+			msg_print("You feel ill at ease with a shield.");
+#endif
+
+		}
+		else
+		{
+#ifdef JP
+			msg_print("½â¤ò¤Ï¤º¤·¤Æ¿È·Ú¤Ë¤Ê¤Ã¤¿¡£");
+#else
+			msg_print("You feel relieved of cumbersomeness.");
+#endif
+
+		}
+
+		/* Save it */
+		p_ptr->old_cumber_shield = p_ptr->cumber_shield;
+	}
+	
 	/* Take note when "heavy bow" changes */
 	if (p_ptr->old_heavy_shoot != p_ptr->heavy_shoot)
 	{
@@ -5513,6 +5593,30 @@
 		}
 
 		p_ptr->old_riding_ryoute = p_ptr->riding_ryoute;
+	}
+
+	if (p_ptr->pclass == CLASS_MEDIUM &&
+	    (p_ptr->old_bow_ryoute != p_ptr->bow_ryoute))
+	{
+		/* Message */
+		if (p_ptr->bow_ryoute)
+		{
+#ifdef JP
+			msg_print("Î¾¼ê¤¬¤Õ¤µ¤¬¤Ã¤Æ¤¤¤Æ¤¦¤Þ¤¯Ìð¤ò·â¤Æ¤Ê¤¤¡£");
+#else
+			msg_print("You are using both hand for fighting, and you can't shoot well.");
+#endif
+		}
+		else
+		{
+#ifdef JP
+			msg_print("¼ê¤¬¶õ¤¤¤Æ¤¦¤Þ¤¯Ìð¤ò·â¤Æ¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£");
+#else
+			msg_print("You began to shoot well with one hand.");
+#endif
+		}
+
+		p_ptr->old_bow_ryoute = p_ptr->bow_ryoute;
 	}
 
 	if (((p_ptr->pclass == CLASS_MONK) || (p_ptr->pclass == CLASS_FORCETRAINER) || (p_ptr->pclass == CLASS_NINJA)) && (monk_armour_aux != monk_notify_aux))
diff -ur hengband_cvs/src/xtra2.c hengband/src/xtra2.c
--- hengband_cvs/src/xtra2.c	Wed Jun 16 10:04:10 2004
+++ hengband/src/xtra2.c	Wed Jun 16 09:06:06 2004
@@ -5967,6 +5967,34 @@
 }
 
 /*
+ * Return etra bow tmul
+ * STR¤ä¿¦¶È¤äÁõÈ÷¤Ë´ð¤­¡¢¸½ºß¤Î¥×¥ì¥¤¥ä¡¼¤Î¼Í·âÇÜÎ¨¤òÆÀ¤ë
+ */
+int extra_bow_tmul(int sval)
+{
+	int tmul;
+	tmul = bow_tmul(sval);
+
+	/* Get extra "power" from "extra might" */
+	if (p_ptr->xtra_might) tmul++;
+
+	tmul = tmul * (100 + (int)(adj_str_td[p_ptr->stat_ind[A_STR]]) - 128);
+
+	/* Mediums love Bows */
+	if ((p_ptr->pclass == CLASS_MEDIUM) &&
+	    (p_ptr->tval_ammo == TV_ARROW) &&
+	    !p_ptr->icky_wield[0] &&
+	    !p_ptr->icky_wield[1] &&
+	    !p_ptr->cumber_shield &&
+	    !p_ptr->bow_ryoute)
+	{
+		tmul += (p_ptr->lev * 3 / 2);
+	}
+
+	return tmul;
+}
+
+/*
  * Return alignment title
  */
 cptr your_alignment(void)
diff -ur hengband_cvs/src/z-config.h hengband/src/z-config.h
--- hengband_cvs/src/z-config.h	Mon Dec  8 02:23:21 2003
+++ hengband/src/z-config.h	Wed Jun 16 09:06:06 2004
@@ -588,6 +588,8 @@
  * Use world score server
  */
 #define WORLD_SCORE
+/* FIXME Öà½÷¤µ¤ó³«È¯Ãæ¥Ð¡¼¥¸¥ç¥ó¤Ê¤Î¤Ç¥¹¥³¥¢¤ÏÁ÷¤ì¤Þ¤»¤ó */
+#undef  WORLD_SCORE
 #endif
 
 #endif /* HAVE_CONFIG_H */
