ERMScriptModule.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #define VCMI_DLL
  2. #include "ERMScriptModule.h"
  3. #include "ERMInterpreter.h"
  4. #include <boost/assign/std/vector.hpp>
  5. #include <boost/assign/list_of.hpp>
  6. #include "CObjectHandler.h"
  7. using namespace boost::assign;
  8. CScriptingModule::~CScriptingModule()
  9. {
  10. }
  11. CERMScriptModule::CERMScriptModule(void)
  12. {
  13. }
  14. CERMScriptModule::~CERMScriptModule(void)
  15. {
  16. }
  17. void CERMScriptModule::init()
  18. {
  19. interpreter = new ERMInterpreter();
  20. interpreter->init();
  21. interpreter->scanForScripts();
  22. interpreter->scanScripts();
  23. interpreter->executeInstructions();
  24. interpreter->executeTriggerType("PI");
  25. }
  26. void CERMScriptModule::heroVisit(const CGHeroInstance *visitor, const CGObjectInstance *visitedObj, bool start)
  27. {
  28. ERMInterpreter::TIDPattern tip;
  29. tip[1] = list_of(visitedObj->ID);
  30. tip[2] = list_of(visitedObj->ID)(visitedObj->subID);
  31. tip[3] = list_of(visitedObj->pos.x)(visitedObj->pos.y)(visitedObj->pos.z);
  32. interpreter->executeTriggerType(VERMInterpreter::TriggerType("OB"), start, tip);
  33. }
  34. void CERMScriptModule::battleStart(const CCreatureSet *army1, const CCreatureSet *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2, bool side)
  35. {
  36. interpreter->executeTriggerType("BA", 0);
  37. interpreter->executeTriggerType("BR", -1);
  38. interpreter->executeTriggerType("BF", 0);
  39. //TODO tactics or not
  40. }