MADS: Phantom: Implement scene 502 (except palette cycling)

This commit is contained in:
Strangerke 2015-11-05 19:05:18 +01:00
parent 4682aec147
commit 8920632798
4 changed files with 1215 additions and 18 deletions

View File

@ -145,7 +145,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
case 501: // catacombs, outside phantom's hideout, lake and boat
return new Scene501(vm);
case 502: // push panel trap
return new DummyScene(vm); // TODO
return new Scene502(vm);
case 504: // Phantom's hideout, church organ
return new DummyScene(vm); // TODO
case 505: // Phantom's hideout, sarcophagus

View File

@ -53,6 +53,7 @@ enum Verb {
VERB_EXIT = 0x34,
VERB_EXIT_TO = 0x37,
VERB_JUMP_INTO = 0x53,
VERB_LASSO = 0x59,
VERB_LOCK = 0x5D,
VERB_LOOK_AT = 0x60,
VERB_LOOK_THROUGH = 0x61,
@ -69,6 +70,7 @@ enum Verb {
VERB_ENTER = 0xEC,
VERB_WALK_BEHIND = 0xF3,
VERB_CLIMB = 0x120,
VERB_GRAPPLE = 0x133,
VERB_WALK_DOWN_STAIRS_TO = 0x153
};
@ -143,7 +145,6 @@ enum Noun {
NOUN_LAMP = 0x56,
NOUN_LANTERN = 0x57,
NOUN_LARGE_NOTE = 0x58,
NOUN_LASSO = 0x59,
NOUN_LEG = 0x5A,
NOUN_LETTER = 0x5B,
NOUN_LIGHT_FIXTURE = 0x5C,
@ -345,7 +346,6 @@ enum Noun {
NOUN_CABLE_HOOK = 0x130,
NOUN_ATTACH = 0x131,
NOUN_ROPE_WITH_HOOK = 0x132,
NOUN_GRAPPLE = 0x133,
NOUN_OAR = 0x134,
NOUN_ORGAN = 0x135,
NOUN_SIT_AT = 0x136,

File diff suppressed because it is too large Load Diff

View File

@ -55,8 +55,8 @@ public:
class Scene501 : public Scene5xx {
private:
bool _anim_0_running;
bool _prevent_2;
bool _anim0ActvFl;
bool _skipFl;
public:
Scene501(MADSEngine *vm);
@ -69,6 +69,51 @@ public:
virtual void actions();
};
class Scene502 : public Scene5xx {
private:
bool _fire1ActiveFl;
bool _fire2ActiveFl;
bool _fire3ActiveFl;
bool _fire4ActiveFl;
bool _panelTurningFl;
bool _trapDoorHotspotEnabled;
bool _acceleratedFireActivationFl;
int _panelPushedNum;
int _puzzlePictures[16];
int _puzzleSprites[16];
int _puzzleSequences[16];
int _messageLevel;
int _cycleStage;
Common::Point _nextPos;
uint32 _lastFrameTime;
uint32 _timer;
uint32 _deathTimer;
byte *_cyclePointer;
void room_502_initialize_panels();
void loadCyclingInfo();
void animateFireBursts();
void setPaletteCycle();
void handlePanelAnimation();
void getPanelInfo(Common::Point *walkToPos, int *panel, Common::Point mousePos, Common::Point *interimPos);
public:
Scene502(MADSEngine *vm);
~Scene502();
virtual void synchronize(Common::Serializer &s);
virtual void setup();
virtual void enter();
virtual void step();
virtual void preActions();
virtual void actions();
};
} // End of namespace Phantom
} // End of namespace MADS