diff --git a/server/rooms/room_data.cpp b/server/rooms/room_data.cpp index 815f73a..5c3dfad 100644 --- a/server/rooms/room_data.cpp +++ b/server/rooms/room_data.cpp @@ -52,3 +52,7 @@ WaypointManager* RoomData::GetWaypointMgr() { std::list* RoomData::GetCharacterList() { return &characterList; } + +void RoomData::RunFrame() { + //TODO: (1) EMPTY +} \ No newline at end of file diff --git a/server/rooms/room_data.hpp b/server/rooms/room_data.hpp index 83720b9..78cbc4f 100644 --- a/server/rooms/room_data.hpp +++ b/server/rooms/room_data.hpp @@ -49,6 +49,8 @@ public: WaypointManager* GetWaypointMgr(); std::list* GetCharacterList(); + void RunFrame(); + //TODO: triggers for unload, save, per-second, player enter, player exit, etc. private: diff --git a/server/server_logic.cpp b/server/server_logic.cpp index 3ea6a30..32bb812 100644 --- a/server/server_logic.cpp +++ b/server/server_logic.cpp @@ -193,10 +193,21 @@ void ServerApplication::Proc() { } //"tick" the internals - //... + realTime = Clock::now(); - //give the machine a break - SDL_Delay(10); + if (simTime < realTime) { + while(simTime < realTime) { + for (auto& it : *roomMgr.GetContainer()) { + it.second.RunFrame(); + } + //~60 FPS + simTime += std::chrono::duration(16); + } + } + else { + //give the machine a break + SDL_Delay(10); + } } delete reinterpret_cast(packetBuffer); }