OSDN Git Service

Unangbandから、既知の〜リストの中でモンスターやアイテムのシンボルを
authormogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 11 Dec 2002 03:20:30 +0000 (03:20 +0000)
committermogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 11 Dec 2002 03:20:30 +0000 (03:20 +0000)
エディットするモードを移植。

lib/edit/f_info.txt
lib/pref/graf-new.prf
lib/pref/graf-xxx.prf
src/cmd4.c
src/main-x11.c

index 86affe9..eeac31c 100644 (file)
@@ -139,12 +139,14 @@ G:^:s
 N:18:Íî¤È¤··ê
 E:pit
 G:^:s
+M:17
 
 # 0x13 --> visible trap -- poison pit
 
 N:19:Íî¤È¤··ê
 E:pit
 G:^:s
+M:17
 
 # 0x14 --> visible trap -- rune -- summon
 
@@ -169,6 +171,7 @@ G:^:u
 N:23:¾Ç¤²¤¿¾ì½ê
 E:discolored spot
 G:^:u
+M:22
 
 # 0x18 --> visible trap -- dart -- slow
 
@@ -181,18 +184,21 @@ G:^:r
 N:25:¥À¡¼¥Ä¡¦¥È¥é¥Ã¥×
 E:dart trap
 G:^:r
+M:24
 
 # 0x1A --> visible trap -- dart -- lose dex
 
 N:26:¥À¡¼¥Ä¡¦¥È¥é¥Ã¥×
 E:dart trap
 G:^:r
+M:24
 
 # 0x1B --> visible trap -- dart -- lose con
 
 N:27:¥À¡¼¥Ä¡¦¥È¥é¥Ã¥×
 E:dart trap
 G:^:r
+M:24
 
 # 0x1C --> visible trap -- gas -- blind
 
@@ -205,18 +211,21 @@ G:^:g
 N:29:¥¬¥¹¡¦¥È¥é¥Ã¥×
 E:gas trap
 G:^:g
+M:28
 
 # 0x1E --> visible trap -- gas -- poison
 
 N:30:¥¬¥¹¡¦¥È¥é¥Ã¥×
 E:gas trap
 G:^:g
+M:28
 
 # 0x1F --> visible trap -- gas -- sleep
 
 N:31:¥¬¥¹¡¦¥È¥é¥Ã¥×
 E:gas trap
 G:^:g
+M:28
 
 # 0x2x --> locked door (power 0)
 
index e1500e0..d0423c4 100644 (file)
@@ -308,15 +308,9 @@ S:0xFF:0x85/0x9E
 ##### Feature attr/char definitions #####
 
 
-# nothing
-F:0:0x80/0x80
-
 # open floor
 F:1:0x80/0x81
 
-# invisible trap (drawn as open floor)
-F:2:0x80/0x81
-
 # glyph of warding
 F:3:0x8D/0x95
 
@@ -332,106 +326,52 @@ F:6:0x80/0x96
 # down staircase
 F:7:0x80/0x99
 
-# visible trap -- trap door
-F:16:0x81/0x8C
-
-# visible trap -- open pit
-F:17:0x81/0x89
-
-# visible trap -- spiked pit
-F:18:0x81/0x89
+# quest entrance
+F:8:0x0B/0x3E
 
-# visible trap -- poison pit
-F:19:0x81/0x89
+# quest exit
+F:9:0x0B/0x3C
 
-# visible trap -- rune -- summon
-F:20:0x81/0x8F
+# quest down level
+F:10:0x04/0x3E
 
-# visible trap -- rune -- teleport
-F:21:0x81/0x92
+# quest up level
+F:11:0x04/0x3C
 
-# visible trap -- spot -- fire
-F:22:0x81/0x86
+# town exit
+F:12:0x05/0x3E
 
-# visible trap -- spot -- acid
-F:23:0x81/0x86
+# shaft up
+F:13:0x0F/0x3C
 
-# visible trap -- dart -- slow
-F:24:0x81/0x80
+# shaft down
+F:14:0x0F/0x3E
 
-# visible trap -- dart -- lose str
-F:25:0x81/0x80
+# trap door
+F:16:0x81/0x8C
 
-# visible trap -- dart -- lose dex
-F:26:0x81/0x80
+# pit
+F:17:0x81/0x89
 
-# visible trap -- dart -- lose con
-F:27:0x81/0x80
+# evil rune
+F:20:0x81/0x8F
 
-# visible trap -- gas -- blind
-F:28:0x81/0x83
+# strange rune
+F:21:0x81/0x92
 
-# visible trap -- gas -- confuse
-F:29:0x81/0x83
+# discolored spot
+F:22:0x81/0x86
 
-# visible trap -- gas -- poison
-F:30:0x81/0x83
+# dart trap
+F:24:0x81/0x80
 
-# visible trap -- gas -- sleep
-F:31:0x81/0x83
+# gas trap
+F:28:0x81/0x83
 
-# locked door (power 0)
+# door
 F:32:0x82/0x83
 
-# locked door (power 1)
-F:33:0x82/0x83
-
-# locked door (power 2)
-F:34:0x82/0x83
-
-# locked door (power 3)
-F:35:0x82/0x83
-
-# locked door (power 4)
-F:36:0x82/0x83
-
-# locked door (power 5)
-F:37:0x82/0x83
-
-# locked door (power 6)
-F:38:0x82/0x83
-
-# locked door (power 7)
-F:39:0x82/0x83
-
-# jammed door (power 0)
-F:40:0x82/0x83
-
-# jammed door (power 1)
-F:41:0x82/0x83
-
-# jammed door (power 2)
-F:42:0x82/0x83
-
-# jammed door (power 3)
-F:43:0x82/0x83
-
-# jammed door (power 4)
-F:44:0x82/0x83
-
-# jammed door (power 5)
-F:45:0x82/0x83
-
-# jammed door (power 6)
-F:46:0x82/0x83
-
-# jammed door (power 7)
-F:47:0x82/0x83
-
-# secret door (drawn as granite wall)
-F:48:0x80/0x84
-
-# rubble
+# pile of rubble
 F:49:0x80/0x9C
 
 # magma vein
@@ -440,46 +380,22 @@ F:50:0x80/0x8D
 # quartz vein
 F:51:0x80/0x87
 
-# magma vein + hidden treasure
-F:52:0x80/0x90
-
-# quartz vein + hidden treasure
-F:53:0x80/0x87
-
 # magma vein with treasure
 F:54:0x80/0x90
 
 # quartz vein with treasure
 F:55:0x80/0x8A
 
-# granite wall -- basic
+# granite wall
 F:56:0x80/0x84
 
-# granite wall -- inner
-F:57:0x80/0x84
-
-# granite wall -- outer
-F:58:0x80/0x84
-
-# granite wall -- solid
-F:59:0x80/0x84
-
-# permanent wall -- basic (perm)
+# permanent wall
 F:60:0x80/0x93
 
-# permanent wall -- inner (perm)
-F:61:0x80/0x93
-
-# permanent wall -- outer (perm)
-F:62:0x80/0x93
-
-# permanent wall -- solid (perm)
-F:63:0x80/0x93
-
 # explosive rune
-F:64:0x83/0x9A
+F:64:0xB6/0xBC
 
-# section of the Pattern
+# Pattern startpoint
 F:65:0x81/0x95
 
 # section of the Pattern
@@ -533,25 +449,35 @@ F:81:0x82/0x8E
 # Bookstore
 F:82:0x82/0x8F
 
-# Deep Water
+# pool of deep water
 F:83:0x83/0x80
 
-# Shallow Water
+# stream of shallow water
 F:84:0x83/0x83
 
-# Deep Lava
+# pool of deep lava
 F:85:0xB6/0x9D
 
-# Shallow Lava
+# stream of shallow lava
 F:86:0xB6/0x9A
 
-# Dirt
+# dark pit
+F:87:0x08/0x23
+
+# dirt
 F:88:0xBB/0x9D
 
-# Grass
+# patch of grass
 F:89:0xBB/0x8E
 
-#N:90:compact rune
+# compact rune
+F:90:0x08/0x5E
+
+# alarm
+F:91:0x0C/0x5E
+
+# wall opeing trap
+F:92:0x01/0x5E
 
 # flower
 F:93:0xBE/0x86
@@ -559,331 +485,314 @@ F:93:0xBE/0x86
 # brake
 F:94:0xBB/0x91
 
-# museun
+# Museum
 F:95:0x87/0xAD
 
-# Trees
+# tree
 F:96:0x82/0x9A
 
-# Mountain
+# mountain chain
 F:97:0x8D/0x98
 
-#N:128:Building:U
+# Building
+F:128:0x0F/0x2B
 
-#N:129:Building:U
+# Building
+F:129:0x0F/0x2B
 
-#N:130:Building:v
+# Building
+F:130:0x0A/0x2B
 
-#N:131:Building:v
+# Building
+F:131:0x0F/0x2B
 
-#N:132:Building:U
+# Building
+F:132:0x0F/0x2B
 
-#N:133:Building:U
+# Building
+F:133:0x0F/0x2B
 
-#N:134:Building:U
+# Building
+F:134:0x0F/0x2B
 
-#N:135:Building:o
+# Building
+F:135:0x03/0x2B
 
-#N:136:Building:R
+# Building
+F:136:0x0C/0x2B
 
-#N:137:Building:G
+# Building
+F:137:0x0D/0x2B
 
-#N:138:Building:v
+# Building
+F:138:0x0A/0x2B
 
-#N:139:Building:u
+# Building
+F:139:0x07/0x2B
 
-#N:140:Building:w
+# Building
+F:140:0x01/0x2B
 
-#N:141:Building:B
+# Building
+F:141:0x0E/0x2B
 
-#N:142:Building:B
+# Building
+F:142:0x0E/0x2B
 
-#N:143:Building:B
+# Building
+F:143:0x0E/0x2B
 
-#N:144:Building:B
+# Building
+F:144:0x0E/0x2B
 
-#N:145:Building:B
+# Building
+F:145:0x0E/0x2B
 
-#N:146:Building:B
+# Building
+F:146:0x0E/0x2B
 
-#N:147:Building:B
+# Building
+F:147:0x0E/0x2B
 
-#N:148:Building:B
+# Building
+F:148:0x0E/0x2B
 
-#N:149:Building:B
+# Building
+F:149:0x0E/0x2B
 
-#N:150:Building:B
+# Building
+F:150:0x0E/0x2B
 
-#N:151:Building:B
+# Building
+F:151:0x0E/0x2B
 
-#N:152:Building:B
+# Building
+F:152:0x0E/0x2B
 
-#N:153:Building:B
+# Building
+F:153:0x0E/0x2B
 
-#N:154:Building:B
+# Building
+F:154:0x0E/0x2B
 
-#N:155:Building:B
+# Building
+F:155:0x0E/0x2B
 
-#N:156:Building:B
+# Building
+F:156:0x0E/0x2B
 
-#N:157:Building:B
+# Building
+F:157:0x0E/0x2B
 
-#N:158:Building:B
+# Building
+F:158:0x0E/0x2B
 
-#N:159:Building:B
+# Building
+F:159:0x0E/0x2B
 
 # Town
 F:192:0xB3/0xB5
 
-# Entrance to dungeon
+# entrance to dungeon
 F:193:0x80/0x99
 
-# Swamp
+# swamp
 F:194:0xBB/0x9A
 
-# Mirror
-
-##### Object attr/char definitions #####
-
-
-# something
-K:0:0x01/0x20
-
-# Mushroom of Blindness
-K:1:0x85/0x94
-
-# Mushroom of Paranoia
-K:2:0x85/0x94
-
-# Mushroom of Confusion
-K:3:0x85/0x94
-
-# Mushroom of Hallucination
-K:4:0x85/0x94
-
-# Mushroom of Cure Poison
-K:5:0x85/0x94
-
-# Mushroom of Cure Blindness
-K:6:0x85/0x94
-
-# Mushroom of Cure Paranoia
-K:7:0x85/0x94
+# mirror
+F:195:0x81/0x95
 
-# Mushroom of Cure Confusion
-K:8:0x85/0x94
+# unknown grid (not detected)
+F:196:0x08/0x78
 
-# Mushroom of Weakness
-K:9:0x85/0x94
+# Armageddon trap
+F:197:0x0A/0x5E
 
-# Mushroom of Unhealth
-K:10:0x85/0x94
+# Piranha trap
+F:198:0x06/0x5E
 
-# Mushroom of Restore Constitution
-K:11:0x85/0x94
 
-# Mushroom of Restoring
-K:12:0x85/0x94
-
-# Mushroom of Stupidity
-K:13:0x85/0x94
-
-# Mushroom of Naivety
-K:14:0x85/0x94
-
-# Mushroom of Poison
-K:15:0x85/0x94
-
-# Mushroom of Sickness
-K:16:0x85/0x94
-
-# Mushroom of Paralysis
-K:17:0x85/0x94
-
-# Mushroom of Restore Strength
-K:18:0x85/0x94
-
-# Mushroom of Disease
-K:19:0x85/0x94
+##### Object attr/char definitions #####
 
-# Mushroom of Cure Serious Wounds
-K:20:0x85/0x94
 
-# & Ration~ of Food
+# Ration of Food
 K:21:0x8E/0x84
 
-# & Hard Biscuit~
+# Hard Biscuit
 K:22:0x8E/0x82
 
-# & Strip~ of Beef Jerky
+# Strip of Venison
 K:23:0x8E/0x83
 
-# & Slime Mold~
+# Slime Mold
 K:24:0x8E/0x85
 
-# & Piece~ of Elvish Waybread
+# Piece of Elvish Waybread
 K:25:0x8E/0x86
 
-# & Pint~ of Fine Ale
+# Pint of Fine Ale
 K:26:0x8E/0x80
 
-# & Pint~ of Fine Wine
+# Pint of Fine Wine
 K:27:0x8E/0x80
 
+# Mattock
+K:28:0x08/0x5C
+
 # No-dachi
 K:29:0xB5/0x89
 
-# & Broken Dagger~
+# Broken Dagger
 K:30:0x8A/0x8D
 
-# & Bastard Sword~
+# Bastard Sword
 K:31:0x8A/0x8E
 
-# & Scimitar~
+# Scimitar
 K:32:0x8A/0x97
 
-# & Tulwar~
+# Tulwar
 K:33:0x8A/0x95
 
-# & Broad Sword~
+# Broad Sword
 K:34:0x8A/0x98
 
-# & Short Sword~
+# Short Sword
 K:35:0x8A/0x94
 
-# & Blade~ of Chaos
+# Blade of Chaos
 K:36:0x8A/0x9E
 
-# & Two-Handed Sword~
+# Two-Handed Sword
 K:37:0x8A/0x9C
 
-# & Main Gauche~
+# Main Gauche
 K:38:0x8A/0x90
 
-# & Cutlass~
+# Cutlass
 K:39:0x8A/0x96
 
-# & Executioner's Sword~
+# Executioner's Sword
 K:40:0x8A/0x9D
 
-# & Katana~
+# Katana
 K:41:0x8A/0x9B
 
-# & Long Sword~
+# Long Sword
 K:42:0x8A/0x99
 
-# & Dagger~
+# Dagger
 K:43:0x8A/0x8F
 
-# & Rapier~
+# Rapier
 K:44:0x8A/0x91
 
-# & Sabre~
+# Sabre
 K:45:0x8A/0x93
 
-# & Small Sword~
+# Small Sword
 K:46:0x8A/0x92
 
-# & Broken Sword~
+# Broken Sword
 K:47:0x8A/0x8E
 
-# & Ball-and-Chain~
+# Ball-and-Chain
 K:48:0x8B/0x86
 
-# & Whip~
+# Whip
 K:49:0x8A/0x9F
 
-# & Flail~
+# Flail
 K:50:0x8B/0x83
 
-# & Two-Handed Flail~
+# Two-Handed Flail
 K:51:0x8B/0x87
 
-# & Morning Star~
+# Morning Star
 K:52:0x8B/0x84
 
-# & Mace~
+# Mace
 K:53:0x8B/0x81
 
-# & Quarterstaff~
+# Quarterstaff
 K:54:0x8B/0x82
 
-# & War Hammer~
+# War Hammer
 K:55:0x8B/0x80
 
-# & Lead-Filled Mace~
+# Lead-Filled Mace
 K:56:0x8B/0x85
 
-# & Mace~ of Disruption
+# Mace of Disruption
 K:57:0x8B/0x88
 
-# & Lucerne Hammer~
+# Lucerne Hammer
 K:58:0x8B/0x8D
 
-# & Beaked Axe~
+# Beaked Axe
 K:59:0x8B/0x90
 
-# & Glaive~
+# Glaive
 K:60:0x8B/0x92
 
-# & Halberd~
+# Halberd
 K:61:0x8B/0x93
 
-# & Awl-Pike~
+# Awl-Pike
 K:62:0x8B/0x8B
 
-# & Pike~
+# Pike
 K:63:0x8B/0x8F
 
-# & Spear~
+# Spear
 K:64:0x8B/0x89
 
-# & Trident~
+# Trident
 K:65:0x8B/0x8A
 
-# & Lance~
+# Lance
 K:66:0x8B/0x8C
 
-# & Great Axe~
+# Great Axe
 K:67:0x8B/0x95
 
-# & Battle Axe~
+# Battle Axe
 K:68:0x8B/0x8E
 
-# & Lochaber Axe~
+# Lochaber Axe
 K:69:0x8B/0x94
 
-# & Broad Axe~
+# Broad Axe
 K:70:0x8B/0x91
 
-# & Scythe~
+# Scythe
 K:71:0x8B/0x96
 
-# & Scythe~ of Slicing
+# Scythe of Slicing
 K:72:0x8B/0x97
 
-# & Short Bow~
+# Short Bow
 K:73:0x8B/0x98
 
-# & Long Bow~
+# Long Bow
 K:74:0x8B/0x99
 
-# & Light Crossbow~
+# Light Crossbow
 K:75:0x8B/0x9A
 
-# & Heavy Crossbow~
+# Heavy Crossbow
 K:76:0x8B/0x9B
 
-# & Sling~
+# Sling
 K:77:0x8B/0x9C
 
-# & Arrow~
+# Arrow
 K:78:0x8C/0x80
 
-# & Seeker Arrow~
+# Seeker Arrow
 K:79:0x8C/0x81
 
-# & Bolt~
+# Bolt
 K:80:0x8C/0x82
 
 # Seeker Bolt
@@ -913,8 +822,8 @@ K:88:0x8E/0x8D
 # Dwarven Pick
 K:89:0x8E/0x91
 
-# Elven Cloak (rr9)
-K:90:0x89/0x89
+# Elven Cloak
+K:90:0x89/0x8A
 
 # Pair of Soft Leather Boots
 K:91:0x88/0x8E
@@ -1009,7 +918,7 @@ K:120:0x89/0x9D
 # Double Chain Mail
 K:121:0x89/0x95
 
-# Shield of Deflection
+# Mirror Shield
 K:122:0x88/0x98
 
 # Cloak
@@ -1039,191 +948,8 @@ K:130:0x88/0x96
 # Large Metal Shield
 K:131:0x88/0x97
 
-# Ring of Strength
-K:132:0x84/0x81
-
-# Ring of Dexterity
-K:133:0x84/0x83
-
-# Ring of Constitution
-K:134:0x84/0x83
-
-# Ring of Intelligence
-K:135:0x84/0x83
-
-# Ring of Speed
-K:136:0x84/0x83
-
-# Ring of Searching
-K:137:0x84/0x83
-
-# Ring of Teleportation
-K:138:0x84/0x83
-
-# Ring of Slow Digestion
-K:139:0x84/0x83
-
-# Ring of Resist Fire
-K:140:0x84/0x83
-
-# Ring of Resist Cold
-K:141:0x84/0x83
-
-# Ring of Feather Falling
-K:142:0x84/0x83
-
-# Ring of Poison Resistance
-K:143:0x84/0x83
-
-# Ring of Free Action
-K:144:0x84/0x83
-
-# Ring of Weakness
-K:145:0x84/0x83
-
-# Ring of Flames
-K:146:0x84/0x83
-
-# Ring of Acid
-K:147:0x84/0x83
-
-# Ring of Ice
-K:148:0x84/0x83
-
-# Ring of Woe
-K:149:0x84/0x83
-
-# Ring of Stupidity
-K:150:0x84/0x83
-
-# Ring of Damage
-K:151:0x84/0x83
-
-# Ring of Accuracy
-K:152:0x84/0x83
-
-# Ring of Protection
-K:153:0x84/0x83
-
-# Ring of Aggravate Monster
-K:154:0x84/0x83
-
-# Ring of See Invisible
-K:155:0x84/0x83
-
-# Ring of Sustain Strength
-K:156:0x84/0x83
-
-# Ring of Sustain Intelligence
-K:157:0x84/0x83
-
-# Ring of Sustain Wisdom
-K:158:0x84/0x83
-
-# Ring of Sustain Constitution
-K:159:0x84/0x83
-
-# Ring of Sustain Dexterity
-K:160:0x84/0x83
-
-# Ring of Sustain Charisma
-K:161:0x84/0x83
-
-# Ring of Slaying
-K:162:0x84/0x83
-
-# Amulet of Wisdom
-K:163:0x87/0x83
-
-# Amulet of Charisma
-K:164:0x87/0x83
-
-# Amulet of Searching
-K:165:0x87/0x83
-
-# Amulet of Teleportation
-K:166:0x87/0x83
-
-# Amulet of Slow Digestion
-K:167:0x87/0x83
-
-# Amulet of Resist Acid
-K:168:0x87/0x83
-
-# Amulet of Adornment
-K:169:0x87/0x83
-
-# Amulet of the Magi
-K:171:0x87/0x83
-
-# Amulet of DOOM
-K:172:0x87/0x83
-
-# Scroll of Enchant Weapon To-Hit
-K:173:0x83/0x9C
-
-# Scroll of Enchant Weapon To-Dam
-K:174:0x83/0x9C
-
-# Scroll of Enchant Armor
-K:175:0x83/0x9C
-
-# Scroll of Identify
-K:176:0x83/0x9C
-
-# Scroll of *Identify*
-K:177:0x83/0x9C
-
-# Scroll of Rumour
-K:178:0x83/0x9C
-
-# Scroll of Logrus
-K:179:0x83/0x9C
-
-# Scroll of Remove Curse
-K:180:0x83/0x9C
-
-# Scroll of Light
-K:181:0x83/0x9C
-
-# Scroll of Fire
-K:182:0x83/0x9C
-
-# Scroll of Ice
-K:183:0x83/0x9C
-
-# Scroll of Summon Monster
-K:184:0x83/0x9C
-
-# Scroll of Phase Door
-K:185:0x83/0x9C
-
-# Scroll of Teleport
-K:186:0x83/0x9C
-
-# Scroll of Teleport Level
-K:187:0x83/0x9C
-
-# Scroll of Monster Confusion
-K:188:0x83/0x9C
-
-# Scroll of Magic Mapping
-K:189:0x83/0x9C
-
-# Scroll of Rune of Protection
-K:190:0x83/0x9C
-
-# Scroll of *Remove Curse*
-K:191:0x83/0x9C
-
-# Scroll of Treasure Detection
-K:192:0x83/0x9C
-
-# Scroll of Object Detection
-K:193:0x83/0x9C
-
-# Scroll of Trap Detection
-K:194:0x83/0x9C
+# Double Ring Mail
+K:170:0xB6/0x93
 
 # Sheaf Arrow
 K:195:0xB6/0x91
@@ -1231,405 +957,9 @@ K:195:0xB6/0x91
 # Mithril Shot
 K:196:0xB6/0x8F
 
