main.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "StateMachine.h"
  2. #include "Timing.h"
  3. #include "Logger.h"
  4. #include "render/Text.h"
  5. #include "Graphics.h"
  6. #include "Quirks.h"
  7. #include "Status.h"
  8. #include "map/Map.h"
  9. #include "map/StateMap.h"
  10. #include "piaf/Archive.h"
  11. #include "utility/misc.h"
  12. using namespace WalrusRPG;
  13. using WalrusRPG::PIAF::Archive;
  14. using WalrusRPG::Graphics::Texture;
  15. using namespace WalrusRPG::Graphics;
  16. int main(int argc, char *argv[])
  17. {
  18. UNUSED(argc);
  19. Graphics::init();
  20. Logger::init();
  21. Logger::log("WalrusRPG Init");
  22. Status::init();
  23. Timing::init();
  24. Quirks::init(argv[0]);
  25. Text::init();
  26. Archive arc("data/wip_data.wrf");
  27. Texture tex(arc.get("ov.png"));
  28. WalrusRPG::PIAF::File f1 = arc.get("l1.bin");
  29. WalrusRPG::PIAF::File f2 = arc.get("l2.bin");
  30. const uint8_t *l1 = f1.get();
  31. const uint8_t *l2 = f2.get();
  32. // TODO better map reading.
  33. uint16_t *dungeonTest = new uint16_t[f1.file_size / 2 + 1];
  34. uint16_t *dungeonTest2 = new uint16_t[f1.file_size / 2 + 1];
  35. for (unsigned i = 0; i < f1.file_size / 2; i++)
  36. {
  37. dungeonTest[i] = read_big_endian_value<uint16_t>(&l1[i * 2]);
  38. dungeonTest2[i] = read_big_endian_value<uint16_t>(&l2[i * 2]);
  39. }
  40. Map map(20, 20, dungeonTest, dungeonTest2, tex);
  41. tinystl::vector<Frame> stripe21;
  42. tinystl::vector<Frame> stripe22;
  43. stripe21.push_back({21, 23});
  44. stripe21.push_back({22, 31});
  45. stripe22.push_back({22, 37});
  46. stripe22.push_back({21, 41});
  47. map.anim.add_animation(21, {stripe21, true, 0});
  48. map.anim.add_animation(22, {stripe22, true, 0});
  49. StateMachine::init();
  50. StateMachine::push(new States::StateMap(0, 0, map));
  51. StateMachine::run();
  52. Logger::log("WalrusRPG Deinit");
  53. StateMachine::deinit();
  54. Text::deinit();
  55. Quirks::deinit();
  56. Timing::deinit();
  57. Graphics::deinit();
  58. Status::deinit();
  59. delete[] dungeonTest;
  60. delete[] dungeonTest2;
  61. Logger::log("WalrusRPG Exit");
  62. Graphics::deinit();
  63. return 0;
  64. }