From 62d71480c253e0ccf091a8697e3763d1a66abefb Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Sun, 7 Sep 2014 19:38:25 +0100 Subject: SWORD1: Add debugger command to set mac speech endianness --- engines/sword1/console.cpp | 23 +++++++++++++++++++++++ engines/sword1/console.h | 1 + engines/sword1/sound.h | 1 + engines/sword1/sword1.h | 1 + 4 files changed, 26 insertions(+) diff --git a/engines/sword1/console.cpp b/engines/sword1/console.cpp index 3eb3b93a19..7fabc62192 100644 --- a/engines/sword1/console.cpp +++ b/engines/sword1/console.cpp @@ -22,14 +22,37 @@ #include "sword1/console.h" #include "sword1/sword1.h" +#include "sword1/sound.h" +#include "common/config-manager.h" +#include "common/str.h" namespace Sword1 { SwordConsole::SwordConsole(SwordEngine *vm) : GUI::Debugger(), _vm(vm) { assert(_vm); + if (scumm_stricmp(ConfMan.get("gameid").c_str(), "sword1mac") == 0 || scumm_stricmp(ConfMan.get("gameid").c_str(), "sword1macdemo") == 0) + registerCmd("speechEndianness", WRAP_METHOD(SwordConsole, Cmd_SpeechEndianness)); } SwordConsole::~SwordConsole() { } + +bool SwordConsole::Cmd_SpeechEndianness(int argc, const char **argv) { + if (argc == 1) { + debugPrintf("Using %s speech\n", _vm->_sound->_bigEndianSpeech ? "be" : "le"); + return true; + } + if (argc == 2) { + if (scumm_stricmp(argv[1], "le") == 0) { + _vm->_sound->_bigEndianSpeech = false; + return false; + } else if (scumm_stricmp(argv[1], "be") == 0) { + _vm->_sound->_bigEndianSpeech = true; + return false; + } + } + debugPrintf("Usage: %s [le | be]\n", argv[0]); + return true; +} } // End of namespace Sword diff --git a/engines/sword1/console.h b/engines/sword1/console.h index a2bb51f9a4..88ee756151 100644 --- a/engines/sword1/console.h +++ b/engines/sword1/console.h @@ -36,6 +36,7 @@ public: private: SwordEngine *_vm; + bool Cmd_SpeechEndianness(int argc, const char **argv); }; } // End of namespace Sword1 diff --git a/engines/sword1/sound.h b/engines/sword1/sound.h index 666598dba0..54006bd8b4 100644 --- a/engines/sword1/sound.h +++ b/engines/sword1/sound.h @@ -79,6 +79,7 @@ enum CowMode { }; class Sound { + friend class SwordConsole; public: Sound(Audio::Mixer *mixer, ResMan *pResMan); ~Sound(); diff --git a/engines/sword1/sword1.h b/engines/sword1/sword1.h index c58e97e353..eb24ef70fa 100644 --- a/engines/sword1/sword1.h +++ b/engines/sword1/sword1.h @@ -79,6 +79,7 @@ struct SystemVars { }; class SwordEngine : public Engine { + friend class SwordConsole; public: SwordEngine(OSystem *syst); virtual ~SwordEngine(); -- cgit v1.2.3