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"); }
int FullpipeEngine::getObjectState(const char *objname) { GameVar *var = _gameLoader->_gameVar->getSubVarByName("OBJSTATES"); if (var) return var->getSubVarAsInt(objname); return 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 FullpipeEngine::initArcadeKeys(const char *varname) { _arcadeKeys.clear(); GameVar *var = getGameLoaderGameVar()->getSubVarByName(varname)->getSubVarByName("KEYPOS"); if (!var) return; int cnt = var->getSubVarsCount(); for (int i = 0; i < cnt; i++) { Common::Point *point = new Common::Point; GameVar *sub = var->getSubVarByIndex(i); point->x = sub->getSubVarAsInt("X"); point->y = sub->getSubVarAsInt("Y"); _arcadeKeys.push_back(point); } }
void scene01_fixEntrance() { GameVar *var = g_fp->getGameLoaderGameVar()->getSubVarByName("OBJSTATES")->getSubVarByName("SAVEGAME"); if (var->getSubVarAsInt("Entrance") == TrubaLeft) var->setSubVarAsInt("Entrance", TrubaRight); }