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();
}
示例#2
0
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);		
	    }
	}
}