void CCouncilMember::performJanitorMode() { std::string elder_text[4]; elder_text[0] = g_pBehaviorEngine->getString("JANITOR_TEXT1"); elder_text[1] = g_pBehaviorEngine->getString("JANITOR_TEXT2"); elder_text[2] = g_pBehaviorEngine->getString("JANITOR_TEXT3"); elder_text[3] = g_pBehaviorEngine->getString("JANITOR_TEXT4"); std::vector<CMessageBoxGalaxy*> msgs; msgs.push_back( new CMessageBoxBitmapGalaxy(elder_text[0], gGraphics.getBitmapFromId(104), LEFT) ); msgs.push_back( new CMessageBoxBitmapGalaxy(elder_text[1], gGraphics.getBitmapFromId(104), LEFT) ); msgs.push_back( new CMessageBoxBitmapGalaxy(elder_text[2], *gGraphics.getBitmapFromStr("KEENTALKING"), RIGHT) ); msgs.push_back( new CMessageBoxBitmapGalaxy(elder_text[3], gGraphics.getBitmapFromId(104), LEFT) ); showMsgVec( msgs ); rescued = true; }
void CLindsey::getTouchedBy(CSpriteObject &theObject) { if(prepareToVanish) return; // When Keen touches the pincess give that hint if( dynamic_cast<CPlayerLevel*>(&theObject) ) { g_pSound->playSound(SOUND_GET_WETSUIT, PLAY_PAUSEALL); std::string lindsey_text[3]; lindsey_text[0] = gpBehaviorEngine->getString(answermap[0]); Uint16 cur_level = mp_Map->getLevel(); if(cur_level > 5) { lindsey_text[1] = gpBehaviorEngine->getString(answermap[1]); lindsey_text[2] = gpBehaviorEngine->getString(answermap[3]); } else { lindsey_text[1] = gpBehaviorEngine->getString(answermap[2]); lindsey_text[2] = gpBehaviorEngine->getString(answermap[4]); } std::vector<CMessageBoxGalaxy*> msgs; msgs.push_back( new CMessageBoxBitmapGalaxy(lindsey_text[0], gGraphics.getBitmapFromId(108), LEFT) ); msgs.push_back( new CMessageBoxBitmapGalaxy(lindsey_text[1], gGraphics.getBitmapFromId(108), LEFT) ); msgs.push_back( new CMessageBoxBitmapGalaxy(lindsey_text[2], *gGraphics.getBitmapFromStr("KEENTHUMBSUP"), RIGHT) ); showMsgVec( msgs ); prepareToVanish = true; } }
void CCouncilMember::getTouchedBy(CSpriteObject &theObject) { if(rescued) return; // When Keen touches the Council Member exit the level and add one to the council list if( CPlayerBase *player = dynamic_cast<CPlayerBase*>(&theObject) ) { int &rescuedelders = player->m_Inventory.Item.m_special.ep4.elders; // TODO: In this part we have to check which level we are and send the proper messages if(mp_Map->isSecret) { performJanitorMode(); return; } g_pSound->playSound(SOUND_RESCUE_COUNCIL_MEMBER, PLAY_PAUSEALL); gEventManager.add( new EventPlayTrack(5) ); std::string elder_text[2]; if( mp_Map->getLevel() == 17 ) // Under water the text is a bit different { elder_text[0] = g_pBehaviorEngine->getString("ELDERS_UNDERWATER_TEXT"); elder_text[1] = ""; } else { elder_text[0] = g_pBehaviorEngine->getString("ELDERS_TEXT"); elder_text[1] = g_pBehaviorEngine->getString(answermap[rescuedelders]); } std::vector<CMessageBoxGalaxy*> msgs; msgs.push_back( new CMessageBoxBitmapGalaxy(elder_text[0], gGraphics.getBitmapFromId(104), LEFT) ); rescuedelders++; if(rescuedelders >= NumberToRescue) // In this case the game ends. { msgs.push_back( new CMessageBoxBitmapGalaxy(elder_text[1], *gGraphics.getBitmapFromStr("KEENTHUMBSUP"), RIGHT) ); msgs.push_back( new CMessageBoxBitmapGalaxy(g_pBehaviorEngine->getString(answermap[8]), *gGraphics.getBitmapFromStr("KEENTHUMBSUP"), RIGHT) ); const std::string end_text("End of Episode.\n" "The game will be restarted.\n" "You can replay it again or\n" "try another Episode for more fun!\n" "The original epilog is under construction."); msgs.push_back( new CMessageBoxGalaxy(end_text, new EventEndGamePlay()) ); } else { msgs.push_back( new CMessageBoxBitmapGalaxy( elder_text[1], *gGraphics.getBitmapFromStr("KEENTHUMBSUP"), RIGHT, new EventExitLevel(mp_Map->getLevel(), true, false, mSprVar)) ); } showMsgVec( msgs ); player->m_Inventory.Item.m_gem.clear(); rescued = true; } }