[Scummvm-git-logs] scummvm master -> 49fa6c2c4d05789a5cf2516a2c49bddfe6b849d1

dreammaster noreply at scummvm.org
Sun Mar 5 06:16:54 UTC 2023


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a3aabc750b MM: MM1: Adding Esc button to character view
93f86a1610 MM: MM1: Add support for half-size buttons
49fa6c2c4d MM: MM1: Add Esc button to Inn view


Commit: a3aabc750b5372013d5a6c15b41f7784cccea079
    https://github.com/scummvm/scummvm/commit/a3aabc750b5372013d5a6c15b41f7784cccea079
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-04T22:16:19-08:00

Commit Message:
MM: MM1: Adding Esc button to character view

Changed paths:
  A engines/mm/mm1/views_enh/character_view.cpp
    devtools/create_mm/files/mm1/items.txt
    engines/mm/mm1/views_enh/character_base.cpp
    engines/mm/mm1/views_enh/character_base.h
    engines/mm/mm1/views_enh/character_view.h
    engines/mm/module.mk


diff --git a/devtools/create_mm/files/mm1/items.txt b/devtools/create_mm/files/mm1/items.txt
index 41edbbf3723..4df56c4b86c 100644
--- a/devtools/create_mm/files/mm1/items.txt
+++ b/devtools/create_mm/files/mm1/items.txt
@@ -1,256 +1,256 @@
-"club          ", 0, 0, 0, 0, 0, 0, 1, 3, 0
-"dagger        ", 4, 0, 0, 0, 0, 0, 5, 4, 0
-"hand axe      ", 6, 0, 0, 0, 0, 0, 10, 5, 0
-"spear         ", 7, 0, 0, 0, 0, 0, 15, 6, 0
-"short sword   ", 6, 0, 0, 0, 0, 0, 20, 6, 0
-"mace          ", 2, 0, 0, 0, 0, 0, 40, 6, 0
-"flail         ", 2, 0, 0, 0, 0, 0, 40, 7, 0
-"scimitar      ", 6, 0, 0, 0, 0, 0, 40, 7, 0
-"broad sword   ", 6, 0, 0, 0, 0, 0, 50, 7, 0
-"battle axe    ", 6, 0, 0, 0, 0, 0, 60, 0, 0
-"long sword    ", 6, 0, 0, 0, 0, 0, 60, 8, 0
-"club +1       ", 0, 0, 0, 0, 0, 0, 30, 3, 1
-"club +2       ", 0, 0, 0, 0, 0, 0, 100, 3, 2
-"dagger +1     ", 4, 0, 0, 0, 0, 0, 50, 4, 1
-"hand axe +1   ", 134, 33, 1, 0, 0, 0, 75, 5, 1
-"spear +1      ", 71, 33, 1, 0, 0, 0, 100, 6, 1
-"short sword +1", 6, 0, 0, 0, 0, 0, 100, 6, 1
-"mace +1       ", 2, 0, 0, 0, 0, 0, 125, 6, 1
-"flail +1      ", 2, 0, 0, 0, 0, 0, 200, 7, 1
-"scimitar +1   ", 70, 33, 2, 0, 0, 0, 250, 7, 1
-"broad sword +1", 134, 33, 2, 0, 0, 0, 300, 7, 1
-"battle axe +1 ", 6, 0, 0, 0, 0, 0, 300, 8, 1
-"long sword +1 ", 6, 0, 0, 0, 0, 0, 300, 8, 1
-"flaming club  ", 0, 90, 20, 255, 50, 30, 500, 3, 3
-"club of noise ", 0, 255, 0, 0, 0, 0, 100, 3, 0
-"dagger +2     ", 4, 0, 0, 255, 52, 25, 200, 4, 2
-"hand axe +2   ", 70, 33, 2, 0, 0, 0, 225, 5, 2
-"spear +2      ", 135, 33, 2, 0, 0, 0, 250, 6, 2
-"short sword +2", 6, 0, 0, 255, 48, 15, 300, 6, 2
-"mace +2       ", 2, 25, 1, 255, 7, 10, 325, 6, 2
-"flail +2      ", 2, 25, 1, 255, 3, 15, 350, 7, 2
-"scimitar +2   ", 134, 23, 1, 0, 0, 0, 400, 7, 2
-"broad sword +2", 70, 23, 1, 0, 0, 0, 400, 7, 2
-"battle axe +2 ", 6, 90, 20, 24, 2, 10, 500, 8, 2
-"long sword +2 ", 6, 96, 20, 24, 2, 10, 550, 8, 2
-"royal dagger  ", 196, 0, 0, 0, 0, 0, 2500, 4, 0
-"dagger of mind", 61, 21, 3, 255, 77, 20, 750, 4, 3
-"diamond dagger", 61, 23, 4, 0, 0, 0, 800, 10, 4
-"electric spear", 7, 94, 40, 255, 55, 16, 1200, 6, 3
-"holy mace     ", 123, 25, 3, 255, 38, 5, 2000, 6, 4
-"un-holy mace  ", 187, 25, 3, 255, 37, 5, 2000, 6, 4
-"dark flail    ", 131, 255, 0, 255, 33, 10, 600, 3, 0
-"flail of fear ", 59, 98, 40, 255, 62, 8, 1600, 7, 3
-"lucky scimitar", 6, 33, 5, 0, 0, 0, 2200, 7, 4
-"mace of undead", 67, 255, 0, 37, 10, 5, 500, 6, 0
-"cold axe      ", 15, 92, 40, 255, 72, 10, 2500, 8, 3
-"electric sword", 7, 94, 40, 255, 66, 10, 2200, 8, 3
-"flaming sword ", 7, 90, 50, 255, 63, 10, 2200, 8, 3
-"sword of might", 31, 23, 6, 24, 5, 30, 8000, 8, 5
-"sword of speed", 7, 29, 6, 30, 5, 20, 7000, 8, 5
+"Club          ", 0, 0, 0, 0, 0, 0, 1, 3, 0
+"Dagger        ", 4, 0, 0, 0, 0, 0, 5, 4, 0
+"Hand axe      ", 6, 0, 0, 0, 0, 0, 10, 5, 0
+"Spear         ", 7, 0, 0, 0, 0, 0, 15, 6, 0
+"Short sword   ", 6, 0, 0, 0, 0, 0, 20, 6, 0
+"Mace          ", 2, 0, 0, 0, 0, 0, 40, 6, 0
+"Flail         ", 2, 0, 0, 0, 0, 0, 40, 7, 0
+"Scimitar      ", 6, 0, 0, 0, 0, 0, 40, 7, 0
+"Broad sword   ", 6, 0, 0, 0, 0, 0, 50, 7, 0
+"Battle axe    ", 6, 0, 0, 0, 0, 0, 60, 0, 0
+"Long sword    ", 6, 0, 0, 0, 0, 0, 60, 8, 0
+"Club +1       ", 0, 0, 0, 0, 0, 0, 30, 3, 1
+"Club +2       ", 0, 0, 0, 0, 0, 0, 100, 3, 2
+"Dagger +1     ", 4, 0, 0, 0, 0, 0, 50, 4, 1
+"Hand axe +1   ", 134, 33, 1, 0, 0, 0, 75, 5, 1
+"Spear +1      ", 71, 33, 1, 0, 0, 0, 100, 6, 1
+"Short sword +1", 6, 0, 0, 0, 0, 0, 100, 6, 1
+"Mace +1       ", 2, 0, 0, 0, 0, 0, 125, 6, 1
+"Flail +1      ", 2, 0, 0, 0, 0, 0, 200, 7, 1
+"Scimitar +1   ", 70, 33, 2, 0, 0, 0, 250, 7, 1
+"Broad sword +1", 134, 33, 2, 0, 0, 0, 300, 7, 1
+"Battle axe +1 ", 6, 0, 0, 0, 0, 0, 300, 8, 1
+"Long sword +1 ", 6, 0, 0, 0, 0, 0, 300, 8, 1
+"Flaming club  ", 0, 90, 20, 255, 50, 30, 500, 3, 3
+"Club of Noise ", 0, 255, 0, 0, 0, 0, 100, 3, 0
+"Dagger +2     ", 4, 0, 0, 255, 52, 25, 200, 4, 2
+"Hand axe +2   ", 70, 33, 2, 0, 0, 0, 225, 5, 2
+"Spear +2      ", 135, 33, 2, 0, 0, 0, 250, 6, 2
+"Short sword +2", 6, 0, 0, 255, 48, 15, 300, 6, 2
+"Mace +2       ", 2, 25, 1, 255, 7, 10, 325, 6, 2
+"Flail +2      ", 2, 25, 1, 255, 3, 15, 350, 7, 2
+"Scimitar +2   ", 134, 23, 1, 0, 0, 0, 400, 7, 2
+"Broad sword +2", 70, 23, 1, 0, 0, 0, 400, 7, 2
+"Battle axe +2 ", 6, 90, 20, 24, 2, 10, 500, 8, 2
+"Long sword +2 ", 6, 96, 20, 24, 2, 10, 550, 8, 2
+"Royal dagger  ", 196, 0, 0, 0, 0, 0, 2500, 4, 0
+"Dagger of Mind", 61, 21, 3, 255, 77, 20, 750, 4, 3
+"Diamond dagger", 61, 23, 4, 0, 0, 0, 800, 10, 4
+"Electric spear", 7, 94, 40, 255, 55, 16, 1200, 6, 3
+"Holy mace     ", 123, 25, 3, 255, 38, 5, 2000, 6, 4
+"Un-holy mace  ", 187, 25, 3, 255, 37, 5, 2000, 6, 4
+"Dark flail    ", 131, 255, 0, 255, 33, 10, 600, 3, 0
+"Flail of fear ", 59, 98, 40, 255, 62, 8, 1600, 7, 3
+"Lucky scimitar", 6, 33, 5, 0, 0, 0, 2200, 7, 4
+"Mace of Undead", 67, 255, 0, 37, 10, 5, 500, 6, 0
+"Cold axe      ", 15, 92, 40, 255, 72, 10, 2500, 8, 3
+"Electric sword", 7, 94, 40, 255, 66, 10, 2200, 8, 3
+"Flaming sword ", 7, 90, 50, 255, 63, 10, 2200, 8, 3
+"Sword of Might", 31, 23, 6, 24, 5, 30, 8000, 8, 5
+"Sword of Speed", 7, 29, 6, 30, 5, 20, 7000, 8, 5
 "sharp sword   ", 143, 88, 21, 255, 81, 5, 6500, 10, 4
-"accurate sword", 71, 31, 6, 32, 5, 10, 6500, 8, 6
-"sword of magic", 6, 88, 30, 255, 87, 15, 10000, 8, 5
-"immortal sword", 70, 33, 5, 255, 39, 25, 7000, 8, 4
-"axe protector ", 7, 88, 25, 255, 92, 15, 8000, 8, 5
-"axe destroyer ", 143, 23, 4, 255, 85, 6, 8000, 8, 5
-"x!xx!x's sword", 198, 33, 15, 34, 5, 10, 6000, 8, 4
-"adamantine axe", 7, 33, 8, 255, 36, 5, 12000, 8, 5
-"ultimate sword", 6, 23, 10, 30, 5, 20, 15000, 20, 6
-"element sword ", 6, 88, 25, 255, 44, 10, 12000, 8, 5
-"sling         ", 6, 0, 0, 0, 0, 0, 10, 4, 0
-"crossbow      ", 6, 0, 0, 0, 0, 0, 50, 6, 0
-"short bow     ", 7, 0, 0, 0, 0, 0, 75, 8, 0
-"long bow      ", 7, 0, 0, 0, 0, 0, 100, 10, 0
-"great bow     ", 7, 0, 0, 0, 0, 0, 250, 12, 0
-"sling +1      ", 6, 0, 0, 0, 0, 0, 50, 4, 1
-"crossbow +1   ", 6, 0, 0, 0, 0, 0, 250, 6, 1
-"short bow +1  ", 7, 0, 0, 0, 0, 0, 375, 8, 1
-"long bow +1   ", 7, 0, 0, 0, 0, 0, 500, 10, 1
-"great bow +1  ", 7, 0, 0, 0, 0, 0, 1250, 12, 1
-"magic sling   ", 6, 88, 10, 89, 20, 10, 800, 4, 3
-"crossbow +2   ", 54, 31, 2, 0, 0, 0, 1000, 6, 2
-"short bow +2  ", 135, 102, 10, 0, 0, 0, 1000, 8, 2
-"long bow +2   ", 71, 102, 10, 0, 0, 0, 1200, 10, 2
-"great bow +2  ", 7, 98, 30, 0, 0, 0, 2000, 12, 2
-"crossbow luck ", 54, 33, 3, 255, 1, 20, 2000, 6, 3
-"crossbow speed", 6, 29, 4, 255, 2, 10, 2000, 6, 3
-"lightning bow ", 71, 94, 20, 255, 63, 10, 3000, 10, 3
-"flaming bow   ", 135, 90, 20, 255, 66, 10, 3000, 10, 3
-"giant's bow   ", 7, 0, 0, 0, 0, 0, 2000, 20, 3
-"the magic bow ", 71, 88, 20, 255, 83, 5, 6000, 16, 4
-"bow of power  ", 135, 98, 40, 36, 4, 15, 6000, 16, 4
-"robber's x-bow", 62, 29, 4, 255, 61, 10, 8000, 10, 5
-"archer's bow  ", 55, 31, 5, 255, 85, 10, 12000, 20, 5
-"obsidian bow  ", 0, 255, 0, 255, 80, 3, 2000, 3, 0
-"staff         ", 1, 0, 0, 0, 0, 0, 30, 8, 0
-"glaive        ", 7, 0, 0, 0, 0, 0, 80, 10, 0
-"bardiche      ", 7, 0, 0, 0, 0, 0, 80, 10, 0
-"halberd       ", 7, 0, 0, 0, 0, 0, 100, 12, 0
-"great hammer  ", 3, 0, 0, 0, 0, 0, 150, 12, 0
-"great axe     ", 7, 0, 0, 0, 0, 0, 150, 12, 0
-"flamberge     ", 7, 0, 0, 0, 0, 0, 250, 14, 0
-"staff +1      ", 1, 21, 1, 0, 0, 0, 200, 8, 1
-"glaive +1     ", 135, 29, 1, 0, 0, 0, 350, 10, 1
-"bardiche +1   ", 71, 29, 1, 0, 0, 0, 350, 10, 1
-"halberd +1    ", 7, 0, 0, 0, 0, 0, 500, 12, 1
-"great hammer+1", 3, 25, 1, 0, 0, 0, 550, 12, 1
-"great axe +1  ", 7, 0, 0, 0, 0, 0, 500, 12, 1
-"flamberge +1  ", 7, 0, 0, 0, 0, 0, 600, 14, 1
-"staff +2      ", 1, 33, 2, 255, 54, 10, 600, 8, 2
-"glaive +2     ", 135, 29, 2, 0, 0, 0, 900, 10, 2
-"bardiche +2   ", 71, 29, 2, 0, 0, 0, 900, 10, 2
-"halberd +2    ", 7, 29, 3, 255, 3, 20, 1200, 12, 2
-"great hammer+2", 3, 25, 2, 255, 1, 20, 1200, 12, 2
-"great axe +2  ", 7, 23, 2, 24, 2, 10, 1200, 12, 2
-"flamberge +2  ", 7, 23, 2, 24, 2, 10, 2000, 14, 2
-"staff of light", 1, 102, 40, 255, 19, 20, 1500, 8, 3
-"cold glaive   ", 135, 92, 40, 255, 21, 20, 2500, 10, 3
-"curing staff  ", 121, 100, 30, 255, 5, 12, 2500, 8, 3
-"minotaur's axe", 7, 255, 0, 0, 0, 0, 2000, 3, 0
-"thunder hammer", 59, 94, 40, 255, 29, 15, 3500, 12, 4
-"great axe +3  ", 7, 23, 4, 30, 3, 10, 3500, 12, 3
-"flamberge +3  ", 7, 23, 4, 30, 3, 10, 5000, 14, 3
-"sorcerer staff", 61, 21, 4, 255, 91, 10, 8000, 8, 5
-"staff of magic", 1, 88, 25, 255, 87, 10, 5000, 8, 4
-"demon's glaive", 215, 96, 50, 255, 71, 40, 10000, 10, 5
-"devil's glaive", 215, 92, 50, 255, 72, 40, 10000, 10, 5
-"the flamberge ", 7, 23, 10, 255, 73, 10, 15000, 30, 6
-"holy flamberge", 111, 88, 50, 255, 43, 15, 20000, 20, 6
-"evil flamberge", 175, 88, 50, 255, 46, 15, 20000, 20, 6
-"padded armor  ", 0, 0, 0, 0, 0, 0, 10, 0, 1
-"leather armor ", 2, 0, 0, 0, 0, 0, 20, 0, 2
-"scale armor   ", 2, 0, 0, 0, 0, 0, 50, 0, 3
-"ring mail     ", 2, 0, 0, 0, 0, 0, 100, 0, 4
-"chain mail    ", 3, 0, 0, 0, 0, 0, 200, 0, 5
-"splint mail   ", 15, 0, 0, 0, 0, 0, 400, 0, 6
-"plate mail    ", 15, 0, 0, 0, 0, 0, 1000, 0, 7
-"padded +1     ", 0, 0, 0, 0, 0, 0, 25, 0, 2
-"leather +1    ", 2, 0, 0, 0, 0, 0, 60, 0, 3
-"scale +1      ", 2, 0, 0, 0, 0, 0, 120, 0, 4
-"ring mail +1  ", 2, 90, 5, 0, 0, 0, 250, 0, 5
-"chain mail +1 ", 3, 90, 5, 0, 0, 0, 500, 0, 6
-"splint mail +1", 15, 90, 10, 0, 0, 0, 1000, 0, 7
-"plate mail +1 ", 15, 90, 10, 0, 0, 0, 2500, 0, 8
-"leather +2    ", 2, 94, 10, 0, 0, 0, 150, 0, 4
-"scale +2      ", 2, 92, 10, 0, 0, 0, 300, 0, 5
-"ring mail +2  ", 2, 90, 15, 0, 0, 0, 750, 0, 6
-"chain mail +2 ", 3, 90, 15, 0, 0, 0, 1500, 0, 7
-"splint mail +2", 15, 90, 20, 0, 0, 0, 2500, 0, 8
-"plate mail +2 ", 15, 90, 20, 0, 0, 0, 7500, 0, 9
-"bracers ac 4  ", 52, 0, 0, 0, 0, 0, 1000, 0, 4
-"ring mail +3  ", 2, 29, 2, 0, 0, 0, 2000, 0, 7
-"chain mail +3 ", 3, 33, 4, 0, 0, 0, 4500, 0, 8
-"splint mail +3", 15, 23, 2, 0, 0, 0, 7500, 0, 9
-"plate mail +3 ", 15, 90, 50, 0, 0, 0, 15000, 0, 10
-"bracers ac 6  ", 52, 98, 20, 255, 77, 20, 2500, 0, 6
-"chain mail +3 ", 3, 255, 0, 0, 0, 0, 4500, 0, 0
-"bracers ac 8  ", 0, 255, 0, 0, 0, 0, 7500, 0, 0
-"blue ring mail", 2, 94, 60, 255, 66, 30, 10000, 0, 9
-"red chain mail", 3, 90, 60, 255, 63, 30, 15000, 0, 10
-"x!xx!x's plate", 207, 33, 10, 34, 5, 10, 18000, 0, 11
-"holy plate    ", 111, 88, 40, 99, 50, 30, 25000, 0, 12
-"un-holy plate ", 175, 88, 40, 99, 50, 30, 25000, 0, 12
-"ultimate plate", 21, 88, 40, 255, 49, 30, 30000, 0, 13
-"bracers ac 8  ", 52, 98, 60, 255, 77, 40, 7500, 0, 8
-"small shield  ", 10, 0, 0, 0, 0, 0, 10, 0, 1
-"large shield  ", 10, 0, 0, 0, 0, 0, 50, 0, 2
-"silver shield ", 10, 102, 20, 0, 0, 0, 100, 0, 2
-"small shield+1", 10, 0, 0, 0, 0, 0, 100, 0, 2
-"large shield+1", 10, 0, 0, 0, 0, 0, 200, 0, 3
-"large shield+1", 10, 255, 0, 0, 0, 0, 200, 0, 0
-"small shield+2", 10, 0, 0, 0, 0, 0, 400, 0, 3
-"large shield+2", 10, 0, 0, 0, 0, 0, 800, 0, 4
-"large shield+2", 10, 255, 0, 0, 0, 0, 800, 0, 0
-"fire shield   ", 10, 90, 20, 0, 0, 0, 2500, 0, 5
-"cold shield   ", 10, 92, 20, 0, 0, 0, 2500, 0, 5
-"elec shield   ", 10, 94, 20, 0, 0, 0, 2500, 0, 5
-"acid shield   ", 10, 96, 20, 0, 0, 0, 2500, 0, 5
-"magic shield  ", 10, 88, 20, 255, 77, 20, 5000, 0, 6
-"dragon shield ", 10, 88, 10, 255, 92, 20, 8000, 0, 7
-"rope & hooks  ", 0, 1, 0, 255, 58, 30, 10, 0, 0
-"torch         ", 0, 1, 0, 255, 4, 1, 2, 0, 0
-"lantern       ", 0, 1, 0, 255, 4, 10, 20, 0, 0
-"10 foot pole  ", 0, 1, 0, 0, 0, 0, 10, 0, 0
-"garlic        ", 0, 1, 0, 0, 0, 0, 5, 0, 0
-"wolfsbane     ", 0, 1, 0, 0, 0, 0, 10, 0, 0
-"belladonna    ", 0, 1, 0, 0, 0, 0, 25, 0, 0
-"magic herbs   ", 0, 1, 0, 255, 3, 3, 50, 0, 0
-"dried beef    ", 0, 1, 0, 62, 6, 3, 40, 0, 0
-"robber's tools", 62, 108, 20, 0, 0, 0, 150, 0, 0
-"bag of silver ", 0, 1, 0, 0, 0, 0, 300, 0, 0
-"amber gem     ", 0, 1, 0, 0, 0, 0, 500, 0, 0
-"smelling salt ", 0, 1, 0, 255, 0, 3, 50, 0, 0
-"bag of sand   ", 0, 1, 0, 255, 54, 5, 100, 0, 0
-"might potion  ", 0, 1, 0, 24, 5, 3, 200, 0, 0
-"speed potion  ", 0, 1, 0, 30, 5, 3, 200, 0, 0
-"sundial       ", 0, 1, 0, 255, 53, 50, 500, 0, 0
-"curing potion ", 0, 1, 0, 255, 8, 4, 350, 0, 0
-"magic potion  ", 0, 1, 0, 43, 10, 2, 500, 0, 0
-"defense ring  ", 0, 60, 1, 255, 57, 30, 500, 0, 0
-"bag of garbage", 0, 255, 0, 0, 0, 0, 100, 0, 0
-"scroll of fire", 0, 1, 0, 255, 63, 1, 300, 0, 0
-"flying carpet ", 61, 60, 2, 255, 64, 10, 500, 0, 0
-"jade amulet   ", 255, 19, 5, 0, 0, 0, 600, 0, 0
-"antidote brew ", 0, 1, 0, 255, 25, 2, 500, 0, 0
-"skill potion  ", 0, 1, 0, 36, 5, 5, 600, 0, 0
-"boots of speed", 0, 29, 5, 30, 10, 10, 800, 0, 0
-"lucky charm   ", 0, 33, 5, 34, 10, 20, 800, 0, 0
-"wand of fire  ", 53, 90, 15, 255, 63, 10, 1000, 0, 0
-"undead amulet ", 0, 98, 50, 255, 7, 20, 800, 0, 0
-"silent chime  ", 0, 1, 0, 255, 14, 20, 400, 0, 0
-"belt of power ", 14, 23, 5, 0, 0, 0, 600, 0, 0
-"model boat    ", 0, 1, 0, 255, 23, 15, 400, 0, 0
-"defense cloak ", 0, 60, 2, 0, 0, 0, 700, 0, 0
-"knowledge book", 33, 21, 2, 48, 1, 4, 1000, 0, 0
-"ruby idol     ", 0, 1, 0, 0, 0, 0, 3000, 0, 0
-"sorcerer robe ", 61, 21, 5, 255, 65, 20, 2500, 0, 0
-"power gauntlet", 2, 23, 5, 0, 0, 0, 3000, 0, 0
-"cleric's beads", 59, 25, 5, 255, 8, 50, 3000, 0, 0
-"horn of death ", 0, 1, 0, 255, 81, 10, 2500, 0, 0
-"potion of life", 0, 1, 0, 255, 38, 2, 1500, 0, 0
-"shiny pendant ", 0, 102, 30, 255, 56, 10, 2000, 0, 0
-"lightning wand", 50, 94, 20, 255, 66, 10, 1500, 0, 0
-"precision ring", 0, 31, 5, 0, 0, 0, 3000, 0, 0
-"return scroll ", 0, 1, 0, 255, 41, 1, 2000, 0, 0
-"teleport helm ", 0, 88, 10, 255, 83, 20, 5000, 0, 0
-"youth potion  ", 0, 1, 0, 255, 39, 2, 4000, 0, 0
-"bells of time ", 0, 1, 0, 37, 10, 50, 1000, 0, 0
-"magic oil     ", 0, 1, 0, 255, 88, 1, 3000, 0, 0
-"magic vest    ", 0, 88, 20, 255, 78, 10, 6000, 0, 0
-"destroyer wand", 53, 88, 10, 255, 85, 10, 7000, 0, 0
-"element scarab", 0, 25, 5, 255, 44, 20, 6000, 0, 0
-"sun scroll    ", 0, 1, 0, 255, 46, 1, 3000, 0, 0
-"star ruby     ", 0, 33, 10, 255, 49, 30, 6000, 0, 0
-"star sapphire ", 0, 88, 30, 255, 87, 10, 6000, 0, 0
-"wealth chest  ", 0, 1, 0, 58, 20, 5, 6000, 0, 0
-"gem sack      ", 0, 1, 0, 49, 10, 10, 10000, 0, 0
-"diamond collar", 0, 37, 80, 255, 93, 10, 10000, 0, 0
-"fire opal     ", 0, 37, 80, 255, 91, 10, 10000, 0, 0
-"unobtainium   ", 255, 16, 5, 0, 0, 0, 50000, 0, 0
-"vellum scroll ", 0, 1, 0, 0, 0, 0, 10, 0, 0
-"ruby whistle  ", 0, 33, 2, 255, 0, 200, 500, 0, 0
-"kings pass    ", 0, 1, 0, 0, 0, 0, 0, 0, 0
-"merchants pass", 0, 1, 0, 0, 0, 0, 0, 0, 0
-"crystal key   ", 0, 1, 0, 255, 93, 10, 1000, 0, 0
-"coral key     ", 0, 1, 0, 255, 23, 10, 300, 0, 0
-"bronze key    ", 0, 1, 0, 255, 48, 20, 500, 0, 0
-"silver key    ", 0, 1, 0, 255, 51, 30, 600, 0, 0
-"gold key      ", 0, 1, 0, 255, 65, 15, 800, 0, 0
-"diamond key   ", 0, 1, 0, 255, 83, 20, 2000, 0, 0
-"cactus nectar ", 0, 1, 0, 255, 16, 10, 400, 0, 0
-"map of desert ", 0, 1, 0, 255, 53, 20, 400, 0, 0
-"laser blaster ", 0, 31, 5, 255, 85, 10, 2000, 0, 0
-"dragons tooth ", 0, 1, 0, 255, 39, 10, 1500, 0, 0
-"wyvern eye    ", 0, 1, 0, 255, 62, 20, 1000, 0, 0
-"medusa head   ", 0, 255, 0, 0, 0, 0, 0, 0, 0
-"ring of okrim ", 0, 33, 10, 255, 78, 20, 3000, 0, 0
-"b queen idol  ", 0, 1, 0, 0, 0, 0, 0, 0, 0
-"w queen idol  ", 0, 1, 0, 0, 0, 0, 0, 0, 0
-"pirates map a ", 0, 1, 0, 0, 0, 0, 1000, 0, 0
-"pirates map b ", 0, 1, 0, 0, 0, 0, 2000, 0, 0
-"thundranium   ", 0, 1, 0, 24, 15, 250, 10000, 0, 0
-"key card      ", 0, 1, 0, 0, 0, 0, 0, 0, 0
-"eye of goros  ", 0, 1, 0, 255, 89, 20, 10000, 0, 0
-"(useless item)", 0, 1, 0, 0, 0, 0, 0, 0, 0
+"Accurate sword", 71, 31, 6, 32, 5, 10, 6500, 8, 6
+"Sword of Magic", 6, 88, 30, 255, 87, 15, 10000, 8, 5
+"Immortal sword", 70, 33, 5, 255, 39, 25, 7000, 8, 4
+"Axe Protector ", 7, 88, 25, 255, 92, 15, 8000, 8, 5
+"axe Destroyer ", 143, 23, 4, 255, 85, 6, 8000, 8, 5
+"X!xx!x's Sword", 198, 33, 15, 34, 5, 10, 6000, 8, 4
+"Adamantine axe", 7, 33, 8, 255, 36, 5, 12000, 8, 5
+"Ultimate sword", 6, 23, 10, 30, 5, 20, 15000, 20, 6
+"Element sword ", 6, 88, 25, 255, 44, 10, 12000, 8, 5
+"Sling         ", 6, 0, 0, 0, 0, 0, 10, 4, 0
+"Crossbow      ", 6, 0, 0, 0, 0, 0, 50, 6, 0
+"Short bow     ", 7, 0, 0, 0, 0, 0, 75, 8, 0
+"Long bow      ", 7, 0, 0, 0, 0, 0, 100, 10, 0
+"Great bow     ", 7, 0, 0, 0, 0, 0, 250, 12, 0
+"Sling +1      ", 6, 0, 0, 0, 0, 0, 50, 4, 1
+"Crossbow +1   ", 6, 0, 0, 0, 0, 0, 250, 6, 1
+"Short bow +1  ", 7, 0, 0, 0, 0, 0, 375, 8, 1
+"Long bow +1   ", 7, 0, 0, 0, 0, 0, 500, 10, 1
+"Great bow +1  ", 7, 0, 0, 0, 0, 0, 1250, 12, 1
+"Magic sling   ", 6, 88, 10, 89, 20, 10, 800, 4, 3
+"Crossbow +2   ", 54, 31, 2, 0, 0, 0, 1000, 6, 2
+"Short bow +2  ", 135, 102, 10, 0, 0, 0, 1000, 8, 2
+"Long bow +2   ", 71, 102, 10, 0, 0, 0, 1200, 10, 2
+"Great bow +2  ", 7, 98, 30, 0, 0, 0, 2000, 12, 2
+"Crossbow Luck ", 54, 33, 3, 255, 1, 20, 2000, 6, 3
+"crossbow Speed", 6, 29, 4, 255, 2, 10, 2000, 6, 3
+"Lightning bow ", 71, 94, 20, 255, 63, 10, 3000, 10, 3
+"Flaming bow   ", 135, 90, 20, 255, 66, 10, 3000, 10, 3
+"Giant's bow   ", 7, 0, 0, 0, 0, 0, 2000, 20, 3
+"The Magic Bow ", 71, 88, 20, 255, 83, 5, 6000, 16, 4
+"Bow of Power  ", 135, 98, 40, 36, 4, 15, 6000, 16, 4
+"Robber's x-bow", 62, 29, 4, 255, 61, 10, 8000, 10, 5
+"Archer's bow  ", 55, 31, 5, 255, 85, 10, 12000, 20, 5
+"Obsidian bow  ", 0, 255, 0, 255, 80, 3, 2000, 3, 0
+"Staff         ", 1, 0, 0, 0, 0, 0, 30, 8, 0
+"Glaive        ", 7, 0, 0, 0, 0, 0, 80, 10, 0
+"Bardiche      ", 7, 0, 0, 0, 0, 0, 80, 10, 0
+"Halberd       ", 7, 0, 0, 0, 0, 0, 100, 12, 0
+"Great hammer  ", 3, 0, 0, 0, 0, 0, 150, 12, 0
+"Great axe     ", 7, 0, 0, 0, 0, 0, 150, 12, 0
+"Flamberge     ", 7, 0, 0, 0, 0, 0, 250, 14, 0
+"Staff +1      ", 1, 21, 1, 0, 0, 0, 200, 8, 1
+"Glaive +1     ", 135, 29, 1, 0, 0, 0, 350, 10, 1
+"Bardiche +1   ", 71, 29, 1, 0, 0, 0, 350, 10, 1
+"Halberd +1    ", 7, 0, 0, 0, 0, 0, 500, 12, 1
+"Great hammer+1", 3, 25, 1, 0, 0, 0, 550, 12, 1
+"Great axe +1  ", 7, 0, 0, 0, 0, 0, 500, 12, 1
+"Flamberge +1  ", 7, 0, 0, 0, 0, 0, 600, 14, 1
+"Staff +2      ", 1, 33, 2, 255, 54, 10, 600, 8, 2
+"Glaive +2     ", 135, 29, 2, 0, 0, 0, 900, 10, 2
+"Bardiche +2   ", 71, 29, 2, 0, 0, 0, 900, 10, 2
+"Halberd +2    ", 7, 29, 3, 255, 3, 20, 1200, 12, 2
+"Great hammer+2", 3, 25, 2, 255, 1, 20, 1200, 12, 2
+"Great axe +2  ", 7, 23, 2, 24, 2, 10, 1200, 12, 2
+"Flamberge +2  ", 7, 23, 2, 24, 2, 10, 2000, 14, 2
+"Staff of Light", 1, 102, 40, 255, 19, 20, 1500, 8, 3
+"Cold glaive   ", 135, 92, 40, 255, 21, 20, 2500, 10, 3
+"Curing staff  ", 121, 100, 30, 255, 5, 12, 2500, 8, 3
+"Minotaur's axe", 7, 255, 0, 0, 0, 0, 2000, 3, 0
+"Thunder hammer", 59, 94, 40, 255, 29, 15, 3500, 12, 4
+"Great axe +3  ", 7, 23, 4, 30, 3, 10, 3500, 12, 3
+"Flamberge +3  ", 7, 23, 4, 30, 3, 10, 5000, 14, 3
+"Sorcerer staff", 61, 21, 4, 255, 91, 10, 8000, 8, 5
+"Staff of Magic", 1, 88, 25, 255, 87, 10, 5000, 8, 4
+"Demon's glaive", 215, 96, 50, 255, 71, 40, 10000, 10, 5
+"Devil's glaive", 215, 92, 50, 255, 72, 40, 10000, 10, 5
+"The flamberge ", 7, 23, 10, 255, 73, 10, 15000, 30, 6
+"Holy flamberge", 111, 88, 50, 255, 43, 15, 20000, 20, 6
+"Evil flamberge", 175, 88, 50, 255, 46, 15, 20000, 20, 6
+"Padded armor  ", 0, 0, 0, 0, 0, 0, 10, 0, 1
+"Leather armor ", 2, 0, 0, 0, 0, 0, 20, 0, 2
+"Scale armor   ", 2, 0, 0, 0, 0, 0, 50, 0, 3
+"Ring mail     ", 2, 0, 0, 0, 0, 0, 100, 0, 4
+"Chain mail    ", 3, 0, 0, 0, 0, 0, 200, 0, 5
+"Splint mail   ", 15, 0, 0, 0, 0, 0, 400, 0, 6
+"Plate mail    ", 15, 0, 0, 0, 0, 0, 1000, 0, 7
+"Padded +1     ", 0, 0, 0, 0, 0, 0, 25, 0, 2
+"Leather +1    ", 2, 0, 0, 0, 0, 0, 60, 0, 3
+"Scale +1      ", 2, 0, 0, 0, 0, 0, 120, 0, 4
+"Ring mail +1  ", 2, 90, 5, 0, 0, 0, 250, 0, 5
+"Chain mail +1 ", 3, 90, 5, 0, 0, 0, 500, 0, 6
+"Splint mail +1", 15, 90, 10, 0, 0, 0, 1000, 0, 7
+"Plate mail +1 ", 15, 90, 10, 0, 0, 0, 2500, 0, 8
+"Leather +2    ", 2, 94, 10, 0, 0, 0, 150, 0, 4
+"Scale +2      ", 2, 92, 10, 0, 0, 0, 300, 0, 5
+"Ring mail +2  ", 2, 90, 15, 0, 0, 0, 750, 0, 6
+"Chain mail +2 ", 3, 90, 15, 0, 0, 0, 1500, 0, 7
+"Splint mail +2", 15, 90, 20, 0, 0, 0, 2500, 0, 8
+"Plate mail +2 ", 15, 90, 20, 0, 0, 0, 7500, 0, 9
+"Bracers ac 4  ", 52, 0, 0, 0, 0, 0, 1000, 0, 4
+"Ring mail +3  ", 2, 29, 2, 0, 0, 0, 2000, 0, 7
+"Chain mail +3 ", 3, 33, 4, 0, 0, 0, 4500, 0, 8
+"Splint mail +3", 15, 23, 2, 0, 0, 0, 7500, 0, 9
+"Plate mail +3 ", 15, 90, 50, 0, 0, 0, 15000, 0, 10
+"Bracers AC 6  ", 52, 98, 20, 255, 77, 20, 2500, 0, 6
+"Chain mail +3 ", 3, 255, 0, 0, 0, 0, 4500, 0, 0
+"Bracers AC 8  ", 0, 255, 0, 0, 0, 0, 7500, 0, 0
+"Blue ring mail", 2, 94, 60, 255, 66, 30, 10000, 0, 9
+"Red chain mail", 3, 90, 60, 255, 63, 30, 15000, 0, 10
+"X!xx!x's Plate", 207, 33, 10, 34, 5, 10, 18000, 0, 11
+"Holy plate    ", 111, 88, 40, 99, 50, 30, 25000, 0, 12
+"Un-holy plate ", 175, 88, 40, 99, 50, 30, 25000, 0, 12
+"Ultimate plate", 21, 88, 40, 255, 49, 30, 30000, 0, 13
+"Bracers AC 8  ", 52, 98, 60, 255, 77, 40, 7500, 0, 8
+"Small shield  ", 10, 0, 0, 0, 0, 0, 10, 0, 1
+"Large shield  ", 10, 0, 0, 0, 0, 0, 50, 0, 2
+"Silver shield ", 10, 102, 20, 0, 0, 0, 100, 0, 2
+"Small shield+1", 10, 0, 0, 0, 0, 0, 100, 0, 2
+"Large shield+1", 10, 0, 0, 0, 0, 0, 200, 0, 3
+"Large shield+1", 10, 255, 0, 0, 0, 0, 200, 0, 0
+"Small shield+2", 10, 0, 0, 0, 0, 0, 400, 0, 3
+"Large shield+2", 10, 0, 0, 0, 0, 0, 800, 0, 4
+"Large shield+2", 10, 255, 0, 0, 0, 0, 800, 0, 0
+"Fire shield   ", 10, 90, 20, 0, 0, 0, 2500, 0, 5
+"Cold shield   ", 10, 92, 20, 0, 0, 0, 2500, 0, 5
+"Elec shield   ", 10, 94, 20, 0, 0, 0, 2500, 0, 5
+"Acid shield   ", 10, 96, 20, 0, 0, 0, 2500, 0, 5
+"Magic shield  ", 10, 88, 20, 255, 77, 20, 5000, 0, 6
+"Dragon shield ", 10, 88, 10, 255, 92, 20, 8000, 0, 7
+"Rope & Hooks  ", 0, 1, 0, 255, 58, 30, 10, 0, 0
+"Torch         ", 0, 1, 0, 255, 4, 1, 2, 0, 0
+"Lantern       ", 0, 1, 0, 255, 4, 10, 20, 0, 0
+"10 Foot pole  ", 0, 1, 0, 0, 0, 0, 10, 0, 0
+"Garlic        ", 0, 1, 0, 0, 0, 0, 5, 0, 0
+"Wolfsbane     ", 0, 1, 0, 0, 0, 0, 10, 0, 0
+"Belladonna    ", 0, 1, 0, 0, 0, 0, 25, 0, 0
+"Magic herbs   ", 0, 1, 0, 255, 3, 3, 50, 0, 0
+"Dried beef    ", 0, 1, 0, 62, 6, 3, 40, 0, 0
+"Robber's tools", 62, 108, 20, 0, 0, 0, 150, 0, 0
+"Bag of Silver ", 0, 1, 0, 0, 0, 0, 300, 0, 0
+"Amber gem     ", 0, 1, 0, 0, 0, 0, 500, 0, 0
+"Smelling salt ", 0, 1, 0, 255, 0, 3, 50, 0, 0
+"Bag of sand   ", 0, 1, 0, 255, 54, 5, 100, 0, 0
+"Might potion  ", 0, 1, 0, 24, 5, 3, 200, 0, 0
+"Speed potion  ", 0, 1, 0, 30, 5, 3, 200, 0, 0
+"Sundial       ", 0, 1, 0, 255, 53, 50, 500, 0, 0
+"Curing potion ", 0, 1, 0, 255, 8, 4, 350, 0, 0
+"Magic potion  ", 0, 1, 0, 43, 10, 2, 500, 0, 0
+"Defense ring  ", 0, 60, 1, 255, 57, 30, 500, 0, 0
+"Bag of garbage", 0, 255, 0, 0, 0, 0, 100, 0, 0
+"Scroll of fire", 0, 1, 0, 255, 63, 1, 300, 0, 0
+"Flying carpet ", 61, 60, 2, 255, 64, 10, 500, 0, 0
+"Jade amulet   ", 255, 19, 5, 0, 0, 0, 600, 0, 0
+"Antidote brew ", 0, 1, 0, 255, 25, 2, 500, 0, 0
+"Skill potion  ", 0, 1, 0, 36, 5, 5, 600, 0, 0
+"Boots of Speed", 0, 29, 5, 30, 10, 10, 800, 0, 0
+"Lucky charm   ", 0, 33, 5, 34, 10, 20, 800, 0, 0
+"Wand of Fire  ", 53, 90, 15, 255, 63, 10, 1000, 0, 0
+"Undead amulet ", 0, 98, 50, 255, 7, 20, 800, 0, 0
+"Silent chime  ", 0, 1, 0, 255, 14, 20, 400, 0, 0
+"Belt of Power ", 14, 23, 5, 0, 0, 0, 600, 0, 0
+"Model boat    ", 0, 1, 0, 255, 23, 15, 400, 0, 0
+"Defense cloak ", 0, 60, 2, 0, 0, 0, 700, 0, 0
+"Knowledge book", 33, 21, 2, 48, 1, 4, 1000, 0, 0
+"Ruby idol     ", 0, 1, 0, 0, 0, 0, 3000, 0, 0
+"Sorcerer robe ", 61, 21, 5, 255, 65, 20, 2500, 0, 0
+"Power gauntlet", 2, 23, 5, 0, 0, 0, 3000, 0, 0
+"Cleric's beads", 59, 25, 5, 255, 8, 50, 3000, 0, 0
+"Horn of Death ", 0, 1, 0, 255, 81, 10, 2500, 0, 0
+"Potion of Life", 0, 1, 0, 255, 38, 2, 1500, 0, 0
+"Shiny pendant ", 0, 102, 30, 255, 56, 10, 2000, 0, 0
+"Lightning wand", 50, 94, 20, 255, 66, 10, 1500, 0, 0
+"Precision ring", 0, 31, 5, 0, 0, 0, 3000, 0, 0
+"Return scroll ", 0, 1, 0, 255, 41, 1, 2000, 0, 0
+"Teleport helm ", 0, 88, 10, 255, 83, 20, 5000, 0, 0
+"Youth potion  ", 0, 1, 0, 255, 39, 2, 4000, 0, 0
+"Bells of Time ", 0, 1, 0, 37, 10, 50, 1000, 0, 0
+"Magic oil     ", 0, 1, 0, 255, 88, 1, 3000, 0, 0
+"Magic vest    ", 0, 88, 20, 255, 78, 10, 6000, 0, 0
+"Destroyer wand", 53, 88, 10, 255, 85, 10, 7000, 0, 0
+"Element scarab", 0, 25, 5, 255, 44, 20, 6000, 0, 0
+"Sun scroll    ", 0, 1, 0, 255, 46, 1, 3000, 0, 0
+"Star ruby     ", 0, 33, 10, 255, 49, 30, 6000, 0, 0
+"Star sapphire ", 0, 88, 30, 255, 87, 10, 6000, 0, 0
+"Wealth chest  ", 0, 1, 0, 58, 20, 5, 6000, 0, 0
+"Gem sack      ", 0, 1, 0, 49, 10, 10, 10000, 0, 0
+"Diamond collar", 0, 37, 80, 255, 93, 10, 10000, 0, 0
+"Fire opal     ", 0, 37, 80, 255, 91, 10, 10000, 0, 0
+"Unobtainium   ", 255, 16, 5, 0, 0, 0, 50000, 0, 0
+"Vellum scroll ", 0, 1, 0, 0, 0, 0, 10, 0, 0
+"Ruby whistle  ", 0, 33, 2, 255, 0, 200, 500, 0, 0
+"Kings Pass    ", 0, 1, 0, 0, 0, 0, 0, 0, 0
+"Merchants Pass", 0, 1, 0, 0, 0, 0, 0, 0, 0
+"Crystal key   ", 0, 1, 0, 255, 93, 10, 1000, 0, 0
+"Coral key     ", 0, 1, 0, 255, 23, 10, 300, 0, 0
+"Bronze key    ", 0, 1, 0, 255, 48, 20, 500, 0, 0
+"Silver key    ", 0, 1, 0, 255, 51, 30, 600, 0, 0
+"Gold key      ", 0, 1, 0, 255, 65, 15, 800, 0, 0
+"Diamond key   ", 0, 1, 0, 255, 83, 20, 2000, 0, 0
+"Cactus nectar ", 0, 1, 0, 255, 16, 10, 400, 0, 0
+"Map of Desert ", 0, 1, 0, 255, 53, 20, 400, 0, 0
+"Laser blaster ", 0, 31, 5, 255, 85, 10, 2000, 0, 0
+"Dragons tooth ", 0, 1, 0, 255, 39, 10, 1500, 0, 0
+"Wyvern eye    ", 0, 1, 0, 255, 62, 20, 1000, 0, 0
+"Medusa head   ", 0, 255, 0, 0, 0, 0, 0, 0, 0
+"Ring of Okrim ", 0, 33, 10, 255, 78, 20, 3000, 0, 0
+"B Queen Idol  ", 0, 1, 0, 0, 0, 0, 0, 0, 0
+"W Queen Idol  ", 0, 1, 0, 0, 0, 0, 0, 0, 0
+"Pirates Map A ", 0, 1, 0, 0, 0, 0, 1000, 0, 0
+"Pirates Map B ", 0, 1, 0, 0, 0, 0, 2000, 0, 0
+"Thundranium   ", 0, 1, 0, 24, 15, 250, 10000, 0, 0
+"Key card      ", 0, 1, 0, 0, 0, 0, 0, 0, 0
+"Eye of Goros  ", 0, 1, 0, 255, 89, 20, 10000, 0, 0
+"(Useless Item)", 0, 1, 0, 0, 0, 0, 0, 0, 0
  
\ No newline at end of file
diff --git a/engines/mm/mm1/views_enh/character_base.cpp b/engines/mm/mm1/views_enh/character_base.cpp
index ef42995b64c..135ad9fb953 100644
--- a/engines/mm/mm1/views_enh/character_base.cpp
+++ b/engines/mm/mm1/views_enh/character_base.cpp
@@ -30,6 +30,11 @@ namespace ViewsEnh {
 #define LINE1_Y 5
 #define COL1_X 30
 #define COL3_X 220
+#define BACKPACK_Y 103
+
+CharacterBase::CharacterBase(const Common::String &name) : ScrollView(name) {
+	_escSprite.load("esc.icn");
+}
 
 void CharacterBase::printStats() {
 	const Character &c = *g_globals->_currCharacter;
@@ -115,21 +120,21 @@ void CharacterBase::printCondition() {
 
 void CharacterBase::printInventory() {
 	const Character &c = *g_globals->_currCharacter;
-	writeLine(12, STRING["stats.inventory"]);
+	writeString(0, BACKPACK_Y, STRING["stats.inventory"]);
 	for (int i = 0; i < 5; ++i)
 		writeChar('-');
 
 	// Print the equipped and backpack items
 	for (int i = 0; i < INVENTORY_COUNT; ++i) {
 		// Equippied item
-		writeLine(13 + i, Common::String::format("%c) ", '1' + i));
+		writeString(0, BACKPACK_Y + 9 * (i + 1), Common::String::format("%c) ", '1' + i));
 		if (c._equipped[i])
 			writeString(STRING[Common::String::format("stats.items.%d",
 				(int)c._equipped[i]._id)]);
 
 		// Backpack item
-		writeLine(13 + i, Common::String::format("%c) ", 'A' + i), ALIGN_LEFT,
-			160 - _innerBounds.left);
+		writeString(160 - _innerBounds.left, BACKPACK_Y + 9 * (i + 1),
+			Common::String::format("%c) ", 'A' + i));
 		if (c._backpack[i])
 			writeString(STRING[Common::String::format("stats.items.%d",
 			(int)c._backpack[i]._id)]);
diff --git a/engines/mm/mm1/views_enh/character_base.h b/engines/mm/mm1/views_enh/character_base.h
index 5acb0e15b32..8418f51de83 100644
--- a/engines/mm/mm1/views_enh/character_base.h
+++ b/engines/mm/mm1/views_enh/character_base.h
@@ -41,11 +41,14 @@ private:
 	void printStats();
 	void printSummary();
 	void printInventory();
+
 protected:
+	Shared::Xeen::SpriteResource _escSprite;
+
 	void printCondition();
 
 public:
-	CharacterBase(const Common::String &name) : ScrollView(name) {}
+	CharacterBase(const Common::String &name);
 	~CharacterBase() {}
 
 	bool msgAction(const ActionMessage &msg) override;
diff --git a/engines/mm/mm1/views_enh/character_view.cpp b/engines/mm/mm1/views_enh/character_view.cpp
new file mode 100644
index 00000000000..5296b691549
--- /dev/null
+++ b/engines/mm/mm1/views_enh/character_view.cpp
@@ -0,0 +1,41 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "mm/mm1/views_enh/character_view.h"
+#include "mm/mm1/utils/strings.h"
+#include "mm/mm1/globals.h"
+
+namespace MM {
+namespace MM1 {
+namespace ViewsEnh {
+
+CharacterView::CharacterView() : CharacterBase("CharacterView") {
+	addButton(&_escSprite, Common::Point(90, 162), 0, KEYBIND_ESCAPE);
+}
+
+void CharacterView::draw() {
+	CharacterBase::draw();
+	writeString(120, 168, STRING["dialogs.misc.go_back"]);
+}
+
+} // namespace ViewsEnh
+} // namespace MM1
+} // namespace MM
diff --git a/engines/mm/mm1/views_enh/character_view.h b/engines/mm/mm1/views_enh/character_view.h
index 260e009e02a..ecb920980f3 100644
--- a/engines/mm/mm1/views_enh/character_view.h
+++ b/engines/mm/mm1/views_enh/character_view.h
@@ -34,13 +34,13 @@ namespace ViewsEnh {
  */
 class CharacterView : public CharacterBase {
 public:
-	CharacterView() : CharacterBase("CharacterView") {}
+	CharacterView();
 	virtual ~CharacterView() {}
 
-	void draw() override {
-		CharacterBase::draw();
-		escToGoBack();
-	}
+	/**
+	 * Draw the view
+	 */
+	void draw() override;
 };
 
 } // namespace Views
diff --git a/engines/mm/module.mk b/engines/mm/module.mk
index acda61701b8..da21d36fe9e 100644
--- a/engines/mm/module.mk
+++ b/engines/mm/module.mk
@@ -129,6 +129,7 @@ MODULE_OBJS += \
 	mm1/views_enh/character_info.o \
 	mm1/views_enh/character_manage.o \
 	mm1/views_enh/character_select.o \
+	mm1/views_enh/character_view.o \
 	mm1/views_enh/characters.o \
 	mm1/views_enh/dialogs.o \
 	mm1/views_enh/game.o \


Commit: 93f86a1610fe221ad18d6ae0ae1b255fd1833a38
    https://github.com/scummvm/scummvm/commit/93f86a1610fe221ad18d6ae0ae1b255fd1833a38
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-04T22:16:19-08:00

Commit Message:
MM: MM1: Add support for half-size buttons

Changed paths:
    engines/mm/mm1/views_enh/character_view.cpp
    engines/mm/mm1/views_enh/scroll_view.cpp
    engines/mm/mm1/views_enh/scroll_view.h


diff --git a/engines/mm/mm1/views_enh/character_view.cpp b/engines/mm/mm1/views_enh/character_view.cpp
index 5296b691549..d8fa83dd338 100644
--- a/engines/mm/mm1/views_enh/character_view.cpp
+++ b/engines/mm/mm1/views_enh/character_view.cpp
@@ -28,12 +28,12 @@ namespace MM1 {
 namespace ViewsEnh {
 
 CharacterView::CharacterView() : CharacterBase("CharacterView") {
-	addButton(&_escSprite, Common::Point(90, 162), 0, KEYBIND_ESCAPE);
+	addButton(&_escSprite, Common::Point(105, 172), 0, KEYBIND_ESCAPE, true);
 }
 
 void CharacterView::draw() {
 	CharacterBase::draw();
-	writeString(120, 168, STRING["dialogs.misc.go_back"]);
+	writeString(120, 174, STRING["dialogs.misc.go_back"]);
 }
 
 } // namespace ViewsEnh
diff --git a/engines/mm/mm1/views_enh/scroll_view.cpp b/engines/mm/mm1/views_enh/scroll_view.cpp
index 7503cbadfb7..ebab01235f3 100644
--- a/engines/mm/mm1/views_enh/scroll_view.cpp
+++ b/engines/mm/mm1/views_enh/scroll_view.cpp
@@ -43,14 +43,14 @@ ScrollView::ScrollView(const Common::String &name,
 
 int ScrollView::addButton(Shared::Xeen::SpriteResource *sprites,
 		const Common::Point &pos, int frame,
-		const Common::KeyState &key) {
-	_buttons.push_back(Button(sprites, pos, frame, key));
+		const Common::KeyState &key, bool halfSize) {
+	_buttons.push_back(Button(sprites, pos, frame, key, halfSize));
 	return _buttons.size() - 1;
 }
 
 int ScrollView::addButton(Shared::Xeen::SpriteResource *sprites,
-		const Common::Point &pos, int frame, KeybindingAction action) {
-	_buttons.push_back(Button(sprites, pos, frame, action));
+		const Common::Point &pos, int frame, KeybindingAction action, bool halfSize) {
+	_buttons.push_back(Button(sprites, pos, frame, action, halfSize));
 	return _buttons.size() - 1;
 }
 
@@ -78,10 +78,22 @@ void ScrollView::draw() {
 	for (uint i = 0; i < _buttons.size(); ++i) {
 		const Button &btn = _buttons[i];
 		if (btn._enabled && btn._frame != -1) {
-			btn._sprites->draw(&s,
-				btn._frame + (_selectedButton == (int)i ? 1 : 0),
-				Common::Point(btn._bounds.left + _bounds.borderSize(),
-					btn._bounds.top + _bounds.borderSize()));
+			const Common::Point pt(btn._bounds.left + _bounds.borderSize(),
+				btn._bounds.top + _bounds.borderSize());
+			int frame = btn._frame + (_selectedButton == (int)i ? 1 : 0);
+
+			if (btn._halfSize) {
+				// Draw to a temporary surface, and then copy it over at 50% size
+				Graphics::ManagedSurface tmp(GLYPH_W, GLYPH_H);
+				tmp.setTransparentColor(254);
+				btn._sprites->draw(&tmp, frame, Common::Point(0, 0));
+				s.transBlitFrom(tmp, Common::Rect(0, 0, GLYPH_W, GLYPH_H),
+					Common::Rect(pt.x, pt.y, pt.x + GLYPH_W / 2, pt.y + GLYPH_H / 2),
+					254);
+
+			} else {
+				btn._sprites->draw(&s, frame, pt);
+			}
 		}
 	}
 }
diff --git a/engines/mm/mm1/views_enh/scroll_view.h b/engines/mm/mm1/views_enh/scroll_view.h
index 089f7726566..d86aa45597a 100644
--- a/engines/mm/mm1/views_enh/scroll_view.h
+++ b/engines/mm/mm1/views_enh/scroll_view.h
@@ -29,8 +29,8 @@ namespace MM1 {
 namespace ViewsEnh {
 
 #define FRAME_BORDER_SIZE 8
-#define GLYPH_W 16
-#define GLYPH_H 16
+#define GLYPH_W 24
+#define GLYPH_H 20
 
 class ScrollView : public TextView {
 	struct Button {
@@ -40,18 +40,25 @@ class ScrollView : public TextView {
 		Common::KeyState _key;
 		KeybindingAction _action = KEYBIND_NONE;
 		bool _enabled = true;
+		bool _halfSize = false;
 
 		Button(Shared::Xeen::SpriteResource *sprites,
 			const Common::Point &pos, int frame,
-			const Common::KeyState &key) :
-			_sprites(sprites), _frame(frame), _key(key),
-			_bounds(Common::Rect(pos.x, pos.y, pos.x + GLYPH_W, pos.y + GLYPH_H)) {
+			const Common::KeyState &key, bool halfSize = false) :
+			_sprites(sprites), _frame(frame), _key(key), _halfSize(halfSize),
+			_bounds(Common::Rect(pos.x, pos.y,
+				pos.x + (halfSize ? GLYPH_W / 2 : GLYPH_W),
+				pos.y + (halfSize ? GLYPH_H / 2 : GLYPH_H))
+			) {
 		}
 		Button(Shared::Xeen::SpriteResource *sprites,
 			const Common::Point &pos, int frame,
-			KeybindingAction action) :
-			_sprites(sprites), _frame(frame), _action(action),
-			_bounds(Common::Rect(pos.x, pos.y, pos.x + GLYPH_W, pos.y + GLYPH_H)) {
+			KeybindingAction action, bool halfSize = false) :
+			_sprites(sprites), _frame(frame), _action(action), _halfSize(halfSize),
+			_bounds(Common::Rect(pos.x, pos.y,
+				pos.x + (halfSize ? GLYPH_W / 2 : GLYPH_W),
+				pos.y + (halfSize ? GLYPH_H / 2 : GLYPH_H))
+			) {
 		}
 		Button(const Common::Rect &r, const Common::KeyState &key) :
 			_sprites(nullptr), _bounds(r), _key(key) {
@@ -102,13 +109,14 @@ public:
 	 */
 	int addButton(Shared::Xeen::SpriteResource *sprites,
 		const Common::Point &pos, int frame,
-		const Common::KeyState &key);
+		const Common::KeyState &key, bool halfSize = false);
 
 	/**
 	 * Add a button for display
 	 */
 	int addButton(Shared::Xeen::SpriteResource *sprites,
-		const Common::Point &pos, int frame, KeybindingAction action);
+		const Common::Point &pos, int frame, KeybindingAction action,
+		bool halfSize = false);
 
 	/**
 	 * Add a button for display


Commit: 49fa6c2c4d05789a5cf2516a2c49bddfe6b849d1
    https://github.com/scummvm/scummvm/commit/49fa6c2c4d05789a5cf2516a2c49bddfe6b849d1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-04T22:16:19-08:00

Commit Message:
MM: MM1: Add Esc button to Inn view

Changed paths:
    engines/mm/mm1/views_enh/characters.cpp
    engines/mm/mm1/views_enh/locations/inn.cpp
    engines/mm/mm1/views_enh/scroll_view.h


diff --git a/engines/mm/mm1/views_enh/characters.cpp b/engines/mm/mm1/views_enh/characters.cpp
index 0e31bfa5565..9e57f907192 100644
--- a/engines/mm/mm1/views_enh/characters.cpp
+++ b/engines/mm/mm1/views_enh/characters.cpp
@@ -30,7 +30,7 @@ namespace ViewsEnh {
 Characters::Characters() : ScrollView("Characters") {
 	_bounds.setBorderSize(10);
 	_escSprite.load("esc.icn");
-	addButton(&_escSprite, Common::Point(90, 162), 0, KEYBIND_ESCAPE);
+	addButton(&_escSprite, Common::Point(105, 172), 0, KEYBIND_ESCAPE, true);
 }
 
 void Characters::draw() {
@@ -74,7 +74,7 @@ void Characters::draw() {
 		writeString(0, 152, STRING["enhdialogs.characters.left_click"], ALIGN_MIDDLE);
 	}
 
-	writeString(120, 168, STRING["dialogs.misc.go_back"]);
+	writeString(120, 174, STRING["dialogs.misc.go_back"]);
 }
 
 bool Characters::msgMouseDown(const MouseDownMessage &msg) {
diff --git a/engines/mm/mm1/views_enh/locations/inn.cpp b/engines/mm/mm1/views_enh/locations/inn.cpp
index bc3d5ec69e8..18a103e1ef6 100644
--- a/engines/mm/mm1/views_enh/locations/inn.cpp
+++ b/engines/mm/mm1/views_enh/locations/inn.cpp
@@ -32,8 +32,10 @@ namespace Locations {
 Inn::Inn() : ScrollView("Inn") {
 	_bounds.setBorderSize(10);
 	_escSprite.load("esc.icn");
-	addButton(&_escSprite, Common::Point(100, 162), 0, KEYBIND_SELECT);
-	setButtonEnabled(0, false);
+
+	addButton(&_escSprite, Common::Point(135, 166), 0, KEYBIND_ESCAPE, true);
+	addButton(&_escSprite, Common::Point(65, 166), 0, KEYBIND_SELECT, true);
+	setButtonEnabled(1, false);
 }
 
 bool Inn::msgFocus(const FocusMessage &msg) {
@@ -68,6 +70,13 @@ bool Inn::msgFocus(const FocusMessage &msg) {
 }
 
 void Inn::draw() {
+	setButtonEnabled(1, !_partyChars.empty());
+	if (!_partyChars.empty()) {
+		setButtonPos(0, Common::Point(135, 166));
+	} else {
+		setButtonPos(0, Common::Point(105, 166));
+	}
+
 	ScrollView::draw();
 	Graphics::ManagedSurface s = getSurface();
 
@@ -114,9 +123,13 @@ void Inn::draw() {
 
 		writeString(0, 142, STRING["enhdialogs.inn.left_click"], ALIGN_MIDDLE);
 		writeString(0, 152, STRING["enhdialogs.inn.right_click"], ALIGN_MIDDLE);
+	}
 
-		if (!_partyChars.empty())
-			writeString(155, 168, STRING["enhdialogs.inn.exit"], ALIGN_MIDDLE);
+	if (!_partyChars.empty()) {
+		writeString(80, 168, STRING["enhdialogs.inn.exit"]);
+		writeString(150, 168, STRING["dialogs.misc.go_back"]);
+	} else {
+		writeString(120, 168, STRING["dialogs.misc.go_back"]);
 	}
 }
 
diff --git a/engines/mm/mm1/views_enh/scroll_view.h b/engines/mm/mm1/views_enh/scroll_view.h
index d86aa45597a..29c2286fd48 100644
--- a/engines/mm/mm1/views_enh/scroll_view.h
+++ b/engines/mm/mm1/views_enh/scroll_view.h
@@ -135,6 +135,13 @@ public:
 		_buttons[buttonNum]._enabled = enabled;
 	}
 
+	/**
+	 * Set a button's position
+	 */
+	void setButtonPos(int buttonNum, const Common::Point &pos) {
+		_buttons[buttonNum]._bounds.moveTo(pos);
+	}
+
 	/**
 	 * Reset selected button
 	 */




More information about the Scummvm-git-logs mailing list