aboutsummaryrefslogtreecommitdiff
path: root/sky/sky.cpp
diff options
context:
space:
mode:
authorRobert Göffringmann2003-06-22 21:42:59 +0000
committerRobert Göffringmann2003-06-22 21:42:59 +0000
commitf891aceee307fa614fcd312b6f567792f1b95ae1 (patch)
tree90d90d5dfff3ce150c793cd534ddab6e63b012e2 /sky/sky.cpp
parent8595f30740beb3ed9d975f895578b19e18d2c223 (diff)
downloadscummvm-rg350-f891aceee307fa614fcd312b6f567792f1b95ae1.tar.gz
scummvm-rg350-f891aceee307fa614fcd312b6f567792f1b95ae1.tar.bz2
scummvm-rg350-f891aceee307fa614fcd312b6f567792f1b95ae1.zip
native mt32 support and basic control panel (incomplete)
doesn't work with all versions, probably file numbers were changed svn-id: r8632
Diffstat (limited to 'sky/sky.cpp')
-rw-r--r--sky/sky.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/sky/sky.cpp b/sky/sky.cpp
index 846e78fce2..666699f6f0 100644
--- a/sky/sky.cpp
+++ b/sky/sky.cpp
@@ -141,6 +141,10 @@ void SkyState::go() {
while (1) {
delay(50);
+ if ((_key_pressed == 27) || (_key_pressed == 63)) { // 27 = escape, 63 = F5
+ _key_pressed = 0;
+ _skyControl->doControlPanel();
+ }
_skyMouse->mouseEngine((uint16)_sdl_mouse_x, (uint16)_sdl_mouse_y);
_skyLogic->engine();
_skyScreen->recreate();
@@ -152,8 +156,6 @@ void SkyState::go() {
void SkyState::initialise(void) {
- //initialise_memory();
-
_skyDisk = new SkyDisk(_gameDataPath);
_skySound = new SkySound(_mixer, _skyDisk);
@@ -164,7 +166,10 @@ void SkyState::initialise(void) {
_skyMusic = new SkyAdlibMusic(_mixer, _skyDisk);
} else {
_systemVars.systemFlags |= SF_ROLAND;
- _skyMusic = new SkyGmMusic(_detector->createMidi(), _skyDisk);
+ if (_detector->_native_mt32)
+ _skyMusic = new SkyMT32Music(_detector->createMidi(), _skyDisk);
+ else
+ _skyMusic = new SkyGmMusic(_detector->createMidi(), _skyDisk);
}
_systemVars.systemFlags |= SF_PLAY_VOCS;
@@ -174,14 +179,14 @@ void SkyState::initialise(void) {
initVirgin();
initItemList();
- //initScript();
- //initialiseRouter();
loadFixedItems();
_skyLogic = new SkyLogic(_skyScreen, _skyDisk, _skyText, _skyMusic, _skyMouse, _skySound);
_skyMouse->useLogicInstance(_skyLogic);
_timer = Engine::_timer; // initialize timer *after* _skyScreen has been initialized.
_timer->installProcedure(&timerHandler, 1000000 / 50); //call 50 times per second
+
+ _skyControl = new SkyControl(_skyScreen, _skyDisk, _skyMouse, _skyText, _skyMusic, _system, getSavePath());
}
void SkyState::initItemList() {