diff --git a/source/glest_game/main/battle_end.cpp b/source/glest_game/main/battle_end.cpp new file mode 100644 index 00000000..901ad8a4 --- /dev/null +++ b/source/glest_game/main/battle_end.cpp @@ -0,0 +1,150 @@ +// ============================================================== +// This file is part of Glest (www.glest.org) +// +// Copyright (C) 2001-2008 Marti�o Figueroa +// +// You can redistribute this code and/or modify it under +// the terms of the GNU General Public License as published +// by the Free Software Foundation; either version 2 of the +// License, or (at your option) any later version +// ============================================================== + +#include "battle_end.h" + +#include "main_menu.h" +#include "program.h" +#include "core_data.h" +#include "lang.h" +#include "util.h" +#include "renderer.h" +#include "main_menu.h" +#include "sound_renderer.h" +#include "components.h" +#include "metrics.h" +#include "stats.h" +#include "auto_test.h" + +#include "leak_dumper.h" + +using namespace Shared::Util; + +namespace Glest{ namespace Game{ + +// ===================================================== +// class BattleEnd +// ===================================================== + +BattleEnd::BattleEnd(Program *program, const Stats *stats): +ProgramState(program){ + this->stats= *stats; +} + +BattleEnd::~BattleEnd(){ + SoundRenderer::getInstance().playMusic(CoreData::getInstance().getMenuMusic()); +} + +void BattleEnd::update(){ + if(Config::getInstance().getBool("AutoTest")){ + AutoTest::getInstance().updateBattleEnd(program); + } +} + +void BattleEnd::render(){ + Renderer &renderer= Renderer::getInstance(); + TextRenderer2D *textRenderer= renderer.getTextRenderer(); + Lang &lang= Lang::getInstance(); + + renderer.clearBuffers(); + renderer.reset2d(); + renderer.renderBackground(CoreData::getInstance().getBackgroundTexture()); + + textRenderer->begin(CoreData::getInstance().getMenuFontBig()); + + int lm= 20; + int bm= 100; + + for(int i=0; irender((lang.get("Player")+" "+intToStr(i+1)).c_str(), textX, bm+400); + textRenderer->render(stats.getVictory(i)? lang.get("Victory").c_str(): lang.get("Defeat").c_str(), textX, bm+360); + textRenderer->render(controlString, textX, bm+320); + textRenderer->render(stats.getFactionTypeName(i), textX, bm+280); + textRenderer->render(intToStr(team).c_str(), textX, bm+240); + textRenderer->render(intToStr(kills).c_str(), textX, bm+200); + textRenderer->render(intToStr(deaths).c_str(), textX, bm+160); + textRenderer->render(intToStr(unitsProduced).c_str(), textX, bm+120); + textRenderer->render(intToStr(resourcesHarvested).c_str(), textX, bm+80); + textRenderer->render(intToStr(score).c_str(), textX, bm+20); + } + + textRenderer->render(lang.get("Result"), lm, bm+360); + textRenderer->render(lang.get("Control"), lm, bm+320); + textRenderer->render(lang.get("Faction"), lm, bm+280); + textRenderer->render(lang.get("Team"), lm, bm+240); + textRenderer->render(lang.get("Kills"), lm, bm+200); + textRenderer->render(lang.get("Deaths"), lm, bm+160); + textRenderer->render(lang.get("UnitsProduced"), lm, bm+120); + textRenderer->render(lang.get("ResourcesHarvested"), lm, bm+80); + textRenderer->render(lang.get("Score"), lm, bm+20); + + textRenderer->end(); + + textRenderer->begin(CoreData::getInstance().getMenuFontVeryBig()); + + string header = stats.getDescription() + " - "; + + if(stats.getVictory(stats.getThisFactionIndex())){ + header += lang.get("Victory"); + } + else{ + header += lang.get("Defeat"); + } + + textRenderer->render(header, lm+250, bm+550); + + textRenderer->end(); + renderer.swapBuffers(); +} + +void BattleEnd::keyDown(char key){ + program->setState(new MainMenu(program)); +} + +void BattleEnd::mouseDownLeft(int x, int y){ + program->setState(new MainMenu(program)); +} + +}}//end namespace