char* CMovieManager::Cycle (int bRestart, int bPlayMovie) { char* pszMovieName; if (m_nLibs < 0) { InitLibs (); bRestart = 1; } if (bRestart) m_nLib = m_nMovies = m_nMovie = -1; if (m_nLibs) { if (++m_nMovie >= m_nMovies) { m_nLib = (m_nLib + 1) % m_nLibs; if (m_nLib == 2) //skip the robot movies m_nLib = (m_nLib + 1) % m_nLibs; m_nMovies = m_libs [m_nLib].m_nMovies; m_nMovie = 0; } //InitSubTitles ("intro.tex"); if ((pszMovieName = m_libs [m_nLib].m_movies [m_nMovie].m_name)) { gameStates.video.nScreenMode = -1; if (bPlayMovie) movieManager.Play (pszMovieName, 1, 1, gameOpts->movies.bResize); } return pszMovieName; //CloseSubTitles (); } return NULL; }
TraxApp:: TraxApp( void ) : BApplication( "application/x-vnd.ZOD-TraX" ) , fbQuiting( false ) , fOptions(0) { InitLibs() ; }
CMovieLib* CMovieManager::FindLib (const char* pszLib) { if (m_nLibs < 0) InitLibs (); if (m_nLibs) for (int i = 0; i < m_nLibs; i++) if (!strcmp (pszLib, m_libs [i].m_name)) return m_libs + i; return NULL; }
CMovieLib* CMovieManager::Find (const char* pszMovie) { if (m_nLibs < 0) InitLibs (); if (m_nLibs) for (int i = 0; i < m_nLibs; i++) for (int j = 0; j < m_libs [i].m_nMovies; j++) if (!strcmp (pszMovie, m_libs [i].m_movies [j].m_name)) return m_libs + i; return NULL; }