[Scummvm-git-logs] scummvm master -> 929ad0f6a41892602069209e8abc43b19e01f9c4
dreammaster
noreply at scummvm.org
Sun Apr 2 03:59:17 UTC 2023
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c3225d4258 MM: MM1: Change Interaction to derive from PartyView
929ad0f6a4 MM: MM1: Finish Resistances interaction
Commit: c3225d4258d866286ab2ec0433cc2e4e569dd74d
https://github.com/scummvm/scummvm/commit/c3225d4258d866286ab2ec0433cc2e4e569dd74d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-04-01T20:59:10-07:00
Commit Message:
MM: MM1: Change Interaction to derive from PartyView
Changed paths:
engines/mm/mm1/views_enh/interactions/interaction.cpp
engines/mm/mm1/views_enh/interactions/interaction.h
engines/mm/mm1/views_enh/interactions/resistances.cpp
engines/mm/mm1/views_enh/interactions/resistances.h
diff --git a/engines/mm/mm1/views_enh/interactions/interaction.cpp b/engines/mm/mm1/views_enh/interactions/interaction.cpp
index 45c969d16ba..868439f7564 100644
--- a/engines/mm/mm1/views_enh/interactions/interaction.cpp
+++ b/engines/mm/mm1/views_enh/interactions/interaction.cpp
@@ -30,7 +30,7 @@ namespace MM1 {
namespace ViewsEnh {
namespace Interactions {
-Interaction::Interaction(const Common::String &name, int portrait) : ScrollView(name) {
+Interaction::Interaction(const Common::String &name, int portrait) : PartyView(name) {
_bounds = Common::Rect(8, 8, 224, 140);
_frame.load("frame.fac");
_portrait.load(Common::String::format("face%02d.fac", portrait));
@@ -46,16 +46,16 @@ bool Interaction::msgGame(const GameMessage &msg) {
return true;
}
- return ScrollView::msgGame(msg);
+ return PartyView::msgGame(msg);
}
bool Interaction::msgUnfocus(const UnfocusMessage &msg) {
- ScrollView::msgUnfocus(msg);
+ PartyView::msgUnfocus(msg);
return true;
}
void Interaction::draw() {
- ScrollView::draw();
+ PartyView::draw();
Graphics::ManagedSurface s = getSurface();
_frame.draw(&s, 0, Common::Point(8, 8));
@@ -74,7 +74,7 @@ void Interaction::draw() {
bool Interaction::tick() {
if (_animated && ++_tickCtr >= 10) {
_tickCtr = 0;
- _portraitFrameNum = g_engine->getRandomNumber(0, 3);
+ _portraitFrameNum = g_engine->getRandomNumber(0, 2);
redraw();
}
@@ -101,7 +101,6 @@ bool Interaction::msgAction(const ActionMessage &msg) {
} else if (msg._action == KEYBIND_SELECT) {
// ***DEBUG*** - Used for cycling through portraits.
// To let me pick good portraits from Xeen
- _animated = false;
_lines.clear();
++_portraitNum;
_portrait.load(Common::String::format("face%02d.fac", _portraitNum));
@@ -109,7 +108,7 @@ bool Interaction::msgAction(const ActionMessage &msg) {
Interaction::draw();
writeNumber(20, 70, _portraitNum);
- } else {
+ } else if (!PartyView::msgAction(msg)) {
viewAction();
}
@@ -117,7 +116,10 @@ bool Interaction::msgAction(const ActionMessage &msg) {
}
bool Interaction::msgMouseDown(const MouseDownMessage &msg) {
- viewAction();
+ if (!PartyView::msgMouseDown(msg)) {
+ viewAction();
+ }
+
return true;
}
diff --git a/engines/mm/mm1/views_enh/interactions/interaction.h b/engines/mm/mm1/views_enh/interactions/interaction.h
index 8fa116c8a2d..ac8dd828020 100644
--- a/engines/mm/mm1/views_enh/interactions/interaction.h
+++ b/engines/mm/mm1/views_enh/interactions/interaction.h
@@ -22,7 +22,7 @@
#ifndef MM1_VIEWS_ENH_INTERACTIONS_INTERACTION_H
#define MM1_VIEWS_ENH_INTERACTIONS_INTERACTION_H
-#include "mm/mm1/views_enh/scroll_view.h"
+#include "mm/mm1/views_enh/party_view.h"
#include "mm/shared/xeen/sprites.h"
namespace MM {
@@ -30,7 +30,7 @@ namespace MM1 {
namespace ViewsEnh {
namespace Interactions {
-class Interaction : public ScrollView {
+class Interaction : public PartyView {
private:
Shared::Xeen::SpriteResource _frame;
Shared::Xeen::SpriteResource _portrait;
@@ -42,6 +42,10 @@ protected:
bool _animated = true;
int _portraitNum = 0;
protected:
+ bool selectCharByDefault() const override {
+ return false;
+ }
+
/**
* Handles any action/press
*/
diff --git a/engines/mm/mm1/views_enh/interactions/resistances.cpp b/engines/mm/mm1/views_enh/interactions/resistances.cpp
index 887d90178ff..6b2e8439c78 100644
--- a/engines/mm/mm1/views_enh/interactions/resistances.cpp
+++ b/engines/mm/mm1/views_enh/interactions/resistances.cpp
@@ -28,8 +28,7 @@ namespace MM1 {
namespace ViewsEnh {
namespace Interactions {
-Resistances::Resistances() : Interaction("Resistances", 4),
- PartyView("Resistances") {
+Resistances::Resistances() : Interaction("Resistances", 4) {
_title = STRING["maps.emap02.resistances"];
}
@@ -47,7 +46,15 @@ void Resistances::draw() {
}
void Resistances::viewAction() {
- // ?
+ // When already showing resistances, any click/key will close view
+ if (_lines.empty())
+ close();
+}
+
+void Resistances::charSwitched(Character *priorChar) {
+ Interaction::charSwitched(priorChar);
+ _lines.clear();
+ redraw();
}
} // namespace Interactions
diff --git a/engines/mm/mm1/views_enh/interactions/resistances.h b/engines/mm/mm1/views_enh/interactions/resistances.h
index d00ed3f96cf..40f38e8c473 100644
--- a/engines/mm/mm1/views_enh/interactions/resistances.h
+++ b/engines/mm/mm1/views_enh/interactions/resistances.h
@@ -23,20 +23,24 @@
#define MM1_VIEWS_ENH_INTERACTIONS_RESISTANCES_H
#include "mm/mm1/views_enh/interactions/interaction.h"
-#include "mm/mm1/views_enh/party_view.h"
namespace MM {
namespace MM1 {
namespace ViewsEnh {
namespace Interactions {
-class Resistances : public Interaction, public PartyView {
+class Resistances : public Interaction {
protected:
/**
* Handles any action/press
*/
void viewAction() override;
+ /**
+ * Called when the selected character has been switched
+ */
+ void charSwitched(Character *priorChar) override;
+
public:
Resistances();
Commit: 929ad0f6a41892602069209e8abc43b19e01f9c4
https://github.com/scummvm/scummvm/commit/929ad0f6a41892602069209e8abc43b19e01f9c4
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-04-01T20:59:10-07:00
Commit Message:
MM: MM1: Finish Resistances interaction
Changed paths:
devtools/create_mm/files/mm1/strings_en.yml
engines/mm/mm1/views_enh/interactions/interaction.cpp
engines/mm/mm1/views_enh/interactions/interaction.h
engines/mm/mm1/views_enh/interactions/resistances.cpp
diff --git a/devtools/create_mm/files/mm1/strings_en.yml b/devtools/create_mm/files/mm1/strings_en.yml
index f4535b8449d..bb416a79a16 100644
--- a/devtools/create_mm/files/mm1/strings_en.yml
+++ b/devtools/create_mm/files/mm1/strings_en.yml
@@ -1030,7 +1030,6 @@ maps:
zom3: "You're not the couriers!\""
emap02:
resistances: "Resistances"
- morango: "Morango the mystic asks, \"Who shall i measure?\""
magic: "Magic"
fire: "Fire"
cold: "Cold"
diff --git a/engines/mm/mm1/views_enh/interactions/interaction.cpp b/engines/mm/mm1/views_enh/interactions/interaction.cpp
index 868439f7564..2b58665001f 100644
--- a/engines/mm/mm1/views_enh/interactions/interaction.cpp
+++ b/engines/mm/mm1/views_enh/interactions/interaction.cpp
@@ -67,7 +67,7 @@ void Interaction::draw() {
}
for (uint i = 0; i < _lines.size(); ++i) {
- writeLine(6 + i, _lines[i], ALIGN_MIDDLE);
+ writeLine(i, _lines[i], ALIGN_MIDDLE);
}
}
diff --git a/engines/mm/mm1/views_enh/interactions/interaction.h b/engines/mm/mm1/views_enh/interactions/interaction.h
index ac8dd828020..1585350ee84 100644
--- a/engines/mm/mm1/views_enh/interactions/interaction.h
+++ b/engines/mm/mm1/views_enh/interactions/interaction.h
@@ -58,6 +58,23 @@ protected:
*/
void addText(const Common::String &str);
+ /**
+ * Write out a line
+ */
+ void writeLine(int lineNum, const Common::String &str,
+ TextAlign align = ALIGN_LEFT, int xp = 0) {
+ PartyView::writeLine(6 + lineNum, str, align, xp);
+ }
+
+ /**
+ * Write out a line
+ */
+ void writeLine(int lineNum, int value,
+ TextAlign align = ALIGN_LEFT, int xp = 0) {
+ PartyView::writeLine(6 + lineNum,
+ Common::String::format("%d", value), align, xp);
+ }
+
public:
Interaction(const Common::String &name, int portrait);
diff --git a/engines/mm/mm1/views_enh/interactions/resistances.cpp b/engines/mm/mm1/views_enh/interactions/resistances.cpp
index 6b2e8439c78..8176d719d82 100644
--- a/engines/mm/mm1/views_enh/interactions/resistances.cpp
+++ b/engines/mm/mm1/views_enh/interactions/resistances.cpp
@@ -35,14 +35,35 @@ Resistances::Resistances() : Interaction("Resistances", 4) {
bool Resistances::msgFocus(const FocusMessage &msg) {
PartyView::msgFocus(msg);
- Common::String str = "Test";
- addText(str);
-
+ addText(STRING["maps.map02.morango"]);
return true;
}
void Resistances::draw() {
Interaction::draw();
+
+ if (_lines.empty()) {
+ const Character &c = *g_globals->_currCharacter;
+
+ setReduced(true);
+ writeLine(0, STRING["maps.emap02.magic"], ALIGN_LEFT, 0);
+ writeLine(0, c._resistances._s._magic, ALIGN_RIGHT, 45);
+ writeLine(0, STRING["maps.emap02.fire"], ALIGN_LEFT, 50);
+ writeLine(0, c._resistances._s._fire, ALIGN_RIGHT, 90);
+ writeLine(0, STRING["maps.emap02.cold"], ALIGN_LEFT, 95);
+ writeLine(0, c._resistances._s._cold, ALIGN_RIGHT, 145);
+ writeLine(0, STRING["maps.emap02.electricity"], ALIGN_LEFT, 150);
+ writeLine(0, c._resistances._s._electricity, ALIGN_RIGHT, 195);
+
+ writeLine(1, STRING["maps.emap02.acid"], ALIGN_LEFT, 0);
+ writeLine(1, c._resistances._s._acid, ALIGN_RIGHT, 45);
+ writeLine(1, STRING["maps.emap02.fear"], ALIGN_LEFT, 50);
+ writeLine(1, c._resistances._s._fear, ALIGN_RIGHT, 90);
+ writeLine(1, STRING["maps.emap02.poison"], ALIGN_LEFT, 95);
+ writeLine(1, c._resistances._s._poison, ALIGN_RIGHT, 145);
+ writeLine(1, STRING["maps.emap02.sleep"], ALIGN_LEFT, 150);
+ writeLine(1, c._resistances._s._psychic, ALIGN_RIGHT, 195);
+ }
}
void Resistances::viewAction() {
More information about the Scummvm-git-logs
mailing list