CScenarioInfoScreen.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * CScenarioInfoScreen.cpp, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #include "StdInc.h"
  11. #include "CScenarioInfoScreen.h"
  12. #include "OptionsTab.h"
  13. #include "../CGameInfo.h"
  14. #include "../CPlayerInterface.h"
  15. #include "../gui/CGuiHandler.h"
  16. #include "../widgets/Buttons.h"
  17. #include "../../CCallback.h"
  18. #include "../../lib/CGeneralTextHandler.h"
  19. #include "../../lib/StartInfo.h"
  20. #include "../../lib/mapping/CMapInfo.h"
  21. CScenarioInfoScreen::CScenarioInfoScreen()
  22. {
  23. OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
  24. pos.w = 800;
  25. pos.h = 600;
  26. pos = center();
  27. localSi = new StartInfo(*LOCPLINT->cb->getStartInfo());
  28. localMi = new CMapInfo();
  29. localMi->mapHeader = std::unique_ptr<CMapHeader>(new CMapHeader(*LOCPLINT->cb->getMapHeader()));
  30. screenType = ESelectionScreen::scenarioInfo;
  31. card = std::make_shared<InfoCard>();
  32. opt = std::make_shared<OptionsTab>();
  33. opt->recActions = UPDATE | SHOWALL;
  34. opt->recreate();
  35. card->changeSelection();
  36. card->iconDifficulty->setSelected(getCurrentDifficulty());
  37. buttonBack = std::make_shared<CButton>(Point(584, 535), "SCNRBACK.DEF", CGI->generaltexth->zelp[105], [=](){ close();}, SDLK_ESCAPE);
  38. }
  39. CScenarioInfoScreen::~CScenarioInfoScreen()
  40. {
  41. vstd::clear_pointer(localSi);
  42. vstd::clear_pointer(localMi);
  43. }
  44. const CMapInfo * CScenarioInfoScreen::getMapInfo()
  45. {
  46. return localMi;
  47. }
  48. const StartInfo * CScenarioInfoScreen::getStartInfo()
  49. {
  50. return localSi;
  51. }