[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