-# Scroll of Door/Stair Location
-K:197:0x83/0x9C
-
-# Scroll of Acquirement
-K:198:0x83/0x9C
-
-# Scroll of *Acquirement*
-K:199:0x83/0x9C
-
-# Scroll of Mass Genocide
-K:200:0x83/0x9C
-
-# Scroll of Detect Invisible
-K:201:0x83/0x9C
-
-# Scroll of Aggravate Monster
-K:202:0x83/0x9C
-
-# Scroll of Trap Creation
-K:203:0x83/0x9C
-
-# Scroll of Trap/Door Destruction
-K:204:0x83/0x9C
-
-# Scroll of Artifact Creation
-K:205:0x83/0x9C
-
-# Scroll of Recharging
-K:206:0x83/0x9C
-
-# Scroll of Genocide
-K:207:0x83/0x9C
-
-# Scroll of Darkness
-K:208:0x83/0x9C
-
-# Scroll of Protection from Evil
-K:209:0x83/0x9C
-
-# Scroll of Satisfy Hunger
-K:210:0x83/0x9C
-
-# Scroll of Dispel Undead
-K:211:0x83/0x9C
-
-# Scroll of *Enchant Weapon*
-K:212:0x83/0x9C
-
-# Scroll of Curse Weapon
-K:213:0x83/0x9C
-
-# Scroll of *Enchant Armor*
-K:214:0x83/0x9C
-
-# Scroll of Curse Armor
-K:215:0x83/0x9C
-
-# Scroll of Summon Undead
-K:216:0x83/0x9C
-
-# Scroll of Blessing
-K:217:0x83/0x9C
-
-# Scroll of Holy Chant
-K:218:0x83/0x9C
-
-# Scroll of Holy Prayer
-K:219:0x83/0x9C
-
-# Scroll of Word of Recall
-K:220:0x83/0x9C
-
-# Scroll of *Destruction*
-K:221:0x83/0x9C
-
-# Potion of Slime Mold Juice
-K:222:0x85/0x85
-
-# Potion of Apple Juice
-K:223:0x85/0x85
-
-# Potion of Water
-K:224:0x85/0x85
-
-# Potion of Strength
-K:225:0x85/0x85
-
-# Potion of Weakness
-K:226:0x85/0x85
-
-# Potion of Restore Strength
-K:227:0x85/0x85
-
-# Potion of Intelligence
-K:228:0x85/0x85
-
-# Potion of Stupidity
-K:229:0x85/0x85
-
-# Potion of Restore Intelligence
-K:230:0x85/0x85
-
-# Potion of Wisdom
-K:231:0x85/0x85
-
-# Potion of Naivety
-K:232:0x85/0x85
-
-# Potion of Restore Wisdom
-K:233:0x85/0x85
-
-# Potion of Charisma
-K:234:0x85/0x85
-
-# Potion of Ugliness
-K:235:0x85/0x85
-
-# Potion of Restore Charisma
-K:236:0x85/0x85
-
-# Potion of Curing
-K:237:0x85/0x85
-
-# Potion of Invulnerability
-K:238:0x85/0x85
-
-# Potion of New Life
-K:239:0x85/0x85
-
-# Potion of Cure Serious Wounds
-K:240:0x85/0x85
-
-# Potion of Cure Critical Wounds
-K:241:0x85/0x85
-
-# Potion of Healing
-K:242:0x85/0x85
-
-# Potion of Constitution
-K:243:0x85/0x85
-
-# Potion of Experience
-K:244:0x85/0x85
-
-# Potion of Sleep
-K:245:0x85/0x85
-
-# Potion of Blindness
-K:246:0x85/0x85
-
-# Potion of Booze
-K:247:0x85/0x85
-
-# Potion of Poison
-K:248:0x85/0x85
-
-# Potion of Speed
-K:249:0x85/0x85
-
-# Potion of Slowness
-K:250:0x85/0x85
-
-# Potion of Dexterity
-K:251:0x85/0x85
-
-# Potion of Restore Dexterity
-K:252:0x85/0x85
-
-# Potion of Restore Constitution
-K:253:0x85/0x85
-
-# Potion of Lose Memories
-K:254:0x85/0x85
-
-# Potion of Salt Water
-K:255:0x85/0x85
-
-# Potion of Enlightenment
-K:256:0x85/0x85
-
-# Potion of Heroism
-K:257:0x85/0x85
-
-# Potion of Berserk Strength
-K:258:0x85/0x85
-
-# Potion of Boldness
-K:259:0x85/0x85
-
-# Potion of Restore Life Levels
-K:260:0x85/0x85
-
-# Potion of Resist Heat
-K:261:0x85/0x85
-
-# Potion of Resist Cold
-K:262:0x85/0x85
-
-# Potion of Detect Invisible
-K:263:0x85/0x85
-
-# Potion of Slow Poison
-K:264:0x85/0x85
-
-# Potion of Neutralize Poison
-K:265:0x85/0x85
-
-# Potion of Restore Mana
-K:266:0x85/0x85
-
-# Potion of Infra-vision
-K:267:0x85/0x85
-
-# Potion of Resistance
-K:268:0x85/0x85
-
-# Wand of Light
-K:269:0x86/0x93
-
-# Wand of Lightning Bolts
-K:270:0x86/0x93
-
-# Wand of Frost Bolts
-K:271:0x86/0x93
-
-# Wand of Fire Bolts
-K:272:0x86/0x93
-
-# Wand of Stone to Mud
-K:273:0x86/0x93
-
-# Wand of Polymorph
-K:274:0x86/0x93
-
-# Wand of Heal Monster
-K:275:0x86/0x93
-
-# Wand of Haste Monster
-K:276:0x86/0x93
-
-# Wand of Slow Monster
-K:277:0x86/0x93
-
-# Wand of Confuse Monster
-K:278:0x86/0x93
-
-# Wand of Sleep Monster
-K:279:0x86/0x93
-
-# Wand of Drain Life
-K:280:0x86/0x93
-
-# Wand of Trap/Door Destruction
-K:281:0x86/0x93
-
-# Wand of Magic Missile
-K:282:0x86/0x93
-
-# Wand of Clone Monster
-K:283:0x86/0x93
-
-# Wand of Scare Monster
-K:284:0x86/0x93
-
-# Wand of Teleport Away
-K:285:0x86/0x93
-
-# Wand of Disarming
-K:286:0x86/0x93
-
-# Wand of Lightning Balls
-K:287:0x86/0x93
-
-# Wand of Cold Balls
-K:288:0x86/0x93
-
-# Wand of Fire Balls
-K:289:0x86/0x93
-
-# Wand of Stinking Cloud
-K:290:0x86/0x93
-
-# Wand of Acid Balls
-K:291:0x86/0x93
-
-# Wand of Wonder
-K:292:0x86/0x93
-
 # Flight Arrow
 K:293:0xB6/0x90
 
-# Wand of Acid Bolts
-K:294:0x86/0x93
-
-# Wand of Dragon's Flame
-K:295:0x86/0x93
-
-# Wand of Dragon's Frost
-K:296:0x86/0x93
-
-# Wand of Dragon's Breath
-K:297:0x86/0x93
-
-# Wand of Annihilation
-K:298:0x86/0x93
-
-# Wand of Rockets
-K:299:0x86/0x93
-
-# Staff of Trap Location
-K:300:0x87/0x92
-
-# Staff of Treasure Location
-K:301:0x87/0x92
-
-# Staff of Object Location
-K:302:0x87/0x92
-
-# Staff of Teleportation
-K:303:0x87/0x92
-
-# Staff of Earthquakes
-K:304:0x87/0x92
-
-# Staff of Summoning
-K:305:0x87/0x92
-
-# Staff of Light
-K:306:0x87/0x92
-
-# Staff of *Destruction*
-K:307:0x87/0x92
-
-# Staff of Starlight
-K:308:0x87/0x92
-
-# Staff of Haste Monsters
-K:309:0x87/0x92
-
-# Staff of Slow Monsters
-K:310:0x87/0x92
-
-# Staff of Sleep Monsters
-K:311:0x87/0x92
-
-# Staff of Cure Light Wounds
-K:312:0x87/0x92
-
-# Staff of Detect Invisible
-K:313:0x87/0x92
-
-# Staff of Speed
-K:314:0x87/0x92
-
-# Staff of Slowness
-K:315:0x87/0x92
-
-# Staff of Door/Stair Location
-K:316:0x87/0x92
-
-# Staff of Remove Curse
-K:317:0x87/0x92
-
-# Staff of Detect Evil
-K:318:0x87/0x92
-
-# Staff of Curing
-K:319:0x87/0x92
-
-# Staff of Dispel Evil
-K:320:0x87/0x92
-
-# Staff of Probing
-K:321:0x87/0x92
-
-# Staff of Darkness
-K:322:0x87/0x92
-
-# Staff of Genocide
-K:323:0x87/0x92
-
-# Staff of Power
-K:324:0x87/0x92
-
-# Staff of the Magi
-K:325:0x87/0x92
-
-# Staff of Perception
-K:326:0x87/0x92
-
-# Staff of Holiness
-K:327:0x87/0x92
-
-# Staff of Enlightenment
-K:328:0x87/0x92
-
-# Staff of Healing
-K:329:0x87/0x92
-
 # [Book of Common Prayer]
 K:330:0x8D/0x84
 
@@ -1690,90 +1020,6 @@ K:348:0x8E/0x88
 # Empty Bottle
 K:349:0x8E/0x87
 
-# Rod of Havoc
-K:350:0x86/0x83
-
-# Rod of Door/Stair Location
-K:351:0x86/0x83
-
-# Rod of Trap Location
-K:352:0x86/0x83
-
-# Rod of Probing
-K:353:0x86/0x83
-
-# Rod of Recall
-K:354:0x86/0x83
-
-# Rod of Illumination
-K:355:0x86/0x83
-
-# Rod of Light
-K:356:0x86/0x83
-
-# Rod of Lightning Bolts
-K:357:0x86/0x83
-
-# Rod of Frost Bolts
-K:358:0x86/0x83
-
-# Rod of Fire Bolts
-K:359:0x86/0x83
-
-# Rod of Polymorph
-K:360:0x86/0x83
-
-# Rod of Slow Monster
-K:361:0x86/0x83
-
-# Rod of Sleep Monster
-K:362:0x86/0x83
-
-# Rod of Drain Life
-K:363:0x86/0x83
-
-# Rod of Teleport Other
-K:364:0x86/0x83
-
-# Rod of Disarming
-K:365:0x86/0x83
-
-# Rod of Lightning Balls
-K:366:0x86/0x83
-
-# Rod of Cold Balls
-K:367:0x86/0x83
-
-# Rod of Fire Balls
-K:368:0x86/0x83
-
-# Rod of Acid Balls
-K:369:0x86/0x83
-
-# Rod of Acid Bolts
-K:370:0x86/0x83
-
-# Rod of Enlightenment
-K:371:0x86/0x83
-
-# Rod of Perception
-K:372:0x86/0x83
-
-# Rod of Curing
-K:373:0x86/0x83
-
-# Rod of Healing
-K:374:0x86/0x83
-
-# Rod of Detection
-K:375:0x86/0x83
-
-# Rod of Restoration
-K:376:0x86/0x83
-
-# Rod of Speed
-K:377:0x86/0x83
-
 # [Call of the Wild]
 K:379:0x8D/0x80
 
@@ -1882,81 +1128,12 @@ K:413:0x88/0x82
 # Dragon Shield
 K:414:0x88/0x9C
 
-# Potion of Death
-K:415:0x85/0x85
-
-# Potion of Ruination
-K:416:0x85/0x85
-
-# Potion of Detonations
-K:417:0x85/0x85
-
-# Potion of Augmentation
-K:418:0x85/0x85
-
-# Potion of *Healing*
-K:419:0x85/0x85
-
-# Potion of Life
-K:420:0x85/0x85
-
-# Potion of Self Knowledge
-K:421:0x85/0x85
-
-# Potion of *Enlightenment*
-K:422:0x85/0x85
-
 # [Black Channels]
 K:423:0x8D/0x8A
 
 # [Necronomicon]
 K:424:0x8D/0x8B
 
-# Ring of Fear Resistance
-K:425:0x84/0x83
-
-# Ring of Light and Darkness Resistance
-K:426:0x84/0x83
-
-# Ring of Nether Resistance
-K:427:0x84/0x83
-
-# Ring of Nexus Resistance
-K:428:0x84/0x83
-
-# Ring of Sound Resistance
-K:429:0x84/0x83
-
-# Ring of Confusion Resistance
-K:430:0x84/0x83
-
-# Ring of Shard Resistance
-K:431:0x84/0x83
-
-# Ring of Disenchantment Resistance
-K:432:0x84/0x83
-
-# Ring of Chaos Resistance
-K:433:0x84/0x83
-
-# Ring of Blindness Resistance
-K:434:0x84/0x83
-
-# Ring of Lordly Protection
-K:435:0x84/0x83
-
-# Ring of Extra Attacks
-K:436:0x84/0x83
-
-# Potion of Cure Light Wounds
-K:437:0x85/0x85
-
-# Potion of Clumsiness
-K:438:0x85/0x85
-
-# Potion of Sickliness
-K:439:0x85/0x85
-
 # copper
 K:480:0x83/0x91
 
@@ -2014,45 +1191,18 @@ K:497:0x83/0x95
 # Mighty Hammer
 K:498:0x88/0x9E
 
-# Massive Iron Crown (Grond)
+# Massive Iron Crown
 K:499:0x8B/0x9E
 
-# Phial of Galadriel
+# Phial
 K:500:0x8E/0x9D
 
-# Star of Elendil
+# Star
 K:501:0x8E/0x9E
 
-# Jewel of Judgement
+# Jewel
 K:502:0x8E/0x9F
 
-# The Amulet of Carlammas
-K:503:0x84/0x96
-
-# The Amulet of Ingwe
-K:504:0x84/0x97
-
-# The Necklace of the Dwarves
-K:505:0x84/0x98
-
-# The Ring of Barahir
-K:506:0x84/0x8F
-
-# The Ring of the Tulkas
-K:507:0x84/0x90
-
-# Narya
-K:508:0x84/0x92
-
-# Nenya
-K:509:0x84/0x93
-
-# Vilya
-K:510:0x84/0x94
-
-# The One Ring
-K:511:0x84/0x95
-
 # [Conjurings & Tricks]
 K:512:0x8D/0x90
 
@@ -2074,33 +1224,22 @@ K:517:0x8D/0x8D
 # [Major Arcana]
 K:518:0x8D/0x8E
 
-# [Manual of Master]
+# [Manual of Mastery]
 K:519:0x8D/0x8F
 
-# Amulet of Reflection
-K:520:0x87/0x83
-
-# Amulet of Anti-Magic
-K:521:0x87/0x83
-
-# Amulet of Anti-Teleportation
-K:522:0x87/0x83
-
-# Amulet of Resistance
-K:523:0x87/0x83
-
 # Zweihander
 K:524:0xB5/0x8C
 
 # Tanto
 K:525:0xB5/0x81
 
-# Splint Mail (rr9)
+# Splint Mail
+K:526:0xB6/0x92
 
-# Do-Maru
+# Do-maru
 K:527:0xB6/0x82
 
-# Trifurcate spear
+# Trifurcate Spear
 K:528:0xB5/0x85
 
 # Three Piece Rod
@@ -2139,7 +1278,8 @@ K:540:0xB5/0x93
 # Jo Staff
 K:541:0xB5/0x92
 
-# Club (rr9)
+# Club
+K:542:0xB5/0x94
 
 # Broad Spear
 K:543:0xB5/0x84
@@ -2156,7 +1296,7 @@ K:546:0xB5/0x8D
 # Espadon
 K:547:0xB5/0x8E
 
-# Great Scimitar
+# Falchion
 K:548:0xB5/0x8B
 
 # Wakizashi
@@ -2178,9 +1318,10 @@ K:553:0xB5/0x82
 K:554:0xB5/0x99
 
 # Ninjato
-K:555:0xB5/0x97
+K:555:0xB5/0x8E
 
-# Ring Mail (rr9)
+# Ring Mail
+K:556:0xB6/0x93
 
 # Cord Armour
 K:557:0xB6/0x8B
@@ -2203,229 +1344,205 @@ K:562:0xB6/0x85
 # Haramakido
 K:563:0xB6/0x81
 
-# Incandescent Light~
+# Incandescent Light
+K:564:0x0B/0x21
 
-#N:566:Mundanity
-K:566:0x83/0x9C
+# Diamond Edge
+K:565:0xB5/0x9B
 
-#N:567:Magical Figurine
+# Magical Figurine of #
+K:567:0xB4/0xAF
 
-#N:568:Wooden Statue
+# Wooden Statue of #
+K:568:0xBF/0x87
 
-#N:569:Clay Statue
+# Clay Statue of #
+K:569:0xBF/0x88
 
-#N:570:Stone Statue
+# Stone Statue of #
+K:570:0xBF/0x89
 
-#N:571:Iron Statue
+# Iron Statue of #
+K:571:0xBF/0x8A
 
-#N:572:Copper Statue
+# Copper Statue of #
+K:572:0xBF/0x8B
 
-#N:573:Silver Statue
+# Silver Statue of #
+K:573:0xBF/0x8C
 
-#N:574:Golden Statue
+# Golden Statue of #
+K:574:0xBF/0x8D
 
-#N:575:Ivory Statue
+# Ivory Statue of #
+K:575:0xBF/0x8E
 
-#N:576:Mithril Statue
+# Mithril Statue of #
+K:576:0xBF/0x8F
 
-#N:577:Ornate Statue
+# Ornate Statue of #
+K:577:0xBF/0x90
 
-#N:578:Skeleton
+# Skeleton
 K:578:0x8E/0x96
 
-#N:579:Corpse
+# Corpse
 K:579:0xA8/0xA1
 
-#N:580:T-shirt
+# T-shirt
+K:580:0x8B/0x9D
 
-#N:581:Wizardstaff
+# Wizardstaff
 K:581:0xA8/0xA0
 
-#N:582:Feanorian lamp
+# Feanorian lamp
 K:582:0xB5/0xB6
 
-#N:583:Stone to Mud
-K:583:0x86/0x83
-
-#N:584:Gloves of Dragon
-
-#N:585:Dragon Boots
+# Set of Gloves of Dragon
+K:584:0x0D/0x5D
 
-#N:586:Ring~
-K:586:0x84/0x95
+# Pair of Dragon Boots
+K:585:0x0D/0x5D
 
-#N:587:Telepathy
-K:587:0x87/0x80
+# Gun
+K:588:0x04/0x7D
 
-#N:588:Gun
-
-#N:589:Palantir
+# Crystal Ball
 K:589:0xB6/0xA7
 
-#N:590:Stone
-
-#N:591:Amulet
-
-#N:592:Poison Needle
-
-#N:593:Capture Ball
-
-#N:594:Death Scythe
-
-#N:595:Neo Tsuyoshi Special
-K:595:0x85/0x85
+# Stone
+K:590:0x0C/0x2A
 
-#N:596:Extra Shots
-K:596:0x87/0x80
+# Poison Needle
+K:592:0x8E/0x92
 
-#N:597:Card
+# Capture Ball#
+K:593:0xB4/0xAB
 
-#N:598:Sustaining
-K:598:0x87/0x80
+# Death Scythe 
+K:594:0x8B/0x97
 
-#N:599:Mana
-K:599:0x87/0x80
+# Card
+K:597:0x0D/0x7E
 
-#N:600:Spell
-K:600:0x83/0x9C
+# [Handbook for Pupils]
+K:604:0x0B/0x3F
 
-#N:601:Summon Pet
-K:601:0x83/0x9C
+# [Grade Holder's Book]
+K:605:0x0B/0x3F
 
-#N:602:Torque~
+# [Note of Acting Master]
+K:606:0x0F/0x3F
 
-#N:603:Tsuyoshi Special
-K:603:0x85/0x85
+# [Spiritual Enlightenment]
+K:607:0x0F/0x3F
 
-#N:604[Handbook for Pupils]
+# Levitation Stone
+K:609:0x0E/0x2A
 
-#N:605:[Grade Holder's Book]
+# Ethereal Cloak
+K:611:0x89/0x89
 
-#N:606:[Note of Acting Master]
-
-#N:607:[Spiritual Enlightenment]
-
-#N:608:Animate Dead
-K:608:0x87/0x92
-
-#N:609:Levitation Stone~
-
-#N:610:Bead~
-
-#N:611:Ethereal Cloak~
-
-#N:612:Mirror~
-
-#N:613:Black Arrow~
-
-#N:614:Sexy Swimsuit
-
-#N:615:Fishingpole~
+# Mirror
+K:612:0x06/0x2A
 
-#N:616:Inro~
+# Black Arrow
+K:613:0x0F/0x7B
 
-#N:617:Polymorph
-K:617:0x85/0x85
+# Sexy Swimsuit
+K:614:0x0A/0x28
 
-#N:618:Warning
-K:618:0x87/0x80
+# Fishingpole
+K:615:0x0E/0x2F
 
-#N:619:Steel Bolt~
+# Steel Bolt
 K:619:0xB6/0xA2
 
-#N:620:Can~ of Toys
+# Can of Toys
+K:620:0xB4/0xA7
 
-#N:621:Stick~
+# Stick
 K:621:0xA6/0xB2
 
-#N:622:Yumi~
+# Yumi
 K:622:0xB6/0xBA
 
-#N:623:Clothes~
-
-#N:624:Intelligence
-K:624:0x87/0x80
+# Clothes
+K:623:0x0B/0x28
 
-#N:625:Wisdom
-K:625:0x87/0x80
-
-#N:626:Reinforce Muscle
-K:626:0x87/0x80
-
-#N:627:Knight's Shield~
-
-#N:628:Striking
-K:628:0x86/0x93
-
-#N:629:Mana Storm
-K:629:0x87/0x92
-
-#N:630:Reset Recall
+# Knight's Shield
+K:627:0x88/0x99
 
 # [Apprentice Handbook]
-#K:631:0xB8/0x87
+K:631:0x09/0x3F
 
 # [Minstrel's Music]
-#K:632:0xB8/0x87
+K:632:0x09/0x3F
 
 # [Harps of Rivendell]
-#K:633:0xB8/0x87
+K:633:0x01/0x3F
 
 # [Lays of Beleriand]
-#K:634:0xB8/0x87
+K:634:0x01/0x3F
 
-#N:635:Falcon Sword
+# Falcon Sword
+K:635:0xB5/0x8B
 
 # Adventurer's guide to Middle Earth
 K:636:0x83/0x9E
 
-#N:637:[Bugei Shofu]
-
-#N:638:[Yagyuu Bugeichou]
+# [Bugei Shofu]
+K:637:0x03/0x3F
 
-#N:639:[Gorinnosho]
+# [Yagyuu Bugeichou]
+K:638:0x03/0x3F
 
-#N:640:[Hokusin Ittouryuu Kaiden]
+# [Gorinnosho]
+K:639:0x07/0x3F
 
-#N:641:Annihilation
-K:641:0x86/0x93
+# [Hokusin Ittouryuu Kaiden]
+K:640:0x07/0x3F
 
-#N:642:Aggravate Monster
-K:642:0x86/0x83
+# Photograph of #
+K:643:0xB4/0xAC
 
-#N:643:Photograph~ of #
+# Robe
+K:645:0x89/0x8C
 
-#N:644:Magic Device Mastery
-K:644:0x87/0x80
+# [Dark Incantations]
+K:646:0x0C/0x3F
 
-#N:645:Robe~
+# [Immortal Rituals]
+K:647:0x0C/0x3F
 
-#N:646:[Dark Incantations]
+# [Demonthoughts]
+K:648:0x04/0x3F
 
-#N:647:[Immortal Rituals]
+# [Hellfire Tome]
+K:649:0x04/0x3F
 
-#N:648:[Demonthoughts]
+# Magic Whistle
+K:651:0xB8/0x88
 
-#N:649:[Hellfire Tome]
+# Black Clothes
+K:653:0xB6/0x88
 
-#N:650:Summon Kin
-K:650:0x83/0x9C
+# [Rites of Initiation]
+K:654:0x09/0x3F
 
-#N:651:Magic Whistle
-K:651:0xB8/0x88
+# [Ways of War]
+K:655:0x09/0x3F
 
-#N:652:Amulet
-
-#N:653:Black Clothes
+# [Exorcism and Dispelling]
+K:656:0x01/0x3F
 
+# [Wrath of God]
+K:657:0x01/0x3F
 
 
 ##### Monster attr/char definitions #####
 
 
-# Player
-R:0:0x92/0x80
-
 # Filthy street urchin
 R:1:0xAA/0x80
 
@@ -2480,7 +1597,7 @@ R:17:0xAA/0x8A
 # Battle scarred veteran
 R:18:0xAA/0x8B
 
-# Martti Ihrasaari
+# Lion Heart
 R:19:0xB0/0x80
 
 # Grey mold
@@ -2525,7 +1642,7 @@ R:32:0xA6/0x9B
 # Rock lizard
 R:33:0xA2/0x86
 
-# Grid Bug
+# Grid bug
 R:34:0xB0/0x84
 
 # Jackal
@@ -2856,7 +1973,7 @@ R:142:0xAA/0x91
 R:143:0xA2/0x90
 
 # Space monster
-R:144:0xB0:0x8D
+R:144:0xB0/0x8D
 
 # Carnivorous flying monkey
 R:145:0xB7/0x92
@@ -3164,7 +2281,7 @@ R:245:0xA8/0x94
 # Software bug
 R:246:0xB0/0x9D
 
-# Lurker (rr9)
+# Lurker
 R:247:0x80/0x81
 
 # Nixie
@@ -3353,7 +2470,7 @@ R:308:0xA4/0x97
 # Energy hound
 R:309:0xA4/0x98
 
-# Mimic (potion)
+# Potion mimic
 R:310:0x9D/0x8E
 
 # Door mimic
@@ -3590,7 +2707,7 @@ R:387:0xA2/0x95
 # Lesser hell-beast
 R:388:0xB9/0x94
 
-# Tyrannosaur
+# Tyrannosaurus
 R:389:0xB1/0x8C
 
 # Mummified human
@@ -3603,7 +2720,7 @@ R:391:0xA5/0x93
 R:392:0xAB/0x85
 
 # It
-R:393:0xB1:0x8D
+R:393:0xB1/0x8D
 
 # Banshee
 R:394:0x9F/0x9D
@@ -3698,7 +2815,7 @@ R:423:0x9D/0x84
 # Algroth
 R:424:0xA3/0x8C
 
-#N:425:Flamer of Tzeentch
+# Flamer of Tzeentch
 R:425:0xA8/0xBF
 
 # Roper
@@ -3740,13 +2857,14 @@ R:437:0xB9/0x9E
 # Fiend of Slaanesh
 R:438:0xB9/0x9F
 
-# stairway to hell
+# Stairway to hell
 R:439:0xB1/0x94
 
 # 5-headed hydra
 R:440:0xA2/0x96
 
-# Barney the Dinosaur
+# Gachapin
+R:441:0x0D/0x52
 
 # Black knight
 R:442:0xAB/0x88
@@ -3793,7 +2911,7 @@ R:455:0xB1/0x99
 # Archangel
 R:456:0x9D/0x90
 
-# Mimic (ring)
+# Ring mimic
 R:457:0xAD/0x9E
 
 # Chaos tile
@@ -3820,7 +2938,7 @@ R:464:0xA7/0x8F
 # Skeleton troll
 R:465:0xAC/0x8C
 
-# Skeletal tyrannosaur
+# Skeletal tyrannosaurus
 R:466:0xBA/0x85
 
 # Jaws
@@ -3937,7 +3055,7 @@ R:503:0xA6/0x8B
 # Ethereal drake
 R:504:0xA6/0x8C
 
-# Groo the Wanderer
+# Ishikawa Goemon
 R:505:0xB1/0x9E
 
 # Fasolt the Giant
@@ -4015,7 +3133,7 @@ R:529:0xB2/0x85
 # Eog golem
 R:530:0xA7/0x90
 
-# Little Boy
+# Sheer Heart Attack, the Bomb Hand
 R:531:0xBA/0x94
 
 # Dagashi
@@ -4066,7 +3184,7 @@ R:546:0xA6/0x8D
 # Mumak
 R:547:0xAC/0x82
 
-# Giant red ant
+# Giant fire ant
 R:548:0xA5/0x8D
 
 # Mature white dragon
@@ -4153,7 +3271,8 @@ R:575:0xA1/0x8A
 # Fire angel
 R:576:0xBA/0x9E
 
-#N:577:Crypt thing
+# Crypt thing
+R:577:0x0E/0x4C
 
 # Chaos butterfly
 R:578:0xBA/0x9F
@@ -4161,7 +3280,7 @@ R:578:0xBA/0x9F
 # Time elemental
 R:579:0xB2/0x8F
 
-# Flying polyps
+# Flying polyp
 R:580:0xBB/0x80
 
 # The Queen Ant
@@ -4203,13 +3322,13 @@ R:592:0xA6/0x98
 # Mature multi-hued dragon
 R:593:0xA6/0x99
 
-#N:594:Sky whale
+# Sky whale
 R:594:0xAB/0xBB
 
 # Father Dagon
 R:595:0xB1/0x98
 
-#N:596:Mother Hydra
+# Mother Hydra
 R:596:0xA2/0x98
 
 # Death knight
@@ -4251,15 +3370,17 @@ R:608:0xB2/0x91
 # Baron of hell
 R:609:0xB2/0x92
 
-#N:610:Scylla
+# Scylla
+R:610:0x0D/0x4D
 
