From dd1a2b65e9a79b4d643c5b8fe3a8a35dd03c80c0 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 11 Sep 2016 14:16:11 -0400 Subject: TITANIC: Extra loading logic and translation code for German version --- engines/titanic/game/arboretum_gate.cpp | 63 +++++++++++++++++++++++++++++++++ engines/titanic/game/arboretum_gate.h | 25 +++++++++++++ engines/titanic/game/code_wheel.cpp | 12 ++++++- engines/titanic/game/code_wheel.h | 3 ++ 4 files changed, 102 insertions(+), 1 deletion(-) (limited to 'engines/titanic/game') diff --git a/engines/titanic/game/arboretum_gate.cpp b/engines/titanic/game/arboretum_gate.cpp index 1435e3e204..1f684fdcc0 100644 --- a/engines/titanic/game/arboretum_gate.cpp +++ b/engines/titanic/game/arboretum_gate.cpp @@ -21,6 +21,7 @@ */ #include "titanic/game/arboretum_gate.h" +#include "titanic/titanic.h" namespace Titanic { @@ -68,6 +69,14 @@ CArboretumGate::CArboretumGate() : CBackground() { _endFrameWinterOn1 = 364; _startFrameWinterOn2 = 365; _endFrameWinterOn2 = 424; + + // German specific fields + _field160 = _field164 = _field168 = _field16C = 0; + _field170 = _field174 = _field178 = _field17C = 0; + _field180 = _field184 = _field188 = _field18C = 0; + _field190 = _field194 = _field198 = _field19C = 0; + _field1A0 = _field1A4 = _field1A8 = _field1AC = 0; + _field1B0 = _field1B4 = _field1B8 = _field1BC = 0; } void CArboretumGate::save(SimpleFile *file, int indent) { @@ -104,6 +113,33 @@ void CArboretumGate::save(SimpleFile *file, int indent) { file->writeNumberLine(_endFrameWinterOn2, indent); file->writeQuotedLine(_viewName2, indent); + if (g_vm->getLanguage() == Common::DE_DEU) { + file->writeNumberLine(_field160, indent); + file->writeNumberLine(_field164, indent); + file->writeNumberLine(_field168, indent); + file->writeNumberLine(_field16C, indent); + file->writeNumberLine(_field170, indent); + file->writeNumberLine(_field174, indent); + file->writeNumberLine(_field178, indent); + file->writeNumberLine(_field17C, indent); + file->writeNumberLine(_field180, indent); + file->writeNumberLine(_field184, indent); + file->writeNumberLine(_field188, indent); + file->writeNumberLine(_field18C, indent); + file->writeNumberLine(_field190, indent); + file->writeNumberLine(_field194, indent); + file->writeNumberLine(_field198, indent); + file->writeNumberLine(_field19C, indent); + file->writeNumberLine(_field1A0, indent); + file->writeNumberLine(_field1A4, indent); + file->writeNumberLine(_field1A8, indent); + file->writeNumberLine(_field1AC, indent); + file->writeNumberLine(_field1B0, indent); + file->writeNumberLine(_field1B4, indent); + file->writeNumberLine(_field1B8, indent); + file->writeNumberLine(_field1BC, indent); + } + CBackground::save(file, indent); } @@ -141,6 +177,33 @@ void CArboretumGate::load(SimpleFile *file) { _endFrameWinterOn2 = file->readNumber(); _viewName2 = file->readString(); + if (g_vm->getLanguage() == Common::DE_DEU) { + _field160 = file->readNumber(); + _field164 = file->readNumber(); + _field168 = file->readNumber(); + _field16C = file->readNumber(); + _field170 = file->readNumber(); + _field174 = file->readNumber(); + _field178 = file->readNumber(); + _field17C = file->readNumber(); + _field180 = file->readNumber(); + _field184 = file->readNumber(); + _field188 = file->readNumber(); + _field18C = file->readNumber(); + _field190 = file->readNumber(); + _field194 = file->readNumber(); + _field198 = file->readNumber(); + _field19C = file->readNumber(); + _field1A0 = file->readNumber(); + _field1A4 = file->readNumber(); + _field1A8 = file->readNumber(); + _field1AC = file->readNumber(); + _field1B0 = file->readNumber(); + _field1B4 = file->readNumber(); + _field1B8 = file->readNumber(); + _field1BC = file->readNumber(); + } + CBackground::load(file); } diff --git a/engines/titanic/game/arboretum_gate.h b/engines/titanic/game/arboretum_gate.h index b1c06cf773..efb4e81ae9 100644 --- a/engines/titanic/game/arboretum_gate.h +++ b/engines/titanic/game/arboretum_gate.h @@ -72,6 +72,31 @@ private: int _startFrameWinterOn2; int _endFrameWinterOn2; CString _viewName2; + // German specific fields + int _field160; + int _field164; + int _field168; + int _field16C; + int _field170; + int _field174; + int _field178; + int _field17C; + int _field180; + int _field184; + int _field188; + int _field18C; + int _field190; + int _field194; + int _field198; + int _field19C; + int _field1A0; + int _field1A4; + int _field1A8; + int _field1AC; + int _field1B0; + int _field1B4; + int _field1B8; + int _field1BC; public: CLASSDEF; CArboretumGate(); diff --git a/engines/titanic/game/code_wheel.cpp b/engines/titanic/game/code_wheel.cpp index 94ee25435a..cd492ec856 100644 --- a/engines/titanic/game/code_wheel.cpp +++ b/engines/titanic/game/code_wheel.cpp @@ -21,6 +21,7 @@ */ #include "titanic/game/code_wheel.h" +#include "titanic/titanic.h" namespace Titanic { @@ -31,7 +32,8 @@ BEGIN_MESSAGE_MAP(CodeWheel, CBomb) ON_MESSAGE(MovieEndMsg) END_MESSAGE_MAP() -CodeWheel::CodeWheel() : CBomb(), _field108(0), _state(4), _field110(0) { +CodeWheel::CodeWheel() : CBomb(), _field108(0), _state(4), + _field110(0), _field114(0), _field118(0) { } void CodeWheel::save(SimpleFile *file, int indent) { @@ -39,6 +41,10 @@ void CodeWheel::save(SimpleFile *file, int indent) { file->writeNumberLine(_field108, indent); file->writeNumberLine(_state, indent); file->writeNumberLine(_field110, indent); + if (g_vm->getLanguage() == Common::DE_DEU) { + file->writeNumberLine(_field114, indent); + file->writeNumberLine(_field118, indent); + } CBomb::save(file, indent); } @@ -48,6 +54,10 @@ void CodeWheel::load(SimpleFile *file) { _field108 = file->readNumber(); _state = file->readNumber(); _field110 = file->readNumber(); + if (g_vm->getLanguage() == Common::DE_DEU) { + _field114 = file->readNumber(); + _field118 = file->readNumber(); + } CBomb::load(file); } diff --git a/engines/titanic/game/code_wheel.h b/engines/titanic/game/code_wheel.h index e38a45b631..de246f56c4 100644 --- a/engines/titanic/game/code_wheel.h +++ b/engines/titanic/game/code_wheel.h @@ -37,6 +37,9 @@ private: int _field108; int _state; int _field110; + // German specific fields + int _field114; + int _field118; public: CLASSDEF; CodeWheel(); -- cgit v1.2.3