2018-05-06 00:01:36 +02:00

89 lines
2.1 KiB
C++

// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2009 Martio 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
// ==============================================================
#ifndef _SHARED_UTIL_AUTO_TEST_H_
#define _SHARED_UTIL_AUTO_TEST_H_
#ifdef WIN32
#include <winsock2.h>
#include <winsock.h>
#endif
#include <ctime>
#include "randomgen.h"
#include <string>
#include "game_settings.h"
#include "leak_dumper.h"
using namespace std;
using Shared::Util::RandomGen;
namespace Glest {
namespace Game {
class Program;
class MainMenu;
class MenuStateScenario;
class Game;
// =====================================================
// class AutoTest
//
/// Interface to write log files
// =====================================================
class AutoTest {
private:
int gameStartTime;
RandomGen random;
bool exitGame;
static bool wantExitGame;
static GameSettings gameSettings;
static string loadGameSettingsFile;
static const time_t invalidTime;
static time_t gameTime;
public:
static AutoTest & getInstance();
AutoTest();
static void setMaxGameTime(time_t value) {
gameTime = value;
}
static void setWantExitGameWhenDone(bool value) {
wantExitGame = value;
}
static string getLoadGameSettingsFile() {
return loadGameSettingsFile;
}
static void setLoadGameSettingsFile(const string &filename) {
loadGameSettingsFile = filename;
}
bool mustExitGame() const {
return exitGame;
}
void updateIntro(Program *program);
void updateRoot(Program *program, MainMenu *mainMenu);
void updateNewGame(Program *program, MainMenu *mainMenu);
void updateScenario(MenuStateScenario *menuStateScenario);
bool updateGame(Game *game);
void updateBattleEnd(Program *program);
};
}
}//end namespace
#endif