From 57f54aa3709ef5f70e7926ddbe88cdf88bff9c7d Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sat, 4 Feb 2017 09:46:27 +0200 Subject: [PATCH] [Client] Don't store multiple cellStates for the same cell --- apps/openmw/mwmp/LocalPlayer.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/apps/openmw/mwmp/LocalPlayer.cpp b/apps/openmw/mwmp/LocalPlayer.cpp index 6a4ce15fc..c87588eac 100644 --- a/apps/openmw/mwmp/LocalPlayer.cpp +++ b/apps/openmw/mwmp/LocalPlayer.cpp @@ -1098,6 +1098,20 @@ void LocalPlayer::clearCellStates() void LocalPlayer::storeCellState(ESM::Cell cell, int stateType) { + std::vector::iterator iter; + + for (iter = cellStateChanges.cellStates.begin(); iter != cellStateChanges.cellStates.end(); ) + { + // If there's already a cell state recorded for this particular cell, + // remove it + if (cell.getDescription() == (*iter).cell.getDescription()) + { + iter = cellStateChanges.cellStates.erase(iter); + } + else + ++iter; + } + CellState cellState; cellState.cell = cell; cellState.type = stateType;