BattleCallback.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "BattleCallback.h"
  2. #include "Client.h"
  3. #include "../lib/CGameState.h"
  4. #include "../lib/BattleState.h"
  5. #include "../lib/NetPacks.h"
  6. #include "../lib/Connection.h"
  7. CBattleCallback::CBattleCallback(CGameState *GS, int Player, CClient *C )
  8. {
  9. gs = GS;
  10. player = Player;
  11. cl = C;
  12. }
  13. bool CBattleCallback::battleMakeTacticAction( BattleAction * action )
  14. {
  15. assert(cl->gs->curB->tacticDistance);
  16. MakeAction ma;
  17. ma.ba = *action;
  18. sendRequest(&ma);
  19. return true;
  20. }
  21. int CBattleCallback::battleMakeAction(BattleAction* action)
  22. {
  23. assert(action->actionType == BattleAction::HERO_SPELL);
  24. MakeCustomAction mca(*action);
  25. sendRequest(&mca);
  26. return 0;
  27. }
  28. void CBattleCallback::sendRequest(const CPack* request)
  29. {
  30. //TODO should be part of CClient (client owns connection, not CB)
  31. //but it would have to be very tricky cause template/serialization issues
  32. // if(waitTillRealize)
  33. // cl->waitingRequest.set(typeList.getTypeID(request));
  34. cl->serv->sendPack(*request);
  35. // if(waitTillRealize)
  36. // {
  37. // if(unlockGsWhenWaiting)
  38. // getGsMutex().unlock_shared();
  39. // cl->waitingRequest.waitWhileTrue();
  40. // if(unlockGsWhenWaiting)
  41. // getGsMutex().lock_shared();
  42. // }
  43. }