-#N:611:Monastic lich
+# Monastic lich
 R:611:0xA1/0x87
 
 # Nether wraith
 R:612:0xA4/0x85
 
-#N:613:Fire vampire
+# Fire vampire
+R:613:0x04/0x56
 
 # 7-headed hydra
 R:614:0xA2/0x98
@@ -4294,19 +3415,19 @@ R:623:0xA3/0x9C
 # Ancient black dragon
 R:624:0x9E/0x8C
 
-#N:625:Weird fume
+# Weird fume
 R:625:0xA9/0xA6
 
-#N:626:Spawn of Ubbo-Sathla
+# Spawn of Ubbo-Sathla
 R:626:0xAB/0xBD
 
-#N:627:Fat Man
+# Fat Man
 R:627:0xA9/0xA5
 
-#N:628:Malekith the Accursed
+# Malekith the Accursed
 R:628:0xA7/0x95
 
-#N:629:Morgenstern, Julian's steed
+# Morgenstern, Julian's steed
 R:629:0xAB/0xBE
 
 # Spirit troll
@@ -4360,7 +3481,7 @@ R:645:0x9E/0x8F
 # Great crystal drake
 R:646:0x9E/0x90
 
-#N:647:Wyrd sister
+# Wyrd sister
 R:647:0xA7/0x9D
 
 # Clubber demon
@@ -4369,24 +3490,25 @@ R:648:0xB2/0x95
 # Death quasit
 R:649:0xA0/0x99
 
-#N:650:Giganto the Gargantuan
+# Giganto the Gargantuan
 R:650:0xAB/0xBF
 
 # Strygalldwir
 R:651:0xB2/0x96
 
-#N:652:Fallen angel
+# Fallen angel
+R:652:0x08/0x41
 
-#N:653:Giant headless
+# Giant headless
 R:653:0xAC/0xA0
 
-#N:654:Judge Fire
+# Judge Fire
 R:654:0xAB/0x93
 
-#N:655:Ubbo-Sathla, the Unbegotten Source
+# Ubbo-Sathla, the Unbegotten Source
 R:655:0xAC/0xA1
 
-#N:656:Judge Mortis
+# Judge Mortis
 R:656:0xAC/0xA2
 
 # Dark elven sorceror
@@ -4422,23 +3544,26 @@ R:666:0xB2/0x9C
 # Dread
 R:667:0xA0/0x81
 
-#N:668:Greater basilisk
+# Greater basilisk
 R:668:0xAC/0xA3
 
-#N:669:Charybdis
+# Charybdis
 R:669:0xAC/0xA4
 
-#N:670:Jack of Shadows
+# Jack of Shadows
+R:670:0x02/0x70
 
-#N:671:Zephyr Lord
+# Zephyr Lord
+R:671:0x0A/0x57
 
-#N:672:Juggernaut of Khorne
+# Juggernaut of Khorne
 R:672:0xAC/0xA5
 
 # Mumak
 R:673:0xAC/0x82
 
-#N:674:Judge Fear
+# Judge Fear
+R:674:0x08/0x57
 
 # Ancient multi-hued dragon
 R:675:0x9E/0x91
@@ -4449,29 +3574,31 @@ R:676:0x9E/0x92
 # Dark young of Shub-Niggurath
 R:677:0xB2/0x9D
 
-#N:678:Colour out of space
+# Colour out of space
+R:678:0x0A/0x2E
 
 # Quaker, Master of Earth
 R:679:0x9F/0x8F
 
-#N:680:Death leprechaun
+# Death leprechaun
+R:680:0x08/0x68
 
-#N:681:Chaugnar Faugn, Horror from the Hills
+# Chaugnar Faugn, Horror from the Hills
 R:681:0xAC/0xB4
 
-#N:682:Lloigor
+# Lloigor
 R:682:0xAC/0xB5
 
-#N:683:Utgard-Loke
+# Utgard-Loke
 R:683:0xAC/0xB6
 
-#N:684:Quachil Uttaus, Treader of the Dust
+# Quachil Uttaus, Treader of the Dust
 R:684:0xAC/0xB7
 
 # Shoggoth
 R:685:0xB2/0x98
 
-#N:686:Judge Death
+# Judge Death
 R:686:0xAC/0xB9
 
 # Ariel, Queen of Air
@@ -4495,9 +3622,10 @@ R:692:0xAD/0x9B
 # Warrior of the Dawn
 R:693:0xB2/0x9E
 
-#N:694:Lesser black reaver
+# Lesser black reaver
+R:694:0x08/0x4C
 
-#N:695:Zoth-Ommog
+# Zoth-Ommog
 R:695:0xAE/0xB9
 
 # Nazgul
@@ -4512,7 +3640,8 @@ R:698:0xB3/0x80
 # Ultra-elite paladin
 R:699:0xB3/0x81
 
-#N:700:Leprechaun fanatic
+# Leprechaun fanatic
+R:700:0x08/0x68
 
 # Dracolich
 R:701:0x9E/0x95
@@ -4523,24 +3652,26 @@ R:702:0xA1/0x98
 # Dracolisk
 R:703:0x9E/0x94
 
-#N:704:Fastitocalon
+# Fastitocalon
+R:704:0x05/0x44
 
-# Spectral tyrannosaur
+# Spectral tyrannosaurus
 R:705:0xB3/0x82
 
-#N:706:Yibb-Tstll the Patient One
+# Yibb-Tstll the Patient One
 R:706:0xAC/0xBB
 
-#N:707:Ghatanothoa
+# Ghatanothoa
 R:707:0xAC/0xBC
 
-#N:708:Ent
+# Ent
 R:708:0xAC/0xA6
 
-#N:709:Hru
+# Hru
 R:709:0xAC/0xBD
 
-#N:710:Itangast the Fire Drake
+# Itangast the Fire Drake
+R:710:0x04/0x44
 
 # Death mold
 R:711:0xA9/0x87
@@ -4548,24 +3679,28 @@ R:711:0xA9/0x87
 # Fafner the Dragon
 R:712:0xB3/0x83
 
-#N:713:Fangorn the Treebeard
+# Fangorn
+R:713:0x0D/0x23
 
-#N:714:Zhar the Twin Obscenity
+# Zhar the Twin Obscenity
+R:714:0x08/0x52
 
 # Glaurung, Father of the Dragons
 R:715:0xAD/0x9A
 
-#N:716:Behemoth
+# Behemoth
 R:716:0xAD/0xA0
 
-#N:717:Garm, Guardian of Hel
+# Garm, Guardian of Hel
+R:717:0x07/0x43
 
 # Greater wall monster
 R:718:0xB3/0x84
 
-#N:719:Nycadaemon
+# Nycadaemon
+R:719:0x03/0x55
 
-# Balrog
+# Greater Balrog
 R:720:0xAD/0x95
 
 # Goat of Mendes
@@ -4592,13 +3727,13 @@ R:727:0xA1/0x9D
 # Great storm wyrm
 R:728:0x9E/0x97
 
-#N:729:Ulik the Troll
+# Ulik the Troll
 R:729:0xAD/0xA1
 
 # Baphomet the Minotaur Lord
 R:730:0xA0/0x90
 
-#N:731:Hell knight
+# Hell knight
 R:731:0xAD/0xA2
 
 # Bull Gates
@@ -4607,13 +3742,13 @@ R:732:0xB3/0x87
 # Santa Claus
 R:733:0xB3/0x88
 
-#N:734:Eihort, the Thing in the Labyrinth
+# Eihort, the Thing in the Labyrinth
 R:734:0xAE/0xAA
 
-#N:735:The King in Yellow
+# The King in Yellow
 R:735:0xAE/0xAB
 
-#N:736:Great unclean one
+# Great unclean one
 R:736:0xAE/0xAC
 
 # Lord of Chaos
@@ -4625,13 +3760,14 @@ R:738:0xA4/0x8B
 # Hound of Tindalos
 R:739:0xB3/0x8A
 
-#N:740:Lesser kraken
+# Lesser kraken
 R:740:0xAD/0xA3
 
 # Great ice wyrm
 R:741:0x9E/0x98
 
-#N:742:Demilich
+# Demilich
+R:742:0x0F/0x4C
 
 # The Phoenix
 R:743:0x9D/0x98
@@ -4639,13 +3775,13 @@ R:743:0x9D/0x98
 # Nightcrawler
 R:744:0xA4/0x8C
 
-#N:745:Lord of Change
+# Lord of Change
 R:745:0xAC/0xA7
 
-#N:746:Keeper of Secrets
+# Keeper of Secrets
 R:746:0xAE/0xAD
 
-#N:747:Shudde M'ell
+# Shudde M'ell
 R:747:0xAE/0xAE
 
 # Hand druj
@@ -4663,13 +3799,13 @@ R:751:0xAC/0x9B
 # Aether vortex
 R:752:0xAC/0x9C
 
-#N:753:Nidhogg the Hel-Drake
+# Nidhogg the Hel-Drake
 R:753:0xAE/0xAF
 
 # The Lernean Hydra
 R:754:0xA2/0x9B
 
-# Thuringwethil
+# Thuringwethil, the Vampire Messenger
 R:755:0xA3/0x9D
 
 # Great hell wyrm
@@ -4678,7 +3814,7 @@ R:756:0x9E/0x99
 # Hastur the Unspeakable
 R:757:0xB3/0x8B
 
-#N:758:Bloodthirster
+# Bloodthirster
 R:758:0xAD/0xA4
 
 # Draconic quylthulg
@@ -4687,10 +3823,10 @@ R:759:0xA1/0x9E
 # Nyogtha, the Thing that Should not Be
 R:760:0xB3/0x8C
 
-#N:761:Ahtu, Avatar of Nyarlathotep
+# Ahtu, Avatar of Nyarlathotep
 R:761:0xAE/0xB0
 
-#N:762:Fundin Bluecloak
+# Fundin Bluecloak
 R:762:0xAE/0xB1
 
 # Dworkin Barimen
@@ -4705,7 +3841,7 @@ R:765:0x9D/0x95
 # Ancalagon the Black
 R:766:0x9E/0x9A
 
-#N:767:Daoloth, the Render of the Veils
+# Daoloth, the Render of the Veils
 R:767:0xAE/0xB2
 
 # Nightwalker
@@ -4714,13 +3850,13 @@ R:768:0xA4/0x8D
 # Raphael, the Messenger
 R:769:0x9D/0x96
 
-#N:770:Artsi the Champion of Chaos
+# Habu the Champion of Chaos
 R:770:0xAE/0xB3
 
 # Saruman of Many Colours
 R:771:0xAB/0x9E
 
-#N:772:Gandalf the Grey
+# Gandalf the Grey
 R:772:0xB0/0xAB
 
 # Brand, Mad Visionary of Amber
@@ -4729,10 +3865,11 @@ R:773:0xB3/0x8E
 # Shadowlord
 R:774:0xA0/0x86
 
-#N:775:Greater kraken
+# Greater kraken
 R:775:0xAD/0xA6
 
-#N:776:Archlich
+# Archlich
+R:776:0x0E/0x4C
 
 # Bast, Goddess of Cats
 R:777:0xB3/0x8F
@@ -4743,13 +3880,13 @@ R:778:0xB3/0x90
 # Chaos hound
 R:779:0xA5/0x85
 
-#N:780:Vlad Dracula, Prince of Darkness
+# Vlad Dracula, Prince of Darkness
 R:780:0xAE/0xB5
 
-#N:781:Ultimate beholder
+# Ultimate beholder
 R:781:0xAE/0xB6
 
-#N:782:Leviathan
+# Leviathan
 R:782:0xAD/0xA7
 
 # Great Wyrm of Chaos
@@ -4764,10 +3901,10 @@ R:785:0x9E/0x9D
 # Shambler
 R:786:0xB3/0x91
 
-#N:787:Hypnos, Lord of Sleep
+# Hypnos, Lord of Sleep
 R:787:0xB3/0xAD
 
-#N:788:Glaaki
+# Glaaki
 R:788:0xA9/0xA8
 
 # Bleys, Master of Manipulation
@@ -4785,7 +3922,7 @@ R:792:0xA0/0x87
 # Sky Drake
 R:793:0xB3/0x95
 
-# Julian, Master of Forest Amber
+# Julian, Master of Arden Forest
 R:794:0xB3/0x96
 
 # Tiamat, Celestial Dragon of Evil
@@ -4794,7 +3931,7 @@ R:795:0x9E/0x9E
 # The Norsa
 R:796:0xB3/0x97
 
-#N:797:Rhan-Tegoth
+# Rhan-Tegoth
 R:797:0xAE/0xB9
 
 # Black reaver
@@ -4812,7 +3949,7 @@ R:801:0xA2/0x80
 # Greater rotting quylthulg
 R:802:0xA2/0x81
 
-#N:803:Null the Living Void
+# Null the Living Void
 R:803:0xAC/0xA8
 
 # Vecna, the Emperor Lich
@@ -4821,7 +3958,7 @@ R:804:0xA1/0x86
 # Omarax the Eye Tyrant
 R:805:0xA7/0x81
 
-#N:806:Tsathoggua, the Sleeper of N'kai
+# Tsathoggua, the Sleeper of N'kai
 R:806:0xAE/0xBA
 
 # Gerard, Strongman of Amber
@@ -4833,18 +3970,19 @@ R:808:0xA3/0x88
 # Atlach-Nacha, the Spider God
 R:809:0xB3/0x9A
 
-#N:810:Y'golonac
+# Y'golonac
 R:810:0xAE/0xBB
 
 # Aether hound
 R:811:0xA5/0x86
 
-#N:812:Warp demon
+# Warp demon
+R:812:0x03/0x55
 
 # Eric the Usurper
 R:813:0xB3/0x9B
 
-#N:814:Yig, Father of Serpents
+# Yig, Father of Serpents
 R:814:0xAE/0xBC
 
 # Unmaker
@@ -4853,7 +3991,7 @@ R:815:0xB3/0x9C
 # Cyberdemon
 R:816:0xB3/0x9D
 
-#N:817:Hela, Queen of the Dead
+# Hela, Queen of the Dead
 R:817:0xAE/0xBD
 
 # The Mouth of Sauron
@@ -4871,7 +4009,7 @@ R:821:0xA2/0x82
 # Qlzqqlzuup, the Lord of Flesh
 R:822:0xA2/0x83
 
-#N:823:Cthugha, the Living Flame
+# Cthugha, the Living Flame
 R:823:0xAE/0xBF
 
 # Benedict, the Ideal Warrior
@@ -4880,14 +4018,14 @@ R:824:0xB4/0x80
 # The Witch-King of Angmar
 R:825:0xA4/0x8E
 
-#N:826:Cyaegha
+# Cyaegha
 R:826:0xAF/0xA0
 
-#N:827:Pazuzu, Lord of Air
+# Pazuzu, Lord of Air
 R:827:0xAF/0xA1
 
 # Ithaqua the Windwalker
-R:828:0xb4/0x81
+R:828:0xB4/0x81
 
 # Hell hound of Julian
 R:829:0x9E/0x83
@@ -4901,19 +4039,19 @@ R:831:0xB4/0x82
 # Godzilla
 R:832:0xB4/0x83
 
-#N:833:Abhoth, Source of Uncleanness
+# Abhoth, Source of Uncleanness
 R:833:0xAF/0xA2
 
-#N:834:Ymir the Ice Giant
+# Ymir the Ice Giant
 R:834:0xAF/0xA3
 
-#N:835:Loki the Trickster
+# Loki the Trickster
 R:835:0xAF/0xA4
 
 # Star-spawn of Cthulhu
 R:836:0xB4/0x84
 
-#N:837:Surtur the Giant Fire Demon
+# Surtur the Giant Fire Demon
 R:837:0xAF/0xA5
 
 # The Tarrasque
@@ -4925,13 +4063,13 @@ R:839:0xAD/0x97
 # Draugluin, Sire of All Werewolves
 R:840:0x9E/0x85
 
-#N:841:Shuma-Gorath
+# Shuma-Gorath
 R:841:0xAF/0xA8
 
-#N:842:Tulzscha, the Green Flame
+# Tulzscha, the Green Flame
 R:842:0xAC/0xB2
 
-#N:843:Oremorj the Cyberdemon Lord
+# Oremorj the Cyberdemon Lord
 R:843:0xAC/0xB1
 
 # Kaschei the Immortal
@@ -4940,16 +4078,17 @@ R:844:0xB4/0x85
 # Yog-Sothoth, the All-in-One
 R:845:0xB4/0x86
 
-#N:846:Fenris Wolf
+# Fenris Wolf
 R:846:0xAC/0xB0
 
-# Great wyrm of power
+# Great Wyrm of Power
 R:847:0xB4/0x87
 
 # Shub-Niggurath, Black Goat of the Woods
 R:848:0xB4/0x88
 
-#N:849:Nodens, Lord of the Great Abyss
+# Nodens, Lord of the Great Abyss
+R:849:0x01/0x50
 
 # Carcharoth, the Jaws of Thirst
 R:850:0x9E/0x86
@@ -4963,10 +4102,10 @@ R:852:0xB4/0x8A
 # Cerberus, Guardian of Hades
 R:853:0x9E/0x87
 
-#N:854:Jormungand the Midgard Serpent
+# Jormungand the Midgard Serpent
 R:854:0xAC/0xAF
 
-#N:855:The Destroyer
+# The Destroyer
 R:855:0xAC/0xAE
 
 # Gothmog, the High Captain of Balrogs
@@ -4978,7 +4117,7 @@ R:857:0xB4/0x8B
 # Sauron, the Sorcerer
 R:858:0xAC/0x80
 
-#N:859:The Unicorn of Order
+# The Unicorn of Order
 R:859:0xAC/0xAD
 
 # Oberon, King of Amber
@@ -4990,471 +4129,628 @@ R:861:0xA1/0x99
 # The Serpent of Chaos
 R:862:0xB4/0x8D
 
-#N:863:Quantum dot
+# Quantum dot
+R:863:0x0A/0x2C
 
-#N:864:a Plain Gold Ring
+# a Plain Gold Ring
 R:864:0x84/0x8A
 
-#N:865:Lourph
+# Lourph
+R:865:0x07/0x53
 
-#N:866:Caaws
+# Caaws
+R:866:0x08/0x45
 
-#N:867:Culverin
+# Culverin
+R:867:0x0F/0x49
 
-#N:868:Behinder
+# Behinder
 R:868:0x88/0xAC
 
-#N:869:Boadile
+# Boadile
+R:869:0x05/0x53
 
-#N:870:Ebony monk
+# Ebony monk
+R:870:0x08/0x70
 
-#N:871:Metal Babble
+# Metal Babble
 R:871:0x88/0xA9
 
-#N:872:The Yamata-no-Orochi
+# The Yamata-no-Orochi
+R:872:0x0A/0x4D
 
-#N:873:Combat-Echizen "Because it's time"
+# Combat-Echizen "Because it's time"
+R:873:0x0C/0x70
 
-#N:874:Spectral Wyrm
+# Spectral Wyrm
+R:874:0x01/0x44
 
-#N:875:Storm troll
+# Storm troll
+R:875:0x06/0x54
 
-#N:876:Unstable worm mass
+# Unstable worm mass
+R:876:0x03/0x77
 
-#N:877:Bat of Gorgoroth
+# Bat of Gorgoroth
 R:877:0xB5/0xB7
 
-#N:878:Dio Brando
+# Dio Brando
+R:878:0x0B/0x56
 
-#N:879:Ohmu
+# Ohmu
 R:879:0x8A/0xA7
 
-#N:880:Richard Wong, Master of Time
+# Richard Wong, Master of Time
+R:880:0x01/0x70
 
-#N:881:Locke, the Superman
+# Locke, the Superman
+R:881:0x0D/0x70
 
-#N:882:Layzark, the Emperor
+# Layzark, the Emperor
+R:882:0x0B/0x70
 
-#N:884:Noxious fume
+# Zombified Serpent of Chaos
+R:883:0x08/0x4A
 
-#N:885:Shallow puddle
+# Noxious fume
+R:884:0x0B/0x23
+
+# Shallow puddle
 R:885:0x83/0x83
 
-#N:886:Dark elven shade
+# Dark elven shade
+R:886:0x01/0x68
 
-#N:887:Mana hound
+# Mana hound
+R:887:0x0E/0x5A
 
-#N:888:Vore
+# Vore
+R:888:0x0A/0x53
 
-#N:889:Bouncing mine
+# Bouncing mine
 R:889:0xAD/0xA9
 
-#N:890:Great venom wyrm
+# Great venom wyrm
 R:890:0xB5/0xA6
 
-#N:891:Gorlim, Betrayer of Barahir
+# Gorlim, Betrayer of Barahir
 R:891:0xB0/0xB9
 
-#N:892:Djinni
+# Djinni
+R:892:0x06/0x50
 
-#N:893:Efreeti
+# Efreeti
+R:893:0x04/0x50
 
-#N:894:Troll king
+# Troll king
+R:894:0x0C/0x54
 
-#N:895:Sky golem
+# Sky golem
+R:895:0x0E/0x67
 
-#N:896:Bazooker
+# Bazooker
+R:896:0x0E/0x68
 
-#N:897:Shard vortex
+# Shard vortex
+R:897:0x0F/0x76
 
-#N:898:Granite wall
+# Granite wall
 R:898:0x80/0x84
 
-#N:899:Fire troll
+# Fire troll
+R:899:0x04/0x54
 
-#N:900:Elf lord
+# Elf lord
+R:900:0x05/0x68
 
-#N:901:Samurai
+# Samurai
+R:901:0x02/0x70
 
-#N:902:Magma intrusion
+# Magma intrusion
 R:902:0x80/0x8D
 
-#N:903:Small kraken
+# Small kraken
+R:903:0x05/0x6C
 
-#N:904:Chaos mushroom
+# Chaos mushroom
+R:904:0x05/0x2C
 
-#N:905:Cloud golem
+# Cloud golem
+R:905:0x06/0x67
 
-#N:906:Lava golem
+# Lava golem
+R:906:0x04/0x67
 
-#N:907:Ogre warrior
+# Ogre warrior
+R:907:0x0E/0x4F
 
-#N:908:Pole axe of animated attack
+# Pole axe of animated attack
+R:908:0x01/0x2F
 
-#N:909:The Icky Queen
+# The Icky Queen
 R:909:0xAF/0xAA
 
-#N:910:Aquatic golem
+# Aquatic golem
 R:910:0xAF/0xAE
 
-#N:911:Quartz vein
+# Quartz vein
 R:911:0x80/0x87
 
-#N:912:Floating orb
+# Floating orb
+R:912:0x0E/0x2A
 
-#N:913:Undead devilfish
+# Undead devilfish
 R:913:0xB0/0xA3
 
-#N:914:Bullroarer the Hobbit
+# Bullroarer the Hobbit
 R:914:0xA7/0x9B
 
-#N:915:Mystic
+# Mystic
 R:915:0xAB/0x9B
 
-#N:916:Master mystic
+# Master mystic
 R:916:0xAA/0x94
 
-#N:917:Grand master mystic
+# Grand master mystic
 R:917:0xAB/0x9D
 
-#N:919:Aquatic naga
+# Devilfish
+R:918:0x0A/0x6C
+
+# Aquatic naga
+R:919:0x01/0x6E
 
-#N:920:The demogorgon
+# The demogorgon
+R:920:0x07/0x55
 
-#N:921:Internet Exploder
+# Internet Exploder
 R:921:0x8A/0xA6
 
-#N:922:Electric rat
+# Electric rat
 R:922:0x8A/0xA5
 
-#N:923:Yukionnna
+# Yukionnna
+R:923:0x01/0x70
 
-#N:924:Cribo
+# Goomba
+R:924:0x0F/0x2C
 
-#N:925:Monkey of Nikko
+# Monkey of Nikko
+R:925:0x0F/0x59
 
-#N:926:Tsuchinoko
+# Tsuchinoko
+R:926:0x07/0x4A
 
-#N:927:Mario
+# Mario
+R:927:0x04/0x70
 
-#N:928:Kuppa
+# King Koopa
+R:928:0x05/0x44
 
-#N:929:Greater cyber wyrm angel deamon lich
+# Greater cyber wyrm angel daemon lich
+R:929:0x09/0x4E
 
-#N:930:Clone of Locke the Superman
+# Clone of Locke the Superman
+R:930:0x0D/0x70
 
-#N:931:Caldarm the third
+# Caldarm the third
+R:931:0x08/0x70
 
-#N:932:Banor=Rupart
+# Banor=Rupart
+R:932:0x0A/0x70
 
-#N:933:Banor the Prince Regent
+# Banor the Prince Regent
+R:933:0x06/0x70
 
-#N:934:Rupart the general
+# Rupart the general
+R:934:0x04/0x70
 
-#N:935:Druaga
+# Druaga
+R:935:0x0A/0x68
 
-#N:936:Kenshirou the Fist of The North Star
+# Kenshirou the Fist of The North Star
+R:936:0x09/0x70
 
-#N:937:Lems the cyborg
+# Lems the cyborg
+R:937:0x09/0x67
 
-#N:938:White knight
+# White knight
+R:938:0x01/0x70
 
-#N:939:Hoarmurath of Dir
+# Hoarmurath of Dir
 R:939:0xB0/0xB6
 
-#N:940:Lesser Balrog
+# Lesser Balrog
 R:940:0xAD/0x95
 
-#N:941:Bone dragon
+# Bone dragon
+R:941:0x09/0x44
 
-#N:942:Planetar
+# Planetar
 R:942:0x9D/0x92
 
-#N:943:Solar
+# Solar
 R:943:0x9D/0x93
 
-#N:944:Deep puddle
+# Deep puddle
 R:944:0x83/0x80
 
-#N:945:Biketal of Fire
+# Biketal of Fire
+R:945:0x04/0x55
 
-#N:946:Jisisl of Ice
+# Jisisl of Ice
+R:946:0x0E/0x55
 
-#N:947:Poor, the thief
+# Poor, the thief
+R:947:0x06/0x70
 
-#N:948:Rich, the thief
+# Rich, the thief
+R:948:0x06/0x70
 
-#N:949:Iketa, the brave
+# Iketa, the brave
 R:949:0x8A/0xA8
 
-#N:950:Hammer bors
+# Hammer brother
+R:950:0x05/0x68
 
-#N:951:Met
+# Buzzy beetle
+R:951:0x08/0x52
 
-#N:952:Kamikaze hound
+# Kamikaze hound
+R:952:0x03/0x5A
 
-#N:953:Broken death sword
+# Broken death sword
 R:953:0xB3/0x80
 
-#N:954:Orcish Artillery
+# Orcish Artillery
+R:954:0x0E/0x6F
 
-#N:955:Scrawny horse
+# Scrawny horse
+R:955:0x03/0x71
 
