void FullpipeEngine::playTrack(GameVar *sceneVar, const char *name, bool delayed) { warning("STUB: FullpipeEngine::playTrack(var, %s, %d)", name, delayed); #if 0 stopSoundStream2(); if (soundStream3) FSOUND_Stream_Stop(soundStream4); #endif if (_musicLocal) stopAllSoundStreams(); GameVar *var = sceneVar->getSubVarByName(name); memset(_sceneTracks, 0, sizeof(_sceneTracks)); _numSceneTracks = 0; _sceneTrackHasSequence = false; if (!var) return; _musicGameVar = var; GameVar *tr = var->getSubVarByName("TRACKS"); if (tr) { GameVar *sub = tr->_subVars; while (sub) { if (_musicAllowed & sub->_value.intValue) { Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName, 260); _numSceneTracks++; } sub = sub->_nextVarObj; } } _musicMinDelay = var->getSubVarAsInt("MINDELAY"); _musicMaxDelay = var->getSubVarAsInt("MAXDELAY"); _musicLocal = var->getSubVarAsInt("LOCAL"); GameVar *seq = var->getSubVarByName("SEQUENCE"); if (seq) { _sceneTrackHasSequence = true; Common::strlcpy(_trackName, seq->_value.stringValue, 2600); } if (delayed) { if (_sceneTrackIsPlaying && _numSceneTracks == 1) { if (strcmp(_sceneTracksCurrentTrack, _sceneTracks[0])) stopAllSoundStreams(); } _trackStartDelay = var->getSubVarAsInt("STARTDELAY"); } }
void FullpipeEngine::setSceneMusicParameters(GameVar *gvar) { warning("STUB: FullpipeEngine::setSceneMusicParameters()"); #if 0 stopSoundStream2(); if (soundStream3) FSOUND_Stream_Stop(soundStream4); #endif if (_musicLocal) stopAllSoundStreams(); GameVar *var = gvar->getSubVarByName("MUSIC"); memset(_sceneTracks, 0, sizeof(_sceneTracks)); _numSceneTracks = 0; _sceneTrackHasSequence = false; if (!var) return; _musicGameVar = var; GameVar *tr = var->getSubVarByName("TRACKS"); if (tr) { GameVar *sub = tr->_subVars; while (sub) { if (_musicAllowed & sub->_value.intValue) { Common::strlcpy(_sceneTracks[_numSceneTracks], sub->_varName, 260); _numSceneTracks++; } sub = sub->_nextVarObj; } } _musicMinDelay = var->getSubVarAsInt("MINDELAY"); _musicMaxDelay = var->getSubVarAsInt("MAXDELAY"); _musicLocal = var->getSubVarAsInt("LOCAL"); GameVar *seq = var->getSubVarByName("SEQUENCE"); if (seq) { _sceneTrackHasSequence = true; Common::strlcpy(_trackName, seq->_value.stringValue, 2600); } if (_musicLocal) stopAllSoundStreams(); if (!_sceneTrackIsPlaying || _musicLocal) _trackStartDelay = var->getSubVarAsInt("STARTDELAY"); }
void FullpipeEngine::setSwallowedEggsState() { GameVar *v = _gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_GulpedEggs); g_vars->swallowedEgg1 = v->getSubVarByName(sO_Egg1); g_vars->swallowedEgg2 = v->getSubVarByName(sO_Egg2); g_vars->swallowedEgg3 = v->getSubVarByName(sO_Egg3); g_vars->swallowedEgg1->_value.intValue = 0; g_vars->swallowedEgg2->_value.intValue = 0; g_vars->swallowedEgg3->_value.intValue = 0; }
int FullpipeEngine::getObjectEnumState(const char *name, const char *state) { GameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES"); if (!var) { var = _gameLoader->_gameVar->addSubVarAsInt("OBJSTATES", 0); } var = var->getSubVarByName(name); if (var) { var = var->getSubVarByName("ENUMSTATES"); if (var) return var->getSubVarAsInt(state); } return 0; }
void scene03_initScene(Scene *sc) { debugC(1, kDebugSceneLogic, "scene03_initScene()"); g_vars->scene03_eggeater = sc->getStaticANIObject1ById(ANI_EGGEATER, -1); g_vars->scene03_domino = sc->getStaticANIObject1ById(ANI_DOMINO_3, -1); GameVar *v = g_fp->_gameLoader->_gameVar->getSubVarByName("OBJSTATES")->getSubVarByName(sO_GulpedEggs); g_vars->swallowedEgg1 = v->getSubVarByName(sO_Egg1); g_vars->swallowedEgg2 = v->getSubVarByName(sO_Egg2); g_vars->swallowedEgg3 = v->getSubVarByName(sO_Egg3); g_fp->lift_setButton(sO_Level2, ST_LBN_2N); g_fp->lift_init(sc, QU_SC3_ENTERLIFT, QU_SC3_EXITLIFT); debugC(2, kDebugSceneLogic, "scene03: egg1: %d egg2: %d egg3: %d", g_vars->swallowedEgg1->_value.intValue, g_vars->swallowedEgg2->_value.intValue, g_vars->swallowedEgg3->_value.intValue); }