Main.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "network/ENet.h"
  2. #include "server/Game.h"
  3. #include "server/GameServer.h"
  4. #include "server/commands/Commands.h"
  5. #include "server/snuviscript/Snuvi.h"
  6. void loop() {
  7. Clock clock;
  8. constexpr Clock::Nanos NANOS_PER_TICK = 50000000;
  9. Clock::Nanos lag = 0;
  10. while(Game::isRunning()) {
  11. lag += clock.update();
  12. while(lag >= NANOS_PER_TICK) {
  13. lag -= NANOS_PER_TICK;
  14. GameServer::tick();
  15. Game::tick();
  16. }
  17. Clock::Nanos waitNanos = NANOS_PER_TICK - lag;
  18. if(waitNanos > 300000) {
  19. clock.wait(waitNanos);
  20. }
  21. }
  22. }
  23. void init(Server* server) {
  24. Snuvi::init();
  25. Commands::init();
  26. GameServer::init(server);
  27. Game::testWorld();
  28. }
  29. int main() {
  30. ENet enet;
  31. if(enet.init()) {
  32. std::cout << "cannot initialize enet\n";
  33. return 0;
  34. }
  35. Server server(11196, 50);
  36. if(server.hasError()) {
  37. std::cout << server.getError() << "\n";
  38. return 0;
  39. }
  40. init(&server);
  41. loop();
  42. return 0;
  43. }