-#N:956:Horse
+# Horse
+R:956:0x03/0x71
 
-#N:957:Unruly horse
+# Unruly horse
+R:957:0x0D/0x71
 
-#N:958:Red puyo
+# Red puyo
 R:958:0x8A/0xA1
 
-#N:959:Blue puyo
+# Blue puyo
 R:959:0x8A/0xA2
 
-#N:960:Yellow puyo
+# Yellow puyo
 R:960:0x8A/0xA4
 
-#N:961:Green puyo
+# Green puyo
 R:961:0x8A/0xA3
 
-#N:962:Slime Mold
+# Slime Mold
 R:962:0x8E/0x85
 
-#N:963:Boty-Buildeng, the emperor
+# Boty-Buildeng, the emperor
+R:963:0x0F/0x50
 
-#N:964:Shadower
+# Shadower
+R:964:0x08/0x4E
 
-#N:965:Statue of Chest mimic mimic
+# Statue of Chest mimic mimic
+R:965:0x09/0x60
 
-#N:966:Luigi
+# Luigi
+R:966:0x0D/0x70
 
-#N:967:Jaian, the boss of the kids
+# Jaian, the boss of the kids
+R:967:0x03/0x70
 
-#N:968:Bramd the Ice Dragon
+# Bramd the Ice Dragon
+R:968:0x01/0x44
 
-#N:969:Eibra the Water Dragon
+# Eibra the Water Dragon
+R:969:0x06/0x44
 
-#N:970:Narse the Black Dragon
+# Narse the Black Dragon
+R:970:0x02/0x44
 
-#N:971:Mycen the Gold Dragon
+# Mycen the Gold Dragon
+R:971:0x0B/0x44
 
-#N:972:Shooting Star the Red Dragon
+# Shooting Star the Red Dragon
+R:972:0x04/0x44
 
-#N:973:Beld, ruler of Marmo
+# Beld, ruler of Marmo
+R:973:0x04/0x70
 
-#N:974:Ashram, the Ebony Knight
+# Ashram, the Ebony Knight
+R:974:0x08/0x70
 
-#N:975:That @$^%& Black Bat
+# That @$^%& Black Bat
+R:975:0x06/0x62
 
-#N:976:Eol, the Dark Elven Smith
+# Eol, the Dark Elven Smith
 R:976:0xB2/0x99
 
-#N:977:Maeglin, Betrayer of Gondolin
+# Maeglin, Betrayer of Gondolin
 R:977:0xA4/0x8E
 
-#N:978:Ar-Pharazon the Golden
+# Ar-Pharazon the Golden
 R:978:0xB0/0xBE
 
-#N:979:Shuten-douji, the King Ogre of Ooe-Mountain
+# Shuten-douji, the King Ogre of Ooe-Mountain
+R:979:0x03/0x4F
 
-#N:980:Coatl
+# Coatl
+R:980:0x0E/0x4A
 
-#N:981:Thunder bird
+# Thunder bird
+R:981:0x0B/0x42
 
-#N:982:Durahan
+# Durahan
+R:982:0x0A/0x70
 
-#N:983:Hibagon
+# Hibagon
+R:983:0x04/0x59
 
-#N:984:Nue
+# Nue
+R:984:0x0B/0x48
 
-#N:985:Unicorn
+# Unicorn
 R:985:0xAC/0xAD
 
-#N:986:Nekomata
+# Nekomata
+R:986:0x07/0x66
 
-#N:987:Nine-tailed fox
+# Nine-tailed fox
+R:987:0x01/0x66
 
-#N:988:Fenghuang
+# Fenghuang
+R:988:0x0C/0x42
 
-#N:989:Kirin
+# Kirin
+R:989:0x0B/0x71
 
-#N:990:Pegasus
+# Pegasus
+R:990:0x01/0x71
 
-#N:991:Sleipnir, the Odin's Steed
+# Sleipnir, the Odin's Steed
+R:991:0x03/0x71
 
-#N:992:Huan, the Hound of Valinor
+# Huan, the Hound of Valinor
+R:992:0x08/0x43
 
-#N:993:Dao
+# Dao
+R:993:0x03/0x50
 
-#N:994:Marid
+# Marid
+R:994:0x05/0x50
 
-#N:995:Wolf Chieftain
+# Wolf Chieftain
+R:995:0x08/0x43
 
-#N:996:Nar, the Dwarf
+# Nar, the Dwarf
+R:996:0x0B/0x68
 
-#N:997:Chiokovo
+# Chiokovo
+R:997:0x0B/0x42
 
-#N:998:Black Chiokovo
+# Black Chiokovo
+R:998:0x08/0x42
 
-#N:999:Devu Chiokovo
+# Devu Chiokovo
+R:999:0x0B/0x42
 
-#N:1000:Bahamut, Celestial Dragon of Good
+# Bahamut, Celestial Dragon of Good
+R:1000:0x01/0x44
 
-#N:1001:Suke-san, the Mitsukuni's Warder
+# Suke-san, the Mitsukuni's Warder
+R:1001:0x02/0x70
 
-#N:1002:Kaku-san, the Mitsukuni's Warder
+# Kaku-san, the Mitsukuni's Warder
+R:1002:0x02/0x70
 
-#N:1003:The Ghost 'Q'
+# The Ghost 'Q'
 R:1003:0x8A/0xA0
 
-#N:1004:Pip, the Braver from Another World
+# Pip, the Braver from Another World
+R:1004:0x07/0x70
 
-#N:1005:Ansalom, the Dark Wizard
+# Ansalom, the Dark Wizard
+R:1005:0x08/0x70
 
-#N:1006:High-elven ranger
+# High-elven ranger
 R:1006:0xAE/0xA7
 
-#N:1007:Giant cockroach
+# Giant cockroach
+R:1007:0x08/0x49
 
-#N:1008:Demonologist
+# Demonologist
 R:1008:0xA8/0x82
 
-#N:1009:Dwar, Dog Lord of Waw
+# Dwar, Dog Lord of Waw
 R:1009:0xB0/0xB5
 
-#N:1010:Golden Angel
+# Golden Angel
+R:1010:0x0B/0x41
 
-#N:1011:Silver Angel
+# Silver Angel
+R:1011:0x01/0x41
 
-#N:1012:Jibaku ghost
+# Jibaku ghost
+R:1012:0x09/0x47
 
-#N:1013:Rolento
+# Rolento
+R:1013:0x07/0x70
 
-#N:1014:M. Bison
+# M. Bison
+R:1014:0x05/0x70
 
-#N:1015:TaepoDong
+# TaepoDong
+R:1015:0x09/0x7B
 
-#N:1016:Spider bomb
+# Spider bomb
+R:1016:0x09/0x53
 
-#N:1017:Bomb mosquito
+# Bomb mosquito
+R:1017:0x08/0x49
 
-#N:1018:Raou the Conqueror
+# Raou the Conqueror
+R:1018:0x09/0x70
 
-#N:1019:Kokuo, Raou's Steed
+# Kokuo, Raou's Steed
+R:1019:0x08/0x71
 
-#N:1020:Kutar
+# Kutar
+R:1020:0x07/0x68
 
-#N:1021:Nami, the Mate
+# Nami, the Mate
+R:1021:0x03/0x70
 
-#N:1022:Nappa the Saiayan
+# Nappa the Saiayan
+R:1022:0x0F/0x70
 
-#N:1023:Hand grenade
+# Hand grenade
+R:1023:0x04/0x7B
 
-#N:1024:Grand master thief
+# Grand master thief
+R:1024:0x0E/0x70
 
-#N:1025:Charon, Boatman of the Styx
+# Charon, Boatman of the Styx
+R:1025:0x08/0x57
 
-#N:1026:Old sorcerer
+# Old sorcerer
 R:1026:0x9C/0x8A
 
-#N:1027:Red Helm, the King of Bear
+# Red Helm, the King of Bear
+R:1027:0x04/0x71
 
-#N:1028:Mad bear
+# Mad bear
+R:1028:0x08/0x71
 
-#N:1029:Baby Satan
-#R:1029:0x88/0xAB
+# Demonite
+R:1029:0x0A/0x75
 
-#N:1030:Meng Huo, the King of Southerings
+# Meng Huo, the King of Southerings
+R:1030:0x03/0x70
 
-#N:1031:Wahha-Man the Golden
+# Wahha-Man the Golden
+R:1031:0x0B/0x67
 
-#N:1032:Madame Debby
+# Madame Debby
+R:1032:0x0A/0x6B
 
-#N:1033:The Defiler
+# The Defiler
+R:1033:0x08/0x4B
 
-#N:1034:The Minotaur of the Labyrinth
+# The Minotaur of the Labyrinth
 R:1034:0xB3/0xB4
 
-#N:1035:Living armor
+# Living armor
+R:1035:0x89/0x9B
 
-#N:1036:Trap master
+# Trap master
+R:1036:0x06/0x70
 
-#N:1037:Knight templar
+# Knight templar
 R:1037:0xA3/0xA1
 
-#N:1038:Paladin
+# Paladin
 R:1038:0xAB/0x92
 
-#N:1039:Ranger
+# Ranger
 R:1039:0xAA/0x97
 
-#N:1040:Chameleon
+# Chameleon
+R:1040:0x0A/0x52
 
-#N:1041:Chameleon Lord
+# Chameleon Lord
+R:1041:0x0A/0x52
 
-#N:1042:Narwhal
+# Narwhal
+R:1042:0x01/0x6C
 
-#N:1043:Petshop
+# Petshop
+R:1043:0x0C/0x42
 
-#N:1044:White crocodile
+# White crocodile
+R:1044:0x01/0x52
 
-#N:1045:Disintegrate vortex
+# Disintegrate vortex
+R:1045:0x02/0x76
 
-#N:1046:Ulfang the Black
+# Ulfang the Black
 R:1046:0xAA/0x96
 
-#N:1047:Topaz monk
+# Topaz monk
+R:1047:0x0B/0x70
 
-#N:1048:Stone dragon
+# Stone dragon
+R:1048:0x08/0x44
 
-#N:1049:Steel dragon
+# Steel dragon
+R:1049:0x08/0x44
 
-#N:1050:Atlas, the Titan
+# Atlas, the Titan
 R:1050:0xB5/0xB0
 
-#N:1051:Kronos, Lord of the Titans
+# Kronos, Lord of the Titans
 R:1051:0xB5/0xB1
 
-#N:1052:Dimensional shambler
+# Dimensional shambler
 R:1052:0xB2/0xBF
 
-#N:1053:Novice mindcrafter
+# Novice mindcrafter
 R:1053:0xAA/0x9A
 
-#N:1054:Novice mindcrafter
+# Novice mindcrafter
 R:1054:0xAA/0x9A
 
-#N:1055:Mindcrafter
+# Mindcrafter
 R:1055:0xAA/0x93
 
-#N:1056:Master mindcrafter
+# Master mindcrafter
 R:1056:0xAB/0x9F
 
-#N:1057:Ogrillon
+# Ogrillon
 R:1057:0xA9/0x98
 
-#N:1058:Elder vampire
+# Elder vampire
 R:1058:0xA1/0x99
 
-#N:1059:Noborta Kesyta, the Yeek President
+# Noborta Kesyta, the Yeek President
+R:1059:0x01/0x79
 
-#N:1060:Mori Troll
+# Mori Troll
+R:1060:0x0D/0x54
 
-#N:1061:Barney the Dinosaur
+# Barney the Dinosaur
 R:1061:0xB1/0x95
 
-#N:1062:Groo the Wanderer
+# Groo the Wanderer
 R:1062:0xB1/0x9E
 
-#N:1063:Lousy, the King of Louses
+# Lousy, the King of Louses
+R:1063:0x09/0x49
 
-#N:1064:Great Wyrm of Space-Time
+# Great Wyrm of Space-Time
 R:1064:0xB5/0xAA
 
-#N:1065:Octopus of Kshitigarbha
+# Octopus of Kshitigarbha
+R:1065:0x01/0x6C
 
-#N:1066:Great Bile Wyrm
+# Great Bile Wyrm
 R:1066:0xB5/0xA7
 
+# Tanuki
+R:1067:0x0F/0x71
+
+# Dionysus, The Munchkin of Chaos
+R:1068:0x05/0x47
+
+# Walken
+R:1069:0x03/0x70
+# Filthy street urchin
+
 
 # Load the special player pictures
 %:xtra-new.prf
index 239890c..7a0f2e0 100644 (file)
@@ -293,9 +293,6 @@ S:0xFF:0xBA/0x87
 
 # Monster attr/char definitions
 
-# Player
-R:0:0x8C:0x81
-
 # Filthy street urchin
 R:1:0x9B:0x8A
 
@@ -350,14 +347,14 @@ R:17:0x9B:0x94
 # Battle scarred veteran
 R:18:0x9B:0x95
 
-# Martti Ihrasaari
+# Lion Heart
 R:19:0xA1:0x8D
 
 # Grey mold
 R:20:0x9A:0x88
 
 # Large white snake
-R:21:0x93/0x8A
+R:21:0x93:0x8A
 
 # Blinking dot
 R:22:0x8E:0x85
@@ -462,7 +459,7 @@ R:54:0xBD:0x8A
 R:55:0x8F:0x80
 
 # Giant green frog
-R:56:0x93/0x8C
+R:56:0x93:0x8C
 
 # Freesia
 R:57:0xBC:0x98
@@ -492,7 +489,7 @@ R:64:0x99:0x94
 R:65:0x90:0x9D
 
 # Yellow jelly
-R:66:0x99/0x96
+R:66:0x99:0x96
 
 # Metallic blue centipede
 R:67:0x97:0x80
@@ -896,7 +893,7 @@ R:199:0xBC:0x99
 # Hobbes the Tiger
 R:200:0x98:0x8E
 
-# Shadow Creature of Fiona (rr9)
+# Shadow Creature of Fiona
 R:201:0xBB:0x8F
 
 # Undead mass
@@ -1034,7 +1031,7 @@ R:245:0x99:0x9D
 # Software bug
 R:246:0xA0:0x92
 
-# Lurker (rr9)
+# Lurker
 R:247:0x80:0x80
 
 # Nixie
@@ -1082,7 +1079,7 @@ R:261:0x98:0x93
 # Black ogre
 R:262:0x92:0x91
 
-#N:263:Dweller on the threshold
+# Dweller on the threshold
 R:263:0xC4:0x83
 
 # Half-orc
@@ -1223,7 +1220,7 @@ R:308:0x95:0x9F
 # Energy hound
 R:309:0x96:0x80
 
-# Mimic (potion)
+# Potion mimic
 R:310:0x8E:0x8F
 
 # Door mimic
@@ -1460,7 +1457,7 @@ R:387:0x93:0x9A
 # Lesser hell-beast
 R:388:0xC0:0x8C
 
-# Tyrannosaur
+# Tyrannosaurus
 R:389:0x9F:0x94
 
 # Mummified human
@@ -1535,7 +1532,7 @@ R:412:0x98:0x90
 # Ulwarth, Son of Ulfang
 R:413:0x9C:0x91
 
-#N:414:Agent of Benedict
+# Agent of Benedict
 R:414:0xC4:0x82
 
 # Cave ogre
@@ -1610,14 +1607,14 @@ R:437:0xC0:0x95
 # Fiend of Slaanesh
 R:438:0xC0:0x96
 
-# stairway to hell
+# Stairway to hell
 R:439:0x81:0x9E
 
 # 5-headed hydra
 R:440:0x93:0x9B
 
 # Gachapin
-#R:441:0x9F:0x96
+R:441:0x0D:0x52
 
 # Black knight
 R:442:0x9C:0x92
@@ -1664,7 +1661,7 @@ R:455:0xA1:0x82
 # Archangel
 R:456:0x8E:0x93
 
-# Mimic (ring)
+# Ring mimic
 R:457:0x82:0x81
 
 # Chaos tile
@@ -1691,7 +1688,7 @@ R:464:0x98:0x98
 # Skeleton troll
 R:465:0x9D:0x96
 
-# Skeletal tyrannosaur 
+# Skeletal tyrannosaurus
 R:466:0xC0:0x9B
 
 # Jaws
@@ -1808,8 +1805,8 @@ R:503:0x97:0x94
 # Ethereal drake
 R:504:0x97:0x95
 
-# Isikawa Goemon
-#R:505:0xA1:0x81
+# Ishikawa Goemon
+R:505:0x09:0x70
 
 # Fasolt the Giant
 R:506:0xBB:0x83
@@ -1886,7 +1883,7 @@ R:529:0xA0:0x94
 # Eog golem
 R:530:0x98:0x99
 
-# Little Boy
+# Sheer Heart Attack, the Bomb Hand
 R:531:0xC0:0x81
 
 # Dagashi
@@ -1937,7 +1934,7 @@ R:546:0x97:0x96
 # Mumak
 R:547:0x9D:0x8C
 
-# Giant red ant
+# Giant fire ant
 R:548:0x96:0x96
 
 # Mature white dragon
@@ -2033,7 +2030,7 @@ R:578:0xC1:0x92
 # Time elemental
 R:579:0xA2:0x84
 
-# Flying polyps
+# Flying polyp
 R:580:0xC1:0x93
 
 # The Queen Ant
@@ -2273,9 +2270,6 @@ R:658:0x92:0x89
 # Byakhee
 R:659:0xA0:0x9F
 
-# Shoggoth
-R:685:0xA1:0x8E
-
 # Rinaldo, son of Brand
 R:660:0xBB:0x8A
 
@@ -2351,7 +2345,8 @@ R:683:0xC2:0x8B
 # Quachil Uttaus, Treader of the Dust
 R:684:0xC2:0x8C
 
-#N:685:Shoggoth
+# Shoggoth
+R:685:0xA1:0x8E
 
 # Judge Death
 R:686:0xC2:0x8D
@@ -2410,7 +2405,7 @@ R:703:0x8F:0x9E
 # Fastitocalon
 R:704:0xBE:0x97
 
-# Spectral tyrannosaur
+# Spectral tyrannosaurus
 R:705:0x9F:0x95
 
 # Yibb-Tstll the Patient One
@@ -2434,7 +2429,7 @@ R:711:0x9A:0x90
 # Fafner the Dragon
 R:712:0xA1:0x90
 
-# Fangorn the Treebeard
+# Fangorn
 R:713:0xC2:0x95
 
 # Zhar the Twin Obscenity
@@ -2455,7 +2450,7 @@ R:718:0x80:0x82
 # Nycadaemon
 R:719:0xC2:0x99
 
-# Balrog
+# Greater Balrog
 R:720:0x9F:0x80
 
 # Goat of Mendes
@@ -2560,7 +2555,7 @@ R:753:0xC3:0x83
 # The Lernean Hydra
 R:754:0x94:0x80
 
-# Thuringwethil
+# Thuringwethil, the Vampire Messenger
 R:755:0x95:0x82
 
 # Great hell wyrm
@@ -2605,7 +2600,7 @@ R:768:0x95:0x95
 # Raphael, the Messenger
 R:769:0x8E:0x99
 
-# Artsi the Champion of Chaos
+# Habu the Champion of Chaos
 R:770:0xC3:0x87
 
 # Saruman of Many Colours
@@ -2677,7 +2672,7 @@ R:792:0x91:0x8B
 # Sky Drake
 R:793:0xA2:0x80
 
-# Julian, Master of Forest Amber
+# Julian, Master of Arden Forest
 R:794:0xA1:0x95
 
 # Tiamat, Celestial Dragon of Evil
@@ -2836,7 +2831,7 @@ R:845:0x9F:0x8B
 # Fenris Wolf
 R:846:0xC3:0x9B
 
-# Great wyrm of power
+# Great Wyrm of Power
 R:847:0xA2:0x81
 
 # Shub-Niggurath, Black Goat of the Woods
@@ -2884,9 +2879,12 @@ R:861:0x92:0x9E
 # The Serpent of Chaos
 R:862:0x9F:0x8E
 
-# Quantum Dot
+# Quantum dot
 R:863:0xC4:0x97
 
+# a Plain Gold Ring
+R:864:0xB5:0x87
+
 # Lourph
 R:865:0xC4:0x98
 
@@ -2903,55 +2901,55 @@ R:868:0xC4:0x9B
 R:869:0xC4:0x9C
 
 # Ebony monk
-R:870:0xDC/0x8b
+R:870:0xDC:0x8B
 
 # Metal Babble
-R:871:0xDC/0x88
+R:871:0xDC:0x88
 
 # The Yamata-no-Orochi
-#R:872:
+R:872:0x0A:0x4D
 
 # Combat-Echizen "Because it's time"
-#R:873:
+R:873:0x0C:0x70
 
 # Spectral Wyrm
-#R:874:
+R:874:0x01:0x44
 
 # Storm troll
-#R:875:
+R:875:0x06:0x54
 
 # Unstable worm mass
-#R:876:
+R:876:0x03:0x77
 
 # Bat of Gorgoroth
-R:877:0xC6/0x94
+R:877:0xC6:0x94
 
 # Dio Brando
-#R:878:
+R:878:0x0B:0x56
 
 # Ohmu
-#R:879
+R:879:0x05:0x77
 
 # Richard Wong, Master of Time
-#R:880::
+R:880:0x01:0x70
 
 # Locke, the Superman
-#R:881:
+R:881:0x0D:0x70
 
 # Layzark, the Emperor
-#R:882:
+R:882:0x0B:0x70
 
 # Zombified Serpent of Chaos
 R:883:0x9F:0x8E
 
 # Noxious fume
-#R:884:
+R:884:0x0B:0x23
 
 # Shallow puddle
-#R:885:
+R:885:0xDA:0x8C
 
 # Dark elven shade
-#R:886:
+R:886:0x01:0x68
 
 # Mana hound
 R:887:0xC4:0x9E
@@ -2960,521 +2958,520 @@ R:887:0xC4:0x9E
 R:888:0xC4:0x9F
 
 # Bouncing mine
-R:889:0xB2/0x8D
+R:889:0xB2:0x8D
 
 # Great venom wyrm
-#R:890:
+R:890:0x05:0x44
 
 # Gorlim, Betrayer of Barahir
-R:891:0x9D/0x83
+R:891:0x9D:0x83
 
 # Djinni
-#R:892:
+R:892:0x06:0x50
 
 # Efreeti
-#R:893:
+R:893:0x04:0x50
 
 # Troll king
-#R:894:
+R:894:0x0C:0x54
 
 # Sky golem
-#R:895:
+R:895:0x0E:0x67
 
 # Bazooker
-#R:896:
+R:896:0x0E:0x68
 
 # Shard vortex
-#R:897:
+R:897:0x0F:0x76
 
 # Granite wall
 R:898:0x80:0x82
 
 # Fire troll
-#R:899:
+R:899:0x04:0x54
 
 # Elf lord
-#R:900:
+R:900:0x05:0x68
 
 # Samurai
-#R:901:
+R:901:0x02:0x70
 
 # Magma intrusion
 R:902:0x80:0x83
 
 # Small kraken
-#R:903:
+R:903:0x05:0x6C
 
 # Chaos mushroom
-#R:904:
+R:904:0x05:0x2C
 
 # Cloud golem
-#R:905:
+R:905:0x06:0x67
 
 # Lava golem
-#R:906:
+R:906:0x04:0x67
 
 # Ogre warrior
-#R:907:
+R:907:0x0E:0x4F
 
 # Pole axe of animated attack
 R:908:0x89:0x90
 
 # The Icky Queen
-#R:909:
+R:909:0x0A:0x69
 
 # Aquatic golem
-#R:910:
+R:910:0x06:0x67
 
 # Quartz vein
-#R:911:
+R:911:0x01:0x25
 
 # Floating orb
-#R:912:
+R:912:0x0E:0x2A
 
 # Undead devilfish
-R:913:0xC6/0x89
+R:913:0xC6:0x89
 
 # Bullroarer the Hobbit
-R:914:0x98/0x9D
+R:914:0x98:0x9D
 
 # Mystic
-R:915:0x9C/0x97
+R:915:0x9C:0x97
 
 # Master mystic
-R:916:0x9D/0x85
+R:916:0x9D:0x85
 
 # Grand master mystic
-R:917:0x9D/0x87
+R:917:0x9D:0x87
 
 # Devilfish
-R:918:0xC6/0x88
+R:918:0xC6:0x88
 
 # Aquatic naga
-#R:919:
+R:919:0x01:0x6E
 
 # The demogorgon
-#R:920:
+R:920:0x07:0x55
 
 # Internet Exploder
-R:921:0xDC/0x81
+R:921:0xDC:0x81
 
 # Electric rat
-R:922:0xDC/0x82
+R:922:0xDC:0x82
 
 # Yukionnna
-#R:923:
+R:923:0x01:0x70
 
-# Cribo
-#R:924:
+# Goomba
+R:924:0x0F:0x2C
 
 # Monkey of Nikko
-#R:925:
+R:925:0x0F:0x59
 
 # Tsuchinoko
-#R:926:
+R:926:0x07:0x4A
 
 # Mario
-#R:927:
+R:927:0x04:0x70
 
-# Kuppa
-#R:928:
+# King Koopa
+R:928:0x05:0x44
 
-# Greater cyber wyrm angel deamon lich
-#R:929:
+# Greater cyber wyrm angel daemon lich
+R:929:0x09:0x4E
 
 # Clone of Locke the Superman
-#R:930:
+R:930:0x0D:0x70
 
 # Caldarm the third
-#R:931:
+R:931:0x08:0x70
 
 # Banor=Rupart
-#R:932:
+R:932:0x0A:0x70
 
 # Banor the Prince Regent
-#R:933:
+R:933:0x06:0x70
 
 # Rupart the general
-#R:934:
+R:934:0x04:0x70
 
 # Druaga
-#R:935:
+R:935:0x0A:0x68
 
 # Kenshirou the Fist of The North Star
-#R:936:
+R:936:0x09:0x70
 
 # Lems the cyborg
-#R:937:
+R:937:0x09:0x67
 
 # White knight
-#R:938:
+R:938:0x01:0x70
 
 # Hoarmurath of Dir
-R:939:0x95/0x92
+R:939:0x95:0x92
 
 # Lesser Balrog
-#R:940:
+R:940:0x0C:0x55
 
 # Bone dragon
-#R:941:
+R:941:0x09:0x44
 
 # Planetar
-R:942:0x8E/0x95
+R:942:0x8E:0x95
 
 # Solar
-R:943:0x8E/0x96
+R:943:0x8E:0x96
 
 # Deep puddle
-#R:944:
+R:944:0xDA:0x89
 
 # Biketal of Fire
-#R:945:
+R:945:0x04:0x55
 
 # Jisisl of Ice
