Skip to content

Commit

Permalink
NEVERHOOD: Use InsertKlayman
Browse files Browse the repository at this point in the history
  • Loading branch information
johndoe123 authored and wjp committed May 8, 2013
1 parent cac9a09 commit 4a88ce3
Show file tree
Hide file tree
Showing 10 changed files with 118 additions and 131 deletions.
19 changes: 16 additions & 3 deletions engines/neverhood/klayman.cpp
Expand Up @@ -2125,6 +2125,11 @@ KmScene1002::KmScene1002(NeverhoodEngine *vm, Entity *parentScene, int16 x, int1

}

void KmScene1002::init(Sprite *class599, Sprite *ssLadderArch) {
_class599 = class599;
_ssLadderArch = ssLadderArch;
}

void KmScene1002::xUpdate() {
if (_x >= 250 && _x <= 435 && _y >= 420) {
if (_status == 0) {
Expand Down Expand Up @@ -2692,14 +2697,18 @@ void KmScene1004::sub478170() {

// KmScene1201

KmScene1201::KmScene1201(NeverhoodEngine *vm, Entity *parentScene, Entity *class464, int16 x, int16 y)
: Klayman(vm, parentScene, x, y, 1000, 1000), _class464(class464), _countdown(0) {
KmScene1201::KmScene1201(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y)
: Klayman(vm, parentScene, x, y, 1000, 1000), _countdown(0) {

// TODO setKlaymanTable(dword_4AEF10, 3);
_flagF6 = true;

}

void KmScene1201::init(Entity *class464) {
_class464 = class464;
}

uint32 KmScene1201::xHandleMessage(int messageNum, const MessageParam &param) {
switch (messageNum) {
case 0x4001:
Expand Down Expand Up @@ -3872,14 +3881,18 @@ void KmScene2001::sub440270() {
SetMessageHandler(&KmScene2001::handleMessage4401A0);
}

KmScene2201::KmScene2201(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y, NRect *rect1, int16 unk)
KmScene2201::KmScene2201(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y)
// TODO: NRect *rect1, int16 unk in Klayman ctor
: Klayman(vm, parentScene, x, y, 1000, 1000) {

_dataResource.load(0x04104242);
_flagF6 = false;
}

void KmScene2201::init(NRect *clipRects, int clipRectsCount) {
// TODO
}

uint32 KmScene2201::xHandleMessage(int messageNum, const MessageParam &param) {
switch (messageNum) {
case 0x4001:
Expand Down
11 changes: 5 additions & 6 deletions engines/neverhood/klayman.h
Expand Up @@ -261,10 +261,7 @@ class KmScene1001 : public Klayman {
class KmScene1002 : public Klayman {
public:
KmScene1002(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y);
void init(Sprite *class599, Sprite *ssLadderArch) {
_class599 = class599;
_ssLadderArch = ssLadderArch;
}
void init(Sprite *class599, Sprite *ssLadderArch);
protected:
Sprite *_class599;
Sprite *_ssLadderArch;
Expand Down Expand Up @@ -310,7 +307,8 @@ class KmScene1004 : public Klayman {

class KmScene1201 : public Klayman {
public:
KmScene1201(NeverhoodEngine *vm, Entity *parentScene, Entity *class464, int16 x, int16 y);
KmScene1201(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y);
void init(Entity *class464);
protected:
Entity *_class464;
int _countdown;
Expand Down Expand Up @@ -431,7 +429,8 @@ class KmScene2001 : public Klayman {

class KmScene2201 : public Klayman {
public:
KmScene2201(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y, NRect *rect1, int16 unk);
KmScene2201(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y);
void init(NRect *clipRects, int clipRectsCount);
protected:
uint32 xHandleMessage(int messageNum, const MessageParam &param);
};
Expand Down
29 changes: 13 additions & 16 deletions engines/neverhood/module1000.cpp
Expand Up @@ -410,27 +410,26 @@ Scene1001::Scene1001(NeverhoodEngine *vm, Module *parentModule, int which)

if (which < 0) {
setRectList(0x004B49F0);
_klayman = new KmScene1001(_vm, this, 200, 433);
InsertKlayman(KmScene1001, 200, 433);
setMessageList(0x004B4888);
} else if (which == 1) {
setRectList(0x004B49F0);
_klayman = new KmScene1001(_vm, this, 640, 433);
InsertKlayman(KmScene1001, 640, 433);
setMessageList(0x004B4898);
} else if (which == 2) {
setRectList(0x004B49F0);
if (getGlobalVar(0xC0418A02)) {
_klayman = new KmScene1001(_vm, this, 390, 433);
InsertKlayman(KmScene1001, 390, 433);
_klayman->setDoDeltaX(1);
} else {
_klayman = new KmScene1001(_vm, this, 300, 433);
InsertKlayman(KmScene1001, 300, 433);
}
setMessageList(0x004B4970);
} else {
setRectList(0x004B4A00);
_klayman = new KmScene1001(_vm, this, 200, 433);
InsertKlayman(KmScene1001, 200, 433);
setMessageList(0x004B4890);
}
addSprite(_klayman);

tempSprite = insertStaticSprite(0x2080A3A8, 1300);

Expand Down Expand Up @@ -1425,7 +1424,7 @@ Scene1002::Scene1002(NeverhoodEngine *vm, Module *parentModule, int which)

if (which < 0) {
if (_vm->_gameState.field2 == 0) {
InsertKlayman(KmScene1002, 90, 226, (_class599, _ssLadderArch));
InsertKlaymanInitArgs(KmScene1002, 90, 226, (_class599, _ssLadderArch));
_class478 = addSprite(new Class478(_vm, _klayman));
setMessageList(0x004B4270);
_klayman->getSurface()->getClipRect().x1 = 31;
Expand All @@ -1435,7 +1434,7 @@ Scene1002::Scene1002(NeverhoodEngine *vm, Module *parentModule, int which)
_class478->getSurface()->getClipRect() = _klayman->getSurface()->getClipRect();
_klayman->setRepl(64, 0);
} else {
InsertKlayman(KmScene1002, 379, 435, (_class599, _ssLadderArch));
InsertKlaymanInitArgs(KmScene1002, 379, 435, (_class599, _ssLadderArch));
_class478 = addSprite(new Class478(_vm, _klayman));
setMessageList(0x004B4270);
_klayman->getSurface()->getClipRect().x1 = _ssLadderArch->getSurface()->getDrawRect().x;
Expand All @@ -1445,7 +1444,7 @@ Scene1002::Scene1002(NeverhoodEngine *vm, Module *parentModule, int which)
_class478->getSurface()->getClipRect() = _klayman->getSurface()->getClipRect();
}
} else if (which == 1) {
InsertKlayman(KmScene1002, 650, 435, (_class599, _ssLadderArch));
InsertKlaymanInitArgs(KmScene1002, 650, 435, (_class599, _ssLadderArch));
_class478 = addSprite(new Class478(_vm, _klayman));
setMessageList(0x004B4478);
_klayman->getSurface()->getClipRect().x1 = _ssLadderArch->getSurface()->getDrawRect().x;
Expand All @@ -1455,7 +1454,7 @@ Scene1002::Scene1002(NeverhoodEngine *vm, Module *parentModule, int which)
_class478->getSurface()->getClipRect() = _klayman->getSurface()->getClipRect();
_vm->_gameState.field2 = 1;
} else if (which == 2) {
InsertKlayman(KmScene1002, 68, 645, (_class599, _ssLadderArch));
InsertKlaymanInitArgs(KmScene1002, 68, 645, (_class599, _ssLadderArch));
_class478 = addSprite(new Class478(_vm, _klayman));
setMessageList(0x004B4298);
_klayman->getSurface()->getClipRect().x1 = _ssLadderArch->getSurface()->getDrawRect().x;
Expand All @@ -1466,7 +1465,7 @@ Scene1002::Scene1002(NeverhoodEngine *vm, Module *parentModule, int which)
_vm->_gameState.field2 = 1;
sendMessage(_klayman, 0x4820, 0);
} else {
InsertKlayman(KmScene1002, 90, 226, (_class599, _ssLadderArch));
InsertKlaymanInitArgs(KmScene1002, 90, 226, (_class599, _ssLadderArch));
_class478 = addSprite(new Class478(_vm, _klayman));
setMessageList(0x004B4470);
_klayman->getSurface()->getClipRect().x1 = 31;
Expand Down Expand Up @@ -1766,20 +1765,18 @@ Scene1004::Scene1004(NeverhoodEngine *vm, Module *parentModule, int which)

if (which < 0) {
setRectList(0x004B7C70);
_klayman = new KmScene1004(_vm, this, 330, 327);
InsertKlayman(KmScene1004, 330, 327);
setMessageList(0x004B7C18);
} else if (which == 1) {
setRectList(0x004B7C70);
_klayman = new KmScene1004(_vm, this, 330, 327);
InsertKlayman(KmScene1004, 330, 327);
setMessageList(0x004B7C08);
} else {
loadDataResource(0x01900A04);
_klayman = new KmScene1004(_vm, this, _dataResource.getPoint(0x80052A29).x, 27);
InsertKlayman(KmScene1004, _dataResource.getPoint(0x80052A29).x, 27);
setMessageList(0x004B7BF0);
}

addSprite(_klayman);

updatePaletteArea();

_class478 = addSprite(new Class478(_vm, _klayman));
Expand Down
16 changes: 7 additions & 9 deletions engines/neverhood/module1200.cpp
Expand Up @@ -845,29 +845,29 @@ Scene1201::Scene1201(NeverhoodEngine *vm, Module *parentModule, int which)
class464 = addSprite(new Class464(_vm));

if (which < 0) {
_klayman = new KmScene1201(_vm, this, class464, 364, 333);
InsertKlaymanInitArgs(KmScene1201, 364, 333, (class464));
setMessageList(0x004AEC08);
} else if (which == 3) {
_klayman = new KmScene1201(_vm, this, class464, 400, 329);
InsertKlaymanInitArgs(KmScene1201, 400, 329, (class464));
setMessageList(0x004AEC08);
} else if (which == 2) {
if (getGlobalVar(0x0A310817) && !getGlobalVar(0x0A18CA33)) {
_klayman = new KmScene1201(_vm, this, class464, 374, 333);
InsertKlaymanInitArgs(KmScene1201, 374, 333, (class464));
setMessageList(0x004AEC08);
} else {
_klayman = new KmScene1201(_vm, this, class464, 640, 329);
InsertKlaymanInitArgs(KmScene1201, 640, 329, (class464));
setMessageList(0x004AEC20);
}
} else if (which == 1) {
if (getGlobalVar(0xC0418A02)) {
_klayman = new KmScene1201(_vm, this, class464, 364, 333);
InsertKlaymanInitArgs(KmScene1201, 364, 333, (class464));
_klayman->setDoDeltaX(1);
} else {
_klayman = new KmScene1201(_vm, this, class464, 246, 333);
InsertKlaymanInitArgs(KmScene1201, 246, 333, (class464));
}
setMessageList(0x004AEC30);
} else {
_klayman = new KmScene1201(_vm, this, class464, 0, 336);
InsertKlaymanInitArgs(KmScene1201, 0, 336, (class464));
setMessageList(0x004AEC10);
}

Expand All @@ -877,8 +877,6 @@ Scene1201::Scene1201(NeverhoodEngine *vm, Module *parentModule, int which)
_klayman->getSurface()->getClipRect().y2 = 480;
_klayman->setRepl(64, 0);

addSprite(_klayman);

if (getGlobalVar(0x0A310817) && !getGlobalVar(0x0A18CA33)) {
_background = addBackground(new DirtyBackground(_vm, 0x4019A2C4, 0, 0));
_palette = new Palette(_vm, 0x4019A2C4);
Expand Down
44 changes: 19 additions & 25 deletions engines/neverhood/module1300.cpp
Expand Up @@ -664,13 +664,12 @@ Scene1302::Scene1302(NeverhoodEngine *vm, Module *parentModule, int which)
_ssFence->getSurface()->getClipRect().y2 = _sprite1->getSurface()->getDrawRect().y + _sprite1->getSurface()->getDrawRect().height;

if (which < 0) {
// _klayman = new KmScene1002(_vm, this, _class595, NULL, 380, 364);
InsertKlaymanInitArgs(KmScene1002, 380, 364, (_class595, NULL));
setMessageList(0x004B0868);
} else {
// _klayman = new KmScene1002(_vm, this, _class595, NULL, 293, 330);
InsertKlaymanInitArgs(KmScene1002, 293, 330, (_class595, NULL));
setMessageList(0x004B0870);
}
addSprite(_klayman);

_klayman->getSurface()->getClipRect().x1 = 0;
_klayman->getSurface()->getClipRect().y1 = 0;
Expand Down Expand Up @@ -877,8 +876,7 @@ Scene1303::Scene1303(NeverhoodEngine *vm, Module *parentModule, int which)

_sprite1 = insertStaticSprite(0xA014216B, 1100);

_klayman = new KmScene1303(_vm, this, 207, 332);
addSprite(_klayman);
InsertKlayman(KmScene1303, 207, 332);
setMessageList(0x004AF9A0);

_klayman->getSurface()->getClipRect().x1 = _sprite1->getSurface()->getDrawRect().x;
Expand Down Expand Up @@ -963,13 +961,12 @@ Scene1304::Scene1304(NeverhoodEngine *vm, Module *parentModule, int which)
insertStaticSprite(0x090AF033, 1100);

if (which < 0) {
_klayman = new KmScene1304(_vm, this, 217, 347);
InsertKlayman(KmScene1304, 217, 347);
setMessageList(0x004B90E8);
} else {
_klayman = new KmScene1304(_vm, this, 100, 347);
InsertKlayman(KmScene1304, 100, 347);
setMessageList(0x004B90F0);
}
addSprite(_klayman);

_klayman->getSurface()->getClipRect().x1 = _sprite1->getSurface()->getDrawRect().x;
_klayman->getSurface()->getClipRect().y1 = 0;
Expand Down Expand Up @@ -1016,13 +1013,12 @@ Scene1305::Scene1305(NeverhoodEngine *vm, Module *parentModule, int which)
_mouseCursor = addSprite(new Mouse433(_vm, 0x01B60280, NULL));

if (which < 0) {
_klayman = new KmScene1305(_vm, this, 212, 441);
InsertKlayman(KmScene1305, 212, 441);
setMessageList(0x004B6E40);
} else {
_klayman = new KmScene1305(_vm, this, 212, 441);
InsertKlayman(KmScene1305, 212, 441);
setMessageList(0x004B6E48);
}
addSprite(_klayman);

}

Expand Down Expand Up @@ -1153,45 +1149,45 @@ Scene1306::Scene1306(NeverhoodEngine *vm, Module *parentModule, int which)
insertStaticSprite(0x00042313, 1100);

if (which < 0) {
_klayman = new KmScene1306(_vm, this, 380, 440);
InsertKlayman(KmScene1306, 380, 440);
setMessageList(0x004AFAD0);
sendMessage(this, 0x2000, 0);
_vm->_collisionMan->addSprite(_asTape);
} else if (which == 1) {
_klayman = new KmScene1306(_vm, this, 136, 440);
InsertKlayman(KmScene1306, 136, 440);
sendMessage(_klayman, 0x2000, 1);
setMessageList(0x004AFAF0);
sendMessage(this, 0x2000, 1);
_vm->_collisionMan->addSprite(_asTape);
} else if (which == 2) {
if (getGlobalVar(0xC0418A02)) {
_klayman = new KmScene1306(_vm, this, 515, 440);
InsertKlayman(KmScene1306, 515, 440);
_klayman->setDoDeltaX(1);
} else {
_klayman = new KmScene1306(_vm, this, 355, 440);
InsertKlayman(KmScene1306, 355, 440);
}
setMessageList(0x004AFBC8);
sendMessage(this, 0x2000, 0);
_vm->_collisionMan->addSprite(_asTape);
} else if (which == 3) {
_klayman = new KmScene1306(_vm, this, 534, 440);
InsertKlayman(KmScene1306, 534, 440);
setMessageList(0x004AFC30);
sendMessage(this, 0x2000, 0);
_vm->_collisionMan->addSprite(_asTape);
} else if (which == 4) {
_klayman = new KmScene1306(_vm, this, 136, 440);
InsertKlayman(KmScene1306, 136, 440);
sendMessage(_klayman, 0x2000, 1);
setMessageList(0x004AFC38);
sendMessage(this, 0x2000, 1);
_vm->_collisionMan->addSprite(_asTape);
} else if (which == 5) {
_klayman = new KmScene1306(_vm, this, 136, 440);
InsertKlayman(KmScene1306, 136, 440);
sendMessage(_klayman, 0x2000, 1);
setMessageList(0x004AFB00);
sendMessage(this, 0x2000, 1);
_vm->_collisionMan->addSprite(_asTape);
} else {
_klayman = new KmScene1306(_vm, this, 286, 408);
InsertKlayman(KmScene1306, 286, 408);
setSurfacePriority(_asElevator->getSurface(), 1100);
setSurfacePriority(_asElevatorDoor->getSurface(), 1090);
setSurfacePriority(_sprite1->getSurface(), 1080);
Expand All @@ -1200,7 +1196,6 @@ Scene1306::Scene1306(NeverhoodEngine *vm, Module *parentModule, int which)
clearRectList();
sendMessage(_asElevator, 0x4808, 0);
}
addSprite(_klayman);

}

Expand Down Expand Up @@ -1879,7 +1874,7 @@ Scene1308::Scene1308(NeverhoodEngine *vm, Module *parentModule, int which)
_sprite4 = NULL;

if (which < 0) {
_klayman = new KmScene1308(_vm, this, 380, 440);
InsertKlayman(KmScene1308, 380, 440);
setMessageList(0x004B57C0);
if (getGlobalVar(0x80455A41)) {
_sprite4 = insertStaticSprite(0x0101A624, 1100);
Expand All @@ -1889,7 +1884,7 @@ Scene1308::Scene1308(NeverhoodEngine *vm, Module *parentModule, int which)
setRectList(0x004B5980);
}
} else if (which == 1) {
_klayman = new KmScene1308(_vm, this, 640, 440);
InsertKlayman(KmScene1308, 640, 440);
setMessageList(0x004B57C8);
if (getGlobalVar(0x80455A41)) {
_sprite4 = insertStaticSprite(0x0101A624, 1100);
Expand All @@ -1899,7 +1894,7 @@ Scene1308::Scene1308(NeverhoodEngine *vm, Module *parentModule, int which)
setRectList(0x004B5980);
}
} else if (which == 2) {
_klayman = new KmScene1308(_vm, this, 475, 440);
InsertKlayman(KmScene1308, 475, 440);
setMessageList(0x004B58B0);
if (getGlobalVar(0x80455A41)) {
_sprite5 = addSprite(new Class592(_vm, this));
Expand All @@ -1910,7 +1905,7 @@ Scene1308::Scene1308(NeverhoodEngine *vm, Module *parentModule, int which)
setRectList(0x004B5980);
}
} else {
_klayman = new KmScene1308(_vm, this, 41, 440);
InsertKlayman(KmScene1308, 41, 440);
setMessageList(0x004B57D0);
sendMessage(_class549, 0x4808, 0);
_sprite1->getSurface()->setVisible(false);
Expand All @@ -1922,7 +1917,6 @@ Scene1308::Scene1308(NeverhoodEngine *vm, Module *parentModule, int which)
_klayman->getSurface()->setVisible(false);
}
}
addSprite(_klayman);

if (_sprite4) {
_klayman->getSurface()->getClipRect().x1 = _sprite1->getSurface()->getDrawRect().x;
Expand Down

0 comments on commit 4a88ce3

Please sign in to comment.