[Scummvm-git-logs] scummvm master -> bca0a3f2da8db9cfe3c39000e4a9ce3f15ba6ad7

dreammaster dreammaster at scummvm.org
Sun Oct 8 03:56:59 CEST 2017


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

Summary:
bca0a3f2da TITANIC: DE: Fixes for bomb code wheels


Commit: bca0a3f2da8db9cfe3c39000e4a9ce3f15ba6ad7
    https://github.com/scummvm/scummvm/commit/bca0a3f2da8db9cfe3c39000e4a9ce3f15ba6ad7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-10-07T21:56:52-04:00

Commit Message:
TITANIC: DE: Fixes for bomb code wheels

Changed paths:
    engines/titanic/game/code_wheel.cpp
    engines/titanic/game/code_wheel.h


diff --git a/engines/titanic/game/code_wheel.cpp b/engines/titanic/game/code_wheel.cpp
index 441c481..b395208 100644
--- a/engines/titanic/game/code_wheel.cpp
+++ b/engines/titanic/game/code_wheel.cpp
@@ -21,8 +21,6 @@
  */
 
 #include "titanic/game/code_wheel.h"
-#include "titanic/titanic.h"
-#include "titanic/translation.h"
 #include "titanic/translation.h"
 
 namespace Titanic {
@@ -35,15 +33,52 @@ BEGIN_MESSAGE_MAP(CodeWheel, CBomb)
 	ON_MESSAGE(CheckCodeWheelsMsg)
 END_MESSAGE_MAP()
 
-static const int START_FRAMES[15] = {
+static const int START_FRAMES_EN[15] = {
 	0, 5, 10, 15, 19, 24, 28, 33, 38, 42, 47, 52, 57, 61, 66
 };
-static const int END_FRAMES[15] = {
+static const int END_FRAMES_EN[15] = {
 	5, 10, 15, 19, 24, 28, 33, 38, 42, 47, 52, 57, 61, 66, 70
 };
 
+static const int START_FRAMES_DE2[28] = {
+	390, 383, 375, 368, 361, 353, 346, 339, 331, 324,
+	317, 309, 302, 295, 287, 280, 272, 265, 258, 251,
+	244, 236, 229, 221, 214, 207, 199, 0
+};
+static const int END_FRAMES_DE2[28] = {
+	397, 390, 383, 375, 368, 361, 353, 346, 339, 331,
+	324, 317, 309, 302, 295, 287, 280, 272, 265, 258,
+	251, 244, 236, 229, 221, 214, 207, 0
+};
+
+static const int CORRECT_VALUES_DE[3][8] = {
+	{ 14, 2, 7, 4, 8, 18, 18, 4 },
+	{ 17, 12, 0, 6, 10, 11, 20, 6 },
+	{ 18, 13, 8, 4, 12, 0, 13, 3 }
+};
+static const int START_FRAMES_DE[28] = {
+	0, 7, 15, 22, 29, 37, 44, 51, 58, 66,
+	73, 80, 88, 95, 102, 110, 117, 125, 132, 139,
+	146, 154, 161, 168, 175, 183, 190, 0
+};
+static const int END_FRAMES_DE[28] = {
+	7, 15, 22, 29, 37, 44, 51, 58, 66, 73,
+	80, 88, 95, 102, 110, 117, 125, 132, 139, 146,
+	154, 161, 168, 175, 183, 190, 198, 0
+};
+static const int START_FRAMES_REV_DE[28] = {
+	390, 383, 375, 368, 361, 353, 346, 339, 331, 324,
+	317, 309, 302, 295, 287, 280, 272, 265, 258, 251,
+	244, 236, 229, 221, 214, 207, 199, 0
+};
+static const int END_FRAMES_REV_DE[28] = {
+	397, 390, 383, 375, 368, 361, 353, 346, 339, 331,
+	324, 317, 309, 302, 295, 287, 280, 272, 265, 258,
+	251, 244, 236, 229, 221, 214, 207, 0
+};
+
 CodeWheel::CodeWheel() : CBomb(), _correctValue(0), _value(4),
-		_matched(false), _field114(0), _field118(0) {
+		_matched(false), _column(0), _row(0) {
 }
 
 void CodeWheel::save(SimpleFile *file, int indent) {
@@ -51,9 +86,9 @@ void CodeWheel::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(_correctValue, indent);
 	file->writeNumberLine(_value, indent);
 	file->writeNumberLine(_matched, indent);
-	if (g_vm->isGerman()) {
-		file->writeNumberLine(_field114, indent);
-		file->writeNumberLine(_field118, indent);
+	if (g_language == Common::DE_DEU) {
+		file->writeNumberLine(_row, indent);
+		file->writeNumberLine(_column, indent);
 	}
 
 	CBomb::save(file, indent);
@@ -64,9 +99,13 @@ void CodeWheel::load(SimpleFile *file) {
 	_correctValue = file->readNumber();
 	_value = file->readNumber();
 	_matched = file->readNumber();
-	if (g_vm->isGerman()) {
-		_field114 = file->readNumber();
-		_field118 = file->readNumber();
+	if (g_language == Common::DE_DEU) {
+		_row = file->readNumber();
+		_column = file->readNumber();
+
+		assert(_value >= 0 && _value < 8);
+		assert(_row >= 0 && _row < 3);
+		_correctValue = CORRECT_VALUES_DE[_row][_column];
 	}
 
 	CBomb::load(file);
@@ -76,21 +115,21 @@ bool CodeWheel::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
 	int yp = _bounds.top + _bounds.height() / 2;
 	_matched = false;
 
-	if (msg->_mousePos.y > yp) {
-		if (_value == _correctValue)
-			_matched = true;
+	if (_value == _correctValue)
+		_matched = true;
 
-		_value = (_value + 1) % 15;
-		playMovie(START_FRAMES[_value], END_FRAMES[_value],
+	if (msg->_mousePos.y > yp) {
+		_value = (_value + 1) % TRANSLATE(15, 27);
+		playMovie(TRANSLATE(START_FRAMES_EN[_value], START_FRAMES_DE[_value]),
+			TRANSLATE(END_FRAMES_EN[_value], END_FRAMES_DE[_value]),
 			MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT);
-	} else {
-		if (_value == _correctValue)
-			_matched = true;
 
-		playMovie(START_FRAMES[14 - _value] + 68, END_FRAMES[14 - _value] + 68,
+	} else {
+		playMovie(TRANSLATE(START_FRAMES_EN[14 - _value] + 68, START_FRAMES_REV_DE[_value]),
+			TRANSLATE(END_FRAMES_EN[14 - _value] + 68, END_FRAMES_REV_DE[_value]),
 			MOVIE_WAIT_FOR_FINISH | MOVIE_NOTIFY_OBJECT);
 
-		_value = (_value <= 0) ? 14 : _value - 1;
+		_value = (_value <= 0) ? TRANSLATE(14, 26) : _value - 1;
 	}
 
 	playSound(TRANSLATE("z#59.wav", "z#590.wav"));
@@ -99,7 +138,7 @@ bool CodeWheel::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
 
 bool CodeWheel::EnterViewMsg(CEnterViewMsg *msg) {
 	// WORKAROUND: Don't keep resetting code wheels back to default
-	loadFrame(END_FRAMES[_value]);
+	loadFrame(TRANSLATE(END_FRAMES_EN[_value], END_FRAMES_DE[_value]));
 	return true;
 }
 
diff --git a/engines/titanic/game/code_wheel.h b/engines/titanic/game/code_wheel.h
index 3d19eeb..4de937b 100644
--- a/engines/titanic/game/code_wheel.h
+++ b/engines/titanic/game/code_wheel.h
@@ -39,8 +39,7 @@ private:
 	int _value;
 	bool _matched;
 	// German specific fields
-	int _field114;
-	int _field118;
+	int _row, _column;
 public:
 	CLASSDEF;
 	CodeWheel();





More information about the Scummvm-git-logs mailing list