MADS: Phantom: Implement scene 203

This commit is contained in:
Strangerke 2015-10-25 19:02:11 +01:00
parent f7389e98bc
commit 2c5b63acfa
7 changed files with 1815 additions and 7 deletions

View File

@ -80,7 +80,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
case 202: // outside offices / paintings room
return new Scene202(vm);
case 203: // office
return new DummyScene(vm); // TODO
return new Scene203(vm);
case 204: // library
return new DummyScene(vm); // TODO
case 205: // upper floor, outside balcony boxes

File diff suppressed because it is too large Load Diff

View File

@ -110,6 +110,45 @@ public:
virtual void preActions();
virtual void actions();
};
class Scene203 : public Scene2xx {
private:
bool _anim0ActvFl;
bool _anim1ActvFl;
bool _anim2ActvFl;
bool _anim3ActvFl;
bool _showNoteFl;
int _brieStatus;
int _brieFrame;
int _brieCount;
int _raoulStatus;
int _raoulFrame;
int _raoulCount;
int _richardStatus;
int _richardFrame;
int _daaeStatus;
int _daaeFrame;
int _conversationCount;
void handleBrieConversation();
void handleRichardConversation();
void handleRichardAndDaaeConversation();
void handleBrieAnimation();
void handleRichardAnimation();
void handleRaoulAnimation();
void handleDaaeAnimation();
public:
Scene203(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 Phantom
} // End of namespace MADS

View File

@ -63,6 +63,8 @@ Scene::Scene(MADSEngine *vm)
_variant = 0;
_initialVariant = 0;
_speechReady = -1;
_paletteUsageF.push_back(PaletteUsage::UsageEntry(0xF));
// Set up a scene surface that maps to our physical screen drawing surface
@ -811,6 +813,9 @@ void Scene::loadSpeech(int idx) {
_vm->_audio->setDefaultSoundGroup();
// NOTE: The original actually preloads the speech sample here, but the samples
// are so small that it's not really worth it...
// TODO: As the speech samples aren't cached anymore, _speechReady should be remove
_speechReady = idx;
}
void Scene::playSpeech(int idx) {

View File

@ -265,6 +265,7 @@ public:
void playSpeech(int idx);
void sceneScale(int front_y, int front_scale, int back_y, int back_scale);
void animations_tick();
int _speechReady;
};
} // End of namespace MADS

View File

@ -39,6 +39,8 @@ SoundManager::SoundManager(MADSEngine *vm, Audio::Mixer *mixer) {
_newSoundsPaused = false;
_masterVolume = 255;
_preferRoland = false;
_opl = OPL::Config::create();
_opl->init();

View File

@ -48,6 +48,8 @@ public:
SoundManager(MADSEngine *vm, Audio::Mixer *mixer);
~SoundManager();
bool _preferRoland;
/**
* Initializes the sound driver for a given game section
*/