Use a correct queue to save network state

This commit is contained in:
Benau
2018-07-30 19:38:10 +08:00
parent f49a092603
commit 4ec8a33f8c
3 changed files with 9 additions and 2 deletions

View File

@@ -398,7 +398,7 @@ void GameProtocol::handleState(Event *event)
// The memory for bns will be handled in the RewindInfoState object
RewindInfoState* ris = new RewindInfoState(ticks, data.getCurrentOffset(),
rewinder_using, data.getBuffer());
RewindManager::get()->addRewindInfo(ris);
RewindManager::get()->addNetworkRewindInfo(ris);
} // handleState
// ----------------------------------------------------------------------------

View File

@@ -203,7 +203,8 @@ public:
void addRewindInfoEventFunction(RewindInfoEventFunction* rief)
{ m_pending_rief.push_back(rief); }
// ------------------------------------------------------------------------
void addRewindInfo(RewindInfo* ri) { m_rewind_queue.insertRewindInfo(ri); }
void addNetworkRewindInfo(RewindInfo* ri)
{ m_rewind_queue.addNetworkRewindInfo(ri); }
}; // RewindManager

View File

@@ -70,6 +70,12 @@ public:
void addNetworkEvent(EventRewinder *event_rewinder,
BareNetworkString *buffer, int ticks);
void addNetworkState(BareNetworkString *buffer, int ticks);
void addNetworkRewindInfo(RewindInfo* ri)
{
m_network_events.lock();
m_network_events.getData().push_back(ri);
m_network_events.unlock();
}
void mergeNetworkData(int world_ticks, bool *needs_rewind,
int *rewind_ticks);
void replayAllEvents(int ticks);