fix renderer compile and make it create a "Save file invalid" sign when it can't render the save, fixes #97

This commit is contained in:
jacob1 2015-01-10 18:47:42 -05:00
parent b2954a7f0a
commit 4f6094136e
3 changed files with 40 additions and 14 deletions

View File

@ -78,25 +78,43 @@ int main(int argc, char *argv[])
engine = &ui::Engine::Ref();
engine->Begin(WINDOWW, WINDOWH);
GameSave * gameSave = new GameSave(inputFile);
GameSave * gameSave = NULL;
try
{
gameSave = new GameSave(inputFile);
}
catch (ParseException e)
{
//Render the save again later or something? I don't know
if (e.what() == "Save from newer version")
throw e;
}
Simulation * sim = new Simulation();
Renderer * ren = new Renderer(ui::Engine::Ref().g, sim);
sim->Load(gameSave);
//Render save
ren->decorations_enable = true;
ren->blackDecorations = true;
int frame = 15;
while(frame)
if (gameSave)
{
frame--;
ren->render_parts();
ren->render_fire();
ren->clearScreen(1.0f);
sim->Load(gameSave);
//Render save
ren->decorations_enable = true;
ren->blackDecorations = true;
int frame = 15;
while(frame)
{
frame--;
ren->render_parts();
ren->render_fire();
ren->clearScreen(1.0f);
}
}
else
{
int w = Graphics::textwidth("Save file invalid")+16, x = (XRES-w)/2, y = (YRES-24)/2;
ren->drawrect(x, y, w, 24, 192, 192, 192, 255);
ren->drawtext(x+8, y+8, "Save file invalid", 192, 192, 240, 255);
}
ren->RenderBegin();

View File

@ -114,17 +114,21 @@ void LocalBrowserView::textChanged()
else if (num > pageCount)
pageTextbox->SetText(format::NumberToString(pageCount));
changed = true;
#ifdef USE_SDL
lastChanged = SDL_GetTicks()+600;
#endif
}
void LocalBrowserView::OnTick(float dt)
{
c->Update();
#ifdef USE_SDL
if (changed && lastChanged < SDL_GetTicks())
{
changed = false;
c->SetPage(std::max(format::StringToNumber<int>(pageTextbox->GetText()), 0));
}
#endif
}
void LocalBrowserView::NotifyPageChanged(LocalBrowserModel * sender)

View File

@ -277,7 +277,9 @@ void SearchView::textChanged()
else if (num > pageCount)
pageTextbox->SetText(format::NumberToString(pageCount));
changed = true;
#ifdef USE_SDL
lastChanged = SDL_GetTicks()+600;
#endif
}
void SearchView::OnTryOkay(OkayMethod method)
@ -781,11 +783,13 @@ void SearchView::NotifySelectedChanged(SearchModel * sender)
void SearchView::OnTick(float dt)
{
c->Update();
#ifdef USE_SDL
if (changed && lastChanged < SDL_GetTicks())
{
changed = false;
c->SetPage(std::max(format::StringToNumber<int>(pageTextbox->GetText()), 0));
}
#endif
}
void SearchView::OnMouseWheel(int x, int y, int d)