- Modified gameObserver and related classes to be able to work with a precise JGE instance given at construction and not the static global one. That allows to run gameObserver without JGE instance (for example in a worker thread).

- Added an "ACTION_LOGGING_TESTING" mode in the gameObserver. When this is defined, the game reloads itself in every update. I want to use that to track undo problems. Be aware that it kills performances and crashes with the testsuite if you want to activate it.
- Various cleanup/refactor of the game observer.
- Added a gameObserver == operator to compare two games
- Added player mode to the player serialization
- Added a multi-threaded mode to AI_CHANGE_TESTING. For the moment it's only useable with Qt. If you want to use it without, just defined a thread_count higher than 1.
- Refactored random generator class to use list intead of queue
- Defined a specific type for interrupt decision instead of int
This commit is contained in:
Xawotihs
2011-11-13 22:36:34 +00:00
parent 2240c14f56
commit f68c106e7e
33 changed files with 320 additions and 141 deletions
+14
View File
@@ -7,6 +7,10 @@
#include "DeckMenu.h"
#include "MTGDeck.h"
#include "GameObserver.h"
#ifdef AI_CHANGE_TESTING
#include "Threading.h"
#endif //AI_CHANGE_TESTING
#define CHOOSE_OPPONENT 7
@@ -56,6 +60,16 @@ public:
int totalTestGames;
int testPlayer2Victories;
int totalAIDecks;
static boost::mutex mMutex;
vector<boost::thread> mWorkerThread;
static void ThreadProc(void* inParam);
void handleResults(GameObserver* aGame){
mMutex.lock();
totalTestGames++;
if (aGame->gameOver == aGame->players[0])
testPlayer2Victories++;
mMutex.unlock();
};
#endif
virtual void ButtonPressed(int ControllerId, int ControlId);