diff options
author | johndoe123 | 2011-06-27 17:09:55 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:30:57 +0200 |
commit | 4a01a69e37633aad402cea8477d812df4391a84d (patch) | |
tree | d66823d4daa1a74549adda2c5c714ffeab2a6ab3 /engines/neverhood/gamemodule.cpp | |
parent | eb5ab30ce0ca0cfb58eed5a434f2252afc9718f7 (diff) | |
download | scummvm-rg350-4a01a69e37633aad402cea8477d812df4391a84d.tar.gz scummvm-rg350-4a01a69e37633aad402cea8477d812df4391a84d.tar.bz2 scummvm-rg350-4a01a69e37633aad402cea8477d812df4391a84d.zip |
NEVERHOOD: Start with Module and GameModule classes
Diffstat (limited to 'engines/neverhood/gamemodule.cpp')
-rw-r--r-- | engines/neverhood/gamemodule.cpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp new file mode 100644 index 0000000000..887ff3d37a --- /dev/null +++ b/engines/neverhood/gamemodule.cpp @@ -0,0 +1,98 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "neverhood/gamemodule.h" + +namespace Neverhood { + +GameModule::GameModule(NeverhoodEngine *vm) + : Module(_vm, NULL) { + + // Other initializations moved to actual engine class + + // TODO .text:0048AD96 + + // TODO Sound1ChList_sub_407F70(0x2D0031, 0x8861079); + + + + SetMessageHandler(&GameModule::handleMessage); + +} + +GameModule::~GameModule() { + + // TODO Sound1ChList_sub_407AF0(0x2D0031); + + delete _childObject; + _childObject = NULL; + + // TODO: Set palette to black but probably not neccessary + + // TODO Sound1ChList_sub_408480(); + +} + +uint32 GameModule::handleMessage(int messageNum, const MessageParam ¶m, Entity *sender) { + uint32 messageResult = Module::handleMessage(messageNum, param, sender); + switch (messageNum) { + case 0x0800: + _someFlag1 = true; + return messageResult; + case 0x1009: + _field24 = -1; + _field26 = -1; + _field28 = -1; + _field20 = param._integer; + _done = true; + return messageResult; + case 0x100A: + _field24 = (int16)param._integer; + return messageResult; + case 0x101F: + _field2C = true; + return messageResult; + case 0x1023: + _field26 = (int16)param._integer; + return messageResult; + } + return messageResult; +} + +void GameModule::startup() { + // TODO: Displaying of error text probably not needed in ScummVM + createModule1500(0); +} + +void GameModule::createModule1500(int which) { + // TODO + _someFlag1 = false; + // TODO *getGlobalGameVarValuePtr(0x91080831) = 0x0F10114; + // TODO _childObject = new Module1500(this, which, true); + SetUpdateHandler(&GameModule::updateModule1500); +} + +void GameModule::updateModule1500() { + // TODO +} + +} // End of namespace Neverhood |