-#R:946:
+R:946:0x0E:0x55
 
 # Poor, the thief
-#R:947:
+R:947:0x06:0x70
 
 # Rich, the thief
-#R:948:
+R:948:0x06:0x70
 
 # Iketa, the brave
-R:949:0xDC/0x80
+R:949:0xDC:0x80
 
-# Hammer bors
-#R:950:
+# Hammer brother
+R:950:0x05:0x68
 
-# Met
-#R:95
+# Buzzy beetle
+R:951:0x08:0x52
 
 # Kamikaze hound
-# (this tile is Etherreal hound of pern)
-R:952:0x96/0x8C
+R:952:0x96:0x8C
 
 # Broken death sword
 R:953:0x89:0x83
 
 # Orcish Artillery
-#R:954:
+R:954:0x0E:0x6F
 
 # Scrawny horse
-#R:955:
+R:955:0x03:0x71
 
 # Horse
-#R:956:
+R:956:0x03:0x71
 
 # Unruly horse
-#R:957:
+R:957:0x0D:0x71
 
 # Red puyo
-R:958:0xDC/0x83
+R:958:0xDC:0x83
 
 # Blue puyo
-R:959:0xDC/0x84
+R:959:0xDC:0x84
 
 # Yellow puyo
-R:960:0xDC/0x86
+R:960:0xDC:0x86
 
 # Green puyo
-R:961:0xDC/0x85
+R:961:0xDC:0x85
 
 # Slime Mold
 R:962:0x8A:0x9F
 
 # Boty-Buildeng, the emperor
-#R:963:
+R:963:0x0F:0x50
 
 # Shadower
-#R:964:
+R:964:0x08:0x4E
 
 # Statue of Chest mimic mimic
 R:965:0xB4:0x81
 
 # Luigi
-#R:966:
+R:966:0x0D:0x70
 
 # Jaian, the boss of the kids
-#R:967:
+R:967:0x03:0x70
 
 # Bramd the Ice Dragon
-#R:968:
+R:968:0x01:0x44
 
 # Eibra the Water Dragon
-#R:969:
+R:969:0x06:0x44
 
 # Narse the Black Dragon
-#R:970:
+R:970:0x02:0x44
 
 # Mycen the Gold Dragon
-#R:971:
+R:971:0x0B:0x44
 
 # Shooting Star the Red Dragon
-#R:972:
+R:972:0x04:0x44
 
 # Beld, ruler of Marmo
-#R:973:
+R:973:0x04:0x70
 
 # Ashram, the Ebony Knight
-#R:974:
+R:974:0x08:0x70
 
 # That @$^%& Black Bat
-#R:975:
+R:975:0x06:0x62
 
 # Eol, the Dark Elven Smith
-R:976:0xB2/0x8A
+R:976:0xB2:0x8A
 
 # Maeglin, Betrayer of Gondolin
-#R:977:
+R:977:0x04:0x68
 
 # Ar-Pharazon the Golden
-R:978:0xA1/0x9B
+R:978:0xA1:0x9B
 
 # Shuten-douji, the King Ogre of Ooe-Mountain
-#R:979:
+R:979:0x03:0x4F
 
 # Coatl
-#R:980:
+R:980:0x0E:0x4A
 
 # Thunder bird
-#R:981:
+R:981:0x0B:0x42
 
 # Durahan
-#R:982:
+R:982:0x0A:0x70
 
 # Hibagon
-#R:983:
+R:983:0x04:0x59
 
 # Nue
-#R:98
+R:984:0x0B:0x48
 
 # Unicorn
-#R:985:
+R:985:0x09:0x71
 
 # Nekomata
-#R:986:
+R:986:0x07:0x66
 
 # Nine-tailed fox
-#R:987:
+R:987:0x01:0x66
 
 # Fenghuang
-#R:988:
+R:988:0x0C:0x42
 
 # Kirin
-#R:989:
+R:989:0x0B:0x71
 
 # Pegasus
-#R:990:
+R:990:0x01:0x71
 
 # Sleipnir, the Odin's Steed
-#R:991:
+R:991:0x03:0x71
 
 # Huan, the Hound of Valinor
-R:992:0xB2/0x83
+R:992:0xB2:0x83
 
 # Dao
-#R:99
+R:993:0x03:0x50
 
 # Marid
-#R:994:
+R:994:0x05:0x50
 
 # Wolf Chieftain
-#R:995:3:
+R:995:0x08:0x43
 
 # Nar, the Dwarf
-R:996:0x99/0x84
+R:996:0x99:0x84
 
 # Chiokovo
-#R:997:
+R:997:0x0B:0x42
 
 # Black Chiokovo
-#R:998:
+R:998:0x08:0x42
 
 # Devu Chiokovo
-#R:999:
+R:999:0x0B:0x42
 
 # Bahamut, Celestial Dragon of Good
-#R:1000:
+R:1000:0x01:0x44
 
 # Suke-san, the Mitsukuni's Warder
-#R:1001:
+R:1001:0x02:0x70
 
 # Kaku-san, the Mitsukuni's Warder
-#R:1002:
+R:1002:0x02:0x70
 
 # The Ghost 'Q'
-R:1003:0xDC/0x87
+R:1003:0xDC:0x87
 
 # Pip, the Braver from Another World
-#R:1004:
+R:1004:0x07:0x70
 
 # Ansalom, the Dark Wizard
-#R:1005:
+R:1005:0x08:0x70
 
 # High-elven ranger
-R:1006:0xC6/0x93
+R:1006:0xC6:0x93
 
 # Giant cockroach
-#R:1007:
+R:1007:0x08:0x49
 
 # Demonologist
-R:1008:0x9C/0x9D
+R:1008:0x9C:0x9D
 
 # Dwar, Dog Lord of Waw
-R:1009:0x95/0x8F
+R:1009:0x95:0x8F
 
 # Golden Angel
-#R:1010:
+R:1010:0x0B:0x41
 
 # Silver Angel
-#R:1011:
+R:1011:0x01:0x41
 
 # Jibaku ghost
-#R:1012:
+R:1012:0x09:0x47
 
 # Rolento
-#R:1013:
+R:1013:0x07:0x70
 
 # M. Bison
-#R:1014:
+R:1014:0x05:0x70
 
 # TaepoDong
-#R:1015:
+R:1015:0x09:0x7B
 
 # Spider bomb
-#R:1016:
+R:1016:0x09:0x53
 
 # Bomb mosquito
-#R:1017:
+R:1017:0x08:0x49
 
 # Raou the Conqueror
-#R:1018:
+R:1018:0x09:0x70
 
 # Kokuo, Raou's Steed
-#R:1019:
+R:1019:0x08:0x71
 
 # Kutar
-#R:1020
+R:1020:0x07:0x68
 
 # Nami, the Mate
-#R:1021:
+R:1021:0x03:0x70
 
 # Nappa the Saiayan
-#R:1022:
+R:1022:0x0F:0x70
 
 # Hand grenade
-#R:1023:
+R:1023:0x04:0x7B
 
 # Grand master thief
-R:1024:0x9C/0x84
+R:1024:0x9C:0x84
 
 # Charon, Boatman of the Styx
-R:1025:0xB1/0x9B
+R:1025:0xB1:0x9B
 
 # Old sorcerer
-R:1026:0xB1/0x9E
+R:1026:0xB1:0x9E
 
 # Red Helm, the King of Bear
-#R:1027:
+R:1027:0x04:0x71
 
 # Mad bear
-#R:1028:
+R:1028:0x08:0x71
 
-# Baby Satan
-#R:1029:
+# Demonite
+R:1029:0x0A:0x75
 
 # Meng Huo, the King of Southerings
-#R:1030:
+R:1030:0x03:0x70
 
 # Wahha-Man the Golden
-#R:1031:
+R:1031:0x0B:0x67
 
 # Madame Debby
-#R:1032:
+R:1032:0x0A:0x6B
 
 # The Defiler
-#R:1033:
+R:1033:0x08:0x4B
 
 # The Minotaur of the Labyrinth
-R:1034:0x91/0x95
+R:1034:0x91:0x95
 
 # Living armor
 R:1035:0xCD:0x82
 
 # Trap master
-#R:1036:
+R:1036:0x06:0x70
 
 # Knight templar
-R:1037:0xB1/0x9A
+R:1037:0xB1:0x9A
 
 # Paladin
-R:1038:0x8D/0x9C
+R:1038:0x8D:0x9C
 
 # Ranger
-R:1039:0x9C/0x83
+R:1039:0x9C:0x83
 
 # Chameleon
-#R:1040:
+R:1040:0x0A:0x52
 
 # Chameleon Lord
-#R:1041:
+R:1041:0x0A:0x52
 
 # Narwhal
-#R:1042:
+R:1042:0x01:0x6C
 
 # Petshop
-#R:1043:
+R:1043:0x0C:0x42
 
 # White crocodile
-#R:1044:
+R:1044:0x01:0x52
 
 # Disintegrate vortex
-#R:1045:
+R:1045:0x02:0x76
 
 # Ulfang the Black
-R:1046:0x9C/0x8C
+R:1046:0x9C:0x8C
 
 # Topaz monk
-R:1047:0xDC/0x8c
+R:1047:0xDC:0x8C
 
 # Stone dragon
-#R:1048:
+R:1048:0x08:0x44
 
 # Steel dragon
-#R:1049:
+R:1049:0x08:0x44
 
 # Atlas, the Titan
-R:1050:0xC6/0x9C
+R:1050:0xC6:0x9C
 
 # Kronos, Lord of the Titans
-R:1051:0xC6/0x9D
+R:1051:0xC6:0x9D
 
 # Dimensional shambler
-#R:1052:
+R:1052:0x0E:0x68
 
 # Novice mindcrafter
-R:1053:0xB0/0x84
+R:1053:0xB0:0x84
 
 # Novice mindcrafter
-R:1054:0xB0/0x84
+R:1054:0xB0:0x84
 
 # Mindcrafter
-R:1055:0xB0/0x85
+R:1055:0xB0:0x85
 
 # Master mindcrafter
-R:1056:0xB0/0x86
+R:1056:0xB0:0x86
 
 # Ogrillon
-R:1057:0xB0/0x8C
+R:1057:0xB0:0x8C
 
 # Elder vampire
-R:1058:0xA1/0x9F
+R:1058:0xA1:0x9F
 
 # Noborta Kesyta, the Yeek President
-#R:1059:
+R:1059:0x01:0x79
 
 # Mori Troll
-#R:1060:
+R:1060:0x0D:0x54
 
 # Barney the Dinosaur
 R:1061:0x9F:0x96
@@ -3483,34 +3480,34 @@ R:1061:0x9F:0x96
 R:1062:0xA1:0x81
 
 # Lousy, the King of Louses
-#R:1063:
+R:1063:0x09:0x49
 
 # Great Wyrm of Space-Time
-R:1064:0xDC/0x8a
+R:1064:0xDC:0x8A
 
 # Octopus of Kshitigarbha
-#R:1065:
+R:1065:0x01:0x6C
 
 # Great Bile Wyrm
-R:1066:0xDC/0x89
+R:1066:0xDC:0x89
 
+# Tanuki
+R:1067:0x0F:0x71
 
-# Feature attr/char definitions
+# Dionysus, The Munchkin of Chaos
+R:1068:0x05:0x47
 
-# nothing
-F:0:0x81:0x80
+# Walken
+R:1069:0x03:0x70
 
-# open floor
-#F:1:0x80:0x80
-F:1:0xD9/0x80
 
-# invisible trap
-#F:2:0x80:0x80
-F:2:0xD9/0x80
+# Feature attr/char definitions
+
+# open floor
+F:1:0xD9:0x80
 
 # glyph of warding
-#F:3:0xA2:0x88
-F:3:0xD9/0x83
+F:3:0xD9:0x83
 
 # open door
 F:4:0x81:0x87
@@ -3519,35 +3516,31 @@ F:4:0x81:0x87
 F:5:0x81:0x87
 
 # up staircase
-#F:6:0x81:0x9C
-F:6:0xD9/0x86
+F:6:0xD9:0x86
 
 # down staircase
-#F:7:0x81:0x9E
-F:7:0xD9/0x89
+F:7:0xD9:0x89
 
 # quest entrance
-F:8:0x82/0x8E
+F:8:0x82:0x8E
 
 # quest exit
-F:9:0x82/0x8B
+F:9:0x82:0x8B
 
 # quest down level
-F:10:0x82/0x8F
+F:10:0x82:0x8F
 
 # quest up level
-F:11:0x82/0x8C
+F:11:0x82:0x8C
 
 # town exit
-F:12:0x82/0x91
+F:12:0x82:0x91
 
 # shaft up
-#F:13:0x82/0x8D
-F:13:0xD9/0x8C
+F:13:0xD9:0x8C
 
 # shaft down
-#F:14:0x82/0x90
-F:14:0xD9/0x8F
+F:14:0xD9:0x8F
 
 # trap door
 F:16:0xA2:0x97
@@ -3555,13 +3548,7 @@ F:16:0xA2:0x97
 # pit
 F:17:0xA2:0x96
 
-# pit
-F:18:0xA2:0x96
-
-# pit
-F:19:0xA2:0x96
-
-# strange rune
+# evil rune
 F:20:0xA2:0x8B
 
 # strange rune
@@ -3570,150 +3557,40 @@ F:21:0xA2:0x8A
 # discolored spot
 F:22:0x8A:0x9B
 
-# discolored spot
-F:23:0x8A:0x9B
-
 # dart trap
 F:24:0x82:0x9E
 
-# dart trap
-F:25:0xA2:0x89
-
-# dart trap
-F:26:0xA2:0x8D
-
-# dart trap
-F:27:0xA2:0x92
-
 # gas trap
 F:28:0xA2:0x8E
 
-# gas trap
-F:29:0xA2:0x8F
-
-# gas trap
-F:30:0xA2:0x90
-
-# gas trap
-F:31:0xA2:0x91
-
 # door
 F:32:0x81:0x8B
 
-# locked door
-F:33:0x81:0x8B
-
-# locked door
-F:34:0x81:0x8B
-
-# locked door
-F:35:0x81:0x8B
-
-# locked door
-F:36:0x81:0x8B
-
-# locked door
-F:37:0x81:0x8B
-
-# locked door
-F:38:0x81:0x8B
-
-# locked door
-F:39:0x81:0x8B
-
-# jammed door
-F:40:0x81:0x8B
-
-# jammed door
-F:41:0x81:0x8B
-
-# jammed door
-F:42:0x81:0x8B
-
-# jammed door
-F:43:0x81:0x8B
-
-# jammed door
-F:44:0x81:0x8B
-
-# jammed door
-F:45:0x81:0x8B
-
-# jammed door
-F:46:0x81:0x8B
-
-# jammed door
-F:47:0x81:0x8B
-
-# secret door
-#F:48:0x80:0x82
-F:48:0xD9/0x92
-
 # pile of rubble
-#F:49:0x81:0x9A
-F:49:0xD9/0x95
-
-# magma vein
-#F:50:0x80:0x83
-F:50:0xD9/0x98
-
-# quartz vein
-#F:51:0x80:0x83
-F:51:0xD9/0x9B
+F:49:0xD9:0x95
 
 # magma vein
-#F:52:0x80:0x83
-F:52:0xD9/0x98
+F:50:0xD9:0x98
 
 # quartz vein
-#F:53:0x80:0x83
-F:53:0xD9/0x9B
+F:51:0xD9:0x9B
 
 # magma vein with treasure
-#F:54:0x80:0x84
-F:54:0xDA/0x80
+F:54:0xDA:0x80
 
 # quartz vein with treasure
-#F:55:0x80:0x84
-F:55:0xDA/0x80
+F:55:0xDA:0x80
 
 # granite wall
-#F:56:0x80:0x82
-F:56:0xD9/0x92
-
-# granite wall
-#F:57:0x80:0x82
-F:57:0xD9/0x92
-
-# granite wall
-#F:58:0x80:0x82
-F:58:0xD9/0x92
-
-# granite wall
-#F:59:0x80:0x82
-F:59:0xD9/0x92
-
-# permanent wall
-#F:60:0x80:0x95
-F:60:0xDA/0x83
+F:56:0xD9:0x92
 
 # permanent wall
-#F:61:0x80:0x95
-F:61:0xDA/0x83
-
-# permanent wall
-#F:62:0x80:0x95
-F:62:0xDA/0x83
-
-# permanent wall
-#F:63:0x80:0x95
-F:63:0xDA/0x83
+F:60:0xDA:0x83
 
 # explosive rune
-#F:64:0xA2:0x87
-F:64:0xD9/0x86
+F:64:0xDA:0x86
 
-# section of the Pattern
+# Pattern startpoint
 F:65:0xA3:0x9D
 
 # section of the Pattern
@@ -3731,7 +3608,7 @@ F:69:0xA3:0x9A
 # section of the Pattern
 F:70:0xA3:0x98
 
-# section of the Pattern
+# section of the Pattern (discharged)
 F:71:0xA3:0x98
 
 # Pattern exit
@@ -3767,168 +3644,170 @@ F:81:0x81:0x98
 # Bookstore
 F:82:0xCB:0x90
 
-# Deep water
-#F:83:0xCB:0x81
-F:83:0xDA/0x89
+# pool of deep water
+F:83:0xDA:0x89
 
-# Shallow water
-#F:84:0xCB:0x82
-F:84:0xDA/0x8C
+# stream of shallow water
+F:84:0xDA:0x8C
 
-# Deep lava
-#F:85:0xCB:0x89
-F:85:0xDA/0x8F
+# pool of deep lava
+F:85:0xDA:0x8F
 
-# Shallow lava
-#F:86:0xCB:0x88
-F:86:0xDA/0x92
+# stream of shallow lava
+F:86:0xDA:0x92
 
-# Dark pit
-#F:87:0xCB:0x83
-F:87:0xDA/0x95
+# dark pit
+F:87:0xDA:0x95
 
-# Dirt
-#F:88:0xCB:0x84
-F:88:0xDA/0x98
+# dirt
+F:88:0xDA:0x98
 
-# Patch of Grass
-#F:89:0xCB:0x85
-F:89:0xDA/0x9B
+# patch of grass
+F:89:0xDA:0x9B
 
-#compact rune (same tile as dart trap, nuke me)
+# compact rune
 F:90:0xA2:0x92
 
-#flower
-#F:93:0xD0/0x8D
-F:93:0xDB/0x80
+# alarm
+F:91:0xA2:0x8A
+
+# wall opeing trap
+F:92:0xA2:0x92
 
-#brake
-#F:94:0xCF/0x88
-F:94:0xDB/0x83
+# flower
+F:93:0xDB:0x80
 
-#museum
+# brake
+F:94:0xDB:0x83
+
+# Museum
 F:95:0xD3:0x98
 
-# Tree
-#F:96:0xCB:0x86
-F:96:0xDB/0x86
+# tree
+F:96:0xDB:0x86
 
-# Mountain
-#F:97:0xCB:0x87
-F:97:0xDB/0x89
+# mountain chain
+F:97:0xDB:0x89
 
 # Building
 F:128:0xD5:0x82
+
+# Building
 F:129:0xD5:0x82
+
+# Building
 F:130:0xD5:0x81
+
+# Building
 F:131:0xD5:0x82
+
+# Building
 F:132:0xD5:0x82
+
+# Building
 F:133:0xD5:0x82
+
+# Building
 F:134:0xD5:0x82
+
+# Building
 F:135:0xD5:0x80
+
+# Building
 F:136:0xD5:0x81
+
+# Building
 F:137:0xD5:0x84
+
+# Building
 F:138:0xD5:0x81
+
+# Building
 F:139:0xD5:0x80
+
+# Building
 F:140:0xD5:0x85
+
+# Building
 F:141:0xD5:0x83
+
+# Building
 F:142:0xD5:0x83
+
+# Building
 F:143:0xD5:0x83
+
+# Building
 F:144:0xD5:0x83
+
+# Building
 F:145:0xD5:0x83
+
+# Building
 F:146:0xD5:0x83
+
+# Building
 F:147:0xD5:0x83
+
+# Building
 F:148:0xD5:0x83
+
+# Building
 F:149:0xD5:0x83
+
+# Building
 F:150:0xD5:0x83
+
+# Building
 F:151:0xD5:0x83
+
+# Building
 F:152:0xD5:0x83
+
+# Building
 F:153:0xD5:0x83
+
+# Building
 F:154:0xD5:0x83
+
+# Building
 F:155:0xD5:0x83
+
+# Building
 F:156:0xD5:0x83
+
+# Building
 F:157:0xD5:0x83
+
+# Building
 F:158:0xD5:0x83
+
+# Building
 F:159:0xD5:0x83
 
-#Town
-F:192:0xD0/0x94
+# Town
+F:192:0xD0:0x94
 
-#Entrance to dungeon
+# entrance to dungeon
 F:193:0x81:0x9E
 
-#Swamp
-F:194:0xCF/0x92
-
-#Mirror
-#F:195:0xCB/0x98
-F:195:0xDB/0x8C
-
-
-# Object attr/char definitions
-
-# something
-K:0:0x01:0x20
-
-# Blindness
-K:1:0xBA:0x81
-
-# Paranoia
-K:2:0xBA:0x81
-
-# Confusion
-K:3:0xBA:0x81
-
-# Hallucination
-K:4:0xBA:0x81
-
-# Cure Poison
-K:5:0xBA:0x81
-
-# Cure Blindness
-K:6:0xBA:0x81
-
-# Cure Paranoia
-K:7:0xBA:0x81
-
-# Cure Confusion
-K:8:0xBA:0x81
-
-# Weakness
-K:9:0xBA:0x81
-
-# Unhealth
-K:10:0xBA:0x81
-
-# Restore Constitution
-K:11:0xBA:0x81
-
-# Restoring
-K:12:0xBA:0x81
+# swamp
+F:194:0xCF:0x92
 
-# Stupidity
-K:13:0xBA:0x81
+# mirror
+F:195:0xDB:0x8C
 
-# Naivety
-K:14:0xBA:0x81
+# unknown grid (not detected)
+F:196:0xD9:0x81
 
-# Poison
-K:15:0xBA:0x81
+# Armageddon trap
+F:197:0xA2:0x89
 
-# Sickness
-K:16:0xBA:0x81
+# Piranha trap
+F:198:0xA2:0x89
 
-# Paralysis
-K:17:0xBA:0x81
 
-# Restore Strength
-K:18:0xBA:0x81
-
-# Disease
-K:19:0xBA:0x81
-
-# Cure Serious Wounds
-K:20:0xBA:0x81
+# Object attr/char definitions
 
 # & Ration~ of Food
 K:21:0x8B:0x82
@@ -4233,7 +4112,7 @@ K:120:0x88:0x9C
 # Double Chain Mail~
 K:121:0x88:0x99
 
-# & Shield~ of Deflection
+# & Mirror Shield~
 K:122:0x88:0x93
 
 # & Cloak~
@@ -4263,600 +4142,18 @@ K:130:0x88:0x91
 # & Large Metal Shield~
 K:131:0x88:0x92
 
-# Strength
-K:132:0xB5:0x81
-
-# Dexterity
-K:133:0xB5:0x81
-
-# Constitution
-K:134:0xB5:0x81
-
-# Intelligence
-K:135:0xB5:0x81
-
-# Speed
-K:136:0xB5:0x83
-
-# Searching
-K:137:0xB5:0x80
-
-# Teleportation
-K:138:0xB5:0x80
-
-# Slow Digestion
-K:139:0xB5:0x80
-
-# Resist Fire
-K:140:0xB5:0x80
-
-# Resist Cold
-K:141:0xB5:0x80
-
-# Feather Falling
-K:142:0xB5:0x80
-
-# Poison Resistance
-K:143:0xB5:0x82
-
-# Free Action
-K:144:0xB5:0x80
-
-# Weakness
-K:145:0xB5:0x80
-
-# Flames
-K:146:0xB5:0x82
-
-# Acid
-K:147:0xB5:0x82
-
-# Ice
-K:148:0xB5:0x82
-
-# Woe
-K:149:0xB5:0x82
-
-# Stupidity
-K:150:0xB5:0x80
-
-# Damage
-K:151:0xB5:0x81
-
-# Accuracy
-K:152:0xB5:0x81
-
-# Protection
-K:153:0xB5:0x80
-
-# Aggravate Monster
-K:154:0xB5:0x80
-
-# See Invisible
-K:155:0xB5:0x81
-
-# Sustain Strength
-K:156:0xB5:0x81
-
-# Sustain Intelligence
-K:157:0xB5:0x81
-
-# Sustain Wisdom
-K:158:0xB5:0x81
-
-# Sustain Constitution
-K:159:0xB5:0x81
-
-# Sustain Dexterity
-K:160:0xB5:0x81
-
-# Sustain Charisma
-K:161:0xB5:0x81
-
-# Slaying
-K:162:0xB5:0x81
-
-# Wisdom
-K:163:0xB6:0x9F
-
-# Charisma
-K:164:0xB6:0x9F
-
-# Searching
-K:165:0xB6:0x9E
-
-# Teleportation
-K:166:0xB6:0x9E
-
-# Slow Digestion
-K:167:0xB6:0x9E
-
-# Resist Acid
-K:168:0xB6:0x9E
-
-# Adornment
-K:169:0xB6:0x9E
-
 # Double Ring Mail~
 K:170:0xCD:0x83
 
-# the Magi
-K:171:0xB6:0x80
-
-# DOOM
-K:172:0xB6:0x80
-
-# Enchant Weapon To-Hit
-K:173:0x86:0x80
-
-# Enchant Weapon To-Dam
-K:174:0x86:0x80
-
-# Enchant Armor
-K:175:0x86:0x80
-
-# Identify
-K:176:0x86:0x80
-
-# *Identify*
-K:177:0x86:0x82
-
-# Rumour
-K:178:0x86:0x80
-
-# Logrus
-K:179:0x86:0x80
-
-# Remove Curse
-K:180:0x86:0x80
-
-# Light
-K:181:0x86:0x80
-
-# Fire
-K:182:0x86:0x80
-
-# Ice
-K:183:0x86:0x80
-
-# Summon Monster
-K:184:0x86:0x80
-
-# Phase Door
-K:185:0x86:0x80
-
-# Teleportation
-K:186:0x86:0x80
-
-# Teleport Level
-K:187:0x86:0x80
-
-# Monster Confusion
-K:188:0x86:0x80
-
-# Magic Mapping
-K:189:0x86:0x80
-
-# Rune of Protection
-K:190:0x86:0x82
-
-# *Remove Curse*
-K:191:0x86:0x82
-
-# Treasure Detection
-K:192:0x86:0x80
-
-# Object Detection
-K:193:0x86:0x80
-
-# Trap Detection
-K:194:0x86:0x80
-
 # & Sheaf Arrow~
 K:195:0xCD:0x84
 
 # & Mithril Shot~
 K:196:0xCD:0x85
 
