mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-09 04:16:34 +00:00
MADS: Dragon: Implement scene 104
This commit is contained in:
parent
d26bc1937d
commit
85c45c210e
@ -44,6 +44,7 @@ struct ConvData {
|
||||
GameConversation::GameConversation(MADSEngine *vm)
|
||||
: _vm(vm) {
|
||||
_running = _restoreRunning = 0;
|
||||
_nextStartNode = nullptr;
|
||||
}
|
||||
|
||||
GameConversation::~GameConversation() {
|
||||
@ -142,4 +143,11 @@ void GameConversation::release() {
|
||||
warning("TODO: GameConversation::release");
|
||||
}
|
||||
|
||||
void GameConversation::reset(int id) {
|
||||
warning("TODO: GameConversation::reset");
|
||||
}
|
||||
|
||||
void GameConversation::abortConv() {
|
||||
warning("TODO: GameConversation::abort");
|
||||
}
|
||||
} // End of namespace MADS
|
||||
|
@ -42,6 +42,7 @@ public:
|
||||
*/
|
||||
virtual ~GameConversation();
|
||||
|
||||
int* _nextStartNode;
|
||||
int* getVariable(int idx);
|
||||
|
||||
void get(int id);
|
||||
@ -53,6 +54,8 @@ public:
|
||||
void setInterlocutorTrigger(int val);
|
||||
void hold();
|
||||
void release();
|
||||
void reset(int id);
|
||||
void abortConv();
|
||||
|
||||
int _running;
|
||||
int _restoreRunning;
|
||||
|
@ -49,7 +49,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
|
||||
case 103: // outside king's bedroom
|
||||
return new Scene103(vm);
|
||||
case 104: // fireplace / bookshelf
|
||||
return new DummyScene(vm); // TODO
|
||||
return new Scene104(vm);
|
||||
case 105: // dining room
|
||||
return new DummyScene(vm); // TODO
|
||||
case 106: // throne room
|
||||
|
@ -50,6 +50,17 @@ enum Verb {
|
||||
VERB_LOOK_AT = 0x1E,
|
||||
VERB_WALK_THROUGH = 0x25,
|
||||
VERB_WALK_INTO = 0x27,
|
||||
VERB_INVOKE = 0x2F,
|
||||
VERB_ATTACK = 0x39,
|
||||
VERB_CARVE_UP = 0x3A,
|
||||
VERB_THRUST = 0x57,
|
||||
VERB_POUR = 0x62,
|
||||
VERB_POUR_CONTENTS_OF = 0x63,
|
||||
VERB_DRINK = 0x64,
|
||||
VERB_SHIFT_SELF = 0x73,
|
||||
VERB_SHIFT_INTO_BEAR = 0x74,
|
||||
VERB_SHIFT_INTO_SEAL = 0x75,
|
||||
VERB_SHIFT_INTO_SNAKE = 0x76,
|
||||
VERB_WALK_DOWN = 0xA9,
|
||||
VERB_WALK = 0x1CB,
|
||||
VERB_WALK_AROUND = 0x221
|
||||
@ -86,7 +97,6 @@ enum Noun {
|
||||
NOUN_BUST_ON_WALL = 0x2C,
|
||||
NOUN_WALL_ARCH = 0x2D,
|
||||
NOUN_SIGNET_RING = 0x2E,
|
||||
NOUN_INVOKE = 0x2F,
|
||||
NOUN_POLISH = 0x30,
|
||||
NOUN_GANGBANG = 0x31,
|
||||
NOUN_BIRD_FIGURINE = 0x32,
|
||||
@ -96,8 +106,6 @@ enum Noun {
|
||||
NOUN_MAKE_NOISE = 0x36,
|
||||
NOUN_SHIELDSTONE = 0x37,
|
||||
NOUN_SWORD = 0x38,
|
||||
NOUN_ATTACK = 0x39,
|
||||
NOUN_CARVE_UP = 0x3A,
|
||||
NOUN_GOBLET = 0x3B,
|
||||
NOUN_FILL = 0x3C,
|
||||
NOUN_DRINK_FROM = 0x3D,
|
||||
@ -126,7 +134,6 @@ enum Noun {
|
||||
NOUN_MAGIC_BELT = 0x54,
|
||||
NOUN_ADJUST = 0x55,
|
||||
NOUN_AMULET = 0x56,
|
||||
NOUN_THRUST = 0x57,
|
||||
NOUN_MUD = 0x58,
|
||||
NOUN_FEEL = 0x59,
|
||||
NOUN_TASTE = 0x5A,
|
||||
@ -137,9 +144,6 @@ enum Noun {
|
||||
NOUN_FLASK = 0x5F,
|
||||
NOUN_FLASK_FULL_OF_ACID = 0x60,
|
||||
NOUN_POUR_CONTENTS = 0x61,
|
||||
NOUN_POUR = 0x62,
|
||||
NOUN_POUR_CONTENTS_OF = 0x63,
|
||||
NOUN_DRINK = 0x64,
|
||||
NOUN_ROPE = 0x65,
|
||||
NOUN_TIE = 0x66,
|
||||
NOUN_POWER_VACUUM_STONE = 0x67,
|
||||
@ -154,10 +158,6 @@ enum Noun {
|
||||
NOUN_BLACK_SPHERE = 0x70,
|
||||
NOUN_SOPTUS_SOPORIFIC = 0x71,
|
||||
NOUN_SHIFTER_RING = 0x72,
|
||||
NOUN_SHIFT_SELF = 0x73,
|
||||
NOUN_SHIFT_INTO_BEAR = 0x74,
|
||||
NOUN_SHIFT_INTO_SEAL = 0x75,
|
||||
NOUN_SHIFT_INTO_SNAKE = 0x76,
|
||||
NOUN_REVERT = 0x77,
|
||||
NOUN_MEDICINE_BUNDLE = 0x78,
|
||||
NOUN_SHAKE = 0x79,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -94,6 +94,63 @@ public:
|
||||
virtual void preActions();
|
||||
virtual void actions();
|
||||
};
|
||||
|
||||
class Scene104 : public Scene1xx {
|
||||
private:
|
||||
bool _anim0ActvFl;
|
||||
bool _anim1ActvFl;
|
||||
bool _anim2ActvFl;
|
||||
bool _anim3ActvFl;
|
||||
bool _anim4ActvFl;
|
||||
bool _anim5ActvFl;
|
||||
bool _anim6ActvFl;
|
||||
bool _activateTimerFl;
|
||||
bool _wasBearFl;
|
||||
bool _amuletWorksFl;
|
||||
bool _pidDrawnSword;
|
||||
int _animationRunning;
|
||||
int _deathTimer;
|
||||
int _deathFrame;
|
||||
int _doorwayHotspotId;
|
||||
|
||||
int _kingStatus;
|
||||
int _kingFrame;
|
||||
int _kingCount;
|
||||
int _queenStatus;
|
||||
int _queenFrame;
|
||||
int _queenCount;
|
||||
int _pidStatus;
|
||||
int _pidFrame;
|
||||
int _pidCount;
|
||||
int _macStatus;
|
||||
int _macFrame;
|
||||
int _macCount;
|
||||
int _twinklesStatus;
|
||||
int _twinklesFrame;
|
||||
int _twinklesCount;
|
||||
int _tapestryFrame;
|
||||
|
||||
int32 _clock;
|
||||
|
||||
void handleFinalConversation();
|
||||
void handleKingAnimation();
|
||||
void handleMacAnimation1();
|
||||
void handleMacAnimation2();
|
||||
void handleQueenAnimation();
|
||||
void handleTwinklesAnimation();
|
||||
void handleDeathAnimation();
|
||||
void handlePidAnimation();
|
||||
|
||||
public:
|
||||
Scene104(MADSEngine *vm);
|
||||
virtual void synchronize(Common::Serializer &s);
|
||||
|
||||
virtual void setup();
|
||||
virtual void enter();
|
||||
virtual void step();
|
||||
virtual void preActions();
|
||||
virtual void actions();
|
||||
};
|
||||
} // End of namespace Dragonsphere
|
||||
} // End of namespace MADS
|
||||
|
||||
|
@ -80,7 +80,7 @@ enum InventoryObject {
|
||||
OBJ_DIAMOND_DUST = 40,
|
||||
OBJ_RUBY_RING = 41,
|
||||
OBJ_GOLD_NUGGET = 42,
|
||||
OBJ_MUSIC_BOX = 43,
|
||||
OBJ_MAGIC_MUSIC_BOX = 43,
|
||||
OBJ_EMERALD = 44,
|
||||
OBJ_PARCHMENT = 45,
|
||||
OBJ_GAME = 46,
|
||||
|
Loading…
x
Reference in New Issue
Block a user