Open Source Tomb Raider Engine
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

OpenRaider.cpp 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*!
  2. * \file src/OpenRaider.cpp
  3. * \brief Main Game Object
  4. *
  5. * \author xythobuz
  6. */
  7. #include <cstdio>
  8. #include <assert.h>
  9. #include "WindowSDL.h"
  10. #include "config.h"
  11. #include "utils/strings.h"
  12. #include "utils/time.h"
  13. #include "OpenRaider.h"
  14. #define MAX_MS_PER_FRAME (1000 / MAXIMUM_FPS)
  15. OpenRaider::OpenRaider() {
  16. mInit = false;
  17. mRunning = false;
  18. mWindow = NULL;
  19. }
  20. OpenRaider::~OpenRaider() {
  21. if (mWindow)
  22. delete mWindow;
  23. }
  24. int OpenRaider::loadConfig(const char *config) {
  25. assert(config != NULL);
  26. char *configFile = fullPath(config, 0);
  27. printf("Trying to load \"%s\"...\n", configFile);
  28. return 0;
  29. }
  30. int OpenRaider::initialize() {
  31. assert(mWindow == NULL);
  32. assert(mInit == false);
  33. assert(mRunning == false);
  34. mWindow = new WindowSDL();
  35. if (mWindow->initialize() != 0)
  36. return -1;
  37. mInit = true;
  38. return 0;
  39. }
  40. void OpenRaider::run() {
  41. assert(mInit == true);
  42. assert(mRunning == false);
  43. mRunning = true;
  44. while (mRunning) {
  45. clock_t startTime = systemTimerGet();
  46. mWindow->eventHandling();
  47. clock_t stopTime = systemTimerGet();
  48. if (MAX_MS_PER_FRAME > (stopTime - startTime))
  49. mWindow->delay(MAX_MS_PER_FRAME - (stopTime - startTime));
  50. }
  51. }