mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-04-01 10:06:42 +00:00
Make markers get removed when their players quit, rename marker methods
This commit is contained in:
parent
aed884949c
commit
04eb051df6
4 changed files with 11 additions and 7 deletions
|
@ -111,7 +111,7 @@ void Players::CreatePlayer(RakNet::RakNetGUID id)
|
||||||
|
|
||||||
ESM::CustomMarker mEditingMarker = Main::get().getGUIController()->CreateMarker(id);
|
ESM::CustomMarker mEditingMarker = Main::get().getGUIController()->CreateMarker(id);
|
||||||
dedicPlayer->marker = mEditingMarker;
|
dedicPlayer->marker = mEditingMarker;
|
||||||
dedicPlayer->markerEnabled = true;
|
dedicPlayer->setMarkerState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -126,6 +126,10 @@ void Players::DisconnectPlayer(RakNet::RakNetGUID id)
|
||||||
if (players[id]->state > 1)
|
if (players[id]->state > 1)
|
||||||
{
|
{
|
||||||
players[id]->state = 1;
|
players[id]->state = 1;
|
||||||
|
|
||||||
|
// Remove player's marker
|
||||||
|
players[id]->setMarkerState(false);
|
||||||
|
|
||||||
MWBase::World *world = MWBase::Environment::get().getWorld();
|
MWBase::World *world = MWBase::Environment::get().getWorld();
|
||||||
world->disable(players[id]->getPtr());
|
world->disable(players[id]->getPtr());
|
||||||
|
|
||||||
|
@ -469,7 +473,7 @@ void DedicatedPlayer::updateMarker()
|
||||||
if (!markerEnabled)
|
if (!markerEnabled)
|
||||||
return;
|
return;
|
||||||
GUIController *gui = Main::get().getGUIController();
|
GUIController *gui = Main::get().getGUIController();
|
||||||
if (gui->mPlayerMarkers.isExists(marker))
|
if (gui->mPlayerMarkers.isExistent(marker))
|
||||||
{
|
{
|
||||||
gui->mPlayerMarkers.deleteMarker(marker);
|
gui->mPlayerMarkers.deleteMarker(marker);
|
||||||
marker = gui->CreateMarker(guid);
|
marker = gui->CreateMarker(guid);
|
||||||
|
@ -487,9 +491,9 @@ void DedicatedPlayer::removeMarker()
|
||||||
Main::get().getGUIController()->mPlayerMarkers.deleteMarker(marker);
|
Main::get().getGUIController()->mPlayerMarkers.deleteMarker(marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DedicatedPlayer::enableMarker(bool enable)
|
void DedicatedPlayer::setMarkerState(bool state)
|
||||||
{
|
{
|
||||||
if (enable)
|
if (state)
|
||||||
updateMarker();
|
updateMarker();
|
||||||
else
|
else
|
||||||
removeMarker();
|
removeMarker();
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace mwmp
|
||||||
|
|
||||||
void updateMarker();
|
void updateMarker();
|
||||||
void removeMarker();
|
void removeMarker();
|
||||||
void enableMarker(bool enable);
|
void setMarkerState(bool state);
|
||||||
private:
|
private:
|
||||||
DedicatedPlayer(RakNet::RakNetGUID guid);
|
DedicatedPlayer(RakNet::RakNetGUID guid);
|
||||||
virtual ~DedicatedPlayer();
|
virtual ~DedicatedPlayer();
|
||||||
|
|
|
@ -73,7 +73,7 @@ size_t PlayerMarkerCollection::size() const
|
||||||
return mMarkers.size();
|
return mMarkers.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PlayerMarkerCollection::isExists(const ESM::CustomMarker &marker)
|
bool PlayerMarkerCollection::isExistent(const ESM::CustomMarker &marker)
|
||||||
{
|
{
|
||||||
return mMarkers.find(marker.mCell) != mMarkers.end();
|
return mMarkers.find(marker.mCell) != mMarkers.end();
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace mwmp
|
||||||
typedef MyGUI::delegates::CMultiDelegate0 EventHandle_Void;
|
typedef MyGUI::delegates::CMultiDelegate0 EventHandle_Void;
|
||||||
EventHandle_Void eventMarkersChanged;
|
EventHandle_Void eventMarkersChanged;
|
||||||
|
|
||||||
bool isExists(const ESM::CustomMarker &marker);
|
bool isExistent(const ESM::CustomMarker &marker);
|
||||||
private:
|
private:
|
||||||
ContainerType mMarkers;
|
ContainerType mMarkers;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue