[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