diff options
Diffstat (limited to 'engines/neverhood/module3000.cpp')
-rw-r--r-- | engines/neverhood/module3000.cpp | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/engines/neverhood/module3000.cpp b/engines/neverhood/module3000.cpp index f645fb475b..d979bbb7a8 100644 --- a/engines/neverhood/module3000.cpp +++ b/engines/neverhood/module3000.cpp @@ -735,15 +735,10 @@ AsScene3009Symbol::AsScene3009Symbol(NeverhoodEngine *vm, Scene3009 *parentScene updatePosition(); SetUpdateHandler(&AnimatedSprite::update); SetMessageHandler(&AsScene3009Symbol::handleMessage); - - _ssArrowPrev = new SsScene3009SymbolArrow(_vm, this, _index * 2 + 0); - _parentScene->addSprite(_ssArrowPrev); + _ssArrowPrev = _parentScene->insertSprite<SsScene3009SymbolArrow>(this, _index * 2 + 0); _vm->_collisionMan->addSprite(_ssArrowPrev); - - _ssArrowNext = new SsScene3009SymbolArrow(_vm, this, _index * 2 + 1); - _parentScene->addSprite(_ssArrowNext); + _ssArrowNext = _parentScene->insertSprite<SsScene3009SymbolArrow>(this, _index * 2 + 1); _vm->_collisionMan->addSprite(_ssArrowNext); - } uint32 AsScene3009Symbol::handleMessage(int messageNum, const MessageParam ¶m, Entity *sender) { @@ -798,15 +793,13 @@ Scene3009::Scene3009(NeverhoodEngine *vm, Module *parentModule, int which) setPalette(0xD000420C); insertMouse435(0x04208D08, 20, 620); - _ssFireCannonButton = addSprite(new SsScene3009FireCannonButton(_vm, this)); + _ssFireCannonButton = insertSprite<SsScene3009FireCannonButton>(this); _vm->_collisionMan->addSprite(_ssFireCannonButton); - _asVerticalIndicator = new AsScene3009VerticalIndicator(_vm, this, _cannonLocation); - addSprite(_asVerticalIndicator); + _asVerticalIndicator = insertSprite<AsScene3009VerticalIndicator>(this, _cannonLocation); _vm->_collisionMan->addSprite(_asVerticalIndicator); - _asHorizontalIndicator = new AsScene3009HorizontalIndicator(_vm, this, _cannonLocation); - addSprite(_asHorizontalIndicator); + _asHorizontalIndicator = insertSprite<AsScene3009HorizontalIndicator>(this, _cannonLocation); _vm->_collisionMan->addSprite(_asHorizontalIndicator); if (_cannonLocation != 0 && _cannonLocation != 8 && _cannonLocation != 9 && _cannonLocation != 10) { @@ -826,16 +819,12 @@ Scene3009::Scene3009(NeverhoodEngine *vm, Module *parentModule, int which) insertStaticSprite(0x8540252C, 400); for (int i = 0; i < 2; i++) { - _ssSymbolEdges[i] = new SsScene3009SymbolEdges(_vm, i); - addSprite(_ssSymbolEdges[i]); - _ssTargetLines[i] = new SsScene3009TargetLine(_vm, i); - addSprite(_ssTargetLines[i]); + _ssSymbolEdges[i] = insertSprite<SsScene3009SymbolEdges>(i); + _ssTargetLines[i] = insertSprite<SsScene3009TargetLine>(i); } - for (int i = 0; i < 6; i++) { - _asSymbols[i] = new AsScene3009Symbol(_vm, this, i); - addSprite(_asSymbols[i]); + _asSymbols[i] = insertSprite<AsScene3009Symbol>(this, i); if (i < 3) _correctSymbols[i] = getSubVar(0x00504B86, i); else @@ -1294,10 +1283,8 @@ Scene3010::Scene3010(NeverhoodEngine *vm, Module *parentModule, int which) setPalette(0x80802626); for (int i = 0; i < 3; i++) { - _asDeadBolts[i] = new AsScene3010DeadBolt(_vm, this, i, which == 1);//CHECKME - addSprite(_asDeadBolts[i]); - _ssDeadBoltButtons[i] = new SsScene3010DeadBoltButton(_vm, this, i, initCountdown, which == 1);//CHECKME - addSprite(_ssDeadBoltButtons[i]); + _asDeadBolts[i] = insertSprite<AsScene3010DeadBolt>(this, i, which == 1);//CHECKME + _ssDeadBoltButtons[i] = insertSprite<SsScene3010DeadBoltButton>(this, i, initCountdown, which == 1);//CHECKME _vm->_collisionMan->addSprite(_ssDeadBoltButtons[i]); if (getSubVar(0x14800353, kScene3010ButtonNameHashes[i])) initCountdown++; @@ -1533,28 +1520,25 @@ void AsScene3011Symbol::change(int index, bool flag) { Scene3011::Scene3011(NeverhoodEngine *vm, Module *parentModule, int which) : Scene(vm, parentModule, true), _updateStatus(0), _buttonClicked(false), _index2(0) { - _surfaceFlag = true; - // TODO _vm->gameModule()->initScene3011Vars(); _index1 = getGlobalVar(0x2414C2F2); + _surfaceFlag = true; + SetMessageHandler(&Scene3011::handleMessage); + SetUpdateHandler(&Scene3011::update); + setBackground(0x92124A04); setPalette(0xA4070114); addEntity(_palette); insertMouse435(0x24A00929, 20, 620); - for (int i = 0; i < 12; i++) { - _asSymbols[i] = new AsScene3011Symbol(_vm, i, true); - addSprite(_asSymbols[i]); - } + for (int i = 0; i < 12; i++) + _asSymbols[i] = insertSprite<AsScene3011Symbol>(i, true); - _ssButton = addSprite(new SsScene3011Button(_vm, this, true)); + _ssButton = insertSprite<SsScene3011Button>(this, true); _vm->_collisionMan->addSprite(_ssButton); - SetUpdateHandler(&Scene3011::update); - SetMessageHandler(&Scene3011::handleMessage); - } void Scene3011::update() { |