void CWorldMap::init() { // Load the World map level. std::unique_ptr<CMapLoaderGalaxy> MapLoader; if(g_pBehaviorEngine->getEpisode() == 4) MapLoader.reset( new CMapLoaderGalaxyEp4( mObjectPtr, mInventoryVec, mCheatmode) ); else if(g_pBehaviorEngine->getEpisode() == 5) MapLoader.reset( new CMapLoaderGalaxyEp5( mObjectPtr, mInventoryVec, mCheatmode) ); else if(g_pBehaviorEngine->getEpisode() == 6) MapLoader.reset( new CMapLoaderGalaxyEp6( mObjectPtr, mInventoryVec, mCheatmode) ); MapLoader->loadMap( mMap, 0 ); g_pBehaviorEngine->mapLevelName = MapLoader->getLevelName(); const std::string loading_text = g_pBehaviorEngine->getString("WORLDMAP_LOAD_TEXT"); gEffectController.setupEffect(new CColorMerge(8)); if(!gpSaveGameController->busy()) { showMsgWithBmp(loading_text, "KEENTHUMBSUP", LEFT); } mMap.drawAll(); }
bool CLevelPlay::loadLevel(const Uint16 level) { loadMap( level ); // Add the load message const std::string level_text = "LEVEL" + itoa(level) + "_LOAD_TEXT"; const std::string loading_text = gpBehaviorEngine->getString(level_text); showMsgWithBmp( loading_text, "KEENTHUMBSUP", LEFT ); mMap.drawAll(); return true; }
void CDiveSuit::getTouchedBy(CSpriteObject &theObject) { if(taken) return; // When Keen touches the Council Member exit the level and add one to the council list if( CPlayerLevel *player = dynamic_cast<CPlayerLevel*>(&theObject) ) { bool &swimsuit = player->m_Inventory.Item.m_special.ep4.swimsuit; g_pSound->playSound( SOUND_GET_WETSUIT, PLAY_PAUSEALL ); taken = swimsuit = true; showMsgWithBmp( gpBehaviorEngine->getString("SWIM_SUIT_TEXT"), "KEENTHUMBSUP", LEFT, new EventExitLevel(mp_Map->getLevel(), true, false, mSprVar)); player->m_Inventory.Item.m_gem.clear(); } }
void CRocket::getTouchedBy(CSpriteObject& theObject) { if(getActionNumber(A_ROCKET_FLY)) return; if( CPlayerBase *player = dynamic_cast<CPlayerBase*>(&theObject) ) { if(player->m_Inventory.Item.m_special.ep6.rocketKeycard > 0) { setAction(A_ROCKET_FLY); playSound(SOUND_ROCKET_LAUNCH); mpCarriedPlayer = player; mpCarriedPlayer->solid = false; mpCarriedPlayer->dontdraw = true; } else { // Tell the player he cannot climb yet showMsgWithBmp(gpBehaviorEngine->getString("KEEN_KEYCARD_REQUIRED"), 29, RIGHT); player->moveYDir((1<<CSF)/2); } } }