[Scummvm-git-logs] scummvm master -> c232da28b99c9d0c50ec0017b54a55fd0bea5116
whiterandrek
whiterandrek at gmail.com
Sat May 30 19:08:57 UTC 2020
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
10698f89b8 PETKA: added commentary about Perspective struct
4b1a659e71 PETKA: moved processing kTotalInit to QSystem
d21cc6385e PETKA: fixed handling some buttons
b58de19387 PETKA: fixed starting saveload interface by buttons
c232da28b9 PETKA: refactored interfaces
Commit: 10698f89b8908636b44e86062afcddc24737e5fa
https://github.com/scummvm/scummvm/commit/10698f89b8908636b44e86062afcddc24737e5fa
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-30T22:08:20+03:00
Commit Message:
PETKA: added commentary about Perspective struct
Changed paths:
engines/petka/objects/object_bg.h
diff --git a/engines/petka/objects/object_bg.h b/engines/petka/objects/object_bg.h
index e60b42c355..a6a4d783b3 100644
--- a/engines/petka/objects/object_bg.h
+++ b/engines/petka/objects/object_bg.h
@@ -30,7 +30,7 @@ namespace Petka {
// Linear Interpolation
struct Perspective {
double f0;
- double k;
+ double k; // seems to be (f1 - f0) always in files
int y0;
int y1;
double f1;
Commit: 4b1a659e710facda12a4aa81e9f4a11ff5e2c92b
https://github.com/scummvm/scummvm/commit/4b1a659e710facda12a4aa81e9f4a11ff5e2c92b
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-30T22:08:20+03:00
Commit Message:
PETKA: moved processing kTotalInit to QSystem
Changed paths:
engines/petka/interfaces/main.cpp
engines/petka/interfaces/startup.cpp
engines/petka/objects/heroes.cpp
engines/petka/objects/object.cpp
engines/petka/q_system.cpp
engines/petka/q_system.h
diff --git a/engines/petka/interfaces/main.cpp b/engines/petka/interfaces/main.cpp
index 1f9274833a..cc5107768b 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -66,9 +66,6 @@ InterfaceMain::InterfaceMain() {
}
void InterfaceMain::start(int id) {
- g_vm->getQSystem()->update();
- g_vm->getQSystem()->_isIniting = 0;
-
_objs.push_back(g_vm->getQSystem()->getPetka());
_objs.push_back(g_vm->getQSystem()->getChapay());
diff --git a/engines/petka/interfaces/startup.cpp b/engines/petka/interfaces/startup.cpp
index 9fd555ab9c..b9eec328d6 100644
--- a/engines/petka/interfaces/startup.cpp
+++ b/engines/petka/interfaces/startup.cpp
@@ -50,9 +50,6 @@ enum {
};
void InterfaceStartup::start(int id) {
- g_vm->getQSystem()->update();
- g_vm->getQSystem()->_isIniting = 0;
-
QObjectBG *bg = (QObjectBG *)g_vm->getQSystem()->findObject(kStartupObjName);
_objs.push_back(bg);
diff --git a/engines/petka/objects/heroes.cpp b/engines/petka/objects/heroes.cpp
index 83afb70b9e..b190828bce 100644
--- a/engines/petka/objects/heroes.cpp
+++ b/engines/petka/objects/heroes.cpp
@@ -76,7 +76,7 @@ void QObjectPetka::processMessage(const QMessage &arg) {
QMessageObject::processMessage(msg);
if (msg.opcode == kSet || msg.opcode == kPlay) {
initSurface();
- if (!g_vm->getQSystem()->_isIniting) {
+ if (!g_vm->getQSystem()->_totalInit) {
setPos(_x_, _y_);
}
}
diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index 244d0aebbf..bb0a9b3279 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -319,7 +319,7 @@ void QMessageObject::processReaction(QReaction *r, const QMessage *msg) {
}
void QMessageObject::play(int id, int type) {
- if (g_vm->getQSystem()->_isIniting) {
+ if (g_vm->getQSystem()->_totalInit) {
_resourceId = id;
} else {
if (!_notLoopedSound || g_vm->isDemo()) {
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index 73a5671fec..f5b44688b9 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -45,7 +45,7 @@ namespace Petka {
QSystem::QSystem()
: _mainInterface(nullptr), _currInterface(nullptr), _prevInterface(nullptr),
- _isIniting(0), _sceneWidth(640) {}
+ _totalInit(false), _sceneWidth(640) {}
QSystem::~QSystem() {
for (uint i = 0; i < _allObjects.size(); ++i) {
@@ -57,7 +57,6 @@ bool QSystem::init() {
Common::ScopedPtr<Common::SeekableReadStream> stream(g_vm->openFile("script.dat", true));
if (!stream)
return false;
- _isIniting = 1;
Common::ScopedPtr<Common::SeekableReadStream> namesStream(g_vm->openFile("Names.ini", true));
Common::ScopedPtr<Common::SeekableReadStream> castStream(g_vm->openFile("Cast.ini", true));
Common::ScopedPtr<Common::SeekableReadStream> bgsStream(g_vm->openFile("BGs.ini", true));
@@ -96,8 +95,6 @@ bool QSystem::init() {
_allObjects.push_back(obj);
}
- addMessageForAllObjects(kTotalInit);
-
_allObjects.push_back(new QObjectCursor);
_allObjects.push_back(new QObjectCase);
_allObjects.push_back(new QObjectStar);
@@ -108,11 +105,20 @@ bool QSystem::init() {
_sequenceInterface.reset(new InterfaceSequence());
_panelInterface.reset(new InterfacePanel());
_mapInterface.reset(new InterfaceMap());
+
if (g_vm->getPart() == 0) {
_prevInterface = _currInterface = _startupInterface.get();
} else {
_prevInterface = _currInterface = _mainInterface.get();
}
+
+ _totalInit = true;
+
+ addMessageForAllObjects(kTotalInit);
+ update();
+
+ _totalInit = false;
+
_currInterface->start(0);
return true;
}
diff --git a/engines/petka/q_system.h b/engines/petka/q_system.h
index 5709c01258..f24cc4ef56 100644
--- a/engines/petka/q_system.h
+++ b/engines/petka/q_system.h
@@ -94,7 +94,7 @@ public:
Interface *_currInterface;
Interface *_prevInterface;
- int _isIniting;
+ bool _totalInit;
int _fxId;
int _musicId;
Commit: d21cc6385eb86717295626dc51d53a9c266c2968
https://github.com/scummvm/scummvm/commit/d21cc6385eb86717295626dc51d53a9c266c2968
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-30T22:08:20+03:00
Commit Message:
PETKA: fixed handling some buttons
Changed paths:
engines/petka/q_system.cpp
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index f5b44688b9..e92737b5f3 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -341,11 +341,11 @@ void QSystem::onEvent(const Common::Event &event) {
break;
case Common::KEYCODE_3:
case Common::KEYCODE_g:
- setCursorAction(kActionUse);
+ setCursorAction(kActionTake);
break;
case Common::KEYCODE_4:
case Common::KEYCODE_u:
- setCursorAction(kActionTake);
+ setCursorAction(kActionUse);
break;
case Common::KEYCODE_5:
case Common::KEYCODE_t:
Commit: b58de19387289a13e97692559551b0ad61a3250e
https://github.com/scummvm/scummvm/commit/b58de19387289a13e97692559551b0ad61a3250e
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-30T22:08:20+03:00
Commit Message:
PETKA: fixed starting saveload interface by buttons
Changed paths:
engines/petka/q_system.cpp
engines/petka/q_system.h
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index e92737b5f3..b17d7db7d8 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -369,10 +369,10 @@ void QSystem::onEvent(const Common::Event &event) {
goPrevInterface();
break;
case Common::KEYCODE_F2:
- _saveLoadInterface->start(kSaveMode);
+ startSaveLoad(kSaveMode);
break;
case Common::KEYCODE_F3:
- _saveLoadInterface->start(kLoadMode);
+ startSaveLoad(kLoadMode);
break;
case Common::KEYCODE_r:
if (event.kbd.flags & Common::KBD_ALT) {
@@ -410,4 +410,10 @@ void QSystem::toggleCase() {
}
}
+void QSystem::startSaveLoad(int id) {
+ if (_currInterface == _mainInterface.get() && getStar()->_isActive) {
+ _saveLoadInterface->start(id);
+ }
+}
+
}
diff --git a/engines/petka/q_system.h b/engines/petka/q_system.h
index f24cc4ef56..9fe98561f8 100644
--- a/engines/petka/q_system.h
+++ b/engines/petka/q_system.h
@@ -72,6 +72,8 @@ public:
QObjectCase *getCase() const;
QObjectStar *getStar() const;
+ void startSaveLoad(int id);
+
void togglePanelInterface();
void toggleMapInterface();
void toggleCase();
Commit: c232da28b99c9d0c50ec0017b54a55fd0bea5116
https://github.com/scummvm/scummvm/commit/c232da28b99c9d0c50ec0017b54a55fd0bea5116
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-30T22:08:20+03:00
Commit Message:
PETKA: refactored interfaces
Changed paths:
engines/petka/interfaces/interface.cpp
engines/petka/interfaces/interface.h
engines/petka/interfaces/map.cpp
engines/petka/interfaces/map.h
engines/petka/interfaces/panel.cpp
engines/petka/interfaces/panel.h
engines/petka/interfaces/save_load.cpp
engines/petka/interfaces/save_load.h
engines/petka/interfaces/startup.cpp
diff --git a/engines/petka/interfaces/interface.cpp b/engines/petka/interfaces/interface.cpp
index 4797b02699..3873f6242c 100644
--- a/engines/petka/interfaces/interface.cpp
+++ b/engines/petka/interfaces/interface.cpp
@@ -82,4 +82,39 @@ void Interface::removeTexts() {
}
}
+void SubInterface::start(int id) {
+ QSystem *sys = g_vm->getQSystem();
+ QObjectCursor *cursor = sys->getCursor();
+
+ _savedCursorId = cursor->_resourceId;
+ _savedCursorType = cursor->_actionType;
+
+ initCursor(4901, true, false);
+
+ _savedXOffset = sys->_xOffset;
+ _savedSceneWidth = sys->_sceneWidth;
+
+ g_vm->getQSystem()->_currInterface = this;
+ g_vm->videoSystem()->updateTime();
+ g_vm->videoSystem()->makeAllDirty();
+}
+
+void SubInterface::stop() {
+ QSystem *sys = g_vm->getQSystem();
+ QObjectCursor *cursor = sys->getCursor();
+
+ sys->_xOffset = _savedXOffset;
+ sys->_sceneWidth = _savedSceneWidth;
+
+ cursor->_resourceId = _savedCursorId;
+ cursor->_actionType = _savedCursorType;
+
+ sys->_currInterface = g_vm->getQSystem()->_prevInterface;
+ sys->_currInterface->onMouseMove(Common::Point(cursor->_x, cursor->_y));
+
+ _objs.clear();
+
+ Interface::stop();
+}
+
} // End of namespace Petka
diff --git a/engines/petka/interfaces/interface.h b/engines/petka/interfaces/interface.h
index cb82951bdd..7f62a6e8ad 100644
--- a/engines/petka/interfaces/interface.h
+++ b/engines/petka/interfaces/interface.h
@@ -59,6 +59,18 @@ public:
uint _startIndex;
};
+class SubInterface : public Interface {
+public:
+ void start(int id) override;
+ void stop() override;
+
+private:
+ int _savedXOffset;
+ int _savedSceneWidth;
+ int _savedCursorId;
+ int _savedCursorType;
+};
+
} // End of namespace Petka
#endif
diff --git a/engines/petka/interfaces/map.cpp b/engines/petka/interfaces/map.cpp
index 55f15626b0..2b3fa95155 100644
--- a/engines/petka/interfaces/map.cpp
+++ b/engines/petka/interfaces/map.cpp
@@ -41,13 +41,11 @@ void InterfaceMap::start(int id) {
if (!sys->_room->_showMap)
return;
- _objs.clear();
-
QObjectBG *bg = (QObjectBG *)sys->findObject(mapName);
_roomResID = bg->_resourceId;
_objs.push_back(bg);
- const BGInfo *info = g_vm->getQSystem()->_mainInterface->findBGInfo(id);
+ const BGInfo *info = g_vm->getQSystem()->_mainInterface->findBGInfo(bg->_id);
for (uint i = 0; i < info->attachedObjIds.size(); ++i) {
QMessageObject *obj = sys->findObject(info->attachedObjIds[i]);
FlicDecoder *flc = g_vm->resMgr()->loadFlic(obj->_resourceId);
@@ -60,41 +58,15 @@ void InterfaceMap::start(int id) {
_objs.push_back(obj);
}
- QObjectCursor *cursor = sys->getCursor();
- _savedCursorId = cursor->_resourceId;
- _savedCursorActionType = cursor->_actionType;
-
- initCursor(4901, 1, 0);
-
- _savedXOffset = sys->_xOffset;
- _savedSceneWidth = sys->_sceneWidth;
+ sys->addMessageForAllObjects(kInitBG, 0, 0, 0, 0, bg);
- g_vm->getQSystem()->addMessageForAllObjects(kInitBG, 0, 0, 0, 0, bg);
-
- g_vm->getQSystem()->_currInterface = this;
- g_vm->videoSystem()->updateTime();
- g_vm->videoSystem()->makeAllDirty();
+ SubInterface::start(id);
}
void InterfaceMap::stop() {
- QSystem *sys = g_vm->getQSystem();
- QObjectCursor *cursor = sys->getCursor();
-
if (_objUnderCursor)
((QMessageObject *)_objUnderCursor)->_isShown = false;
-
- setText(Common::U32String(""), 0, 0);
-
- sys->_xOffset = _savedXOffset;
- sys->_sceneWidth = _savedSceneWidth;
-
- cursor->_resourceId = _savedCursorId;
- cursor->_actionType = _savedCursorActionType;
-
- sys->_currInterface = g_vm->getQSystem()->_prevInterface;
- sys->_currInterface->onMouseMove(Common::Point(cursor->_x, cursor->_y));
-
- Interface::stop();
+ SubInterface::stop();
}
void InterfaceMap::onLeftButtonDown(Common::Point p) {
diff --git a/engines/petka/interfaces/map.h b/engines/petka/interfaces/map.h
index 2511b9b32a..026e42f8d1 100644
--- a/engines/petka/interfaces/map.h
+++ b/engines/petka/interfaces/map.h
@@ -27,7 +27,7 @@
namespace Petka {
-class InterfaceMap: public Interface {
+class InterfaceMap: public SubInterface {
public:
void start(int id) override;
void stop() override;
@@ -37,10 +37,6 @@ public:
void onMouseMove(Common::Point p) override;
private:
- int _savedXOffset;
- int _savedSceneWidth;
- int _savedCursorId;
- int _savedCursorActionType;
int _roomResID;
};
diff --git a/engines/petka/interfaces/panel.cpp b/engines/petka/interfaces/panel.cpp
index ff452c4d2f..860a22a4c9 100644
--- a/engines/petka/interfaces/panel.cpp
+++ b/engines/petka/interfaces/panel.cpp
@@ -94,11 +94,10 @@ void InterfacePanel::start(int id) {
readSettings();
QSystem *sys = g_vm->getQSystem();
- QObjectBG *bg = (QObjectBG *)g_vm->getQSystem()->findObject(kPanelObjName);
+ QObjectBG *bg = (QObjectBG *)sys->findObject(kPanelObjName);
_objs.push_back(bg);
- sys->update();
- const BGInfo *info = g_vm->getQSystem()->_mainInterface->findBGInfo(id);
+ const BGInfo *info = sys->_mainInterface->findBGInfo(bg->_id);
for (uint i = 0; i < info->attachedObjIds.size(); ++i) {
QMessageObject *obj = sys->findObject(info->attachedObjIds[i]);
FlicDecoder *flc = g_vm->resMgr()->loadFlic(obj->_resourceId);
@@ -112,39 +111,12 @@ void InterfacePanel::start(int id) {
_objs.push_back(obj);
}
- QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
- _savedCursorRes = cursor->_resourceId;
- _savedCursorType = cursor->_actionType;
-
- initCursor(4901, 1, 1);
-
- _savedSceneWidth = sys->_sceneWidth;
- _savedXOffset = sys->_xOffset;
-
- sys->_sceneWidth = 640;
- sys->_xOffset = 0;
+ SubInterface::start(id);
updateSliders();
updateSubtitles();
- sys->_currInterface = this;
- g_vm->videoSystem()->makeAllDirty();
-}
-
-void InterfacePanel::stop() {
- QSystem *sys = g_vm->getQSystem();
- QObjectCursor *cursor = sys->getCursor();
-
- sys->_xOffset = _savedXOffset;
- sys->_sceneWidth = _savedSceneWidth;
-
- cursor->_resourceId = _savedCursorRes;
- cursor->_actionType = _savedCursorType;
-
- sys->_currInterface = sys->_prevInterface;
- sys->_currInterface->onMouseMove(Common::Point(cursor->_x, cursor->_y));
-
- Interface::stop();
+ sys->getCursor()->_animate = true;
}
void InterfacePanel::onLeftButtonDown(Common::Point p) {
diff --git a/engines/petka/interfaces/panel.h b/engines/petka/interfaces/panel.h
index 5730ac47e2..66a1f04fb1 100644
--- a/engines/petka/interfaces/panel.h
+++ b/engines/petka/interfaces/panel.h
@@ -27,12 +27,11 @@
namespace Petka {
-class InterfacePanel : public Interface {
+class InterfacePanel : public SubInterface {
public:
InterfacePanel();
void start(int id) override;
- void stop() override;
void onLeftButtonDown(Common::Point p) override;
void onRightButtonDown(Common::Point p) override;
@@ -46,11 +45,6 @@ private:
void updateSubtitles();
public:
- int _savedXOffset;
- int _savedSceneWidth;
- int _savedCursorType;
- int _savedCursorRes;
-
int _subtitles;
int _speechFrame;
int _musicFrame;
diff --git a/engines/petka/interfaces/save_load.cpp b/engines/petka/interfaces/save_load.cpp
index 442edb3ecb..6c21be210f 100644
--- a/engines/petka/interfaces/save_load.cpp
+++ b/engines/petka/interfaces/save_load.cpp
@@ -34,7 +34,6 @@ const uint kFirstSaveLoadPageId = 4990;
InterfaceSaveLoad::InterfaceSaveLoad() {
_page = 0;
_loadMode = false;
- _savedCursorId = 0;
_saveRects[0] = Common::Rect(43, 84, 151, 166);
_saveRects[1] = Common::Rect(43, 209, 151, 291);
@@ -48,7 +47,6 @@ InterfaceSaveLoad::InterfaceSaveLoad() {
void InterfaceSaveLoad::start(int id) {
QSystem *sys = g_vm->getQSystem();
- QObjectCursor *cursor = sys->getCursor();
_loadMode = (id == kLoadMode);
@@ -56,37 +54,7 @@ void InterfaceSaveLoad::start(int id) {
_objs.push_back(bg);
bg->_resourceId = kFirstSaveLoadPageId + _page + (_loadMode ? 0 : 5);
- _savedSceneWidth = sys->_sceneWidth;
- _savedXOffset = sys->_xOffset;
-
- sys->_sceneWidth = 640;
- sys->_xOffset = 0;
-
- _savedCursorId = cursor->_resourceId;
- _savedCursorType = cursor->_actionType;
-
- initCursor(4901, 1, 0);
-
- sys->_currInterface = this;
- g_vm->videoSystem()->makeAllDirty();
-}
-
-void InterfaceSaveLoad::stop() {
- QSystem *sys = g_vm->getQSystem();
- QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
-
- sys->_xOffset = _savedXOffset;
- sys->_sceneWidth = _savedSceneWidth;
-
- cursor->_resourceId = _savedCursorId;
- cursor->_actionType = _savedCursorType;
-
- sys->_currInterface = sys->_prevInterface;
- sys->_currInterface->onMouseMove(Common::Point(cursor->_x, cursor->_y));
-
- _objs.clear();
-
- Interface::stop();
+ SubInterface::start(id);
}
void InterfaceSaveLoad::onLeftButtonDown(Common::Point p) {
diff --git a/engines/petka/interfaces/save_load.h b/engines/petka/interfaces/save_load.h
index dce63e158f..81823e1ee4 100644
--- a/engines/petka/interfaces/save_load.h
+++ b/engines/petka/interfaces/save_load.h
@@ -32,12 +32,11 @@ enum {
kLoadMode
};
-class InterfaceSaveLoad : public Interface {
+class InterfaceSaveLoad : public SubInterface {
public:
InterfaceSaveLoad();
void start(int id) override;
- void stop() override;
bool loadMode() { return _loadMode; }
@@ -51,12 +50,6 @@ private:
private:
bool _loadMode;
uint _page;
-
- int _savedXOffset;
- int _savedSceneWidth;
- int _savedCursorId;
- int _savedCursorType;
-
Common::Rect _saveRects[6];
Common::Rect _nextPageRect;
Common::Rect _prevPageRect;
diff --git a/engines/petka/interfaces/startup.cpp b/engines/petka/interfaces/startup.cpp
index b9eec328d6..c0102f3a5a 100644
--- a/engines/petka/interfaces/startup.cpp
+++ b/engines/petka/interfaces/startup.cpp
@@ -50,15 +50,16 @@ enum {
};
void InterfaceStartup::start(int id) {
- QObjectBG *bg = (QObjectBG *)g_vm->getQSystem()->findObject(kStartupObjName);
+ QSystem *sys = g_vm->getQSystem();
+ QObjectBG *bg = (QObjectBG *)sys->findObject(kStartupObjName);
_objs.push_back(bg);
Sound *s = g_vm->soundMgr()->addSound(g_vm->resMgr()->findSoundName(bg->_musicId), Audio::Mixer::kMusicSoundType);
s->play(true);
- const BGInfo *info = g_vm->getQSystem()->_mainInterface->findBGInfo(bg->_id);
+ const BGInfo *info = sys->_mainInterface->findBGInfo(bg->_id);
for (uint i = 0; i < info->attachedObjIds.size(); ++i) {
- QMessageObject *obj = g_vm->getQSystem()->findObject(info->attachedObjIds[i]);
+ QMessageObject *obj = sys->findObject(info->attachedObjIds[i]);
obj->_z = 1;
obj->_x = 0;
obj->_y = 0;
@@ -68,7 +69,8 @@ void InterfaceStartup::start(int id) {
_objs.push_back(obj);
}
- initCursor(kStartupCursorId, 1, 0);
+ initCursor(kStartupCursorId, true, false);
+ g_vm->videoSystem()->updateTime();
}
void InterfaceStartup::onLeftButtonDown(Common::Point p) {
More information about the Scummvm-git-logs
mailing list