-# Door/Stair Location
-K:197:0x86:0x80
-
-# Acquirement
-K:198:0x86:0x80
-
-# *Acquirement*
-K:199:0x86:0x82
-
-# Mass Genocide
-K:200:0x86:0x82
-
-# Detect Invisible
-K:201:0x86:0x80
-
-# Aggravate Monster
-K:202:0x86:0x80
-
-# Trap Creation
-K:203:0x86:0x80
-
-# Trap/Door Destruction
-K:204:0x86:0x80
-
-# Artifact Creation
-K:205:0x86:0x82
-
-# Recharging
-K:206:0x86:0x81
-
-# Genocide
-K:207:0x86:0x81
-
-# Darkness
-K:208:0x86:0x80
-
-# Protection from Evil
-K:209:0x86:0x81
-
-# Satisfy Hunger
-K:210:0x86:0x80
-
-# Dispel Undead
-K:211:0x86:0x81
-
-# *Enchant Weapon*
-K:212:0x86:0x82
-
-# Curse Weapon
-K:213:0x86:0x82
-
-# *Enchant Armor*
-K:214:0x86:0x82
-
-# Curse Armor
-K:215:0x86:0x82
-
-# Summon Undead
-K:216:0x86:0x80
-
-# Blessing
-K:217:0x86:0x80
-
-# Holy Chant
-K:218:0x86:0x80
-
-# Holy Prayer
-K:219:0x86:0x81
-
-# Word of Recall
-K:220:0x86:0x80
-
-# *Destruction*
-K:221:0x86:0x82
-
-# Slime Mold Juice
-K:222:0xBC:0x85
-
-# Apple Juice
-K:223:0xBC:0x85
-
-# Water
-K:224:0xBC:0x85
-
-# Strength
-K:225:0xBC:0x86
-
-# Weakness
-K:226:0xBC:0x85
-
-# Restore Strength
-K:227:0xBC:0x86
-
-# Intelligence
-K:228:0xBC:0x86
-
-# Stupidity
-K:229:0xBC:0x85
-
-# Restore Intelligence
-K:230:0xBC:0x86
-
-# Wisdom
-K:231:0xBC:0x86
-
-# Naivety
-K:232:0xBC:0x85
-
-# Restore Wisdom
-K:233:0xBC:0x86
-
-# Charisma
-K:234:0xBC:0x86
-
-# Ugliness
-K:235:0xBC:0x86
-
-# Restore Charisma
-K:236:0xBC:0x86
-
-# Curing
-K:237:0xBC:0x86
-
-# Invulnerability
-K:238:0xBC:0x86
-
-# New Life
-K:239:0xBC:0x86
-
-# Cure Serious Wounds
-K:240:0xBC:0x85
-
-# Cure Critical Wounds
-K:241:0xBC:0x85
-
-# Healing
-K:242:0xBC:0x85
-
-# Constitution
-K:243:0xBC:0x86
-
-# Experience
-K:244:0xBC:0x87
-
-# Sleep
-K:245:0xBC:0x85
-
-# Blindness
-K:246:0xBC:0x85
-
-# Booze
-K:247:0xBC:0x85
-
-# Poison
-K:248:0xBC:0x85
-
-# Speed
-K:249:0xBC:0x85
-
-# Slowness
-K:250:0xBC:0x85
-
-# Dexterity
-K:251:0xBC:0x86
-
-# Restore Dexterity
-K:252:0xBC:0x86
-
-# Restore Constitution
-K:253:0xBC:0x86
-
-# Lose Memories
-K:254:0xBC:0x85
-
-# Salt Water
-K:255:0xBC:0x85
-
-# Enlightenment
-K:256:0xBC:0x85
-
-# Heroism
-K:257:0xBC:0x85
-
-# Berserk Strength
-K:258:0xBC:0x85
-
-# Boldness
-K:259:0xBC:0x85
-
-# Restore Life Levels
-K:260:0xBC:0x87
-
-# Resist Heat
-K:261:0xBC:0x85
-
-# Resist Cold
-K:262:0xBC:0x85
-
-# Detect Invisible
-K:263:0xBC:0x85
-
-# Slow Poison
-K:264:0xBC:0x85
-
-# Neutralize Poison
-K:265:0xBC:0x85
-
-# Restore Mana
-K:266:0xBC:0x86
-
-# Infra-vision
-K:267:0xBC:0x85
-
-# Resistance
-K:268:0xBC:0x85
-
-# Light
-K:269:0xB7:0x8F
-
-# Lightning Bolts
-K:270:0xB7:0x8F
-
-# Frost Bolts
-K:271:0xB7:0x8F
-
-# Fire Bolts
-K:272:0xB7:0x90
-
-# Stone to Mud
-K:273:0xB7:0x8F
-
-# Polymorph
-K:274:0xB7:0x8F
-
-# Heal Monster
-K:275:0xB7:0x8F
-
-# Haste Monster
-K:276:0xB7:0x8F
-
-# Slow Monster
-K:277:0xB7:0x8F
-
-# Confuse Monster
-K:278:0xB7:0x8F
-
-# Sleep Monster
-K:279:0xB7:0x8F
-
-# Drain Life
-K:280:0xB7:0x91
-
-# Trap/Door Destruction
-K:281:0xB7:0x8F
-
-# Magic Missile
-K:282:0xB7:0x8F
-
-# Clone Monster
-K:283:0xB7:0x90
-
-# Scare Monster
-K:284:0xB7:0x90
-
-# Teleport Other
-K:285:0xB7:0x8F
-
-# Disarming
-K:286:0xB7:0x8F
-
-# Lightning Balls
-K:287:0xB7:0x90
-
-# Cold Balls
-K:288:0xB7:0x90
-
-# Fire Balls
-K:289:0xB7:0x91
-
-# Stinking Cloud
-K:290:0xB7:0x8F
-
-# Acid Balls
-K:291:0xB7:0x91
-
-# Wonder
-K:292:0xB7:0x8F
-
 # & Flight Arrow~
 K:293:0xCD:0x86
 
-# Acid Bolts
-K:294:0xB7:0x90
-
-# Dragon's Flame
-K:295:0xB7:0x91
-
-# Dragon's Frost
-K:296:0xB7:0x91
-
-# Dragon's Breath
-K:297:0xB7:0x91
-
-# Annihilation
-K:298:0xB7:0x91
-
-# Rockets
-K:299:0xB7:0x91
-
-# Trap Location
-K:300:0xB9:0x99
-
-# Treasure Location
-K:301:0xB9:0x99
-
-# Object Location
-K:302:0xB9:0x99
-
-# Teleportation
-K:303:0xB9:0x99
-
-# Earthquakes
-K:304:0xB9:0x9A
-
-# Summoning
-K:305:0xB9:0x99
-
-# Light
-K:306:0xB9:0x99
-
-# *Destruction*
-K:307:0xB9:0x9B
-
-# Starlight
-K:308:0xB9:0x99
-
-# Haste Monsters
-K:309:0xB9:0x99
-
-# Slow Monsters
-K:310:0xB9:0x99
-
-# Sleep Monsters
-K:311:0xB9:0x99
-
-# Cure Light Wounds
-K:312:0xB9:0x99
-
-# Detect Invisible
-K:313:0xB9:0x99
-
-# Speed
-K:314:0xB9:0x9A
-
-# Slowness
-K:315:0xB9:0x99
-
-# Door/Stair Location
-K:316:0xB9:0x99
-
-# Remove Curse
-K:317:0xB9:0x9A
-
-# Detect Evil
-K:318:0xB9:0x99
-
-# Curing
-K:319:0xB9:0x9A
-
-# Dispel Evil
-K:320:0xB9:0x9B
-
-# Probing
-K:321:0xB9:0x9A
-
-# Darkness
-K:322:0xB9:0x99
-
-# Genocide
-K:323:0xB9:0x9B
-
-# Power
-K:324:0xB9:0x9C
-
-# the Magi
-K:325:0xB9:0x9C
-
-# Perception
-K:326:0xB9:0x99
-
-# Holiness
-K:327:0xB9:0x9C
-
-# Enlightenment
-K:328:0xB9:0x9A
-
-# Healing
-K:329:0xB9:0x9C
-
 # [Book of Common Prayer]
 K:330:0xA3:0x8A
 
@@ -4917,90 +4214,6 @@ K:348:0xBC:0x90
 # & Empty Bottle~
 K:349:0x8A:0x99
 
-# Havoc
-K:350:0xB8:0x94
-
-# Door/Stair Location
-K:351:0xB8:0x94
-
-# Trap Location
-K:352:0xB8:0x94
-
-# Probing
-K:353:0xB8:0x97
-
-# Recall
-K:354:0xB8:0x96
-
-# Illumination
-K:355:0xB8:0x95
-
-# Light
-K:356:0xB8:0x94
-
-# Lightning Bolts
-K:357:0xB8:0x94
-
-# Frost Bolts
-K:358:0xB8:0x95
-
-# Fire Bolts
-K:359:0xB8:0x95
-
-# Polymorph
-K:360:0xB8:0x95
-
-# Slow Monster
-K:361:0xB8:0x95
-
-# Sleep Monster
-K:362:0xB8:0x95
-
-# Drain Life
-K:363:0xB8:0x97
-
-# Teleport Other
-K:364:0xB8:0x96
-
-# Disarming
-K:365:0xB8:0x95
-
-# Lightning Balls
-K:366:0xB8:0x96
-
-# Cold Balls
-K:367:0xB8:0x96
-
-# Fire Balls
-K:368:0xB8:0x97
-
-# Acid Balls
-K:369:0xB8:0x97
-
-# Acid Bolts
-K:370:0xB8:0x95
-
-# Enlightenment
-K:371:0xB8:0x97
-
-# Perception
-K:372:0xB8:0x96
-
-# Curing
-K:373:0xB8:0x97
-
-# Healing
-K:374:0xB8:0x97
-
-# Detection
-K:375:0xB8:0x95
-
-# Restoration
-K:376:0xB8:0x97
-
-# Speed
-K:377:0xB8:0x97
-
 # [Call of the Wild]
 K:379:0xA3:0x8E
 
@@ -5086,7 +4299,7 @@ K:405:0x89:0x82
 K:406:0xBB:0x9C
 
 # Law Dragon Scale Mail~
-K:407:0x88:0x9F
+K:407:0x88:0x9E
 
 # Bronze Dragon Scale Mail~
 K:408:0x88:0x96
@@ -5095,10 +4308,10 @@ K:408:0x88:0x96
 K:409:0x88:0x9C
 
 # Chaos Dragon Scale Mail~
-K:410:0x89:0x80
+K:410:0xCE:0x8F
 
 # Balance Dragon Scale Mail~
-K:411:0x88:0x99
+K:411:0xCE:0x88
 
 # Power Dragon Scale Mail~
 K:412:0xA2:0x9E
@@ -5109,81 +4322,12 @@ K:413:0xA2:0x9D
 # & Dragon Shield~
 K:414:0xA2:0x9C
 
-# Death
-K:415:0xBC:0x88
-
-# Ruination
-K:416:0xBC:0x87
-
-# Detonations
-K:417:0xBC:0x87
-
-# Augmentation
-K:418:0xBC:0x87
-
-# *Healing*
-K:419:0xBC:0x87
-
-# Life
-K:420:0xBC:0x88
-
-# Self Knowledge
-K:421:0xBC:0x87
-
-# *Enlightenment*
-K:422:0xBC:0x88
-
 # [Black Channels]
 K:423:0xA3:0x93
 
 # [Necronomicon]
 K:424:0xA3:0x93
 
-# Fear Resistance
-K:425:0xB5:0x81
-
-# Light and Darkness Resistance
-K:426:0xB5:0x81
-
-# Nether Resistance
-K:427:0xB5:0x81
-
-# Nexus Resistance
-K:428:0xB5:0x81
-
-# Sound Resistance
-K:429:0xB5:0x81
-
-# Confusion Resistance
-K:430:0xB5:0x81
-
-# Shard Resistance
-K:431:0xB5:0x81
-
-# Disenchantment Resistance
-K:432:0xB5:0x81
-
-# Chaos Resistance
-K:433:0xB5:0x81
-
-# Blindness Resistance
-K:434:0xB5:0x81
-
-# Lordly Protection
-K:435:0xB5:0x81
-
-# Extra Attacks
-K:436:0xB5:0x81
-
-# Cure Light Wounds
-K:437:0xBC:0x85
-
-# Clumsiness
-K:438:0xBC:0x85
-
-# Sickliness
-K:439:0xBC:0x85
-
 # copper
 K:480:0x80:0x8B
 
@@ -5253,34 +4397,6 @@ K:501:0x87:0x9E
 # & Jewel~
 K:502:0x87:0x9F
 
-# & Amulet~
-K:503:0xB6:0x82
-
-# & Amulet~
-K:504:0xB6:0x83
-
-# & Necklace~
-K:505:0xB6:0x84
-
-# & Ring~
-K:506:0xB5:0x83
-
-# & Ring~
-K:507:0xB5:0x83
-
-# & Ring~
-K:508:0xB5:0x84
-
-# & Ring~
-K:509:0xB5:0x85
-
-# & Ring~
-K:510:0xB5:0x86
-
-# & Ring~
-K:511:0xB5:0x87
-R:864:0xB5:0x87
-
 # [Conjurings & Tricks]
 K:512:0xBC:0x91
 
@@ -5302,21 +4418,9 @@ K:517:0xBC:0x95
 # [Major Arcana]
 K:518:0xBC:0x95
 
-# [Manual of Master]
+# [Manual of Mastery]
 K:519:0xBC:0x95
 
-# new amulet
-K:520:0xB6:0x80
-
-# new amulet
-K:521:0xB6:0x80
-
-# new amulet
-K:522:0xB6:0x80
-
-# new amulet
-K:523:0xB6:0x80
-
 # & Zweihander~
 K:524:0xCD:0x88
 
@@ -5350,7 +4454,7 @@ K:533:0xCD:0x90
 # Rhino Hide Armour~
 K:535:0xCD:0x91
 
-# Leather Jacket~
+# Leather Jacket~
 K:536:0xCD:0x92
 
 # & Sickle~
@@ -5386,7 +4490,7 @@ K:546:0xCD:0x9D
 # & Espadon~
 K:547:0xCD:0x9E
 
-# & Great Scimitar~
+# & Falchion~
 K:548:0xCD:0x9F
 
 # & Wakizashi~
@@ -5434,173 +4538,200 @@ K:562:0xCE:0x8D
 # Haramakido~
 K:563:0xCE:0x8E
 
-# Diamond Edge~
-K:565:0xCE:0x90
-
-# Magical Figurine
-K:566:0xB4:0x80
+# & Incandescent Light~
+K:564:0x0B:0x21
 
-# Statues (10 entries)
+# & Diamond Edge~
+K:565:0xCE:0x90
 
+# & Magical Figurine~ of #
 K:567:0xB4:0x81
+
+# & Wooden Statue~ of #
 K:568:0xB4:0x82
+
+# & Clay Statue~ of #
 K:569:0xB4:0x83
+
+# & Stone Statue~ of #
 K:570:0xB4:0x84
+
+# & Iron Statue~ of #
 K:571:0xB4:0x85
 
+# & Copper Statue~ of #
 K:572:0xB4:0x86
+
+# & Silver Statue~ of #
 K:573:0xB4:0x87
+
+# & Golden Statue~ of #
 K:574:0xB4:0x88
+
+# & Ivory Statue~ of #
 K:575:0xB4:0x89
+
+# & Mithril Statue~ of #
 K:576:0xB4:0x8A
+
+# & Ornate Statue~ of #
 K:577:0xD3:0x99
 
-# Generic Skeleton
+# Skeleton~
 K:578:0xB4:0x8B
 
-# Generic Corpse
+# Corpse~
 K:579:0xB4:0x8C
 
-# T-shirt
+# & T-shirt~
 K:580:0xB4:0x8D
 
-# Wizardstaff
-#K:581:
+# & Wizardstaff~
+K:581:0xCE:0x9F
 
-# Feanorian lamp
-#K:582:
+# & Feanorian lamp~
+K:582:0xD8:0x86
 
-# Set of Gloves of Dragon
-#K:584:
+# & Set~ of Gloves of Dragon
+K:584:0x0D:0x5D
 
-# Pair of Dragon Boots
-#K:585:
+# & Pair~ of Dragon Boots
+K:585:0x0D:0x5D
 
-# Gun
-#K:588:
+# & Gun~
+K:588:0x04:0x7D
 
-# Palantir
-K:589:0xD7/0x81
+# & Crystal Ball~
+K:589:0xD7:0x81
 
-# Stone of Lore
-K:590:0xD7/0x80
+# & Stone~
+K:590:0xD7:0x80
 
-# Poison Needle
-#K:592:0xC7/0x83
+# & Poison Needle~
+K:592:0x84:0x8E
 
-# Capture Ball#
-#K:593:
+# Capture Ball#
+K:593:0x80:0x91
 
-# Death Scythe 
-#K:594:
+# & Death Scythe~ 
+K:594:0x89:0x94
 
-# Card
-#K:597:
+# Card
+K:597:0x0D:0x7E
 
 # [Handbook for Pupils]
-#K:604:
+K:604:0x0B:0x3F
 
 # [Grade Holder's Book]
-#K:605:
+K:605:0x0B:0x3F
 
 # [Note of Acting Master]
-#K:606:
+K:606:0x0F:0x3F
 
 # [Spiritual Enlightenment]
-#K:607:
+K:607:0x0F:0x3F
 
-# Levitation Stone
-K:609:0xD7/0x82
+# & Levitation Stone~
+K:609:0xD7:0x82
 
-# Bead
-#K:610:
+# & Ethereal Cloak~
+K:611:0xCE:0x93
 
-# Ethereal Cloak
-#K:611:
+# & Mirror~
+K:612:0x06:0x2A
 
-# Mirror
-#K:612:
-
-# Black Arrow
-#K:613:
+# & Black Arrow~
+K:613:0x0F:0x7B
 
 # Sexy Swimsuit
-#K:614:
+K:614:0x0A:0x28
 
-# Fishingpole
-#K:615:
+# & Fishingpole~
+K:615:0x0E:0x2F
 
-# Steel Bolt
+# & Steel Bolt~
 K:619:0x89:0x9C
 
-# Can of Toys
-#K:620:
+# & Can~ of Toys
+K:620:0x80:0x9B
 
-# Stick
+# & Stick~
 K:621:0xCD:0x98
 
-# Yumi
+# & Yumi~
 K:622:0x89:0x95
 
-# Cloth
+# Clothes~
 K:623:0xB4:0x8D
 
-# Knight's Shield
-#K:627:
+# & Knight's Shield~
+K:627:0x88:0x93
 
 # [Apprentice Handbook]
-K:631:0xA3/0x81
+K:631:0xA3:0x81
 
 # [Minstrel's Music]
-K:632:0xA3/0x81
+K:632:0xA3:0x81
 
 # [Harps of Rivendell]
-K:633:0x8A/0x90
+K:633:0x8A:0x90
 
 # [Lays of Beleriand]
-K:634:0x8A/0x90
+K:634:0x8A:0x90
 
-# Falcon Sword
+# & Falcon Sword~
 K:635:0xCD:0x9E
 
 # Adventurer's guide to Middle Earth
-K:636:0xD8/0x80
+K:636:0xD8:0x80
 
 # [Bugei Shofu]
-#K:637:
+K:637:0x03:0x3F
 
 # [Yagyuu Bugeichou]
-#K:638:
+K:638:0x03:0x3F
 
 # [Gorinnosho]
-#K:639:
+K:639:0x07:0x3F
 
 # [Hokusin Ittouryuu Kaiden]
-#K:640:
+K:640:0x07:0x3F
 
-# Photograph of #
-#K:643:203/152
+# & Photograph~ of #
+K:643:0x02:0x7E
 
-# Robe
+# & Robe~
 K:645:0x88:0x95
 
 # [Dark Incantations]
-#K:646:0xCE/0x94
+K:646:0x0C:0x3F
 
 # [Immortal Rituals]
-#K:647:0xCE/0x94
+K:647:0x0C:0x3F
 
 # [Demonthoughts]
-#K:648:0xCE/0x95
+K:648:0x04:0x3F
 
 # [Hellfire Tome]
-#K:649:0xCE/0x95
+K:649:0x04:0x3F
+
+# & Magic Whistle~
+K:651:0x03:0x7E
+
+# Black Clothes
+K:653:0xCE:0x8C
+
+# [Rites of Initiation]
+K:654:0x09:0x3F
+
+# [Ways of War]
+K:655:0x09:0x3F
 
-# Magic Whistle
-#K:651:
+# [Exorcism and Dispelling]
+K:656:0x01:0x3F
 
-# Amulet(pitch dark night)
-#K:652:0xB6:0x9E
+# [Wrath of God]
+K:657:0x01:0x3F
 
 
 # Load the special player pictures
index 4666dc8..38f3659 100644 (file)
@@ -878,14 +878,6 @@ static void do_cmd_erase_nikki(void)
        safe_setuid_grab();
 }
 
-#if 0
-void do_debug(void)
-{
-       msg_format("%d %d %d:%d",py,px, p_ptr->energy, p_ptr->skill_dis);
-       msg_print(NULL);
-       battle_monsters();
-}
-#endif
 
 void do_cmd_nikki(void)
 {
@@ -953,11 +945,6 @@ void do_cmd_nikki(void)
                case '4':
                        do_cmd_erase_nikki();
                        break;
-#if 0
-               case ':':
-                       do_debug();
-                       break;
-#endif
                default: /* Unknown option */
                        bell();
                }
@@ -3589,7 +3576,7 @@ void do_cmd_visuals(void)
                        line_num += 3;
 
                        /* Dump monsters */
-                       for (i = 0; i < max_r_idx; i++)
+                       for (i = 1; i < max_r_idx; i++)
                        {
                                monster_race *r_ptr = &r_info[i];
 
@@ -3601,7 +3588,7 @@ void do_cmd_visuals(void)
                                line_num++;
 
                                /* Dump the monster attr/char info */
-                               fprintf(fff, "R:%d:0x%02X:0x%02X\n\n", i,
+                               fprintf(fff, "R:%d:0x%02X/0x%02X\n\n", i,
                                        (byte)(r_ptr->x_attr), (byte)(r_ptr->x_char));
                                line_num += 2;
                        }
@@ -3662,19 +3649,26 @@ void do_cmd_visuals(void)
                        line_num += 3;
 
                        /* Dump objects */
-                       for (i = 0; i < max_k_idx; i++)
+                       for (i = 1; i < max_k_idx; i++)
                        {
+                               char o_name[80];
                                object_kind *k_ptr = &k_info[i];
 
                                /* Skip non-entries */
                                if (!k_ptr->name) continue;
 
+                               /* Skip entries with flavor */
+                               if (k_ptr->flavor) continue;
+
+                               /* Tidy name */
+                               strip_name(o_name, i);
+
                                /* Dump a comment */
-                               fprintf(fff, "# %s\n", (k_name + k_ptr->name));
+                               fprintf(fff, "# %s\n", o_name);
                                line_num++;
 
                                /* Dump the object attr/char info */
-                               fprintf(fff, "K:%d:0x%02X:0x%02X\n\n", i,
+                               fprintf(fff, "K:%d:0x%02X/0x%02X\n\n", i,
                                        (byte)(k_ptr->x_attr), (byte)(k_ptr->x_char));
                                line_num += 2;
                        }
@@ -3735,19 +3729,22 @@ void do_cmd_visuals(void)
                        line_num += 3;
 
                        /* Dump features */
-                       for (i = 0; i < max_f_idx; i++)
+                       for (i = 1; i < max_f_idx; i++)
                        {
                                feature_type *f_ptr = &f_info[i];
 
                                /* Skip non-entries */
                                if (!f_ptr->name) continue;
 
+                               /* Skip mimiccing features */
+                               if (f_ptr->mimic != i) continue;
+
                                /* 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,
+                               fprintf(fff, "F:%d:0x%02X/0x%02X\n\n", i,
                                        (byte)(f_ptr->x_attr), (byte)(f_ptr->x_char));
                                line_num += 2;
                        }
@@ -4746,7 +4743,6 @@ void do_cmd_feeling(void)
 
 
 
-#define BROWSER_ROWS 16
 /*
  * Description of each monster group.
  */
@@ -4866,6 +4862,7 @@ static cptr monster_group_text[] =
        NULL
 };
 
+
 /*
  * Symbols of monsters in each group. Note the "Uniques" group
  * is handled differently.
@@ -4975,16 +4972,13 @@ static int collect_monsters(int grp_cur, s16b mon_idx[], byte mode)
                /* Access the race */
                monster_race *r_ptr = &r_info[i];
 
-               /* Is this a unique? */
-               bool unique = (bool)(r_ptr->flags1 & (RF1_UNIQUE)) ;
-
                /* Skip empty race */
                if (!r_ptr->name) continue ;
 
                /* Require known monsters */
                if (!(mode & 0x02) && !cheat_know && !r_ptr->r_sights ) continue;
 
-               if (grp_unique && !(unique)) continue;
+               if (grp_unique && !(r_ptr->flags1 & RF1_UNIQUE)) continue;
 
                /* Check for race in the group */
                if (grp_unique || strchr(group_char, r_ptr->d_char))
@@ -5035,6 +5029,7 @@ static cptr object_group_text[] =
        "¤¯¤µ¤Ó",
        "Ȣ",
        "¿Í·Á",
+       "Áü",
        "¥´¥ß",
        "¶õ¤Î¥Ó¥ó",
        "¹ü",
@@ -5055,6 +5050,7 @@ static cptr object_group_text[] =
        "¥Ø¥ë¥á¥Ã¥È",   /* "Helms" */
        "´§",   /* "Crowns" */
        "¥Ö¡¼¥Ä",       /* "Boots" */
+       "ËâË¡½ñ",
 #else
        "Mushrooms",
        "Potions",
@@ -5073,6 +5069,7 @@ static cptr object_group_text[] =
        "Spikes",
        "Boxs",
        "Figurines",
+       "Statues",
        "Junks",
        "Bottles",
        "Skeletons",
@@ -5093,10 +5090,12 @@ static cptr object_group_text[] =
        "Helms",
        "Crowns",
        "Boots",
+       "Spellbooks",
 #endif
        NULL
 };
 
+
 /*
  * TVALs of items in each group
  */
@@ -5119,6 +5118,7 @@ static byte object_group_tval[] =
        TV_SPIKE,
        TV_CHEST,
        TV_FIGURINE,
+       TV_STATUE,
        TV_JUNK,
        TV_BOTTLE,
        TV_SKELETON,
@@ -5139,11 +5139,11 @@ static byte object_group_tval[] =
        TV_HELM,
        TV_CROWN,
        TV_BOOTS,
+       TV_LIFE_BOOK, /* Hack -- all spellbooks */
        0
 };
 
 
