1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-04-15 11:46:56 +02:00
This commit is contained in:
Michał W. Urbańczyk 2009-11-24 20:29:50 +00:00
parent c00d4bf905
commit 82faf7538e
4 changed files with 13 additions and 9 deletions

View File

@ -70,8 +70,8 @@ CMenuScreen::CMenuScreen( EState which )
buttons[1] = new AdventureMapButton("", CGI->generaltexth->zelp[4].second, bind(&CMenuScreen::moveTo, this, ref(CGP->scrs[loadGame])), 532, 132, "ZMENULG.DEF", SDLK_l); buttons[1] = new AdventureMapButton("", CGI->generaltexth->zelp[4].second, bind(&CMenuScreen::moveTo, this, ref(CGP->scrs[loadGame])), 532, 132, "ZMENULG.DEF", SDLK_l);
buttons[2] = new AdventureMapButton("", CGI->generaltexth->zelp[5].second, 0 /*cb*/, 524, 251, "ZMENUHS.DEF", SDLK_h); buttons[2] = new AdventureMapButton("", CGI->generaltexth->zelp[5].second, 0 /*cb*/, 524, 251, "ZMENUHS.DEF", SDLK_h);
buttons[3] = new AdventureMapButton("", CGI->generaltexth->zelp[6].second, 0 /*cb*/, 557, 359, "ZMENUCR.DEF", SDLK_c); buttons[3] = new AdventureMapButton("", CGI->generaltexth->zelp[6].second, 0 /*cb*/, 557, 359, "ZMENUCR.DEF", SDLK_c);
//boost::function<void()> confWindow = bind(CInfoWindow::showYesNoDialog, ) boost::function<void()> confWindow = bind(CInfoWindow::showYesNoDialog, ref(CGI->generaltexth->allTexts[69]), (const std::vector<SComponent*>*)0, do_quit, 0, false, 1);
buttons[4] = new AdventureMapButton("", CGI->generaltexth->zelp[7].second, do_quit, 586, 468, "ZMENUQT.DEF", SDLK_ESCAPE); buttons[4] = new AdventureMapButton("", CGI->generaltexth->zelp[7].second, confWindow, 586, 468, "ZMENUQT.DEF", SDLK_ESCAPE);
} }
break; break;
case newGame: case newGame:

View File

@ -651,7 +651,8 @@ CInfoWindow::CInfoWindow()
void CInfoWindow::close() void CInfoWindow::close()
{ {
GH.popIntTotally(this); GH.popIntTotally(this);
LOCPLINT->showingDialog->setn(false); if(LOCPLINT)
LOCPLINT->showingDialog->setn(false);
} }
void CInfoWindow::show(SDL_Surface * to) void CInfoWindow::show(SDL_Surface * to)
{ {
@ -705,7 +706,7 @@ void CInfoWindow::showYesNoDialog(const std::string & text, const std::vector<SC
std::vector<std::pair<std::string,CFunctionList<void()> > > pom; std::vector<std::pair<std::string,CFunctionList<void()> > > pom;
pom.push_back(std::pair<std::string,CFunctionList<void()> >("IOKAY.DEF",0)); pom.push_back(std::pair<std::string,CFunctionList<void()> >("IOKAY.DEF",0));
pom.push_back(std::pair<std::string,CFunctionList<void()> >("ICANCEL.DEF",0)); pom.push_back(std::pair<std::string,CFunctionList<void()> >("ICANCEL.DEF",0));
CInfoWindow * temp = new CInfoWindow(text, player, 0, *components, pom, DelComps); CInfoWindow * temp = new CInfoWindow(text, player, 0, components ? *components : std::vector<SComponent*>(), pom, DelComps);
temp->delComps = DelComps; temp->delComps = DelComps;
for(int i=0;i<onYes.funcs.size();i++) for(int i=0;i<onYes.funcs.size();i++)
temp->buttons[0]->callback += onYes.funcs[i]; temp->buttons[0]->callback += onYes.funcs[i];

View File

@ -3326,7 +3326,7 @@ const std::string & CGMagicWell::getHoverText() const
void CGPandoraBox::initObj() void CGPandoraBox::initObj()
{ {
blockVisit = true; blockVisit = (ID==6); //block only if it's really pandora's box (events also derive from that class)
} }
void CGPandoraBox::onHeroVisit(const CGHeroInstance * h) const void CGPandoraBox::onHeroVisit(const CGHeroInstance * h) const
@ -3501,8 +3501,8 @@ void CGPandoraBox::giveContents( const CGHeroInstance *h, bool afterBattle ) con
cb->showInfoDialog(&iw); cb->showInfoDialog(&iw);
} }
iw.components.clear(); iw.components.clear();
getText(iw,afterBattle,183,h); // getText(iw,afterBattle,183,h);
for(int i=0; i<artifacts.size(); i++) for(int i=0; i<artifacts.size(); i++)
{ {
iw.components.push_back(Component(Component::ARTIFACT,artifacts[i],0,0)); iw.components.push_back(Component(Component::ARTIFACT,artifacts[i],0,0));

View File

@ -2095,13 +2095,16 @@ void CGameState::calculatePaths(const CGHeroInstance *hero, CPathsInfo &out, int
{ {
for(size_t ii = 0; ii < tinfo->visitableObjects.size(); ii++) for(size_t ii = 0; ii < tinfo->visitableObjects.size(); ii++)
{ {
if(tinfo->visitableObjects[ii]->blockVisit) const CGObjectInstance * const obj = tinfo->visitableObjects[ii];
if(obj->blockVisit)
{ {
node.accessible = CGPathNode::BLOCKVIS; node.accessible = CGPathNode::BLOCKVIS;
break; break;
} }
else else if(obj->ID != 26) //pathfinder should ignore placed events
{
node.accessible = CGPathNode::VISITABLE; node.accessible = CGPathNode::VISITABLE;
}
} }
} }