mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-01 13:36:40 +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);
|
return MyGUI::IntCoord(position.left - halfMarkerSize, position.top - halfMarkerSize, markerSize, markerSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
MyGUI::Widget* LocalMapBase::createDoorMarker(
|
MyGUI::Widget* LocalMapBase::createDoorMarker(const std::string& name, float x, float y) const
|
||||||
const std::string& name, const MyGUI::VectorString& notes, float x, float y) const
|
|
||||||
{
|
{
|
||||||
MarkerUserData data(mLocalMapRender);
|
MarkerUserData data(mLocalMapRender);
|
||||||
data.notes = notes;
|
|
||||||
data.caption = name;
|
data.caption = name;
|
||||||
MarkerWidget* markerWidget = mLocalMap->createWidget<MarkerWidget>(
|
MarkerWidget* markerWidget = mLocalMap->createWidget<MarkerWidget>(
|
||||||
"MarkerButton", getMarkerCoordinates(x, y, data, 8), MyGUI::Align::Default);
|
"MarkerButton", getMarkerCoordinates(x, y, data, 8), MyGUI::Align::Default);
|
||||||
|
@ -662,8 +660,9 @@ namespace MWGui
|
||||||
MarkerUserData* data;
|
MarkerUserData* data;
|
||||||
if (mDoorMarkersToRecycle.empty())
|
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 = markerWidget->getUserData<MarkerUserData>();
|
||||||
|
data->notes = std::move(destNotes);
|
||||||
doorMarkerCreated(markerWidget);
|
doorMarkerCreated(markerWidget);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -672,7 +671,7 @@ namespace MWGui
|
||||||
mDoorMarkersToRecycle.pop_back();
|
mDoorMarkersToRecycle.pop_back();
|
||||||
|
|
||||||
data = markerWidget->getUserData<MarkerUserData>();
|
data = markerWidget->getUserData<MarkerUserData>();
|
||||||
data->notes = destNotes;
|
data->notes = std::move(destNotes);
|
||||||
data->caption = marker.name;
|
data->caption = marker.name;
|
||||||
markerWidget->setCoord(getMarkerCoordinates(marker.x, marker.y, *data, 8));
|
markerWidget->setCoord(getMarkerCoordinates(marker.x, marker.y, *data, 8));
|
||||||
markerWidget->setVisible(true);
|
markerWidget->setVisible(true);
|
||||||
|
|
|
@ -170,8 +170,7 @@ namespace MWGui
|
||||||
MyGUI::IntPoint getMarkerPosition(float worldX, float worldY, MarkerUserData& markerPos) const;
|
MyGUI::IntPoint getMarkerPosition(float worldX, float worldY, MarkerUserData& markerPos) const;
|
||||||
MyGUI::IntCoord getMarkerCoordinates(
|
MyGUI::IntCoord getMarkerCoordinates(
|
||||||
float worldX, float worldY, MarkerUserData& markerPos, size_t markerSize) const;
|
float worldX, float worldY, MarkerUserData& markerPos, size_t markerSize) const;
|
||||||
MyGUI::Widget* createDoorMarker(
|
MyGUI::Widget* createDoorMarker(const std::string& name, float x, float y) const;
|
||||||
const std::string& name, const MyGUI::VectorString& notes, float x, float y) const;
|
|
||||||
MyGUI::IntCoord getMarkerCoordinates(MyGUI::Widget* widget, size_t markerSize) const;
|
MyGUI::IntCoord getMarkerCoordinates(MyGUI::Widget* widget, size_t markerSize) const;
|
||||||
|
|
||||||
virtual void notifyPlayerUpdate() {}
|
virtual void notifyPlayerUpdate() {}
|
||||||
|
|
Loading…
Reference in a new issue