-
 /*
  * Build a list of monster indexes in the given group. Return the number
  * of monsters in the group.
@@ -5165,7 +5165,7 @@ static int collect_objects(int grp_cur, int object_idx[])
                if (!k_ptr->name) continue;
 
                /* Skip non-flavoured objects */
-               if (!k_ptr->flavor) continue;
+               if (!k_ptr->flavor && !p_ptr->wizard) continue;
 
                /* Skip items with no distribution (special artifacts) */
                for (j = 0, k = 0; j < 4; j++) k += k_ptr->chance[j];
@@ -5175,7 +5175,16 @@ static int collect_objects(int grp_cur, int object_idx[])
                if (!k_ptr->aware && !p_ptr->wizard) continue;
 
                /* Check for race in the group */
-               if (k_ptr->tval == group_tval)
+               if (TV_LIFE_BOOK == group_tval)
+               {
+                       /* Hack -- All spell books */
+                       if (TV_LIFE_BOOK <= k_ptr->tval && k_ptr->tval <= TV_HISSATSU_BOOK)
+                       {
+                               /* Add the race */
+                               object_idx[object_cnt++] = i;
+                       }
+               }
+               else if (k_ptr->tval == group_tval)
                {
                        /* Add the race */
                        object_idx[object_cnt++] = i;
@@ -5190,7 +5199,49 @@ static int collect_objects(int grp_cur, int object_idx[])
 }
 
 
+/*
+ * Description of each feature group.
+ */
+static cptr feature_group_text[] = 
+{
+       "terrains",
+       NULL
+};
+
+
+/*
+ * Build a list of feature indexes in the given group. Return the number
+ * of features in the group.
+ */
+static int collect_features(int grp_cur, int *feat_idx)
+{
+       int i, feat_cnt = 0;
+
+       /* Check every feature */
+       for (i = 1; i < max_f_idx; i++)
+       {
+               /* Access the index */
+               feature_type *f_ptr = &f_info[i];
+
+               /* Skip empty index */
+               if (!f_ptr->name) continue;
+
+               /* Skip mimiccing features */
+               if (f_ptr->mimic != i) continue;
+
+               /* Add the index */
+               feat_idx[feat_cnt++] = i;
+       }
+
+       /* Terminate the list */
+       feat_idx[feat_cnt] = 0;
 
+       /* Return the number of races */
+       return feat_cnt;
+}
+
+
+#if 0
 /*
  * Build a list of monster indexes in the given group. Return the number
  * of monsters in the group.
@@ -5228,7 +5279,7 @@ static int collect_artifacts(int grp_cur, int object_idx[])
        /* Return the number of races */
        return object_cnt;
 }
-
+#endif /* 0 */
 
 
 /*
@@ -6328,7 +6379,7 @@ static void do_cmd_knowledge_artifacts(void)
 
                /* Paranoia */
 #ifdef JP
-strcpy(base_name, "̤ÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à");
+               strcpy(base_name, "̤ÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à");
 #else
                strcpy(base_name, "Unknown Artifact");
 #endif
@@ -6479,100 +6530,6 @@ static void do_cmd_knowledge_uniques(void)
 }
 
 
-#if 0
-/*
- * Display dead uniques
- */
-static void do_cmd_knowledge_uniques_dead(void)
-{
-       int i, k, n = 0;
-       u16b why = 2;
-       s16b *who;
-
-       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;
-       }
-
-       /* Allocate the "who" array */
-       C_MAKE(who, max_r_idx, s16b);
-
-       /* Scan the monsters */
-       for (i = 1; i < max_r_idx; i++)
-       {
-               monster_race *r_ptr = &r_info[i];
-
-               /* Use that monster */
-               if (r_ptr->name) who[n++] = i;
-       }
-
-       /* Select the sort method */
-       ang_sort_comp = ang_sort_comp_hook;
-       ang_sort_swap = ang_sort_swap_hook;
-
-       /* Sort the array by dungeon depth of monsters */
-       ang_sort(who, &why, n);
-
-       /* Scan the monster races */
-       for (k = 0; k < n; k++)
-       {
-               monster_race *r_ptr = &r_info[who[k]];
-
-               /* Only print Uniques */
-               if (r_ptr->flags1 & (RF1_UNIQUE))
-               {
-                       bool dead = (r_ptr->max_num == 0);
-
-                       if (!dead) continue;
-
-                       /* Only display "known" uniques */
-                       if (dead || cheat_know || r_ptr->r_sights)
-                       {
-                               /* Print a message */
-#ifdef JP
-                               fprintf(fff, "     %s¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡£\n",
-                                       (r_name + r_ptr->name));
-#else
-                               fprintf(fff, "     %s is dead\n",
-                                       (r_name + r_ptr->name));
-#endif
-
-                       }
-               }
-       }
-
-       /* Free the "who" array */
-       C_KILL(who, max_r_idx, s16b);
-
-       /* 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, "Dead Uniques", 0, 0);
-#endif
-
-
-       /* Remove the file */
-       fd_kill(file_name);
-}
-#endif /* 0 */
-
-
 /*
  * Display weapon-exp
  */
@@ -7013,7 +6970,7 @@ static void do_cmd_knowledge_pets(void)
 
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "¸½ºß¤Î¥Ú¥Ã¥È", 0, 0);
+       show_file(TRUE, file_name, "¸½ºß¤Î¥Ú¥Ã¥È", 0, 0);
 #else
        show_file(TRUE, file_name, "Current Pets", 0, 0);
 #endif
@@ -7151,11 +7108,11 @@ static void do_cmd_knowledge_kill_count(void)
                        if (This > 0)
                        {
 #ifdef JP
-/* p,t¤Ï¿Í¤È¿ô¤¨¤ë by ita*/
-if(strchr("pt",r_ptr->d_char))
-fprintf(fff, "     %3d ¿Í¤Î %s\n", This, r_name + r_ptr->name);
-else
-fprintf(fff, "     %3d É¤¤Î %s\n", This, r_name + r_ptr->name);
+                               /* p,t¤Ï¿Í¤È¿ô¤¨¤ë by ita*/
+                               if(strchr("pt",r_ptr->d_char))
+                                       fprintf(fff, "     %3d ¿Í¤Î %s\n", This, r_name + r_ptr->name);
+                               else
+                                       fprintf(fff, "     %3d É¤¤Î %s\n", This, r_name + r_ptr->name);
 #else
                                if (This < 2)
                                {
@@ -7200,7 +7157,7 @@ fprintf(fff, "     %3d ɤ
 
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "Åݤ·¤¿Å¨¤Î¿ô", 0, 0);
+       show_file(TRUE, file_name, "Åݤ·¤¿Å¨¤Î¿ô", 0, 0);
 #else
        show_file(TRUE, file_name, "Kill Count", 0, 0);
 #endif
@@ -7211,7 +7168,6 @@ show_file(TRUE, file_name, "
 }
 
 
-
 /*
  * Display the object groups.
  */
@@ -7238,7 +7194,6 @@ static void display_group_list(int col, int row, int wid, int per_page,
 }
 
 
-
 /* 
  * Move the cursor in a browser window 
  */
@@ -7271,13 +7226,21 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt,
        /* Diagonals - hack */
        if ((ddx[d] > 0) && ddy[d])
        {
+               int browser_rows;
+               int wid, hgt;
+
+               /* Get size */
+               Term_get_size(&wid, &hgt);
+
+               browser_rows = hgt - 8;
+
                /* Browse group list */
                if (!col)
                {
                        int old_grp = grp;
 
                        /* Move up or down */
-                       grp += ddy[d] * (BROWSER_ROWS - 1);
+                       grp += ddy[d] * (browser_rows - 1);
 
                        /* Verify */
                        if (grp >= grp_cnt)     grp = grp_cnt - 1;
@@ -7289,7 +7252,7 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt,
                else
                {
                        /* Move up or down */
-                       list += ddy[d] * BROWSER_ROWS;
+                       list += ddy[d] * browser_rows;
 
                        /* Verify */
                        if (list >= list_cnt) list = list_cnt - 1;
@@ -7343,6 +7306,174 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt,
 }
 
 
+/*
+ * Display visuals.
+ */
+static void display_visual_list(int col, int row, int height, int width, byte attr_top, byte char_left)
+{
+       int i, j;
+
+       /* Clear the display lines */
+       for (i = 0; i < height; i++)
+       {
+               Term_erase(col, row + i, width);
+       }
+
+       /* Bigtile mode uses double width */
+       if (use_bigtile) width /= 2;
+
+       /* Display lines until done */
+       for (i = 0; i < height; i++)
+       {
+               /* Display columns until done */
+               for (j = 0; j < width; j++)
+               {
+                       byte a = attr_top + i;
+                       byte c = char_left + j;
+                       int x = col + j;
+                       int y = row + i;
+
+                       /* Bigtile mode uses double width */
+                       if (use_bigtile) x += j;
+#ifdef JP
+                       /* Don't display broken kanji */
+                       if (!(a & 0x80) && (c & 0x80)) continue;
+#endif
+
+                       /* Display the mark */
+                       Term_putch(x, y, a, c);
+
+                       /* Write dammy byte */
+                       if (use_bigtile)
+                       {
+                               if ((a & 0x80) && (c & 0x80))
+                                       Term_putch(x + 1, y, 255, -1);
+                               else
+                                       Term_putch(x + 1, y, 0, ' ');
+                       }
+               }
+       }
+}
+
+
+/*
+ *  Clipboard variables for copy&paste in visual mode
+ */
+static byte attr_idx = 0;
+static byte char_idx = 0;
+
+/*
+ *  Do visual mode command -- Change symbols
+ */
+static bool visual_mode_command(char ch, bool *visual_list_ptr, 
+                               int height, int width, 
+                               byte *attr_top_ptr, byte *char_left_ptr, 
+                               byte *cur_attr_ptr, byte *cur_char_ptr)
+{
+       static byte attr_old = 0, char_old = 0;
+
+       switch (ch)
+       {
+       case ESCAPE:
+               if (*visual_list_ptr)
+               {
+                       /* Cancel change */
+                       *cur_attr_ptr = attr_old;
+                       *cur_char_ptr = char_old;
+                       *visual_list_ptr = FALSE;
+
+                       return TRUE;
+               }
+
+               break;
+
+       case '\n':
+       case '\r':
+               if (*visual_list_ptr)
+               {
+                       /* Accept change */
+                       *visual_list_ptr = FALSE;
+
+                       return TRUE;
+               }
+               break;
+
+       case 'V':
+       case 'v':
+               if (!*visual_list_ptr)
+               {
+                       *visual_list_ptr = TRUE;
+
+                       *attr_top_ptr = MAX(0, *cur_attr_ptr - 5);
+                       *char_left_ptr = MAX(0, *cur_char_ptr - 10);
+
+                       attr_old = *cur_attr_ptr;
+                       char_old = *cur_char_ptr;
+
+                       return TRUE;
+               }
+               break;
+
+       case 'C':
+       case 'c':
+               /* Set the visual */
+               attr_idx = *cur_attr_ptr;
+               char_idx = *cur_char_ptr;
+
+               return TRUE;
+
+       case 'P':
+       case 'p':
+               if (attr_idx)
+               {
+                       /* Set the char */
+                       *cur_attr_ptr = attr_idx;
+                       *attr_top_ptr = MAX(0, *cur_attr_ptr - 5);
+               }
+
+               if (char_idx)
+               {
+                       /* Set the char */
+                       *cur_char_ptr = char_idx;
+                       *char_left_ptr = MAX(0, *cur_char_ptr - 10);
+               }
+
+               return TRUE;
+
+       default:
+               if (*visual_list_ptr)
+               {
+                       int eff_width;
+                       int d = get_keymap_dir(ch);
+
+                       if (use_bigtile) eff_width = width / 2;
+                       else eff_width = width;
+                                       
+                       /* Restrict direction */
+                       if ((*cur_attr_ptr == 0) && (ddy[d] < 0)) d = 0;
+                       if ((*cur_char_ptr == 0) && (ddx[d] < 0)) d = 0;
+                       if ((*cur_attr_ptr == 255) && (ddy[d] > 0)) d = 0;
+                       if ((*cur_char_ptr == 255) && (ddx[d] > 0)) d = 0;
+
+                       /* Set the visual */
+                       *cur_attr_ptr += ddy[d];
+                       *cur_char_ptr += ddx[d];
+
+                       /* Move the frame */
+                       if ((ddx[d] < 0) && *char_left_ptr > MAX(0, (int)*cur_char_ptr - 10)) (*char_left_ptr)--;
+                       if ((ddx[d] > 0) && *char_left_ptr + eff_width < MIN(255, (int)*cur_char_ptr + 10)) (*char_left_ptr)++;
+                       if ((ddy[d] < 0) && *attr_top_ptr > MAX(0, (int)*cur_attr_ptr - 4)) (*attr_top_ptr)--;
+                       if ((ddy[d] > 0) && *attr_top_ptr + height < MIN(255, *cur_attr_ptr + 4)) (*attr_top_ptr)++;
+                       return TRUE;
+               }
+                               
+               break;
+       }
+
+       /* Visual mode command is not used */
+       return FALSE;
+}
+
 
 /*
  * Display the monsters in a group.
@@ -7353,7 +7484,7 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[],
        int i;
 
        /* Display lines until done */
-       for (i = 0; i < per_page && mon_idx[i]; i++)
+       for (i = 0; i < per_page && mon_idx[mon_top + i]; i++)
        {
                byte attr;
 
@@ -7363,8 +7494,6 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[],
                /* Access the race */
                monster_race *r_ptr = &r_info[r_idx];
 
-               /* Is this a unique? */
-               bool unique = (bool)(r_ptr->flags1 & (RF1_UNIQUE)) ;
 
                /* Choose a color */
                attr = ((i + mon_top == mon_cur) ? TERM_L_BLUE : TERM_WHITE);
@@ -7372,16 +7501,30 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[],
                /* Display the name */
                c_prt(attr, (r_name + r_ptr->name), row + i, col);
 
-               if (p_ptr->wizard) 
+               /* Hack -- visual_list mode */
+               if (per_page == 1)
                {
-                       c_prt(attr, format ("%d", r_idx), row + i, 60);
+                       c_prt(attr, format("%02x/%02x", r_ptr->x_attr, r_ptr->x_char), row + i, 60);
+               }
+               else if (p_ptr->wizard) 
+               {
+                       c_prt(attr, format("%d", r_idx), row + i, 60);
                }
 
                /* Display symbol */
                Term_putch(70, row + i, r_ptr->x_attr, r_ptr->x_char);
 
+               if (use_bigtile)
+               {
+                       if (r_ptr->x_attr & 0x80)
+                               Term_putch(70 + 1, row + i, 255, -1);
+                       else
+                               Term_putch(70 + 1, row + i, 0, ' ');
+               }
+
+
                /* Display kills */
-               if (!unique)    put_str(format("%5d", r_ptr->r_pkills), row + i, 73);
+               if (!(r_ptr->flags1 & RF1_UNIQUE)) put_str(format("%5d", r_ptr->r_pkills), row + i, 73);
 #ifdef JP
                else c_put_str((r_ptr->max_num == 0 ? TERM_L_DARK : TERM_WHITE), (r_ptr->max_num == 0 ? "»àË´" : "À¸Â¸"), row + i, 73);
 #else
@@ -7397,13 +7540,14 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[],
        }
 }
 
+
 /*
  * Display known monsters.
  */
 static void do_cmd_knowledge_monsters(void)
 {
        int i, len, max;
-       int grp_cur, grp_top;
+       int grp_cur, grp_top, old_grp_cur;
        int mon_cur, mon_top;
        int grp_cnt, grp_idx[100];
        int mon_cnt;
@@ -7413,6 +7557,17 @@ static void do_cmd_knowledge_monsters(void)
        bool flag;
        bool redraw;
 
+       bool visual_list = FALSE;
+       byte attr_top = 0, char_left = 0;
+
+       int browser_rows;
+       int wid, hgt;
+
+       /* Get size */
+       Term_get_size(&wid, &hgt);
+
+       browser_rows = hgt - 8;
+
        /* Allocate the "mon_idx" array */
        C_MAKE(mon_idx, max_r_idx, s16b);
 
@@ -7439,8 +7594,10 @@ static void do_cmd_knowledge_monsters(void)
        /* Terminate the list */
        grp_idx[grp_cnt] = -1;
 
+       old_grp_cur = -1;
        grp_cur = grp_top = 0;
        mon_cur = mon_top = 0;
+       mon_cnt = 0;
 
        flag = FALSE;
        redraw = TRUE;
@@ -7448,6 +7605,7 @@ static void do_cmd_knowledge_monsters(void)
        while (!flag)
        {
                char ch;
+               monster_race *r_ptr;
 
                if (redraw)
                {
@@ -7472,7 +7630,7 @@ static void do_cmd_knowledge_monsters(void)
                                Term_putch(i, 5, TERM_WHITE, '=');
                        }
 
-                       for (i = 0; i < BROWSER_ROWS; i++)
+                       for (i = 0; i < browser_rows; i++)
                        {
                                Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
                        }
@@ -7482,37 +7640,69 @@ static void do_cmd_knowledge_monsters(void)
 
                /* Scroll group list */
                if (grp_cur < grp_top) grp_top = grp_cur;
-               if (grp_cur >= grp_top + BROWSER_ROWS) grp_top = grp_cur - BROWSER_ROWS + 1;
+               if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
 
                /* Display a list of monster groups */
-               display_group_list(0, 6, max, BROWSER_ROWS, grp_idx, monster_group_text, grp_cur, grp_top);
+               display_group_list(0, 6, max, browser_rows, grp_idx, monster_group_text, grp_cur, grp_top);
+
+               if (old_grp_cur != grp_cur)
+               {
+                       old_grp_cur = grp_cur;
 
-               /* Get a list of monsters in the current group */
-               mon_cnt = collect_monsters(grp_idx[grp_cur], mon_idx, 0x00);
+                       /* Get a list of monsters in the current group */
+                       mon_cnt = collect_monsters(grp_idx[grp_cur], mon_idx, 0x00);
+               }
 
                /* Scroll monster list */
                while (mon_cur < mon_top)
-                       mon_top = MAX(0, mon_top - BROWSER_ROWS/2);
-               while (mon_cur >= mon_top + BROWSER_ROWS)
-                       mon_top = MIN(mon_cnt - BROWSER_ROWS, mon_top + BROWSER_ROWS/2);
+                       mon_top = MAX(0, mon_top - browser_rows/2);
+               while (mon_cur >= mon_top + browser_rows)
+                       mon_top = MIN(mon_cnt - browser_rows, mon_top + browser_rows/2);
+
+               if (!visual_list)
+               {
+                       /* Display a list of monsters in the current group */
+                       display_monster_list(max + 3, 6, browser_rows, mon_idx, mon_cur, mon_top);
+               }
+               else
+               {
+                       mon_top = mon_cur;
 
-               /* Display a list of monsters in the current group */
-               display_monster_list(max + 3, 6, BROWSER_ROWS, mon_idx, mon_cur, mon_top);
+                       /* Display a monster name */
+                       display_monster_list(max + 3, 6, 1, mon_idx, mon_cur, mon_top);
+
+                       /* Display visual list below first monster */
+                       display_visual_list(max + 3, 7, browser_rows-1, wid - (max + 3), attr_top, char_left);
+               }
 
                /* Prompt */
 #ifdef JP
-               prt("<Êý¸þ>, 'r'¤Ç»×¤¤½Ð¤ò¸«¤ë, ESC", 23, 0);
+               prt(format("<Êý¸þ>, 'r'¤Ç»×¤¤½Ð¤ò¸«¤ë%s%s, ESC", visual_list ? ", ENTER¤Ç·èÄê" : ", 'v'¤Ç¥·¥ó¥Ü¥ëÊѹ¹", (attr_idx||char_idx) ? ", 'c', 'p'¤Ç¥Ú¡¼¥¹¥È" : ", 'c'¤Ç¥³¥Ô¡¼"), hgt - 1, 0);
 #else
-               prt("<dir>, 'r' to recall, ESC", 23, 0);
+               prt(format("<dir>, 'r' to recall%s%s, ESC", visual_list ? ", ENTER to accept" : ", 'v' for visuals", (attr_idx||char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), hgt - 1, 0);
 #endif
 
+               /* Get the current monster */
+               r_ptr = &r_info[mon_idx[mon_cur]];
+
                /* Mega Hack -- track this monster race */
                if (mon_cnt) monster_race_track(mon_idx[mon_cur]);
 
                /* Hack -- handle stuff */
                handle_stuff();
 
-               if (!column)
+               if (visual_list)
+               {
+                       int x, y;
+
+                       y = 7 + (r_ptr->x_attr - attr_top);
+                       if (use_bigtile) x = max + 3 + 2 * (r_ptr->x_char - char_left);
+                       else  x = max + 3 + (r_ptr->x_char - char_left);
+
+                       /* Place the cursor */
+                       Term_gotoxy(x, y);
+               }
+               else if (!column)
                {
                        Term_gotoxy(0, 6 + (grp_cur - grp_top));
                }
@@ -7523,6 +7713,9 @@ static void do_cmd_knowledge_monsters(void)
        
                ch = inkey();
 
+               /* Do visual mode command if needed */
+               if (visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &r_ptr->x_attr, &r_ptr->x_char)) continue;
+
                switch (ch)
                {
                        case ESCAPE:
@@ -7539,7 +7732,7 @@ static void do_cmd_knowledge_monsters(void)
                                {
                                        screen_roff(mon_idx[mon_cur], 0);
 
-                                       (void) inkey();
+                                       (void)inkey();
        
                                        redraw = TRUE;
                                }
@@ -7550,18 +7743,17 @@ static void do_cmd_knowledge_monsters(void)
                        {
                                /* Move the cursor */
                                browser_cursor(ch, &column, &grp_cur, grp_cnt, &mon_cur, mon_cnt);
-                               
+
                                break;
                        }
                }
        }
 
-       /* XXX XXX Free the "mon_idx" array */
+       /* Free the "mon_idx" array */
        C_KILL(mon_idx, max_r_idx, s16b);
 }
 
 
-
 /*
  * Display the objects in a group.
  */
@@ -7571,8 +7763,11 @@ static void display_object_list(int col, int row, int per_page, int object_idx[]
        int i;
 
        /* Display lines until done */
-       for (i = 0; i < per_page && object_idx[i]; i++)
+       for (i = 0; i < per_page && object_idx[object_top + i]; i++)
        {
+               char o_name[80];
+               byte a, c;
+
                /* Get the object index */
                int k_idx = object_idx[object_top + i];
 
@@ -7580,22 +7775,46 @@ static void display_object_list(int col, int row, int per_page, int object_idx[]
                object_kind *k_ptr = &k_info[k_idx];
 
                /* Choose a color */
-               byte attr = ((k_ptr->aware) ? TERM_WHITE : TERM_SLATE);
-               byte cursor = ((k_ptr->aware) ? TERM_L_BLUE : TERM_BLUE);
+               byte attr = (k_ptr->aware ? TERM_WHITE : TERM_SLATE);
+               byte cursor = (k_ptr->aware ? TERM_L_BLUE : TERM_BLUE);
+
                attr = ((i + object_top == object_cur) ? cursor : attr);
                
+               /* Tidy name */
+               strip_name(o_name, k_idx);
+
                /* Display the name */
-               c_prt(attr, k_name + k_ptr->name, row + i, col);
+               c_prt(attr, o_name, row + i, col);
+
+               /* Hack -- visual_list mode */
+               if (per_page == 1)
+               {
+                       c_prt(attr, format("%02x/%02x", k_ptr->x_attr, k_ptr->x_char), row + i, 60);
+               }
+               else if (p_ptr->wizard)
+               {
+                       c_prt(attr, format ("%d", k_idx), row + i, 70);
+               }
 
-               if (p_ptr->wizard) c_prt(attr, format ("%d", k_idx), row + i, 70);
+               a = k_ptr->flavor ? misc_to_attr[k_ptr->flavor] : k_ptr->x_attr;
+               c = k_ptr->flavor ? misc_to_char[k_ptr->flavor] : k_ptr->x_char;
 
-               if (k_ptr->aware)
+               /* Symbol is unknown */ 
+               if (!k_ptr->aware && !p_ptr->wizard)
                {
-                       byte a = misc_to_attr[k_ptr->flavor];
-                       byte c = misc_to_char[k_ptr->flavor];
-       
-                       /* Display symbol */
-                       Term_putch(76, row + i, a, c);
+                       c = ' ';
+                       a = 0;
+               }
+
+               /* Display symbol */
+               Term_putch(76, row + i, a, c);
+
+               if (use_bigtile)
+               {
+                       if (k_ptr->x_attr & 0x80)
+                               Term_putch(76 + 1, row + i, 255, -1);
+                       else
+                               Term_putch(76 + 1, row + i, 0, ' ');
                }
        }
 
@@ -7653,7 +7872,7 @@ static void desc_obj_fake(int k_idx)
 static void do_cmd_knowledge_objects(void)
 {
        int i, len, max;
-       int grp_cur, grp_top;
+       int grp_cur, grp_top, old_grp_cur;
        int object_old, object_cur, object_top;
        int grp_cnt, grp_idx[100];
        int object_cnt;
@@ -7663,6 +7882,17 @@ static void do_cmd_knowledge_objects(void)
        bool flag;
        bool redraw;
 
+       bool visual_list = FALSE;
+       byte attr_top = 0, char_left = 0;
+
+       int browser_rows;
+       int wid, hgt;
+
+       /* Get size */
+       Term_get_size(&wid, &hgt);
+
+       browser_rows = hgt - 8;
+
        /* Allocate the "object_idx" array */
        C_MAKE(object_idx, max_k_idx, int);
 
@@ -7689,9 +7919,11 @@ static void do_cmd_knowledge_objects(void)
        /* Terminate the list */
        grp_idx[grp_cnt] = -1;
 
+       old_grp_cur = -1;
        grp_cur = grp_top = 0;
        object_cur = object_top = 0;
        object_old = -1;
+       object_cnt = 0;
 
        flag = FALSE;
        redraw = TRUE;
@@ -7699,6 +7931,7 @@ static void do_cmd_knowledge_objects(void)
        while (!flag)
        {
                char ch;
+               object_kind *k_ptr;
 
                if (redraw)
                {
@@ -7723,7 +7956,7 @@ static void do_cmd_knowledge_objects(void)
                                Term_putch(i, 5, TERM_WHITE, '=');
                        }
 
-                       for (i = 0; i < BROWSER_ROWS; i++)
+                       for (i = 0; i < browser_rows; i++)
                        {
                                Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
                        }
@@ -7733,30 +7966,51 @@ static void do_cmd_knowledge_objects(void)
 
                /* Scroll group list */
                if (grp_cur < grp_top) grp_top = grp_cur;
-               if (grp_cur >= grp_top + BROWSER_ROWS) grp_top = grp_cur - BROWSER_ROWS + 1;
+               if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
 
                /* Display a list of object groups */
-               display_group_list(0, 6, max, BROWSER_ROWS, grp_idx, object_group_text, grp_cur, grp_top);
+               display_group_list(0, 6, max, browser_rows, grp_idx, object_group_text, grp_cur, grp_top);
 
-               /* Get a list of objects in the current group */
-               object_cnt = collect_objects(grp_idx[grp_cur], object_idx);
+               if (old_grp_cur != grp_cur)
+               {
+                       old_grp_cur = grp_cur;
 
-               /* Scroll monster list */
+                       /* Get a list of objects in the current group */
+                       object_cnt = collect_objects(grp_idx[grp_cur], object_idx);
+               }
+
+               /* Scroll object list */
                while (object_cur < object_top)
-                       object_top = MAX(0, object_top - BROWSER_ROWS/2);
-               while (object_cur >= object_top + BROWSER_ROWS)
-                       object_top = MIN(object_cnt - BROWSER_ROWS, object_top + BROWSER_ROWS/2);
+                       object_top = MAX(0, object_top - browser_rows/2);
+               while (object_cur >= object_top + browser_rows)
+                       object_top = MIN(object_cnt - browser_rows, object_top + browser_rows/2);
+
+               if (!visual_list)
+               {
+                       /* Display a list of objects in the current group */
+                       display_object_list(max + 3, 6, browser_rows, object_idx, object_cur, object_top);
+               }
+               else
+               {
+                       object_top = object_cur;
+
+                       /* Display a list of objects in the current group */
+                       display_object_list(max + 3, 6, 1, object_idx, object_cur, object_top);
 
-               /* Display a list of objects in the current group */
-               display_object_list(max + 3, 6, BROWSER_ROWS, object_idx, object_cur, object_top);
+                       /* Display visual list below first object */
+                       display_visual_list(max + 3, 7, browser_rows-1, wid - (max + 3), attr_top, char_left);
+               }
 
                /* Prompt */
 #ifdef JP
-               prt("<Êý¸þ>, 'r'¤Ç»×¤¤½Ð¤ò¸«¤ë, ESC", 23, 0);
+               prt(format("<Êý¸þ>, 'r'¤Ç»×¤¤½Ð¤ò¸«¤ë%s%s, ESC", visual_list ? ", ENTER¤Ç·èÄê" : ", 'v'¤Ç¥·¥ó¥Ü¥ëÊѹ¹", (attr_idx||char_idx) ? ", 'c', 'p'¤Ç¥Ú¡¼¥¹¥È" : ", 'c'¤Ç¥³¥Ô¡¼"), hgt - 1, 0);
 #else
-               prt("<dir>, 'r' to recall, ESC", 23, 0);
+               prt(format("<dir>, 'r' to recall%s%s, ESC", visual_list ? ", ENTER to accept" : ", 'v' for visuals", (attr_idx||char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), hgt - 1, 0);
 #endif
 
+               /* Get the current object */
+               k_ptr = &k_info[object_idx[object_cur]];
+
                /* Mega Hack -- track this object */
                if (object_cnt) object_kind_track(object_idx[object_cur]);
 
@@ -7770,7 +8024,18 @@ static void do_cmd_knowledge_objects(void)
                        object_old = object_idx[object_cur];
                }
 
-               if (!column)
+               if (visual_list)
+               {
+                       int x, y;
+
+                       y = 7 + (k_ptr->x_attr - attr_top);
+                       if (use_bigtile) x = max + 3 + 2 * (k_ptr->x_char - char_left);
+                       else  x = max + 3 + (k_ptr->x_char - char_left);
+
+                       /* Place the cursor */
+                       Term_gotoxy(x, y);
+               }
+               else if (!column)
                {
                        Term_gotoxy(0, 6 + (grp_cur - grp_top));
                }
@@ -7781,6 +8046,10 @@ static void do_cmd_knowledge_objects(void)
        
                ch = inkey();
 
+               /* Do visual mode command if needed */
+               /* Symbol of objects with flavor cannot be changed */
+               if (!k_ptr->flavor && visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &k_ptr->x_attr, &k_ptr->x_char)) continue;
+
                switch (ch)
                {
                        case ESCAPE:
@@ -7809,16 +8078,251 @@ static void do_cmd_knowledge_objects(void)
                }
        }
 
-       /* XXX XXX Free the "object_idx" array */
+       /* Free the "object_idx" array */
        C_KILL(object_idx, max_k_idx, int);
 }
 
 
 
 /*
-* List virtues & status
-*
-*/
+ * Display the features in a group.
+ */
+static void display_feature_list(int col, int row, int per_page, int *feat_idx,
+       int feat_cur, int feat_top)
+{
+       int i;
+
+       /* Display lines until done */
+       for (i = 0; i < per_page && feat_idx[feat_top + i]; i++)
+       {
+               byte attr;
+
+               /* Get the index */
+               int f_idx = feat_idx[feat_top + i];
+
+               /* Access the index */
+               feature_type *f_ptr = &f_info[f_idx];
+
+               /* Choose a color */
+               attr = ((i + feat_top == feat_cur) ? TERM_L_BLUE : TERM_WHITE);
+
+               /* Display the name */
+               c_prt(attr, f_name + f_ptr->name, row + i, col);
+
+               /* Hack -- visual_list mode */
+               if (per_page == 1)
+               {
+                       c_prt(attr, format("%02x/%02x", f_ptr->x_attr, f_ptr->x_char), row + i, 60);
+               }
+
+               /* Display symbol */
+               Term_putch(68, row + i, f_ptr->x_attr, f_ptr->x_char);
+
+               if (use_bigtile)
+               {
+                       if (f_ptr->x_attr & 0x80)
+                               Term_putch(68 + 1, row + i, 255, -1);
+                       else
+                               Term_putch(68 + 1, row + i, 0, ' ');
+               }
+       }
+
+       /* Clear remaining lines */
+       for (; i < per_page; i++)
+       {
+               Term_erase(col, row + i, 255);
+       }
+}
+
+
+/*
+ * Interact with feature visuals.
+ */
+static void do_cmd_knowledge_features(void)
+{
+       int i, len, max;
+       int grp_cur, grp_top, old_grp_cur;
+       int feat_cur, feat_top;
+       int grp_cnt, grp_idx[100];
+       int feat_cnt;
+       int *feat_idx;
+       
+       int column = 0;
+       bool flag;
+       bool redraw;
+
+       bool visual_list = FALSE;
+       byte attr_top = 0, char_left = 0;
+
+       int browser_rows;
+       int wid, hgt;
+
+       /* Get size */
+       Term_get_size(&wid, &hgt);
+
+       browser_rows = hgt - 8;
+
+       /* Allocate the "feat_idx" array */
+       C_MAKE(feat_idx, max_f_idx, int);
+
+       max = 0;
+       grp_cnt = 0;
+
+       /* Check every group */
+       for (i = 0; feature_group_text[i] != NULL; i++)
+       {
+               /* Measure the label */
+               len = strlen(feature_group_text[i]);
+
+               /* Save the maximum length */
+               if (len > max) max = len;
+
+               /* See if any features are known */
+               if (collect_features(i, feat_idx))
+               {
+                       /* Build a list of groups with known features */
+                       grp_idx[grp_cnt++] = i;
+               }
+       }
+
+       /* Terminate the list */
+       grp_idx[grp_cnt] = -1;
+
+       old_grp_cur = -1;
+       grp_cur = grp_top = 0;
+       feat_cur = feat_top = 0;
+       feat_cnt = 0;
+
+       flag = FALSE;
+       redraw = TRUE;
+
+       while ((!flag) && (grp_cnt))
+       {
+               char ch;
+               feature_type *f_ptr;
+
+               if (redraw)
+               {
+                       clear_from(0);
+               
+                       prt("Visuals - features", 2, 0);
+                       prt("Group", 4, 0);
+                       prt("Name", 4, max + 3);
+                       prt("Sym", 4, 67);
+
+                       for (i = 0; i < 78; i++)
+                       {
+                               Term_putch(i, 5, TERM_WHITE, '=');
+                       }
+
+                       for (i = 0; i < browser_rows; i++)
+                       {
+                               Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+                       }
+
+                       redraw = FALSE;
+               }
+
+               /* Scroll group list */
+               if (grp_cur < grp_top) grp_top = grp_cur;
+               if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
+
+               /* Display a list of feature groups */
+               display_group_list(0, 6, max, browser_rows, grp_idx, feature_group_text, grp_cur, grp_top);
+
+               if (old_grp_cur != grp_cur)
+               {
+                       old_grp_cur = grp_cur;
+
+                       /* Get a list of features in the current group */
+                       feat_cnt = collect_features(grp_idx[grp_cur], feat_idx);
+               }
+
+               /* Scroll feature list */
+               while (feat_cur < feat_top)
+                       feat_top = MAX(0, feat_top - browser_rows/2);
+               while (feat_cur >= feat_top + browser_rows)
+                       feat_top = MIN(feat_cnt - browser_rows, feat_top + browser_rows/2);
+
+               if (!visual_list)
+               {
+                       /* Display a list of features in the current group */
+                       display_feature_list(max + 3, 6, browser_rows, feat_idx, feat_cur, feat_top);
+               }
+               else
+               {
+                       feat_top = feat_cur;
+
+                       /* Display a list of features in the current group */
+                       display_feature_list(max + 3, 6, 1, feat_idx, feat_cur, feat_top);
+
+                       /* Display visual list below first object */
+                       display_visual_list(max + 3, 7, browser_rows-1, wid - (max + 3), attr_top, char_left);
+               }
+
+               /* Prompt */
+#ifdef JP
+               prt(format("<Êý¸þ>%s%s, ESC", visual_list ? ", ENTER¤Ç·èÄê" : ", 'v'¤Ç¥·¥ó¥Ü¥ëÊѹ¹", (attr_idx||char_idx) ? ", 'c', 'p'¤Ç¥Ú¡¼¥¹¥È" : ", 'c'¤Ç¥³¥Ô¡¼"), hgt - 1, 0);
+#else
+               prt(format("<dir>%s%s, ESC", visual_list ? ", ENTER to accept" : ", 'v' for visuals", (attr_idx||char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), hgt - 1, 0);
+#endif
+
+               /* Get the current feature */
+               f_ptr = &f_info[feat_idx[feat_cur]];
+
+               if (visual_list)
+               {
+                       int x, y;
+
+                       y = 7 + (f_ptr->x_attr - attr_top);
+                       if (use_bigtile) x = max + 3 + 2 * (f_ptr->x_char - char_left);
+                       else  x = max + 3 + (f_ptr->x_char - char_left);
+
+                       /* Place the cursor */
+                       Term_gotoxy(x, y);
+               }
+               else if (!column)
+               {
+                       Term_gotoxy(0, 6 + (grp_cur - grp_top));
+               }
+               else
+               {
+                       Term_gotoxy(max + 3, 6 + (feat_cur - feat_top));
+               }
+       
+               ch = inkey();
+
+               /* Do visual mode command if needed */
+               if (visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &f_ptr->x_attr, &f_ptr->x_char)) continue;
+
+               switch (ch)
+               {
+                       case ESCAPE:
+                       {
+                               flag = TRUE;
+                               break;
+                       }
+
+                       default:
+                       {
+                               /* Move the cursor */
+                               browser_cursor(ch, &column, &grp_cur, grp_cnt, &feat_cur, feat_cnt);
+                               break;
+                       }
+               }
+       }
+
+       /* Prompt */
+       if (!grp_cnt) msg_print("No features known.");
+
+       /* Free the "feat_idx" array */
+       C_KILL(feat_idx, max_f_idx, int);
+}
+
+
+/*
+ * List wanted monsters
+ */
 static void do_cmd_knowledge_kubi(void)
 {
        int i;
@@ -7869,7 +8373,7 @@ static void do_cmd_knowledge_kubi(void)
        
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "¾Þ¶â¼ó¤Î°ìÍ÷", 0, 0);
+       show_file(TRUE, file_name, "¾Þ¶â¼ó¤Î°ìÍ÷", 0, 0);
 #else
        show_file(TRUE, file_name, "Wanted monsters", 0, 0);
 #endif
@@ -7880,9 +8384,8 @@ show_file(TRUE, file_name, "
 }
 
 /*
-* List virtues & status
-*
-*/
+ * List virtues & status
+ */
 static void do_cmd_knowledge_virtues(void)
 {
        FILE *fff;
@@ -7917,7 +8420,7 @@ static void do_cmd_knowledge_virtues(void)
        
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "Ȭ¤Ä¤ÎÆÁ", 0, 0);
+       show_file(TRUE, file_name, "Ȭ¤Ä¤ÎÆÁ", 0, 0);
 #else
        show_file(TRUE, file_name, "Virtues", 0, 0);
 #endif
@@ -7977,7 +8480,7 @@ static void do_cmd_knowledge_dungeon(void)
        
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "º£¤Þ¤Ç¤ËÆþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó", 0, 0);
+       show_file(TRUE, file_name, "º£¤Þ¤Ç¤ËÆþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó", 0, 0);
 #else
        show_file(TRUE, file_name, "Dungeon", 0, 0);
 #endif
@@ -8017,13 +8520,13 @@ static void do_cmd_knowledge_stat(void)
                        ((PY_MAX_LEVEL - 1+3) * (p_ptr->hitdie + 1))));
 
 #ifdef JP
-if (p_ptr->knowledge & KNOW_HPRATE) fprintf(fff, "¸½ºß¤ÎÂÎÎÏ¥é¥ó¥¯ : %d/100\n\n", percent);
-else fprintf(fff, "¸½ºß¤ÎÂÎÎÏ¥é¥ó¥¯ : ???\n\n");
-fprintf(fff, "ǽÎϤκÇÂçÃÍ\n\n");
+               if (p_ptr->knowledge & KNOW_HPRATE) fprintf(fff, "¸½ºß¤ÎÂÎÎÏ¥é¥ó¥¯ : %d/100\n\n", percent);
+               else fprintf(fff, "¸½ºß¤ÎÂÎÎÏ¥é¥ó¥¯ : ???\n\n");
+               fprintf(fff, "ǽÎϤκÇÂçÃÍ\n\n");
 #else
                if (p_ptr->knowledge & KNOW_HPRATE) fprintf(fff, "Your current Life Rating is %d/100.\n\n", percent);
                else fprintf(fff, "Your current Life Rating is ???.\n\n");
-fprintf(fff, "Limits of maximum stats\n\n");
+               fprintf(fff, "Limits of maximum stats\n\n");
 #endif
                for (v_nr = 0; v_nr < 6; v_nr++)
                {
@@ -8039,7 +8542,7 @@ fprintf(fff, "Limits of maximum stats\n\n");
        
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó", 0, 0);
+       show_file(TRUE, file_name, "¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó", 0, 0);
 #else
        show_file(TRUE, file_name, "HP-rate & Max stat", 0, 0);
 #endif
@@ -8049,6 +8552,7 @@ show_file(TRUE, file_name, "
        fd_kill(file_name);
 }
 
+
 /*
  * Print quest status of all active quests
  */
@@ -8174,11 +8678,11 @@ static void do_cmd_knowledge_quests(void)
                                /* Print the quest info */
 #ifdef JP
                                sprintf(tmp_str, "%s (´í¸±ÅÙ:%d³¬ÁêÅö)%s\n",
+                                       quest[i].name, quest[i].level, note);
 #else
                                sprintf(tmp_str, "%s (Danger level: %d)%s\n",
-#endif
-
                                        quest[i].name, quest[i].level, note);
+#endif
 
                                fprintf(fff, tmp_str);
 
@@ -8190,7 +8694,6 @@ static void do_cmd_knowledge_quests(void)
                                        sprintf(tmp_str, "  Quest Completed - Unrewarded\n");
 #endif
 
-
                                        fprintf(fff, tmp_str);
                                }
                                else
@@ -8219,9 +8722,9 @@ static void do_cmd_knowledge_quests(void)
                                        if (quest[i].max_num > 1)
                                        {
 #ifdef JP
-sprintf(rand_tmp_str,"%s (%d ³¬) - %d ÂΤÎ%s¤òÅݤ¹¡£(¤¢¤È %d ÂÎ)\n",
-       quest[i].name, quest[i].level,
-       quest[i].max_num, name, quest[i].max_num-quest[i].cur_num);
+                                               sprintf(rand_tmp_str,"%s (%d ³¬) - %d ÂΤÎ%s¤òÅݤ¹¡£(¤¢¤È %d ÂÎ)\n",
+                                                       quest[i].name, quest[i].level,
+                                                       quest[i].max_num, name, quest[i].max_num-quest[i].cur_num);
 #else
                                                plural_aux(name);
 
@@ -8229,17 +8732,16 @@ sprintf(rand_tmp_str,"%s (%d 
                                                        quest[i].name, quest[i].level,
                                                        quest[i].max_num, name, quest[i].cur_num);
 #endif
-
                                        }
                                        else
                                        {
 #ifdef JP
-sprintf(rand_tmp_str,"%s (%d ³¬) - %s¤òÅݤ¹¡£\n",
+                                               sprintf(rand_tmp_str,"%s (%d ³¬) - %s¤òÅݤ¹¡£\n",
+                                                       quest[i].name, quest[i].level, name);
 #else
                                                sprintf(rand_tmp_str,"%s (Dungeon level: %d)\n  Kill %s.\n",
-#endif
-
                                                        quest[i].name, quest[i].level, name);
+#endif
                                        }
                                }
                        }
