static BOOLEAN DittyPlaying (void) { if (!dittyIsPlaying) return FALSE; dittyIsPlaying = PLRPlaying ((MUSIC_REF)~0); return dittyIsPlaying; }
// Initialise the surface graphics, and start the planet music. // Called from the GenerateFunctions.generateOribital() function // (when orbit is entered; either from IP, or from loading a saved game) // and when "starmap" is selected from orbit and then cancelled; // also after in-orbit comm and after defeating planet guards in combat. // SurfDefFrame contains surface definition images when a planet comes // with its own bitmap (currently only for Earth) void LoadPlanet (FRAME SurfDefFrame) { bool WaitMode = !(LastActivity & CHECK_LOAD); PLANET_DESC *pPlanetDesc; #ifdef DEBUG if (disableInteractivity) return; #endif assert (pSolarSysState->InOrbit && !pSolarSysState->TopoFrame); CreatePlanetContext (); if (WaitMode) { LockMutex (GraphicsLock); DrawOrbitalDisplay (DRAW_ORBITAL_WAIT); UnlockMutex (GraphicsLock); } StopMusic (); pPlanetDesc = pSolarSysState->pOrbitalDesc; GeneratePlanetSurface (pPlanetDesc, SurfDefFrame); SetPlanetMusic (pPlanetDesc->data_index & ~PLANET_SHIELDED); GeneratePlanetSide (); if (!PLRPlaying ((MUSIC_REF)~0)) PlayMusic (LanderMusic, TRUE, 1); if (WaitMode) { ZoomInPlanetSphere (); LockMutex (GraphicsLock); DrawOrbitalDisplay (DRAW_ORBITAL_UPDATE); UnlockMutex (GraphicsLock); } else { LockMutex (GraphicsLock); DrawOrbitalDisplay (DRAW_ORBITAL_FULL); UnlockMutex (GraphicsLock); } }