- 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

View File

@@ -43,36 +43,39 @@ void DuelLayers::CheckUserInput(int isAI)
{
JButton key;
int x, y;
while ((key = JGE::GetInstance()->ReadButton()) || JGE::GetInstance()->GetLeftClickCoordinates(x, y))
JGE* jge = observer->getInput();
if(!jge) return;
while ((key = jge->ReadButton()) || jge->GetLeftClickCoordinates(x, y))
{
if ((!isAI) && ((0 != key) || JGE::GetInstance()->GetLeftClickCoordinates(x, y)))
if ((!isAI) && ((0 != key) || jge->GetLeftClickCoordinates(x, y)))
{
if (stack->CheckUserInput(key)) {
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
break;
}
if (combat->CheckUserInput(key)) {
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
break;
}
if (avatars->CheckUserInput(key)) {
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
break; //avatars need to check their input before action (CTRL_CROSS)
}
if (action->CheckUserInput(key)) {
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
break;
}
if (hand->CheckUserInput(key)) {
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
break;
}
if (mCardSelector->CheckUserInput(key)) {
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
break;
}
}
JGE::GetInstance()->LeftClickedProcessed();
jge->LeftClickedProcessed();
}
}