[Scummvm-cvs-logs] SF.net SVN: scummvm: [22559] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun May 21 09:07:06 CEST 2006
Revision: 22559
Author: lordhoto
Date: 2006-05-21 09:06:29 -0700 (Sun, 21 May 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22559&view=rev
Log Message:
-----------
- allows kyra3 to exit again
- implements language selection for kyra3
Modified Paths:
--------------
scummvm/trunk/engines/kyra/kyra.h
scummvm/trunk/engines/kyra/kyra3.cpp
scummvm/trunk/engines/kyra/sound_digital.cpp
Modified: scummvm/trunk/engines/kyra/kyra.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra.h 2006-05-21 15:41:32 UTC (rev 22558)
+++ scummvm/trunk/engines/kyra/kyra.h 2006-05-21 16:06:29 UTC (rev 22559)
@@ -1024,7 +1024,7 @@
SoundDigital *soundDigital() { return _soundDigital; }
- int setupGameFlags() { _game = GI_KYRA3; return 0; }
+ int setupGameFlags();
int go();
@@ -1034,6 +1034,8 @@
SoundDigital *_soundDigital;
+ int _lang;
+
// sound specific
private:
void playMenuAudioFile();
@@ -1045,7 +1047,7 @@
private:
static const char *_mainMenuStrings[];
int handleMainMenu(WSAMovieV3 *logo);
- void drawMainMenu(const char * const *strings, int unk1);
+ void drawMainMenu(const char * const *strings);
void drawMainBox(int x, int y, int w, int h, int fill);
void gui_printString(const char *string, int x, int y, int col1, int col2, int flags, ...);
Modified: scummvm/trunk/engines/kyra/kyra3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra3.cpp 2006-05-21 15:41:32 UTC (rev 22558)
+++ scummvm/trunk/engines/kyra/kyra3.cpp 2006-05-21 16:06:29 UTC (rev 22559)
@@ -27,6 +27,7 @@
#include "kyra/text.h"
#include "common/system.h"
+#include "common/config-manager.h"
namespace Kyra {
KyraEngine_v3::KyraEngine_v3(OSystem *system) : KyraEngine(system) {
@@ -39,6 +40,35 @@
delete _soundDigital;
}
+int KyraEngine_v3::setupGameFlags() {
+ _game = GI_KYRA3;
+ _lang = 0;
+ Common::Language lang = Common::parseLanguage(ConfMan.get("language"));
+
+ switch (lang) {
+ case Common::EN_ANY:
+ case Common::EN_USA:
+ case Common::EN_GRB:
+ _lang = 0;
+ break;
+
+ case Common::FR_FRA:
+ _lang = 1;
+ break;
+
+ case Common::DE_DEU:
+ _lang = 2;
+ break;
+
+ default:
+ warning("unsupported language, switching back to English");
+ _lang = 0;
+ break;
+ }
+
+ return 0;
+}
+
Movie *KyraEngine_v3::createWSAMovie() {
return new WSAMovieV3(this);
}
@@ -159,7 +189,7 @@
memset(colorMap, 0, sizeof(colorMap));
_screen->setTextColorMap(colorMap);
- const char * const *strings = &_mainMenuStrings[/*_lang*4*/0];
+ const char * const *strings = &_mainMenuStrings[_lang << 2];
Screen::FontId oldFont = _screen->setFont(Screen::FID_8_FNT);
int charWidthBackUp = _screen->_charWidth;
@@ -177,9 +207,10 @@
int curFrame = 29, frameAdd = 1;
uint32 nextRun = 0;
- drawMainMenu(strings, 0xFFFF);
+ drawMainMenu(strings);
+ _system->warpMouse(300, 180);
- while (command == -1) {
+ while (command == -1 && !_quitFlag) {
// yes 2 * _tickLength here not 3 * like in the first draw
nextRun = _system->getMillis() + 2 * _tickLength;
logo->displayFrame(curFrame);
@@ -204,6 +235,9 @@
}
}
+ if (_quitFlag)
+ command = -1;
+
_screen->copyBlockToPage(_screen->_curPage, _screen->_curDim->sx, _screen->_curDim->sy, _screen->_curDim->w, _screen->_curDim->h, _screen->getPagePtr(3));
_screen->_charWidth = charWidthBackUp;
_screen->setFont(oldFont);
@@ -217,8 +251,8 @@
return command;
}
-void KyraEngine_v3::drawMainMenu(const char * const *strings, int unk1) {
- debugC(9, kDebugLevelMain, "KyraEngine::playMenuAudioFile(%p, %d)", (const void*)strings, unk1);
+void KyraEngine_v3::drawMainMenu(const char * const *strings) {
+ debugC(9, kDebugLevelMain, "KyraEngine::playMenuAudioFile(%p)", (const void*)strings);
static const uint16 menuTable[] = { 0x01, 0x04, 0x0C, 0x04, 0x00, 0x80, 0xFF, 0x00, 0x01, 0x02, 0x03 };
int top = _screen->_curDim->sy;
Modified: scummvm/trunk/engines/kyra/sound_digital.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_digital.cpp 2006-05-21 15:41:32 UTC (rev 22558)
+++ scummvm/trunk/engines/kyra/sound_digital.cpp 2006-05-21 16:06:29 UTC (rev 22559)
@@ -284,7 +284,9 @@
#pragma mark -
-SoundDigital::SoundDigital(KyraEngine *vm, Audio::Mixer *mixer) : _vm(vm), _mixer(mixer), _sounds() {}
+SoundDigital::SoundDigital(KyraEngine *vm, Audio::Mixer *mixer) : _vm(vm), _mixer(mixer), _sounds() {
+ memset(_sounds, 0, sizeof(_sounds));
+}
SoundDigital::~SoundDigital() {
for (int i = 0; i < SOUND_STREAMS; ++i) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list