mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-09 20:34:12 +00:00
MADS: Phantom: Implement scene 203
This commit is contained in:
parent
f7389e98bc
commit
2c5b63acfa
@ -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
@ -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
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -39,6 +39,8 @@ SoundManager::SoundManager(MADSEngine *vm, Audio::Mixer *mixer) {
|
||||
_newSoundsPaused = false;
|
||||
_masterVolume = 255;
|
||||
|
||||
_preferRoland = false;
|
||||
|
||||
_opl = OPL::Config::create();
|
||||
_opl->init();
|
||||
|
||||
|
@ -48,6 +48,8 @@ public:
|
||||
SoundManager(MADSEngine *vm, Audio::Mixer *mixer);
|
||||
~SoundManager();
|
||||
|
||||
bool _preferRoland;
|
||||
|
||||
/**
|
||||
* Initializes the sound driver for a given game section
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user