[Scummvm-git-logs] scummvm master -> b1e83d068a91088259507978b5e343e876652a93

whiterandrek whiterandrek at gmail.com
Fri May 29 07:03:50 UTC 2020


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e6d3c38e1e PETKA: renamed structure
6bcf12a69b PETKA: store perspective struct in the bg object
792aeef513 PETKA: simplified reading objects
b1e83d068a PETKA: access objects through getters


Commit: e6d3c38e1ed9af2a955f40faf162f914a723a9c9
    https://github.com/scummvm/scummvm/commit/e6d3c38e1ed9af2a955f40faf162f914a723a9c9
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-29T08:57:28+03:00

Commit Message:
PETKA: renamed structure

Changed paths:
    engines/petka/objects/heroes.cpp
    engines/petka/objects/object_bg.cpp
    engines/petka/petka.cpp
    engines/petka/q_system.h


diff --git a/engines/petka/objects/heroes.cpp b/engines/petka/objects/heroes.cpp
index b69abd22ac..5fde27e0fe 100644
--- a/engines/petka/objects/heroes.cpp
+++ b/engines/petka/objects/heroes.cpp
@@ -182,20 +182,20 @@ double QObjectPetka::calcSmth(int y) {
 	y = MIN(y, 480);
 
 
-	if (!qsys->_unkMap.contains(qsys->_room->_name)) {
+	if (!qsys->_perspectives.contains(qsys->_room->_name)) {
 		return 1.0;
 	}
 
-	const UnkStruct &unk = qsys->_unkMap.getVal(qsys->_room->_name);
+	const Perspective &pers = qsys->_perspectives.getVal(qsys->_room->_name);
 
 
-	double res = (y - unk.f3) * unk.f2 / (unk.f4 - unk.f3);
+	double res = (y - pers.y0) * pers.k / (pers.y1 - pers.y0);
 	if (res < 0.0)
 		res = 0.0;
 
-	if (res + unk.f1 > unk.f5)
-		return unk.f5;
-	return res + unk.f1;
+	if (res + pers.f0 > pers.f1)
+		return pers.f1;
+	return res + pers.f0;
 }
 
 void QObjectPetka::updateWalk() {
diff --git a/engines/petka/objects/object_bg.cpp b/engines/petka/objects/object_bg.cpp
index 6f25b63834..ee2deee6a8 100644
--- a/engines/petka/objects/object_bg.cpp
+++ b/engines/petka/objects/object_bg.cpp
@@ -147,9 +147,9 @@ void QObjectBG::readInisData(Common::INIFile &names, Common::INIFile &cast, Comm
 		bgs->getKey(_name, "Settings", perspective);
 		if (!perspective.empty()) {
 			// todo store this structure in bg object
-			UnkStruct unk;
-			sscanf(perspective.c_str(), "%lf %lf %d %d %lf", &unk.f1, &unk.f2, &unk.f3, &unk.f4, &unk.f5);
-			g_vm->getQSystem()->_unkMap.setVal(_name, unk);
+			Perspective unk;
+			sscanf(perspective.c_str(), "%lf %lf %d %d %lf", &unk.f0, &unk.k, &unk.y0, &unk.y1, &unk.f1);
+			g_vm->getQSystem()->_perspectives.setVal(_name, unk);
 		}
 	}
 	QMessageObject::readInisData(names, cast, bgs);
diff --git a/engines/petka/petka.cpp b/engines/petka/petka.cpp
index 01043bdf05..8afc802114 100644
--- a/engines/petka/petka.cpp
+++ b/engines/petka/petka.cpp
@@ -93,7 +93,7 @@ Common::Error PetkaEngine::run() {
 	_soundMgr.reset(new SoundMgr());
 	_vsys.reset(new VideoSystem());
 
-	loadPart(isDemo() ? 1 : 0);
+	loadPart(2);
 
 	while (!shouldQuit()) {
 		Common::Event event;
diff --git a/engines/petka/q_system.h b/engines/petka/q_system.h
index 1a1f8f2968..5838b1c412 100644
--- a/engines/petka/q_system.h
+++ b/engines/petka/q_system.h
@@ -47,12 +47,13 @@ class InterfacePanel;
 class InterfaceMap;
 class Interface;
 
-struct UnkStruct {
+// Linear Interpolation
+struct Perspective {
+	double f0;
+	double k;
+	int y0;
+	int y1;
 	double f1;
-	double f2;
-	int f3;
-	int f4;
-	double f5;
 };
 
 class QSystem {
@@ -97,7 +98,7 @@ public:
 	Interface *_currInterface;
 	Interface *_prevInterface;
 
-	Common::HashMap<Common::String, UnkStruct> _unkMap;
+	Common::HashMap<Common::String, Perspective> _perspectives;
 
 	int _isIniting;
 	int _fxId;


Commit: 6bcf12a69be5b18ab9391cdcc39a19fc19264bcb
    https://github.com/scummvm/scummvm/commit/6bcf12a69be5b18ab9391cdcc39a19fc19264bcb
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-29T09:07:31+03:00

Commit Message:
PETKA: store perspective struct in the bg object

Changed paths:
    engines/petka/objects/heroes.cpp
    engines/petka/objects/object_bg.cpp
    engines/petka/objects/object_bg.h
    engines/petka/q_system.h


diff --git a/engines/petka/objects/heroes.cpp b/engines/petka/objects/heroes.cpp
index 5fde27e0fe..83afb70b9e 100644
--- a/engines/petka/objects/heroes.cpp
+++ b/engines/petka/objects/heroes.cpp
@@ -181,14 +181,7 @@ double QObjectPetka::calcSmth(int y) {
 
 	y = MIN(y, 480);
 
-
-	if (!qsys->_perspectives.contains(qsys->_room->_name)) {
-		return 1.0;
-	}
-
-	const Perspective &pers = qsys->_perspectives.getVal(qsys->_room->_name);
-
-
+	const Perspective &pers = qsys->_room->_persp;
 	double res = (y - pers.y0) * pers.k / (pers.y1 - pers.y0);
 	if (res < 0.0)
 		res = 0.0;
diff --git a/engines/petka/objects/object_bg.cpp b/engines/petka/objects/object_bg.cpp
index ee2deee6a8..e6e904f813 100644
--- a/engines/petka/objects/object_bg.cpp
+++ b/engines/petka/objects/object_bg.cpp
@@ -146,10 +146,13 @@ void QObjectBG::readInisData(Common::INIFile &names, Common::INIFile &cast, Comm
 		Common::String perspective;
 		bgs->getKey(_name, "Settings", perspective);
 		if (!perspective.empty()) {
-			// todo store this structure in bg object
-			Perspective unk;
-			sscanf(perspective.c_str(), "%lf %lf %d %d %lf", &unk.f0, &unk.k, &unk.y0, &unk.y1, &unk.f1);
-			g_vm->getQSystem()->_perspectives.setVal(_name, unk);
+			sscanf(perspective.c_str(), "%lf %lf %d %d %lf", &_persp.f0, &_persp.k, &_persp.y0, &_persp.y1, &_persp.f1);
+		} else {
+			_persp.f0 = 1.0;
+			_persp.f1 = 1.0;
+			_persp.k = 0.0;
+			_persp.y0 = 0;
+			_persp.y1 = 480;
 		}
 	}
 	QMessageObject::readInisData(names, cast, bgs);
diff --git a/engines/petka/objects/object_bg.h b/engines/petka/objects/object_bg.h
index 41e3082cf9..e60b42c355 100644
--- a/engines/petka/objects/object_bg.h
+++ b/engines/petka/objects/object_bg.h
@@ -27,6 +27,15 @@
 
 namespace Petka {
 
+// Linear Interpolation
+struct Perspective {
+	double f0;
+	double k;
+	int y0;
+	int y1;
+	double f1;
+};
+
 class QObjectBG : public QMessageObject {
 public:
 	QObjectBG();
@@ -42,6 +51,7 @@ public:
 	int _showMap;
 	int _fxId;
 	int _musicId;
+	Perspective _persp;
 };
 
 } // End of namespace Petka
diff --git a/engines/petka/q_system.h b/engines/petka/q_system.h
index 5838b1c412..b848c9afda 100644
--- a/engines/petka/q_system.h
+++ b/engines/petka/q_system.h
@@ -47,15 +47,6 @@ class InterfacePanel;
 class InterfaceMap;
 class Interface;
 
-// Linear Interpolation
-struct Perspective {
-	double f0;
-	double k;
-	int y0;
-	int y1;
-	double f1;
-};
-
 class QSystem {
 public:
 	explicit QSystem();
@@ -98,8 +89,6 @@ public:
 	Interface *_currInterface;
 	Interface *_prevInterface;
 
-	Common::HashMap<Common::String, Perspective> _perspectives;
-
 	int _isIniting;
 	int _fxId;
 	int _musicId;


Commit: 792aeef5133286085f643b6e1377dbbc431efa92
    https://github.com/scummvm/scummvm/commit/792aeef5133286085f643b6e1377dbbc431efa92
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-29T09:40:36+03:00

Commit Message:
PETKA: simplified reading objects

Changed paths:
    engines/petka/interfaces/main.cpp
    engines/petka/objects/object.cpp
    engines/petka/objects/object_bg.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 0912313ebc..4f62cce633 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -69,8 +69,8 @@ void InterfaceMain::start(int id) {
 	g_vm->getQSystem()->update();
 	g_vm->getQSystem()->_isIniting = 0;
 
-	_objs.push_back(g_vm->getQSystem()->_petka.get());
-	_objs.push_back(g_vm->getQSystem()->_chapayev.get());
+	_objs.push_back(g_vm->getQSystem()->_petka);
+	_objs.push_back(g_vm->getQSystem()->_chapayev);
 
 	Common::ScopedPtr<Common::SeekableReadStream> bgsStream(g_vm->openFile("BGs.ini", true));
 	Common::INIFile bgsIni;
@@ -180,11 +180,11 @@ void InterfaceMain::onLeftButtonDown(const Common::Point p) {
 
 	switch (cursor->_actionType) {
 	case kActionWalk: {
-		QObjectPetka *petka = g_vm->getQSystem()->_petka.get();
+		QObjectPetka *petka = g_vm->getQSystem()->_petka;
 		if (petka->_heroReaction) {
 			for (uint i = 0; i < petka->_heroReaction->messages.size(); ++i) {
 				if (petka->_heroReaction->messages[i].opcode == kGoTo) {
-					QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev.get();
+					QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev;
 					chapay->stopWalk();
 					break;
 				}
@@ -196,7 +196,7 @@ void InterfaceMain::onLeftButtonDown(const Common::Point p) {
 		break;
 	}
 	case kActionObjUseChapayev: {
-		QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev.get();
+		QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev;
 		chapay->walk(p.x, p.y);
 		break;
 	}
diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index 069aab4e00..26eb5384a3 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -557,7 +557,7 @@ void QObject::onClick(int x, int y) {
 		g_vm->getQSystem()->addMessage(_id, kTalk, 0, 0, 0, 0, this);
 		break;
 	case kActionObjUseChapayev:
-		g_vm->getQSystem()->addMessage(_id, kObjectUse, x, y, 0, 0, g_vm->getQSystem()->_chapayev.get());
+		g_vm->getQSystem()->addMessage(_id, kObjectUse, x, y, 0, 0, g_vm->getQSystem()->_chapayev);
 		break;
 	case kActionObjUse:
 		g_vm->getQSystem()->addMessage(_id, kObjectUse, 0, 0, 0, 0, cursor->_invObj);
diff --git a/engines/petka/objects/object_bg.cpp b/engines/petka/objects/object_bg.cpp
index e6e904f813..eef86df6ec 100644
--- a/engines/petka/objects/object_bg.cpp
+++ b/engines/petka/objects/object_bg.cpp
@@ -116,13 +116,13 @@ void QObjectBG::goTo() {
 		return;
 	}
 
-	Common::Array<QObjectBG> &bgs = sys->_bgs;
+	/*Common::Array<QObjectBG> &bgs = sys->_bgs;
 	for (uint i = 0; i < bgs.size(); ++i) {
 		if (bgsIni.getKey(bgs[i]._name, _name, entranceName)) {
 			setEntrance(entranceName);
 			break;
 		}
-	}
+	}*/
 }
 
 void QObjectBG::setEntrance(const Common::String &name) {
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index 4d37790a01..8ef5372e07 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -49,7 +49,9 @@ QSystem::QSystem()
 	_sceneWidth(640) {}
 
 QSystem::~QSystem() {
-
+	for (uint i = 0; i < _allObjects.size(); ++i) {
+		delete _allObjects[i];
+	}
 }
 
 bool QSystem::init() {
@@ -76,42 +78,34 @@ bool QSystem::init() {
 	if (bgsStream)
 		bgsIni.loadFromStream(*bgsStream);
 
-	uint32 objsCount = stream->readUint32LE() - 2;
+	uint32 objsCount = stream->readUint32LE();
 	uint32 bgsCount = stream->readUint32LE();
-
-	_objs.resize(objsCount);
-	_bgs.resize(bgsCount);
-
-	_petka.reset(new QObjectPetka());
-	_petka->readScriptData(*stream);
-	_petka->readInisData(namesIni, castIni, nullptr);
-	_allObjects.push_back(_petka.get());
-
-	_chapayev.reset(new QObjectChapayev());
-	_chapayev->readScriptData(*stream);
-	_chapayev->readInisData(namesIni, castIni, nullptr);
-	_allObjects.push_back(_chapayev.get());
-
-	for (uint i = 0; i < objsCount; ++i) {
-		_objs[i].readScriptData(*stream);
-		_objs[i].readInisData(namesIni, castIni, nullptr);
-		_allObjects.push_back(&_objs[i]);
-	}
-	for (uint i = 0; i < bgsCount; ++i) {
-		_bgs[i].readScriptData(*stream);
-		_bgs[i].readInisData(namesIni, castIni, &bgsIni);
-		_allObjects.push_back(&_bgs[i]);
+	_allObjects.reserve(objsCount + bgsCount + 3);
+	for (uint i = 0; i < objsCount + bgsCount; ++i) {
+		QMessageObject *obj = nullptr;
+		if (i == 0) {
+			obj = _petka = new QObjectPetka;
+		} else if (i == 1) {
+			obj = _chapayev = new QObjectChapayev;
+		} else if (i < objsCount) {
+			obj = new QObject;
+		} else {
+			obj = new QObjectBG;
+		}
+		obj->readScriptData(*stream);
+		obj->readInisData(namesIni, castIni, &bgsIni);
+		_allObjects.push_back(obj);
 	}
 
 	addMessageForAllObjects(kTotalInit);
 
-	_cursor.reset(new QObjectCursor());
-	_case.reset(new QObjectCase());
-	_star.reset(new QObjectStar());
+	_cursor = new QObjectCursor;
+	_case = new QObjectCase;
+	_star = new QObjectStar;
 
-	_allObjects.push_back(_cursor.get());
-	_allObjects.push_back(_case.get());
-	_allObjects.push_back(_star.get());
+	_allObjects.push_back(_cursor);
+	_allObjects.push_back(_case);
+	_allObjects.push_back(_star);
 
 	_mainInterface.reset(new InterfaceMain());
 	_startupInterface.reset(new InterfaceStartup());
diff --git a/engines/petka/q_system.h b/engines/petka/q_system.h
index b848c9afda..dd41ca0c30 100644
--- a/engines/petka/q_system.h
+++ b/engines/petka/q_system.h
@@ -71,15 +71,13 @@ public:
 	void setChapayev();
 
 public:
-	Common::Array<QObject> _objs;
-	Common::Array<QObjectBG> _bgs;
 	Common::Array<QMessageObject *> _allObjects;
 	Common::List<QMessage> _messages;
-	Common::ScopedPtr<QObjectPetka> _petka;
-	Common::ScopedPtr<QObjectChapayev> _chapayev;
-	Common::ScopedPtr<QObjectCursor> _cursor;
-	Common::ScopedPtr<QObjectCase> _case;
-	Common::ScopedPtr<QObjectStar> _star;
+	QObjectPetka *_petka;
+	QObjectChapayev *_chapayev;
+	QObjectCursor *_cursor;
+	QObjectCase *_case;
+	QObjectStar *_star;
 	Common::ScopedPtr<InterfaceMain> _mainInterface;
 	Common::ScopedPtr<InterfaceSaveLoad> _saveLoadInterface;
 	Common::ScopedPtr<InterfaceSequence> _sequenceInterface;


Commit: b1e83d068a91088259507978b5e343e876652a93
    https://github.com/scummvm/scummvm/commit/b1e83d068a91088259507978b5e343e876652a93
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-29T10:03:08+03:00

Commit Message:
PETKA: access objects through getters

Changed paths:
    engines/petka/interfaces/dialog_interface.cpp
    engines/petka/interfaces/interface.cpp
    engines/petka/interfaces/main.cpp
    engines/petka/interfaces/map.cpp
    engines/petka/interfaces/panel.cpp
    engines/petka/interfaces/save_load.cpp
    engines/petka/interfaces/startup.cpp
    engines/petka/objects/object.cpp
    engines/petka/objects/object_bg.cpp
    engines/petka/objects/object_case.cpp
    engines/petka/objects/object_star.cpp
    engines/petka/q_system.cpp
    engines/petka/q_system.h


diff --git a/engines/petka/interfaces/dialog_interface.cpp b/engines/petka/interfaces/dialog_interface.cpp
index 6ebde5e7b4..e5ca825d3a 100644
--- a/engines/petka/interfaces/dialog_interface.cpp
+++ b/engines/petka/interfaces/dialog_interface.cpp
@@ -66,7 +66,7 @@ void DialogInterface::start(uint id, QMessageObject *sender) {
 }
 
 void DialogInterface::initCursor() {
-	QObjectCursor *cursor = _qsys->_cursor.get();
+	QObjectCursor *cursor = _qsys->getCursor();
 
 	_savedCursorId = cursor->_resourceId;
 	_savedCursorActType = cursor->_actionType;
@@ -80,7 +80,7 @@ void DialogInterface::initCursor() {
 }
 
 void DialogInterface::restoreCursor() {
-	QObjectCursor *cursor = _qsys->_cursor.get();
+	QObjectCursor *cursor = _qsys->getCursor();
 	cursor->_isShown = _wasCursorShown;
 	cursor->_animate = _wasCursorAnim;
 	cursor->_resourceId = _savedCursorId;
@@ -100,7 +100,7 @@ void DialogInterface::next(int choice) {
 	}
 	_afterUserMsg = _isUserMsg;
 
-	_qsys->_cursor->_isShown = false;
+	_qsys->getCursor()->_isShown = false;
 	if (_isUserMsg)
 		return;
 	if (_firstTime)
@@ -158,7 +158,7 @@ void DialogInterface::startUserMsg(uint16 arg) {
 	sendMsg(kSaid);
 	_isUserMsg = true;
 	restoreCursor();
-	_qsys->addMessage(_qsys->_chapayev->_id, kUserMsg, arg);
+	_qsys->addMessage(_qsys->getChapay()->_id, kUserMsg, arg);
 }
 
 bool DialogInterface::isActive() {
@@ -239,7 +239,7 @@ void DialogInterface::onMenuOpcode() {
 	_dialog->getMenuChoices(choices);
 	_qsys->_mainInterface->setTextChoice(choices, 0xFFFF, g_system->getScreenFormat().RGBToColor(0xFF, 0, 0));
 
-	_qsys->_cursor->_isShown = true;
+	_qsys->getCursor()->_isShown = true;
 	_state = kMenu;
 }
 
diff --git a/engines/petka/interfaces/interface.cpp b/engines/petka/interfaces/interface.cpp
index a032312f63..4797b02699 100644
--- a/engines/petka/interfaces/interface.cpp
+++ b/engines/petka/interfaces/interface.cpp
@@ -60,7 +60,7 @@ QVisibleObject *Interface::findObject(int resourceId) {
 }
 
 void Interface::initCursor(int id, bool show, bool animate) {
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	_objs.push_back(cursor);
 	cursor->_resourceId = id;
 	cursor->_isShown = show;
diff --git a/engines/petka/interfaces/main.cpp b/engines/petka/interfaces/main.cpp
index 4f62cce633..28d5ef0a93 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -60,17 +60,17 @@ InterfaceMain::InterfaceMain() {
 		}
 	}
 
-	_objs.push_back(g_vm->getQSystem()->_cursor.get());
-	_objs.push_back(g_vm->getQSystem()->_case.get());
-	_objs.push_back(g_vm->getQSystem()->_star.get());
+	_objs.push_back(g_vm->getQSystem()->getCursor());
+	_objs.push_back(g_vm->getQSystem()->getCase());
+	_objs.push_back(g_vm->getQSystem()->getStar());
 }
 
 void InterfaceMain::start(int id) {
 	g_vm->getQSystem()->update();
 	g_vm->getQSystem()->_isIniting = 0;
 
-	_objs.push_back(g_vm->getQSystem()->_petka);
-	_objs.push_back(g_vm->getQSystem()->_chapayev);
+	_objs.push_back(g_vm->getQSystem()->getPetka());
+	_objs.push_back(g_vm->getQSystem()->getChapay());
 
 	Common::ScopedPtr<Common::SeekableReadStream> bgsStream(g_vm->openFile("BGs.ini", true));
 	Common::INIFile bgsIni;
@@ -165,7 +165,7 @@ void InterfaceMain::unloadRoom(bool fromSave) {
 }
 
 void InterfaceMain::onLeftButtonDown(const Common::Point p) {
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	if (!cursor->_isShown) {
 		_dialog.next(-1);
 		return;
@@ -180,11 +180,11 @@ void InterfaceMain::onLeftButtonDown(const Common::Point p) {
 
 	switch (cursor->_actionType) {
 	case kActionWalk: {
-		QObjectPetka *petka = g_vm->getQSystem()->_petka;
+		QObjectPetka *petka = g_vm->getQSystem()->getPetka();
 		if (petka->_heroReaction) {
 			for (uint i = 0; i < petka->_heroReaction->messages.size(); ++i) {
 				if (petka->_heroReaction->messages[i].opcode == kGoTo) {
-					QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev;
+					QObjectChapayev *chapay = g_vm->getQSystem()->getChapay();
 					chapay->stopWalk();
 					break;
 				}
@@ -196,7 +196,7 @@ void InterfaceMain::onLeftButtonDown(const Common::Point p) {
 		break;
 	}
 	case kActionObjUseChapayev: {
-		QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev;
+		QObjectChapayev *chapay = g_vm->getQSystem()->getChapay();
 		chapay->walk(p.x, p.y);
 		break;
 	}
@@ -206,12 +206,12 @@ void InterfaceMain::onLeftButtonDown(const Common::Point p) {
 }
 
 void InterfaceMain::onRightButtonDown(const Common::Point p) {
-	QObjectStar *star = g_vm->getQSystem()->_star.get();
-	// QObjectCase *objCase = g_vm->getQSystem()->_case.get();
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectStar *star = g_vm->getQSystem()->getStar();
+	QObjectCase *objCase = g_vm->getQSystem()->getCase();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	if (!star->_isActive)
 		return;
-	if (g_vm->getQSystem()->_case.get()->_isShown && cursor->_actionType == kActionObjUse) {
+	if (objCase->_isShown && cursor->_actionType == kActionObjUse) {
 		cursor->setAction(kActionTake);
 	} else {
 		star->setPos(p);
@@ -223,7 +223,7 @@ void InterfaceMain::onMouseMove(const Common::Point p) {
 	QMessageObject *prevObj = (QMessageObject *)_objUnderCursor;
 	_objUnderCursor = nullptr;
 
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	if (cursor->_isShown) {
 		for (int i = _objs.size() - 1; i >= 0; --i) {
 			if (_objs[i]->isInPoint(p.x, p.y)) {
@@ -257,7 +257,7 @@ void InterfaceMain::setTextChoice(const Common::Array<Common::U32String> &choice
 
 void InterfaceMain::setTextDescription(const Common::U32String &text, int frame) {
 	removeTexts();
-	QObjectStar *star = g_vm->getQSystem()->_star.get();
+	QObjectStar *star = g_vm->getQSystem()->getStar();
 	star->_isActive = 0;
 	_objUnderCursor = nullptr;
 	_hasTextDesc = true;
@@ -267,7 +267,7 @@ void InterfaceMain::setTextDescription(const Common::U32String &text, int frame)
 void InterfaceMain::removeTextDescription() {
 	_hasTextDesc = false;
 	_objUnderCursor = nullptr;
-	g_vm->getQSystem()->_star->_isActive = true;
+	g_vm->getQSystem()->getStar()->_isActive = true;
 	removeTexts();
 }
 
diff --git a/engines/petka/interfaces/map.cpp b/engines/petka/interfaces/map.cpp
index bdec4047d5..bd452d1a9b 100644
--- a/engines/petka/interfaces/map.cpp
+++ b/engines/petka/interfaces/map.cpp
@@ -67,7 +67,7 @@ void InterfaceMap::start(int id) {
 		break;
 	}
 
-	QObjectCursor *cursor = sys->_cursor.get();
+	QObjectCursor *cursor = sys->getCursor();
 	_savedCursorId = cursor->_resourceId;
 	_savedCursorActionType = cursor->_actionType;
 
@@ -85,7 +85,7 @@ void InterfaceMap::start(int id) {
 
 void InterfaceMap::stop() {
 	QSystem *sys = g_vm->getQSystem();
-	QObjectCursor *cursor = sys->_cursor.get();
+	QObjectCursor *cursor = sys->getCursor();
 
 	if (_objUnderCursor)
 		((QMessageObject *)_objUnderCursor)->_isShown = false;
@@ -138,7 +138,7 @@ void InterfaceMap::onMouseMove(const Common::Point p) {
 		}
 	}
 
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	cursor->_animate = _objUnderCursor != nullptr;
 	cursor->_isShown = true;
 	cursor->setCursorPos(p.x, p.y, 0);
diff --git a/engines/petka/interfaces/panel.cpp b/engines/petka/interfaces/panel.cpp
index a767142567..9324b79ece 100644
--- a/engines/petka/interfaces/panel.cpp
+++ b/engines/petka/interfaces/panel.cpp
@@ -118,7 +118,7 @@ void InterfacePanel::start(int id) {
 		break;
 	}
 
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	_savedCursorRes = cursor->_resourceId;
 	_savedCursorType = cursor->_actionType;
 
@@ -139,7 +139,7 @@ void InterfacePanel::start(int id) {
 
 void InterfacePanel::stop() {
 	QSystem *sys = g_vm->getQSystem();
-	QObjectCursor *cursor = sys->_cursor.get();
+	QObjectCursor *cursor = sys->getCursor();
 
 	sys->_xOffset = _savedXOffset;
 	sys->_sceneWidth = _savedSceneWidth;
@@ -262,7 +262,7 @@ void InterfacePanel::onMouseMove(const Common::Point p) {
 		flc->setFrame(frame);
 		g_vm->videoSystem()->addDirtyRect(_objectPoints[pointIndex], *flc);
 	}
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	cursor->_isShown = 1;
 	cursor->setCursorPos(p.x, p.y, 0);
 }
diff --git a/engines/petka/interfaces/save_load.cpp b/engines/petka/interfaces/save_load.cpp
index fade3e9aea..9866c24945 100644
--- a/engines/petka/interfaces/save_load.cpp
+++ b/engines/petka/interfaces/save_load.cpp
@@ -48,7 +48,7 @@ InterfaceSaveLoad::InterfaceSaveLoad() {
 
 void InterfaceSaveLoad::start(int id) {
 	QSystem *sys = g_vm->getQSystem();
-	QObjectCursor *cursor = sys->_cursor.get();
+	QObjectCursor *cursor = sys->getCursor();
 
 	_loadMode = (id == kLoadMode);
 
@@ -73,7 +73,7 @@ void InterfaceSaveLoad::start(int id) {
 
 void InterfaceSaveLoad::stop() {
 	QSystem *sys = g_vm->getQSystem();
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 
 	sys->_xOffset = _savedXOffset;
 	sys->_sceneWidth = _savedSceneWidth;
@@ -109,7 +109,7 @@ void InterfaceSaveLoad::onRightButtonDown(const Common::Point p) {
 }
 
 void InterfaceSaveLoad::onMouseMove(const Common::Point p) {
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	cursor->_animate = findSaveLoadRectIndex(p) != -1 || _nextPageRect.contains(p) || _prevPageRect.contains(p);
 	cursor->setCursorPos(p.x, p.y, 0);
 }
diff --git a/engines/petka/interfaces/startup.cpp b/engines/petka/interfaces/startup.cpp
index 782e91e42d..57866c8f73 100644
--- a/engines/petka/interfaces/startup.cpp
+++ b/engines/petka/interfaces/startup.cpp
@@ -123,7 +123,7 @@ void InterfaceStartup::onMouseMove(const Common::Point p) {
 		}
 	}
 
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	cursor->_animate = _objUnderCursor != nullptr;
 	cursor->_isShown = true;
 	cursor->setCursorPos(p.x, p.y, 0);
diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index 26eb5384a3..a2b14ff892 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -90,13 +90,13 @@ void QMessageObject::processMessage(const QMessage &msg) {
 	if (reacted || !g_vm->getBigDialogue()->findHandler(_id, msg.opcode, nullptr)) {
 		switch (msg.opcode) {
 		case kAddInv:
-			g_vm->getQSystem()->_case->addItem(msg.objId);
+			g_vm->getQSystem()->getCase()->addItem(msg.objId);
 			break;
 		case kDelInv:
-			g_vm->getQSystem()->_case->removeItem(msg.objId);
+			g_vm->getQSystem()->getCase()->removeItem(msg.objId);
 			break;
 		case kSetInv:
-			g_vm->getQSystem()->_case->transformItem(msg.sender->_id, msg.objId);
+			g_vm->getQSystem()->getCase()->transformItem(msg.sender->_id, msg.objId);
 			break;
 		case kAvi: {
 			Common::String videoName = g_vm->resMgr()->findResourceName((uint16) msg.arg1);
@@ -107,7 +107,7 @@ void QMessageObject::processMessage(const QMessage &msg) {
 			g_vm->getQSystem()->_mainInterface->_dialog.endUserMsg();
 			break;
 		case kCursor:
-			g_vm->getQSystem()->_cursor->setInvItem(this, msg.arg1);
+			g_vm->getQSystem()->getCursor()->setInvItem(this, msg.arg1);
 			g_vm->videoSystem()->makeAllDirty();
 			break;
 		case kDialog:
@@ -142,8 +142,8 @@ void QMessageObject::processMessage(const QMessage &msg) {
 			show(false);
 			break;
 		case kStop:
-			g_vm->getQSystem()->_cursor.get()->show(msg.arg1);
-			g_vm->getQSystem()->_star.get()->_isActive = msg.arg1;
+			g_vm->getQSystem()->getCursor()->show(msg.arg1);
+			g_vm->getQSystem()->getStar()->_isActive = msg.arg1;
 			break;
 		case kShow:
 			show(true);
@@ -154,10 +154,10 @@ void QMessageObject::processMessage(const QMessage &msg) {
 		case kSystem:
 			switch (msg.arg1){
 			case 0:
-				g_vm->getQSystem()->_star->_isActive = 0;
+				g_vm->getQSystem()->getStar()->_isActive = 0;
 				break;
 			case 1:
-				g_vm->getQSystem()->_star->_isActive = 1;
+				g_vm->getQSystem()->getStar()->_isActive = 1;
 				break;
 			case 242:
 				g_system->quit();
@@ -180,18 +180,18 @@ void QMessageObject::processMessage(const QMessage &msg) {
 			_isActive = false;
 			break;
 		case kJump:
-			g_vm->getQSystem()->_petka->setPos((msg.arg1 == 0xffff ? _walkX : msg.arg1), (msg.arg2 == -1 ? _walkY : msg.arg2));
+			g_vm->getQSystem()->getPetka()->setPos((msg.arg1 == 0xffff ? _walkX : msg.arg1), (msg.arg2 == -1 ? _walkY : msg.arg2));
 			break;
 		case kJumpVich:
-			g_vm->getQSystem()->_petka->setPos((msg.arg1 == 0xffff ? _walkX : msg.arg1), (msg.arg2 == -1 ? _walkY : msg.arg2));
+			g_vm->getQSystem()->getPetka()->setPos((msg.arg1 == 0xffff ? _walkX : msg.arg1), (msg.arg2 == -1 ? _walkY : msg.arg2));
 			break;
 		case kWalk:
 			if (!reacted) {
 				if (_walkX == -1) {
-					g_vm->getQSystem()->_petka->walk(msg.arg1, msg.arg2);
+					g_vm->getQSystem()->getPetka()->walk(msg.arg1, msg.arg2);
 
 				} else {
-					g_vm->getQSystem()->_petka->walk(_walkX, _walkY);
+					g_vm->getQSystem()->getPetka()->walk(_walkX, _walkY);
 				}
 			}
 			break;
@@ -203,12 +203,12 @@ void QMessageObject::processMessage(const QMessage &msg) {
 				destY = _walkY;
 			}
 			if (destX != -1) {
-				g_vm->getQSystem()->_petka->walk(destX, destY);
-				QReaction *r = g_vm->getQSystem()->_petka->_heroReaction;
+				g_vm->getQSystem()->getPetka()->walk(destX, destY);
+				QReaction *r = g_vm->getQSystem()->getPetka()->_heroReaction;
 				if (r) {
 					for (uint i = 0; i < r->messages.size(); ++i) {
 						if (r->messages[i].opcode == kGoTo) {
-							g_vm->getQSystem()->_chapayev->walk(_walkX, _walkY);
+							g_vm->getQSystem()->getChapay()->walk(_walkX, _walkY);
 							break;
 						}
 					}
@@ -218,9 +218,9 @@ void QMessageObject::processMessage(const QMessage &msg) {
 		}
 		case kWalkVich:
 			if (msg.arg1 == 0xffff || msg.arg2 == -1) {
-				g_vm->getQSystem()->_chapayev->walk(msg.arg1, msg.arg2);
+				g_vm->getQSystem()->getChapay()->walk(msg.arg1, msg.arg2);
 			} else if (_walkX != -1) {
-				g_vm->getQSystem()->_chapayev->walk(_walkX, _walkY);
+				g_vm->getQSystem()->getChapay()->walk(_walkX, _walkY);
 			}
 			break;
 		case kDescription: {
@@ -302,10 +302,10 @@ void QMessageObject::processReaction(QReaction *r, const QMessage *msg) {
 		}
 		case kWalk:
 		case kWalkTo:
-			g_vm->getQSystem()->_petka->setReactionAfterWalk(j, r, this, deleteReaction);
+			g_vm->getQSystem()->getPetka()->setReactionAfterWalk(j, r, this, deleteReaction);
 			return;
 		case kWalkVich:
-			g_vm->getQSystem()->_chapayev->setReactionAfterWalk(j, r, this, deleteReaction);
+			g_vm->getQSystem()->getChapay()->setReactionAfterWalk(j, r, this, deleteReaction);
 			return;
 		default:
 			processed = false;
@@ -539,7 +539,7 @@ void QObject::setPos(int x, int y) {
 }
 
 void QObject::onClick(int x, int y) {
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 	switch (cursor->_actionType) {
 	case kActionLook:
 		g_vm->getQSystem()->addMessage(_id, kLook, 0, 0, 0, 0, this);
@@ -557,7 +557,7 @@ void QObject::onClick(int x, int y) {
 		g_vm->getQSystem()->addMessage(_id, kTalk, 0, 0, 0, 0, this);
 		break;
 	case kActionObjUseChapayev:
-		g_vm->getQSystem()->addMessage(_id, kObjectUse, x, y, 0, 0, g_vm->getQSystem()->_chapayev);
+		g_vm->getQSystem()->addMessage(_id, kObjectUse, x, y, 0, 0, g_vm->getQSystem()->getChapay());
 		break;
 	case kActionObjUse:
 		g_vm->getQSystem()->addMessage(_id, kObjectUse, 0, 0, 0, 0, cursor->_invObj);
diff --git a/engines/petka/objects/object_bg.cpp b/engines/petka/objects/object_bg.cpp
index eef86df6ec..ef3fd39021 100644
--- a/engines/petka/objects/object_bg.cpp
+++ b/engines/petka/objects/object_bg.cpp
@@ -97,8 +97,8 @@ void QObjectBG::draw() {
 void QObjectBG::goTo() {
 	QSystem *sys = g_vm->getQSystem();
 
-	sys->_petka->stopWalk();
-	sys->_chapayev->stopWalk();
+	sys->getPetka()->stopWalk();
+	sys->getChapay()->stopWalk();
 
 	int oldRoomId = sys->_mainInterface->_roomId;
 	sys->_mainInterface->loadRoom(_id, false);
@@ -129,11 +129,11 @@ void QObjectBG::setEntrance(const Common::String &name) {
 	QSystem *sys = g_vm->getQSystem();
 	QMessageObject *entrance = sys->findObject(name);
 	if (entrance) {
-		sys->_petka->_z = 0;
-		sys->_chapayev->_z = 0;
+		sys->getPetka()->_z = 0;
+		sys->getChapay()->_z = 0;
 
-		sys->_petka->setPos(entrance->_walkX, entrance->_walkY);
-		sys->_chapayev->setPos(entrance->_walkX, entrance->_walkY - 2);
+		sys->getPetka()->setPos(entrance->_walkX, entrance->_walkY);
+		sys->getChapay()->setPos(entrance->_walkX, entrance->_walkY - 2);
 
 		sys->_xOffset = CLIP<int32>(entrance->_walkX - 320, 0, sys->_sceneWidth - 640);
 		sys->_field6C = sys->_xOffset;
diff --git a/engines/petka/objects/object_case.cpp b/engines/petka/objects/object_case.cpp
index 58b9f5cebb..33ef7ba7f5 100644
--- a/engines/petka/objects/object_case.cpp
+++ b/engines/petka/objects/object_case.cpp
@@ -166,7 +166,7 @@ void QObjectCase::onMouseMove(int x, int y) {
 		if (i == kButtonsCount && _clickedObjIndex != kInvalidButton) {
 			_clickedObjIndex = kInvalidButton;
 		} else if (i != _clickedObjIndex) {
-			if ((i != kChapayevButton || g_vm->getQSystem()->_chapayev->_isShown) && (i != kMapButton || g_vm->getQSystem()->_room->_showMap)) {
+			if ((i != kChapayevButton || g_vm->getQSystem()->getChapay()->_isShown) && (i != kMapButton || g_vm->getQSystem()->_room->_showMap)) {
 				flc = g_vm->resMgr()->loadFlic(kFirstButtonResourceId + i);
 				g_vm->videoSystem()->addDirtyMskRects(*flc);
 				_clickedObjIndex = i;
diff --git a/engines/petka/objects/object_star.cpp b/engines/petka/objects/object_star.cpp
index c3c6acef8e..60eac2f501 100644
--- a/engines/petka/objects/object_star.cpp
+++ b/engines/petka/objects/object_star.cpp
@@ -72,9 +72,9 @@ void QObjectStar::onClick(int x, int y) {
 		return;
 	}
 	if (button == kCaseButtonIndex) {
-		g_vm->getQSystem()->_case->show(1);
+		g_vm->getQSystem()->getCase()->show(1);
 	} else {
-		QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+		QObjectCursor *cursor = g_vm->getQSystem()->getCursor();
 		cursor->setAction(button - 1);
 	}
 	show(0);
diff --git a/engines/petka/q_system.cpp b/engines/petka/q_system.cpp
index 8ef5372e07..9ed22f59dc 100644
--- a/engines/petka/q_system.cpp
+++ b/engines/petka/q_system.cpp
@@ -44,9 +44,8 @@
 namespace Petka {
 
 QSystem::QSystem()
-	: _cursor(nullptr), _case(nullptr), _star(nullptr), _petka(nullptr), _chapayev(nullptr),
-	_mainInterface(nullptr), _currInterface(nullptr), _prevInterface(nullptr), _isIniting(0),
-	_sceneWidth(640) {}
+	: _mainInterface(nullptr), _currInterface(nullptr), _prevInterface(nullptr),
+	_isIniting(0), _sceneWidth(640) {}
 
 QSystem::~QSystem() {
 	for (uint i = 0; i < _allObjects.size(); ++i) {
@@ -84,9 +83,9 @@ bool QSystem::init() {
 	for (uint i = 0; i < objsCount + bgsCount; ++i) {
 		QMessageObject *obj = nullptr;
 		if (i == 0) {
-			obj = _petka = new QObjectPetka;
+			obj = new QObjectPetka;
 		} else if (i == 1) {
-			obj = _chapayev = new QObjectChapayev;
+			obj = new QObjectChapayev;
 		} else if (i < objsCount) {
 			obj = new QObject;
 		} else {
@@ -99,13 +98,9 @@ bool QSystem::init() {
 
 	addMessageForAllObjects(kTotalInit);
 
-	_cursor = new QObjectCursor;
-	_case = new QObjectCase;
-	_star = new QObjectStar;
-
-	_allObjects.push_back(_cursor);
-	_allObjects.push_back(_case);
-	_allObjects.push_back(_star);
+	_allObjects.push_back(new QObjectCursor);
+	_allObjects.push_back(new QObjectCase);
+	_allObjects.push_back(new QObjectStar);
 
 	_mainInterface.reset(new InterfaceMain());
 	_startupInterface.reset(new InterfaceStartup());
@@ -165,8 +160,8 @@ void QSystem::update() {
 }
 
 void QSystem::togglePanelInterface() {
-	if (_currInterface != _startupInterface.get() && _star->_isActive) {
-		_case->show(0);
+	if (_currInterface != _startupInterface.get() && getStar()->_isActive) {
+		getCase()->show(0);
 		if (_currInterface == _panelInterface.get()) {
 			_currInterface->stop();
 		} else if (_currInterface == _mainInterface.get()) {
@@ -176,8 +171,8 @@ void QSystem::togglePanelInterface() {
 }
 
 void QSystem::toggleMapInterface() {
-	if (_currInterface != _startupInterface.get() && _star->_isActive && _room->_showMap) {
-		_case->show(0);
+	if (_currInterface != _startupInterface.get() && getStar()->_isActive && _room->_showMap) {
+		getCase()->show(0);
 		if (_currInterface == _mapInterface.get()) {
 			_currInterface->stop();
 		} else if (_currInterface == _mainInterface.get()) {
@@ -188,8 +183,8 @@ void QSystem::toggleMapInterface() {
 }
 
 void QSystem::setChapayev() {
-	if (_star->_isActive && _currInterface == _mainInterface.get() && _chapayev->_isShown) {
-		_cursor->setAction(kActionObjUseChapayev);
+	if (getStar()->_isActive && _currInterface == _mainInterface.get() && getChapay()->_isShown) {
+		getCursor()->setAction(kActionObjUseChapayev);
 	}
 }
 
@@ -224,9 +219,10 @@ void QSystem::load(Common::ReadStream *s) {
 	}
 
 	uint itemSize = s->readUint32LE();
-	_case->_items.clear();
+	QObjectCase *objCase = getCase();
+	objCase->_items.clear();
 	for (uint i = 0; i < itemSize; ++i) {
-		_case->_items.push_back(s->readSint32LE());
+		objCase->_items.push_back(s->readSint32LE());
 	}
 
 	_room = (QObjectBG *)findObject(readString(s));
@@ -236,13 +232,14 @@ void QSystem::load(Common::ReadStream *s) {
 
 	g_vm->getBigDialogue()->load(s);
 
-	_cursor->_resourceId = s->readUint32LE();
-	_cursor->_actionType = s->readUint32LE();
+	QObjectCursor *cursor = getCursor();
+	cursor->_resourceId = s->readUint32LE();
+	cursor->_actionType = s->readUint32LE();
 	int invObjId = s->readSint32LE();
 	if (invObjId != -1) {
-		_cursor->_invObj = findObject(invObjId);
+		cursor->_invObj = findObject(invObjId);
 	} else {
-		_cursor->_invObj = nullptr;
+		cursor->_invObj = nullptr;
 	}
 
 	g_vm->videoSystem()->makeAllDirty();
@@ -263,9 +260,10 @@ void QSystem::save(Common::WriteStream *s) {
 		s->writeUint32LE(_allObjects[i]->_animate);
 	}
 
-	s->writeUint32LE(_case->_items.size());
-	for (uint i = 0; i < _case->_items.size(); ++i) {
-		s->writeSint32LE(_case->_items[i]);
+	QObjectCase *objCase = getCase();
+	s->writeUint32LE(objCase->_items.size());
+	for (uint i = 0; i < objCase->_items.size(); ++i) {
+		s->writeSint32LE(objCase->_items[i]);
 	}
 
 	writeString(s, _room->_name);
@@ -274,13 +272,34 @@ void QSystem::save(Common::WriteStream *s) {
 
 	g_vm->getBigDialogue()->save(s);
 
-	s->writeUint32LE(_cursor->_resourceId);
-	s->writeUint32LE(_cursor->_actionType);
-	if (_cursor->_invObj) {
-		s->writeSint32LE(_cursor->_invObj->_resourceId);
+	QObjectCursor *cursor = getCursor();
+	s->writeUint32LE(cursor->_resourceId);
+	s->writeUint32LE(cursor->_actionType);
+	if (cursor->_invObj) {
+		s->writeSint32LE(cursor->_invObj->_resourceId);
 	} else {
 		s->writeSint32LE(-1);
 	}
 }
 
+QObjectPetka *QSystem::getPetka() const {
+	return (QObjectPetka *)_allObjects[0];
+}
+
+QObjectChapayev *QSystem::getChapay() const {
+	return (QObjectChapayev *)_allObjects[1];
+}
+
+QObjectCursor *QSystem::getCursor() const {
+	return (QObjectCursor *)_allObjects[_allObjects.size() - 3];
+}
+
+QObjectCase *QSystem::getCase() const {
+	return (QObjectCase *)_allObjects[_allObjects.size() - 2];
+}
+
+QObjectStar *QSystem::getStar() const {
+	return (QObjectStar *)_allObjects.back();
+}
+
 }
diff --git a/engines/petka/q_system.h b/engines/petka/q_system.h
index dd41ca0c30..9c6dfe9ed3 100644
--- a/engines/petka/q_system.h
+++ b/engines/petka/q_system.h
@@ -65,6 +65,12 @@ public:
 	QMessageObject *findObject(int16 id);
 	QMessageObject *findObject(const Common::String &name);
 
+	QObjectPetka *getPetka() const;
+	QObjectChapayev *getChapay() const;
+	QObjectCursor *getCursor() const;
+	QObjectCase *getCase() const;
+	QObjectStar *getStar() const;
+
 	void togglePanelInterface();
 	void toggleMapInterface();
 
@@ -73,11 +79,6 @@ public:
 public:
 	Common::Array<QMessageObject *> _allObjects;
 	Common::List<QMessage> _messages;
-	QObjectPetka *_petka;
-	QObjectChapayev *_chapayev;
-	QObjectCursor *_cursor;
-	QObjectCase *_case;
-	QObjectStar *_star;
 	Common::ScopedPtr<InterfaceMain> _mainInterface;
 	Common::ScopedPtr<InterfaceSaveLoad> _saveLoadInterface;
 	Common::ScopedPtr<InterfaceSequence> _sequenceInterface;




More information about the Scummvm-git-logs mailing list