mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-01 14:06:43 +00:00
Do not copy vector for every door marker
This commit is contained in:
parent
828c40c710
commit
4f65b7167a
2 changed files with 5 additions and 7 deletions
|
@ -300,11 +300,9 @@ namespace MWGui
|
|||
return MyGUI::IntCoord(position.left - halfMarkerSize, position.top - halfMarkerSize, markerSize, markerSize);
|
||||
}
|
||||
|
||||
MyGUI::Widget* LocalMapBase::createDoorMarker(
|
||||
const std::string& name, const MyGUI::VectorString& notes, float x, float y) const
|
||||
MyGUI::Widget* LocalMapBase::createDoorMarker(const std::string& name, float x, float y) const
|
||||
{
|
||||
MarkerUserData data(mLocalMapRender);
|
||||
data.notes = notes;
|
||||
data.caption = name;
|
||||
MarkerWidget* markerWidget = mLocalMap->createWidget<MarkerWidget>(
|
||||
"MarkerButton", getMarkerCoordinates(x, y, data, 8), MyGUI::Align::Default);
|
||||
|
@ -662,8 +660,9 @@ namespace MWGui
|
|||
MarkerUserData* data;
|
||||
if (mDoorMarkersToRecycle.empty())
|
||||
{
|
||||
markerWidget = createDoorMarker(marker.name, destNotes, marker.x, marker.y);
|
||||
markerWidget = createDoorMarker(marker.name, marker.x, marker.y);
|
||||
data = markerWidget->getUserData<MarkerUserData>();
|
||||
data->notes = std::move(destNotes);
|
||||
doorMarkerCreated(markerWidget);
|
||||
}
|
||||
else
|
||||
|
@ -672,7 +671,7 @@ namespace MWGui
|
|||
mDoorMarkersToRecycle.pop_back();
|
||||
|
||||
data = markerWidget->getUserData<MarkerUserData>();
|
||||
data->notes = destNotes;
|
||||
data->notes = std::move(destNotes);
|
||||
data->caption = marker.name;
|
||||
markerWidget->setCoord(getMarkerCoordinates(marker.x, marker.y, *data, 8));
|
||||
markerWidget->setVisible(true);
|
||||
|
|
|
@ -170,8 +170,7 @@ namespace MWGui
|
|||
MyGUI::IntPoint getMarkerPosition(float worldX, float worldY, MarkerUserData& markerPos) const;
|
||||
MyGUI::IntCoord getMarkerCoordinates(
|
||||
float worldX, float worldY, MarkerUserData& markerPos, size_t markerSize) const;
|
||||
MyGUI::Widget* createDoorMarker(
|
||||
const std::string& name, const MyGUI::VectorString& notes, float x, float y) const;
|
||||
MyGUI::Widget* createDoorMarker(const std::string& name, float x, float y) const;
|
||||
MyGUI::IntCoord getMarkerCoordinates(MyGUI::Widget* widget, size_t markerSize) const;
|
||||
|
||||
virtual void notifyPlayerUpdate() {}
|
||||
|
|
Loading…
Reference in a new issue