aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/module1000.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/neverhood/module1000.cpp')
-rw-r--r--engines/neverhood/module1000.cpp90
1 files changed, 89 insertions, 1 deletions
diff --git a/engines/neverhood/module1000.cpp b/engines/neverhood/module1000.cpp
index d1403b9307..248769ecf5 100644
--- a/engines/neverhood/module1000.cpp
+++ b/engines/neverhood/module1000.cpp
@@ -103,7 +103,95 @@ void Module1000::updateScene1005() {
// Scene1001
Scene1001::Scene1001(NeverhoodEngine *vm, Module *parentModule, int which)
- : Scene(vm, parentModule, true) {
+ : Scene(vm, parentModule, true), _fieldE4(-1), _fieldE6(-1) {
+
+ // TODO: Implement Sprite classes
+
+ Sprite *staticSprite1;
+
+ SetMessageHandler(&Scene1001::handleMessage);
+
+ _vm->_collisionMan->setHitRects(0x004B4858);
+ _surfaceFlag = false;
+ _background = addBackground(new DirtyBackground(_vm, 0x4086520E, 0, 0));
+ _palette = new Palette(_vm, 0x4086520E);
+ _palette->usePalette();
+
+ // TODO Mouse
+
+#if 0
+ // TODO: Player sprites...
+ if (which < 0) {
+ setRectList(0x004B49F0);
+ _playerSprite = new Class572(_vm, this, 200, 433, 1000, 1000);
+ setMessageList(0x004B4888);
+ } else if (which == 1) {
+ setRectList(0x004B49F0);
+ _playerSprite = new Class572(_vm, this, 640, 433, 1000, 1000);
+ setMessageList(0x004B4898);
+ } else if (which == 2) {
+ setRectList(0x004B49F0);
+ if (_vm->getGlobalVar(0xC0418A02)) {
+ _playerSprite = new Class572(_vm, this, 390, 433, 1000, 1000);
+ _playerSprite->setDoDeltaX(1);
+ } else {
+ _playerSprite = new Class572(_vm, this, 300, 433, 1000, 1000);
+ }
+ setMessageList(0x004B4970);
+ } else {
+ setRectList(0x004B4A00);
+ _playerSprite = new Class572(_vm, this, 200, 433, 1000, 1000);
+ setMessageList(0x004B4890);
+ }
+ addSprite(_playerSprite);
+#endif
+
+ staticSprite1 = addSprite(new StaticSprite(_vm, 0x2080A3A8, 1300));
+
+#if 0
+ // TODO: This sucks somehow, find a better way
+ _playerSprite->getSurface()->getClipRect().x1 = 0;
+ _playerSprite->getSurface()->getClipRect().y1 = 0;
+ _playerSprite->getSurface()->getClipRect().x2 = staticSprite1->getSurface()->getDrawRect().x + staticSprite1->getSurface()->getDrawRect().width;
+ _playerSprite->getSurface()->getClipRect().y2 = 480;
+
+ if (_vm->getGlobalVar(0xD217189D) == 0) {
+ _class509 = addSprite(new Class509(_vm));
+ _class509->getSurface()->getClipRect().x1 = 0;
+ _class509->getSurface()->getClipRect().y1 = 0;
+ _class509->getSurface()->getClipRect().x2 = staticSprite1->getSurface()->getDrawRect().x + staticSprite1->getSurface()->getDrawRect().width;
+ _class509->getSurface()->getClipRect().y2 = 480;
+ } else {
+ _class509 = NULL;
+ }
+
+ _class511 = addSprite(new Class511(_vm, this, 150, 433, 1));
+#endif
+
+ addSprite(new StaticSprite(_vm, 0x809861A6, 950));
+ addSprite(new StaticSprite(_vm, 0x89C03848, 1100));
+
+#if 0
+ _class608 = addSprite(new Class608(_vm, 0x15288120, 100, 0));
+#endif
+
+ if (_vm->getGlobalVar(0x03C698DA) == 0) {
+ staticSprite1 = addSprite(new StaticSprite(_vm, 0x8C066150, 200));
+#if 0
+ _class510 = addSprite(new Class510(_vm));
+ _class510->getSurface()->getClipRect().x1 = staticSprite1->getSurface()->getDrawRect().x;
+ _class510->getSurface()->getClipRect().y1 = staticSprite1->getSurface()->getDrawRect().y;
+ _class510->getSurface()->getClipRect().x2 = staticSprite1->getSurface()->getDrawRect().x + staticSprite1->getSurface()->getDrawRect().width;
+ _class510->getSurface()->getClipRect().y2 = staticSprite1->getSurface()->getDrawRect().y + staticSprite1->getSurface()->getDrawRect().height;
+#endif
+ } else {
+ _class510= NULL;
+ }
+
+#if 0
+ _class508 = addSprite(new Class508(_vm, _class509));
+#endif
+
}
void Scene1001::update() {