[Scummvm-git-logs] scummvm master -> 66283b98a6fcc90324aeb89315e4ed0eee35b49e
whiterandrek
whiterandrek at gmail.com
Thu May 28 20:52:03 UTC 2020
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
832a55a2ee PETKA: renamed arg in BigDialogue
f6e60b937b PETKA: fixed kOperationDisableMenuItem
b43cf23db3 PETKA: implemented right button event in panel and map interfaces
59669a5d5f PETKA: fixed saving BigDialogue
b3e71ad429 PETKA: fixed saving system
66283b98a6 PETKA: fixed loading chapter
Commit: 832a55a2ee989e5f80b508989f18d6fac4a11dbd
https://github.com/scummvm/scummvm/commit/832a55a2ee989e5f80b508989f18d6fac4a11dbd
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-28T23:51:20+03:00
Commit Message:
PETKA: renamed arg in BigDialogue
Changed paths:
engines/petka/big_dialogue.h
diff --git a/engines/petka/big_dialogue.h b/engines/petka/big_dialogue.h
index 272f7b1eb5..991edda6e3 100644
--- a/engines/petka/big_dialogue.h
+++ b/engines/petka/big_dialogue.h
@@ -115,7 +115,7 @@ public:
const DialogHandler *findHandler(uint objId, uint opcode, bool *fallback) const;
void setHandler(uint objId, uint opcode);
- const Common::U32String *getSpeechInfo(int *talkerId, const char **soundName, int unk);
+ const Common::U32String *getSpeechInfo(int *talkerId, const char **soundName, int choice);
void getMenuChoices(Common::Array<Common::U32String> &choices);
void load(Common::ReadStream *s);
Commit: f6e60b937b233543786e47e503fca8fca2c11986
https://github.com/scummvm/scummvm/commit/f6e60b937b233543786e47e503fca8fca2c11986
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-28T23:51:20+03:00
Commit Message:
PETKA: fixed kOperationDisableMenuItem
Changed paths:
engines/petka/big_dialogue.cpp
diff --git a/engines/petka/big_dialogue.cpp b/engines/petka/big_dialogue.cpp
index 50bdc0194a..99db35ebdf 100644
--- a/engines/petka/big_dialogue.cpp
+++ b/engines/petka/big_dialogue.cpp
@@ -358,7 +358,7 @@ void BigDialogue::next(int choice) {
}
case kOperationDisableMenuItem:
_ops[_currOp->disableMenuItem.opIndex].menu.bitField &= ~(1 << _currOp->disableMenuItem.bit); // disable menu item
- checkMenu(_currOp->disableMenuItem.opIndex);
+ checkMenu(_startOpIndex);
_currOp += 1;
processed = false;
break;
Commit: b43cf23db3c87a568c19db91bae8a42bc5522d76
https://github.com/scummvm/scummvm/commit/b43cf23db3c87a568c19db91bae8a42bc5522d76
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-28T23:51:20+03:00
Commit Message:
PETKA: implemented right button event in panel and map interfaces
Changed paths:
engines/petka/interfaces/map.cpp
engines/petka/interfaces/map.h
engines/petka/interfaces/panel.cpp
engines/petka/interfaces/panel.h
diff --git a/engines/petka/interfaces/map.cpp b/engines/petka/interfaces/map.cpp
index d0876cfae1..bdec4047d5 100644
--- a/engines/petka/interfaces/map.cpp
+++ b/engines/petka/interfaces/map.cpp
@@ -156,4 +156,8 @@ void InterfaceMap::onMouseMove(const Common::Point p) {
}
}
+void InterfaceMap::onRightButtonDown(const Common::Point p) {
+ stop();
+}
+
} // End of namespace Petka
diff --git a/engines/petka/interfaces/map.h b/engines/petka/interfaces/map.h
index a5df37a3a7..5df2d334ec 100644
--- a/engines/petka/interfaces/map.h
+++ b/engines/petka/interfaces/map.h
@@ -33,6 +33,7 @@ public:
void stop() override;
void onLeftButtonDown(const Common::Point p) override;
+ void onRightButtonDown(const Common::Point p) override;
void onMouseMove(const Common::Point p) override;
private:
diff --git a/engines/petka/interfaces/panel.cpp b/engines/petka/interfaces/panel.cpp
index 4978b0fc9a..a767142567 100644
--- a/engines/petka/interfaces/panel.cpp
+++ b/engines/petka/interfaces/panel.cpp
@@ -321,4 +321,8 @@ void InterfacePanel::applySettings() {
g_vm->syncSoundSettings();
}
+void InterfacePanel::onRightButtonDown(const Common::Point p) {
+ stop();
+}
+
} // End of namespace Petka
diff --git a/engines/petka/interfaces/panel.h b/engines/petka/interfaces/panel.h
index 76ffc4be8f..01952706a0 100644
--- a/engines/petka/interfaces/panel.h
+++ b/engines/petka/interfaces/panel.h
@@ -35,6 +35,7 @@ public:
void stop() override;
void onLeftButtonDown(const Common::Point p) override;
+ void onRightButtonDown(const Common::Point p) override;
void onMouseMove(const Common::Point p) override;
private:
Commit: 59669a5d5f409dc1f1f319f7dbd182258ea575c4
https://github.com/scummvm/scummvm/commit/59669a5d5f409dc1f1f319f7dbd182258ea575c4
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-28T23:51:20+03:00
Commit Message:
PETKA: fixed saving BigDialogue
Changed paths:
engines/petka/big_dialogue.cpp
diff --git a/engines/petka/big_dialogue.cpp b/engines/petka/big_dialogue.cpp
index 99db35ebdf..b91dda72e8 100644
--- a/engines/petka/big_dialogue.cpp
+++ b/engines/petka/big_dialogue.cpp
@@ -269,7 +269,7 @@ void BigDialogue::save(Common::WriteStream *s) {
for (uint i = 0; i < _ops.size(); ++i) {
switch (_ops[i].type) {
case kOperationBreak:
- s->writeUint32LE(MKTAG(0, 0, 0, kOperationBreak));
+ s->writeUint32LE(MKTAG(kOperationBreak, 0, 0, 0));
break;
case kOperationMenu:
s->writeByte(_ops[i].menu.bits);
@@ -278,30 +278,30 @@ void BigDialogue::save(Common::WriteStream *s) {
break;
case kOperationGoTo:
s->writeUint16LE(_ops[i].goTo.opIndex);
- s->writeUint16LE(MKTAG16(0, kOperationGoTo));
+ s->writeUint16LE(MKTAG16(kOperationGoTo, 0));
break;
case kOperationDisableMenuItem:
s->writeUint16LE(_ops[i].disableMenuItem.opIndex);
- s->writeUint16LE(MKTAG16(_ops[i].disableMenuItem.bit, kOperationDisableMenuItem));
+ s->writeUint16LE(MKTAG16(kOperationDisableMenuItem, _ops[i].disableMenuItem.bit));
break;
case kOperationEnableMenuItem:
s->writeUint16LE(_ops[i].enableMenuItem.opIndex);
- s->writeUint16LE(MKTAG16(_ops[i].enableMenuItem.bit, kOperationEnableMenuItem));
+ s->writeUint16LE(MKTAG16(kOperationEnableMenuItem, _ops[i].enableMenuItem.bit));
break;
case kOperationReturn:
- s->writeUint32LE(MKTAG(0, 0, 0, kOperationReturn));
+ s->writeUint32LE(MKTAG(kOperationReturn, 0, 0, 0));
break;
case kOperationPlay:
s->writeUint16LE(_ops[i].play.messageIndex);
- s->writeUint16LE(MKTAG16(0, kOperationPlay));
+ s->writeUint16LE(MKTAG16(kOperationPlay, 0));
break;
case kOperationCircle:
s->writeUint16LE(_ops[i].circle.count);
- s->writeUint16LE(MKTAG16(_ops[i].circle.curr, kOperationPlay));
+ s->writeUint16LE(MKTAG16(kOperationCircle, _ops[i].circle.curr));
break;
case kOperationUserMessage:
s->writeUint16LE(_ops[i].userMsg.arg);
- s->writeUint16LE(MKTAG16(0, kOperationUserMessage));
+ s->writeUint16LE(MKTAG16(kOperationUserMessage, 0));
break;
default:
break;
Commit: b3e71ad4292a06372a77c13cac1d3c43ed1d2614
https://github.com/scummvm/scummvm/commit/b3e71ad4292a06372a77c13cac1d3c43ed1d2614
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-28T23:51:20+03:00
Commit Message:
PETKA: fixed saving system
Changed paths:
engines/petka/interfaces/main.cpp
engines/petka/interfaces/save_load.cpp
engines/petka/interfaces/save_load.h
engines/petka/petka.cpp
engines/petka/petka.h
engines/petka/q_system.cpp
engines/petka/saveload.cpp
diff --git a/engines/petka/interfaces/main.cpp b/engines/petka/interfaces/main.cpp
index 99b52e16c6..0912313ebc 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -78,7 +78,8 @@ void InterfaceMain::start(int id) {
bgsIni.loadFromStream(*bgsStream);
Common::String startRoom;
bgsIni.getKey("StartRoom", "Settings", startRoom);
- loadRoom(g_vm->getQSystem()->findObject(startRoom)->_id, false);
+ if (g_vm->getSaveSlot() == -1)
+ loadRoom(g_vm->getQSystem()->findObject(startRoom)->_id, false);
}
void InterfaceMain::loadRoom(int id, bool fromSave) {
diff --git a/engines/petka/interfaces/save_load.cpp b/engines/petka/interfaces/save_load.cpp
index aacb8835e2..fade3e9aea 100644
--- a/engines/petka/interfaces/save_load.cpp
+++ b/engines/petka/interfaces/save_load.cpp
@@ -52,7 +52,6 @@ void InterfaceSaveLoad::start(int id) {
_loadMode = (id == kLoadMode);
- _objs.clear();
QObjectBG *bg = (QObjectBG *)sys->findObject("SAVELOAD");
_objs.push_back(bg);
bg->_resourceId = kFirstSaveLoadPageId + _page + (_loadMode ? 0 : 5);
@@ -85,6 +84,8 @@ void InterfaceSaveLoad::stop() {
sys->_currInterface = sys->_prevInterface;
sys->_currInterface->onMouseMove(Common::Point(cursor->_x, cursor->_y));
+ _objs.clear();
+
Interface::stop();
}
diff --git a/engines/petka/interfaces/save_load.h b/engines/petka/interfaces/save_load.h
index 692cd5e195..7bcf092c1a 100644
--- a/engines/petka/interfaces/save_load.h
+++ b/engines/petka/interfaces/save_load.h
@@ -39,6 +39,8 @@ public:
void start(int id) override;
void stop() override;
+ bool loadMode() { return _loadMode; }
+
void onLeftButtonDown(const Common::Point p) override;
void onRightButtonDown(const Common::Point p) override;
void onMouseMove(const Common::Point p) override;
diff --git a/engines/petka/petka.cpp b/engines/petka/petka.cpp
index 298e568d9c..f41ec59797 100644
--- a/engines/petka/petka.cpp
+++ b/engines/petka/petka.cpp
@@ -59,6 +59,9 @@ PetkaEngine::PetkaEngine(OSystem *system, const ADGameDescription *desc)
_part = 0;
_chapter = 0;
+ _shouldChangePart = false;
+ _nextPart = 0;
+ _saveSlot = -1;
g_vm = this;
debug("PetkaEngine::ctor");
@@ -120,6 +123,9 @@ Common::Error PetkaEngine::run() {
if (_shouldChangePart) {
loadPart(_nextPart);
+ if (_saveSlot != -1)
+ loadGameState(_saveSlot);
+ _saveSlot = -1;
_shouldChangePart = false;
_vsys->makeAllDirty();
}
@@ -132,7 +138,6 @@ Common::Error PetkaEngine::run() {
Common::SeekableReadStream *PetkaEngine::openFile(const Common::String &name, bool addCurrentPath) {
if (name.empty()) {
- debug("PetkaEngine::openFile: attempt to open file with empty name");
return nullptr;
}
return _fileMgr->getFileStream(addCurrentPath ? _currentPath + name : name);
@@ -252,6 +257,7 @@ void PetkaEngine::loadPart(byte part) {
void PetkaEngine::loadPartAtNextFrame(byte part) {
_shouldChangePart = true;
_nextPart = part;
+ _saveSlot = -1;
}
void PetkaEngine::loadChapter(byte chapter) {
@@ -306,4 +312,18 @@ const Common::String &PetkaEngine::getSpeechPath() {
return _speechPath;
}
+bool PetkaEngine::hasFeature(EngineFeature f) const {
+ return
+ f == kSupportsReturnToLauncher ||
+ f == kSupportsLoadingDuringRuntime ||
+ f == kSupportsSavingDuringRuntime ||
+ f == kSupportsChangingOptionsDuringRuntime;
+}
+
+void PetkaEngine::pauseEngineIntern(bool pause) {
+ if (!pause)
+ _vsys->updateTime();
+ Engine::pauseEngineIntern(pause);
+}
+
} // End of namespace Petka
diff --git a/engines/petka/petka.h b/engines/petka/petka.h
index e22e7bc520..d36705ed37 100644
--- a/engines/petka/petka.h
+++ b/engines/petka/petka.h
@@ -80,11 +80,14 @@ public:
void loadPartAtNextFrame(byte part);
byte getPart();
+ int getSaveSlot();
void loadChapter(byte chapter);
virtual Common::Error run() override;
+ bool hasFeature(EngineFeature f) const override;
+
Common::SeekableReadStream *openFile(const Common::String &name, bool addCurrentPath);
void playVideo(Common::SeekableReadStream *stream);
@@ -104,6 +107,9 @@ public:
Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave) override;
bool canSaveGameStateCurrently() override;
+protected:
+ void pauseEngineIntern(bool pause) override;
+
private:
void loadStores();
@@ -128,7 +134,7 @@ private:
uint8 _nextPart;
uint8 _chapter;
bool _shouldChangePart;
- Common::String _saveName;
+ int _saveSlot;
};
class Console : public GUI::Debugger {
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index df75794b80..23b085100d 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -312,8 +312,8 @@ void QSystem::load(Common::ReadStream *s) {
}
void QSystem::save(Common::WriteStream *s) {
- s->writeUint32LE(_allObjects.size());
- for (uint i = 0; i < _allObjects.size(); ++i) {
+ s->writeUint32LE(_allObjects.size() - 3);
+ for (uint i = 0; i < _allObjects.size() - 3; ++i) {
writeString(s, _allObjects[i]->_name);
s->writeUint32LE(_allObjects[i]->_holdMessages);
s->writeUint32LE(_allObjects[i]->_status);
diff --git a/engines/petka/saveload.cpp b/engines/petka/saveload.cpp
index 688b22b9c8..c662833e78 100644
--- a/engines/petka/saveload.cpp
+++ b/engines/petka/saveload.cpp
@@ -29,6 +29,7 @@
#include "petka/petka.h"
#include "petka/q_system.h"
+#include "petka/interfaces/save_load.h"
namespace Petka {
@@ -49,7 +50,7 @@ Common::Error PetkaEngine::loadGameState(int slot) {
_qsystem->load(in);
} else {
_shouldChangePart = true;
- _saveName = generateSaveName(slot, _targetName.c_str());
+ _saveSlot = slot;
}
delete in;
@@ -62,6 +63,8 @@ Common::Error PetkaEngine::saveGameState(int slot, const Common::String &desci,
return Common::kUnknownError;
out->writeUint32BE(MKTAG('p', 'e', 't', 'k'));
+ out->writeByte(desci.size());
+ out->writeString(desci);
TimeDate curTime;
_system->getTimeAndDate(curTime);
@@ -84,10 +87,18 @@ Common::Error PetkaEngine::saveGameState(int slot, const Common::String &desci,
bool PetkaEngine::canSaveGameStateCurrently() {
return true;
+ InterfaceSaveLoad *interface =_qsystem->_saveLoadInterface.get();
+ return (interface == _qsystem->_currInterface && !interface->loadMode());
}
bool PetkaEngine::canLoadGameStateCurrently() {
return true;
+ InterfaceSaveLoad *interface =_qsystem->_saveLoadInterface.get();
+ return (interface == _qsystem->_currInterface && interface->loadMode());
+}
+
+int PetkaEngine::getSaveSlot() {
+ return _saveSlot;
}
bool readSaveHeader(Common::InSaveFile &in, SaveStateDescriptor &desc, bool skipThumbnail) {
Commit: 66283b98a6fcc90324aeb89315e4ed0eee35b49e
https://github.com/scummvm/scummvm/commit/66283b98a6fcc90324aeb89315e4ed0eee35b49e
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-28T23:51:20+03:00
Commit Message:
PETKA: fixed loading chapter
Changed paths:
engines/petka/petka.cpp
diff --git a/engines/petka/petka.cpp b/engines/petka/petka.cpp
index f41ec59797..04a5717b01 100644
--- a/engines/petka/petka.cpp
+++ b/engines/petka/petka.cpp
@@ -276,6 +276,8 @@ void PetkaEngine::loadChapter(byte chapter) {
if (_chapterStoreName.empty())
return;
+ _fileMgr->openStore(_chapterStoreName);
+
Common::ScopedPtr<Common::SeekableReadStream> namesStream(g_vm->openFile("Names.ini", true));
Common::ScopedPtr<Common::SeekableReadStream> castStream(g_vm->openFile("Cast.ini", true));
More information about the Scummvm-git-logs
mailing list