StateMap.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "StateMap.h"
  2. #include "Graphics.h"
  3. #include "input/Input.h"
  4. #include "render/Text.h"
  5. #include "piaf/Archive.h"
  6. using WalrusRPG::States::StateMap;
  7. using namespace WalrusRPG;
  8. using namespace WalrusRPG::Graphics;
  9. using WalrusRPG::Utils::Rect;
  10. using WalrusRPG::PIAF::Archive;
  11. using WalrusRPG::PIAF::File;
  12. using WalrusRPG::Graphics::Texture;
  13. using namespace WalrusRPG::Input;
  14. using WalrusRPG::Input::Key;
  15. using WalrusRPG::Graphics::Font;
  16. using WalrusRPG::Textbox;
  17. namespace
  18. {
  19. void print_debug_camera_data(const Camera &camera, const Font &fnt)
  20. {
  21. fnt.draw_format(240, 1, Black, "CAM : X : %d Y: %d", camera.get_x(),
  22. camera.get_y());
  23. fnt.draw_format(240, 0, "CAM : X : %d Y: %d", camera.get_x(), camera.get_y());
  24. }
  25. void print_debug_map_data(const Map &map, const Font &fnt)
  26. {
  27. fnt.draw_format(240, 9, Black, "MAP : W: %d, H:%d", map.get_width(),
  28. map.get_height());
  29. fnt.draw_format(240, 8, "MAP : W: %d, H:%d", map.get_width(), map.get_height());
  30. }
  31. }
  32. // TODO : We definitely need a Resource Manager
  33. StateMap::StateMap(int x, int y, Map &map)
  34. : started(false), camera(x, y), map(map), data("data/out.wrf"),
  35. tex_haeccity(data.get("t_haecci")), txt(tex_haeccity, data.get("f_haecci")),
  36. box(txt)
  37. {
  38. box.set_text((
  39. char *) "Hello world! I am "
  40. "\xFF\x01\xf0\x00\x00Howard\xFF\x01\xff\xff\x00"
  41. ".\n"
  42. "\xFF\x81\x78\x00\x00"
  43. "\xFF\x81\x0a\x00\x00"
  44. "\xFF\x01\xf0\x00\x00"
  45. "Howard"
  46. "\xFF\x01\xff\xff\x00"
  47. " the Psyduck!\n"
  48. "How goes? I'm fine, headache-y but fine. Heh, it's normal, don't worry "
  49. "for me.\n"
  50. "I wonder... Heh, Let's see if it works correctly, shall we?");
  51. }
  52. void StateMap::update(unsigned dt)
  53. {
  54. unsigned t = dt * (key_down(K_B) ? 16 : 1);
  55. if (!started)
  56. {
  57. if (key_down(K_A))
  58. started = true;
  59. }
  60. else
  61. box.update(t);
  62. camera.update(t);
  63. }
  64. void StateMap::render(unsigned dt)
  65. {
  66. map.render(camera, dt);
  67. print_debug_camera_data(camera, txt);
  68. print_debug_map_data(map, txt);
  69. if (!started)
  70. return;
  71. box.render(dt);
  72. }