[Scummvm-cvs-logs] SF.net SVN: scummvm:[35398] scummvm/trunk/engines/tucker
cyx at users.sourceforge.net
cyx at users.sourceforge.net
Tue Dec 16 22:06:21 CET 2008
Revision: 35398
http://scummvm.svn.sourceforge.net/scummvm/?rev=35398&view=rev
Author: cyx
Date: 2008-12-16 21:06:20 +0000 (Tue, 16 Dec 2008)
Log Message:
-----------
changed game version flags handling, should fix #2434208
Modified Paths:
--------------
scummvm/trunk/engines/tucker/resource.cpp
scummvm/trunk/engines/tucker/sequences.cpp
scummvm/trunk/engines/tucker/tucker.cpp
scummvm/trunk/engines/tucker/tucker.h
Modified: scummvm/trunk/engines/tucker/resource.cpp
===================================================================
--- scummvm/trunk/engines/tucker/resource.cpp 2008-12-16 20:40:18 UTC (rev 35397)
+++ scummvm/trunk/engines/tucker/resource.cpp 2008-12-16 21:06:20 UTC (rev 35398)
@@ -162,7 +162,7 @@
};
uint8 *TuckerEngine::loadFile(uint8 *p) {
- if (_gameVer.lang == Common::DE_DEU) {
+ if (_gameLang == Common::DE_DEU) {
if (strcmp(_fileToLoad, "bgtext.c") == 0) {
strcpy(_fileToLoad, "bgtextgr.c");
} else if (strcmp(_fileToLoad, "charname.c") == 0) {
@@ -183,7 +183,7 @@
}
_fileLoadSize = 0;
bool decode = false;
- if (_useEnc) {
+ if (_gameFlags & kGameFlagEncodedData) {
char *ext = strrchr(_fileToLoad, '.');
if (ext && strcmp(ext + 1, "c") == 0) {
strcpy(ext + 1, "enc");
@@ -287,7 +287,7 @@
void TuckerEngine::loadCharset() {
strcpy(_fileToLoad, "charset.pcx");
loadImage(_loadTempBuf, 0);
- switch (_gameVer.lang) {
+ switch (_gameLang) {
case Common::FR_FRA:
case Common::DE_DEU:
Graphics::setCharset(kCharsetTypeFrGr);
Modified: scummvm/trunk/engines/tucker/sequences.cpp
===================================================================
--- scummvm/trunk/engines/tucker/sequences.cpp 2008-12-16 20:40:18 UTC (rev 35397)
+++ scummvm/trunk/engines/tucker/sequences.cpp 2008-12-16 21:06:20 UTC (rev 35398)
@@ -34,7 +34,7 @@
namespace Tucker {
void TuckerEngine::handleIntroSequence() {
- const int firstSequence = _gameVer.isDemo ? kFirstAnimationSequenceDemo : kFirstAnimationSequenceGame;
+ const int firstSequence = (_gameFlags & kGameFlagDemo) != 0 ? kFirstAnimationSequenceDemo : kFirstAnimationSequenceGame;
_player = new AnimationSequencePlayer(_system, _mixer, _eventMan, firstSequence);
_player->mainLoop();
delete _player;
Modified: scummvm/trunk/engines/tucker/tucker.cpp
===================================================================
--- scummvm/trunk/engines/tucker/tucker.cpp 2008-12-16 20:40:18 UTC (rev 35397)
+++ scummvm/trunk/engines/tucker/tucker.cpp 2008-12-16 21:06:20 UTC (rev 35398)
@@ -36,9 +36,19 @@
TuckerEngine::TuckerEngine(OSystem *system, Common::Language language, bool isDemo)
: Engine(system) {
- _gameVer.lang = language;
- _gameVer.isDemo = isDemo;
- _gameVer.hasSubtitles = (language != Common::FR_FRA); // only a few subtitles are translated to french
+ _gameLang = language;
+ _gameFlags = 0;
+ if (isDemo) {
+ _gameFlags |= kGameFlagDemo;
+ }
+ switch (language) {
+ case Common::FR_FRA:
+ _gameFlags |= kGameFlagNoSubtitles;
+ break;
+ default:
+ _gameFlags |= kGameFlagEncodedData;
+ break;
+ }
}
TuckerEngine::~TuckerEngine() {
@@ -63,7 +73,7 @@
Common::Error TuckerEngine::go() {
handleIntroSequence();
- if (!_gameVer.isDemo && !shouldQuit()) {
+ if ((_gameFlags & kGameFlagDemo) == 0 && !shouldQuit()) {
mainLoop();
}
return Common::kNoError;
@@ -138,7 +148,7 @@
_gamePaused = _gamePaused2 = false;
_gameDebug = false;
_displayGameHints = false;
- _displaySpeechText = _gameVer.hasSubtitles ? ConfMan.getBool("subtitles") : false;
+ _displaySpeechText = (_gameFlags & kGameFlagNoSubtitles) == 0 ? ConfMan.getBool("subtitles") : false;
memset(_flagsTable, 0, sizeof(_flagsTable));
_gameHintsIndex = 0;
@@ -331,7 +341,6 @@
restart();
openCompressedSoundFile();
- _useEnc = Common::File::exists("data5.enc");
loadCharSizeDta();
loadCharset();
loadPanel();
@@ -554,7 +563,7 @@
}
if (_inputKeys[kInputKeyToggleTextSpeech]) {
_inputKeys[kInputKeyToggleTextSpeech] = false;
- if (_gameVer.hasSubtitles) {
+ if ((_gameFlags & kGameFlagNoSubtitles) == 0) {
if (_displaySpeechText) {
_displaySpeechText = false;
// kDefaultCharSpeechSoundCounter = 1;
@@ -1912,7 +1921,7 @@
if (_actionRequiresTwoObjects) {
verbPreposition = (_actionVerb == 5) ? 12 : 11;
verbPrepositionWidth = getStringWidth(verbPreposition, infoStrBuf) + 4;
- if (_gameVer.lang == Common::FR_FRA) {
+ if (_gameLang == Common::FR_FRA) {
if ((_actionObj2Num > 0 || _actionObj2Type > 0) && verbPreposition > 0) {
infoStringWidth = 0;
verbWidth = 0;
Modified: scummvm/trunk/engines/tucker/tucker.h
===================================================================
--- scummvm/trunk/engines/tucker/tucker.h 2008-12-16 20:40:18 UTC (rev 35397)
+++ scummvm/trunk/engines/tucker/tucker.h 2008-12-16 21:06:20 UTC (rev 35398)
@@ -202,6 +202,12 @@
kInputKeyCount
};
+enum GameFlag {
+ kGameFlagDemo = 1 << 0,
+ kGameFlagEncodedData = 1 << 1,
+ kGameFlagNoSubtitles = 1 << 2
+};
+
inline int scaleMixerVolume(int volume, int max = 100) {
return volume * Audio::Mixer::kMaxChannelVolume / max;
}
@@ -565,11 +571,8 @@
Common::RandomSource _rnd;
AnimationSequencePlayer *_player;
- struct {
- Common::Language lang;
- bool isDemo;
- bool hasSubtitles;
- } _gameVer;
+ Common::Language _gameLang;
+ int _gameFlags;
bool _quitGame;
bool _fastMode;
@@ -599,7 +602,6 @@
char _fileToLoad[40];
int _fileLoadSize;
- bool _useEnc;
int _compressedSoundType;
Common::File _fCompressedSound;
uint8 *_loadTempBuf;
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