[Scummvm-git-logs] scummvm master -> 032b668188a7d4af5aa2f0a8aa41154e8b7379a7
athrxx
noreply at scummvm.org
Fri May 20 20:21:08 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
24aa895a00 KYRA: (EOB/LOL) - improve version strings
032b668188 KYRA: (LOL) - minor cleanup
Commit: 24aa895a00d770712c30b51499ff16b7156ccdf1
https://github.com/scummvm/scummvm/commit/24aa895a00d770712c30b51499ff16b7156ccdf1
Author: athrxx (athrxx at scummvm.org)
Date: 2022-05-20T22:18:02+02:00
Commit Message:
KYRA: (EOB/LOL) - improve version strings
Apparently in some builds the gScummVMVersion still contains the revision number (contrary to the comment in base/version.h, actually). I normally don't notice that, since it doesn't happen in my own builds. The long strings will break text fields that can't have strings of that length.
I'll now just generate my own version from gScummVMVersion, so I do get the desired (short) layout.
Changed paths:
engines/kyra/engine/kyra_rpg.cpp
engines/kyra/engine/kyra_rpg.h
engines/kyra/gui/gui_lol.cpp
engines/kyra/sequence/sequences_darkmoon.cpp
engines/kyra/sequence/sequences_eob.cpp
engines/kyra/sequence/sequences_lol.cpp
diff --git a/engines/kyra/engine/kyra_rpg.cpp b/engines/kyra/engine/kyra_rpg.cpp
index d178edc547b..c667f4c4233 100644
--- a/engines/kyra/engine/kyra_rpg.cpp
+++ b/engines/kyra/engine/kyra_rpg.cpp
@@ -30,6 +30,8 @@
#include "common/func.h"
#include "common/system.h"
+#include "base/version.h"
+
namespace Kyra {
KyraRpgEngine::KyraRpgEngine(OSystem *system, const GameFlags &flags) : KyraEngine_v1(system, flags), _numFlyingObjects(_flags.gameID == GI_LOL ? 8 : 10) {
@@ -129,6 +131,13 @@ KyraRpgEngine::KyraRpgEngine(OSystem *system, const GameFlags &flags) : KyraEngi
_environmentSfx = _environmentSfxVol = _envSfxDistThreshold = 0;
_monsterStepCounter = _monsterStepMode = 0;
+ uint slen = Common::String(gScummVMVersion).size();
+ for (uint i = 0; i < slen; ++i) {
+ if (!(gScummVMVersion[i] >= '0' && gScummVMVersion[i] <= '9') && gScummVMVersion[i] != '.')
+ break;
+ _versionString += gScummVMVersion[i];
+ }
+
_buttonFont = Screen::FID_6_FNT;
if (_flags.use16ColorMode)
_buttonFont = _flags.gameID == GI_LOL ? Screen::FID_SJIS_TEXTMODE_FNT : Screen::FID_SJIS_FNT;
diff --git a/engines/kyra/engine/kyra_rpg.h b/engines/kyra/engine/kyra_rpg.h
index 0a6dbf17ff3..1a1d304b02b 100644
--- a/engines/kyra/engine/kyra_rpg.h
+++ b/engines/kyra/engine/kyra_rpg.h
@@ -449,6 +449,8 @@ protected:
uint32 _flyingObjectStructSize;
void *_flyingObjectsPtr;
+ Common::String _versionString;
+
// sound
virtual bool snd_processEnvironmentalSoundEffect(int soundId, int block);
virtual void snd_stopSpeech(bool) {}
diff --git a/engines/kyra/gui/gui_lol.cpp b/engines/kyra/gui/gui_lol.cpp
index 3f731556117..8c141c206d7 100644
--- a/engines/kyra/gui/gui_lol.cpp
+++ b/engines/kyra/gui/gui_lol.cpp
@@ -36,8 +36,6 @@
#include "backends/keymapper/keymapper.h"
-#include "base/version.h"
-
namespace Kyra {
void LoLEngine::gui_drawPlayField() {
@@ -2365,7 +2363,7 @@ int GUI_LoL::runMenu(Menu &menu) {
if (_currentMenu == &_mainMenu && !_vm->gameFlags().use16ColorMode) {
Screen::FontId f = _screen->setFont(Screen::FID_6_FNT);
- _screen->fprintString("%s", menu.x + 8, menu.y + menu.height - 12, 204, 0, 8, gScummVMVersion);
+ _screen->fprintString("v%s", menu.x + 8, menu.y + menu.height - 12, 204, 0, 8, _vm->_versionString.c_str());
_screen->setFont(f);
_screen->updateScreen();
}
diff --git a/engines/kyra/sequence/sequences_darkmoon.cpp b/engines/kyra/sequence/sequences_darkmoon.cpp
index 3e90b2e3c22..86103823ac7 100644
--- a/engines/kyra/sequence/sequences_darkmoon.cpp
+++ b/engines/kyra/sequence/sequences_darkmoon.cpp
@@ -28,8 +28,6 @@
#include "common/system.h"
-#include "base/version.h"
-
namespace Kyra {
class DarkmoonSequenceHelper {
@@ -154,7 +152,7 @@ int DarkMoonEngine::mainMenu() {
of = _screen->setFont(Screen::FID_6_FNT);
op = _screen->setCurPage(2);
- Common::String versionString(Common::String::format("ScummVM %s", gScummVMVersion));
+ Common::String versionString = "ScummVM " + _versionString;
_screen->printText(versionString.c_str(), 267 - versionString.size() * 6, _flags.platform == Common::kPlatformFMTowns ? 152 : 160, _flags.platform == Common::kPlatformAmiga ? 18 : 13, 0);
_screen->setFont(of);
_screen->_curPage = op;
diff --git a/engines/kyra/sequence/sequences_eob.cpp b/engines/kyra/sequence/sequences_eob.cpp
index eab972ed298..698ef08b4c7 100644
--- a/engines/kyra/sequence/sequences_eob.cpp
+++ b/engines/kyra/sequence/sequences_eob.cpp
@@ -32,8 +32,6 @@
#include "common/system.h"
#include "common/substream.h"
-#include "base/version.h"
-
namespace Kyra {
class EoBSeqPlayerCommon {
@@ -2172,7 +2170,7 @@ int EoBEngine::mainMenu() {
else
_screen->setScreenPalette(_screen->getPalette(0));
- Common::String versionString(Common::String::format("ScummVM %s", gScummVMVersion));
+ Common::String versionString = "ScummVM " + _versionString;
if (_flags.platform == Common::kPlatformSegaCD) {
_txt->clearDim(3);
diff --git a/engines/kyra/sequence/sequences_lol.cpp b/engines/kyra/sequence/sequences_lol.cpp
index baf175f93fd..56b08921f31 100644
--- a/engines/kyra/sequence/sequences_lol.cpp
+++ b/engines/kyra/sequence/sequences_lol.cpp
@@ -26,8 +26,6 @@
#include "kyra/resource/resource.h"
#include "kyra/sound/sound.h"
-#include "base/version.h"
-
#include "common/system.h"
namespace Kyra {
@@ -60,7 +58,7 @@ int LoLEngine::processPrologue() {
preInit();
- Common::String versionString(Common::String::format("ScummVM %s", gScummVMVersion));
+ Common::String versionString = "ScummVM " + _versionString;
int processSelection = -1;
while (!shouldQuit() && processSelection == -1) {
Commit: 032b668188a7d4af5aa2f0a8aa41154e8b7379a7
https://github.com/scummvm/scummvm/commit/032b668188a7d4af5aa2f0a8aa41154e8b7379a7
Author: athrxx (athrxx at scummvm.org)
Date: 2022-05-20T22:18:08+02:00
Commit Message:
KYRA: (LOL) - minor cleanup
Changed paths:
engines/kyra/engine/lol.cpp
engines/kyra/sequence/sequences_lol.cpp
diff --git a/engines/kyra/engine/lol.cpp b/engines/kyra/engine/lol.cpp
index 90231cfed21..730eeb00b52 100644
--- a/engines/kyra/engine/lol.cpp
+++ b/engines/kyra/engine/lol.cpp
@@ -60,7 +60,6 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraRpgEngine(sy
case Common::EN_ANY:
case Common::EN_USA:
case Common::EN_GRB:
- _lang = 0;
break;
case Common::FR_FRA:
@@ -72,18 +71,16 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraRpgEngine(sy
break;
case Common::ES_ESP:
- _lang = 0;
_langIntern = 2;
break;
case Common::JA_JPN:
- _lang = 0;
_langIntern = 1;
break;
default:
warning("unsupported language, switching back to English");
- _lang = 0;
+ break;
}
_chargenFrameTable = _flags.isTalkie ? _chargenFrameTableTalkie : _chargenFrameTableFloppy;
@@ -661,7 +658,11 @@ uint8 *LoLEngine::getItemIconShapePtr(int index) {
}
int LoLEngine::mainMenu() {
- bool hasSave = saveFileLoadable(0);
+ bool hasSave = false;
+ for (int i = 0; i < 20 && !hasSave; ++i) {
+ if (saveFileLoadable(i))
+ hasSave = true;
+ }
MainMenu::StaticData data[] = {
// 256 color ASCII mode
@@ -934,6 +935,8 @@ void LoLEngine::writeSettings() {
ConfMan.setBool("smooth_scrolling", _smoothScrollingEnabled);
ConfMan.setBool("auto_savenames", _autoSaveNamesEnabled);
+ static const Common::Language extraLanguages[] = { Common::EN_ANY, Common::JA_JPN, Common::ES_ESP, Common::ZH_TWN };
+
switch (_lang) {
case 1:
_flags.lang = Common::FR_FRA;
@@ -945,12 +948,9 @@ void LoLEngine::writeSettings() {
case 0:
default:
- if (_langIntern == 1)
- _flags.lang = Common::JA_JPN;
- else if (_langIntern == 2)
- _flags.lang = Common::ES_ESP;
- else
- _flags.lang = Common::EN_ANY;
+ assert (_langIntern >= 0 && _langIntern < ARRAYSIZE(extraLanguages));
+ _flags.lang = extraLanguages[_langIntern];
+ break;
}
if (_flags.lang == _flags.replacedLang && _flags.fanLang != Common::UNK_LANG)
diff --git a/engines/kyra/sequence/sequences_lol.cpp b/engines/kyra/sequence/sequences_lol.cpp
index 56b08921f31..34f6dd8709e 100644
--- a/engines/kyra/sequence/sequences_lol.cpp
+++ b/engines/kyra/sequence/sequences_lol.cpp
@@ -40,7 +40,12 @@ int LoLEngine::processPrologue() {
return playDemo();
} else {
setupPrologueData(true);
- if (!saveFileLoadable(0) || _flags.isDemo)
+ bool hasSave = false;
+ for (int i = 0; i < 20 && !hasSave; ++i) {
+ if (saveFileLoadable(i))
+ hasSave = true;
+ }
+ if (!hasSave || _flags.isDemo)
showIntro();
}
@@ -305,7 +310,7 @@ int LoLEngine::chooseCharacter() {
while (!_screen->isMouseVisible())
_screen->showMouse();
- _screen->loadBitmap("CHAR.CPS", 2, 2, &_screen->getPalette(0));
+ _screen->loadBitmap(_flags.lang == Common::ZH_TWN ? "CHARCHI.CPS" : "CHAR.CPS", 2, 2, &_screen->getPalette(0));
_screen->loadBitmap("BACKGRND.CPS", 4, 4, &_screen->getPalette(0));
if (!_chargenWSA->open("CHARGEN.WSA", 1, 0))
More information about the Scummvm-git-logs
mailing list