@@ -8320,11 +8822,11 @@ sprintf(rand_tmp_str,"%s (%d 
                                /* Print the quest info */
 #ifdef JP
                                sprintf(tmp_str, "%s (´í¸±ÅÙ:%d³¬ÁêÅö) - ¥ì¥Ù¥ë%d\n",
+                                       quest[i].name, quest[i].level, quest[i].complev);
 #else
                                sprintf(tmp_str, "%s (Danger level: %d) - level %d\n",
-#endif
-
                                        quest[i].name, quest[i].level, quest[i].complev);
+#endif
                        }
 
                        fprintf(fff, tmp_str);
@@ -8373,22 +8875,22 @@ sprintf(rand_tmp_str,"%s (%d 
                                /* Print the quest info */
 #ifdef JP
                                sprintf(tmp_str, "%s (%d³¬) - ¥ì¥Ù¥ë%d\n",
+                                       r_name+r_info[quest[i].r_idx].name, quest[i].level, quest[i].complev);
 #else
                                sprintf(tmp_str, "%s (Dungeon level: %d) - level %d\n",
-#endif
-
                                        r_name+r_info[quest[i].r_idx].name, quest[i].level, quest[i].complev);
+#endif
                        }
                        else
                        {
                                /* Print the quest info */
 #ifdef JP
                                sprintf(tmp_str, "%s (´í¸±ÅÙ:%d³¬ÁêÅö) - ¥ì¥Ù¥ë%d\n",
+                                       quest[i].name, quest[i].level, quest[i].complev);
 #else
                                sprintf(tmp_str, "%s (Danger level: %d) - level %d\n",
-#endif
-
                                        quest[i].name, quest[i].level, quest[i].complev);
+#endif
                        }
                        fprintf(fff, tmp_str);
                }
@@ -8418,11 +8920,11 @@ sprintf(rand_tmp_str,"%s (%d 
                        /* Print the quest info */
 #ifdef JP
                        sprintf(tmp_str, "%s (%d³¬, %s)\n",
+                               quest[i].name, quest[i].level, r_name+r_info[quest[i].r_idx].name);
 #else
                        sprintf(tmp_str, "%s (%d, %s)\n",
-#endif
-
                                quest[i].name, quest[i].level, r_name+r_info[quest[i].r_idx].name);
+#endif
                        fprintf(fff, tmp_str);
                }
        }
@@ -8451,9 +8953,8 @@ sprintf(rand_tmp_str,"%s (%d 
 
 
 /*
-* List my home
-*
-*/
+ * List my home
+ */
 static void do_cmd_knowledge_home(void)
 {
        FILE *fff;
@@ -8532,7 +9033,7 @@ static void do_cmd_knowledge_home(void)
        
        /* Display the file contents */
 #ifdef JP
-show_file(TRUE, file_name, "²æ¤¬²È¤Î¥¢¥¤¥Æ¥à", 0, 0);
+       show_file(TRUE, file_name, "²æ¤¬²È¤Î¥¢¥¤¥Æ¥à", 0, 0);
 #else
        show_file(TRUE, file_name, "Home Inventory", 0, 0);
 #endif
@@ -8766,6 +9267,9 @@ void do_cmd_knowledge(void)
                case '9': /* Resist list */
                        do_cmd_knowledge_inven();
                        break;
+               case '0': /* Feature list */
+                       do_cmd_knowledge_features();
+                       break;
                /* Next page */
                case 'a': /* Max stat */
                        do_cmd_knowledge_stat();
@@ -8846,7 +9350,7 @@ void do_cmd_time(void)
        num = 0;
 
 #ifdef JP
-strcpy(desc, "ÊѤʻþ¹ï¤À¡£");
+       strcpy(desc, "ÊѤʻþ¹ï¤À¡£");
 #else
        strcpy(desc, "It is a strange time.");
 #endif
@@ -8854,33 +9358,35 @@ strcpy(desc, "
 
        /* Message */
 #ifdef JP
-msg_format("%d ÆüÌÜ,»þ¹ï¤Ï%d:%02d %s¤Ç¤¹¡£",
+       msg_format("%d ÆüÌÜ,»þ¹ï¤Ï%d:%02d %s¤Ç¤¹¡£",
+                  day, (hour % 12 == 0) ? 12 : (hour % 12),
+                  min, (hour < 12) ? "AM" : "PM");
 #else
        msg_format("This is day %d. The time is %d:%02d %s.",
+                  day, (hour % 12 == 0) ? 12 : (hour % 12),
+                  min, (hour < 12) ? "AM" : "PM");
 #endif
 
-                                 day, (hour % 12 == 0) ? 12 : (hour % 12),
-                                 min, (hour < 12) ? "AM" : "PM");
 
        /* Find the path */
        if (!randint0(10) || p_ptr->image)
-               {
+       {
 #ifdef JP
                path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timefun_j.txt");
 #else
                path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timefun.txt");
 #endif
 
-               }
-               else
-               {
+       }
+       else
+       {
 #ifdef JP
                path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timenorm_j.txt");
 #else
                path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timenorm.txt");
 #endif
 
-               }
+       }
 
        /* Open this file */
        fff = my_fopen(buf, "rt");
index 2bd91b3..e8cacf4 100644 (file)
@@ -2426,11 +2426,25 @@ static errr Term_xtra_x11(int n, int v)
  */
 static errr Term_curs_x11(int x, int y)
 {
-       /* Draw the cursor */
-       Infoclr_set(xor);
+       if (use_graphics)
+       {
+               XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
+                              x * Infofnt->wid + Infowin->ox,
+                              y * Infofnt->hgt + Infowin->oy,
+                              Infofnt->wid - 1, Infofnt->hgt - 1);
+               XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
+                              x * Infofnt->wid + Infowin->ox + 1,
+                              y * Infofnt->hgt + Infowin->oy + 1,
+                              Infofnt->wid - 3, Infofnt->hgt - 3);
+       }
+       else
+       {
+               /* Draw the cursor */
+               Infoclr_set(xor);
 
-       /* Hilite the cursor character */
-       Infofnt_text_non(x, y, " ", 1);
+               /* Hilite the cursor character */
+               Infofnt_text_non(x, y, " ", 1);
+       }
 
        /* Success */
        return (0);
@@ -2442,12 +2456,25 @@ static errr Term_curs_x11(int x, int y)
  */
 static errr Term_bigcurs_x11(int x, int y)
 {
-       /* Draw the cursor */
-       Infoclr_set(xor);
-
-       /* Hilite the cursor character */
-       Infofnt_text_non(x, y, "  ", 2);
+       if (use_graphics)
+       {
+               XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
+                              x * Infofnt->wid + Infowin->ox,
+                              y * Infofnt->hgt + Infowin->oy,
+                              Infofnt->twid - 1, Infofnt->hgt - 1);
+               XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
+                              x * Infofnt->wid + Infowin->ox + 1,
+                              y * Infofnt->hgt + Infowin->oy + 1,
+                              Infofnt->twid - 3, Infofnt->hgt - 3);
+       }
+       else
+       {
+               /* Draw the cursor */
+               Infoclr_set(xor);
 
+               /* Hilite the cursor character */
+               Infofnt_text_non(x, y, "  ", 2);
+       }
        /* Success */
        return (0);
 }
@@ -2529,6 +2556,19 @@ static errr Term_pict_x11(int x, int y, int n, const byte *ap, const char *cp)
                x1 = (c&0x7F) * td->fnt->twid;
                y1 = (a&0x7F) * td->fnt->hgt;
 
+               /* Illegal tile index */
+               if (td->tiles->width < x1 + td->fnt->wid ||
+                   td->tiles->height < y1 + td->fnt->hgt)
+               {
+                       /* Draw black square */
+                       XFillRectangle(Metadpy->dpy, td->win->win, clr[0]->gc,
+                                      x, y, 
+                                      td->fnt->twid, td->fnt->hgt);
+
+                       /* Skip drawing tile */
+                       continue;
+               }
+
 #ifdef USE_TRANSPARENCY
 
                ta = *tap++;
@@ -2540,7 +2580,9 @@ static errr Term_pict_x11(int x, int y, int n, const byte *ap, const char *cp)
                
                /* Optimise the common case */
                if (((x1 == x2) && (y1 == y2)) ||
-                   !(((byte)ta & 0x80) && ((byte)tc & 0x80)))
+                   !(((byte)ta & 0x80) && ((byte)tc & 0x80)) ||
+                   td->tiles->width < x2 + td->fnt->wid ||
+                   td->tiles->height < y2 + td->fnt->hgt)
                {
                        /* Draw object / terrain */
                        XPutImage(Metadpy->dpy, td->win->win,