Skip to content

Commit

Permalink
fix #6070
Browse files Browse the repository at this point in the history
  • Loading branch information
rt committed Nov 10, 2018
1 parent fafa97a commit faac1d4
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
18 changes: 8 additions & 10 deletions rts/Lua/LuaUnsyncedCtrl.cpp
Expand Up @@ -100,9 +100,6 @@
#include <SDL_clipboard.h>
#include <SDL_mouse.h>

using std::min;
using std::max;

// MinGW defines this for a WINAPI function
#undef SendMessage
#undef CreateDirectory
Expand Down Expand Up @@ -2203,16 +2200,17 @@ int LuaUnsyncedCtrl::SetUnitDefIcon(lua_State* L)
const auto& decoyMap = unitDefHandler->GetDecoyDefIDs();
const auto decoyMapIt = decoyMap.find((ud->decoyDef != nullptr)? ud->decoyDef->id: ud->id);

if (decoyMapIt == decoyMap.end())
return 0;

const auto& decoySet = decoyMapIt->second;
if (decoyMapIt != decoyMap.end()) {
const auto& decoySet = decoyMapIt->second;

for (const int decoyDefID: decoySet) {
const UnitDef* decoyDef = unitDefHandler->GetUnitDefByID(decoyDefID);
decoyDef->iconType = ud->iconType;
for (const int decoyDefID: decoySet) {
const UnitDef* decoyDef = unitDefHandler->GetUnitDefByID(decoyDefID);
decoyDef->iconType = ud->iconType;
}
}

// FIXME: the icon-system is garbage, rewrite it
unitDrawer->UpdateUnitDefMiniMapIcons(ud);
return 0;
}

Expand Down
11 changes: 11 additions & 0 deletions rts/Rendering/UnitDrawer.cpp
Expand Up @@ -40,6 +40,7 @@
#include "Sim/Units/UnitDef.h"
#include "Sim/Units/UnitDefHandler.h"
#include "Sim/Units/Unit.h"
#include "Sim/Units/UnitHandler.h"

#include "System/Config/ConfigHandler.h"
#include "System/FileSystem/FileHandler.h"
Expand Down Expand Up @@ -1780,6 +1781,16 @@ void CUnitDrawer::DrawUnitMiniMapIcons() const {
}
}


void CUnitDrawer::UpdateUnitDefMiniMapIcons(const UnitDef* ud)
{
for (int teamNum = 0; teamNum < teamHandler.ActiveTeams(); teamNum++) {
for (const CUnit* unit: unitHandler.GetUnitsByTeamAndDef(teamNum, ud->id)) {
UpdateUnitMiniMapIcon(unit, true, false);
}
}
}

void CUnitDrawer::UpdateUnitMiniMapIcon(const CUnit* unit, bool forced, bool killed) {
CUnit* u = const_cast<CUnit*>(unit);

Expand Down
1 change: 1 addition & 0 deletions rts/Rendering/UnitDrawer.h
Expand Up @@ -214,6 +214,7 @@ class CUnitDrawer: public CEventClient
public:
void DrawUnitIcons();
void DrawUnitMiniMapIcon(const CUnit* unit, CVertexArray* va) const;
void UpdateUnitDefMiniMapIcons(const UnitDef* ud);
private:
void UpdateUnitMiniMapIcon(const CUnit* unit, bool forced, bool killed);
void UpdateUnitIconState(CUnit* unit);
Expand Down

0 comments on commit faac1d4

Please sign in to comment.