diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index 9b112882..218c8465 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -2443,11 +2443,9 @@ void Renderer::renderResourceStatus() { continue; } - const Faction *factionForResourceView = thisFaction; - - bool showResource = world->showResourceTypeForFaction(rt, factionForResourceView, false); + bool showResource = world->showResourceTypeForTeam(rt, thisFaction->getTeam()); if(showResource == true) { - rowsRendered = renderResource(factionForResourceView, + rowsRendered = renderResource(thisFaction, false, twoRessourceLines, rt, 0, resourceCountRendered); } @@ -2472,7 +2470,13 @@ void Renderer::renderResourceStatus() { } //if any unit produces the resource - bool showResource = world->showResourceTypeForFaction(rt, factionForResourceView, false); + bool showResource; + if (twoRessourceLines) + showResource = world->showResourceTypeForTeam(rt, + factionForResourceView->getTeam()); + else + showResource = world->showResourceTypeForFaction(rt, + factionForResourceView); if(showResource == true) { renderResource(factionForResourceView, localFactionResourcesOnly, twoRessourceLines, rt, rowsRendered, resourceCountRendered); @@ -2493,7 +2497,6 @@ void Renderer::renderResourceStatus() { if(gui != NULL) { const Selection *selection = gui->getSelection(); if(selection != NULL && selection->getCount() > 0 && selection->getFrontUnit() != NULL) { - const Unit *selectedUnit = selection->getFrontUnit(); if(selectedUnit != NULL && selectedUnit->getFaction()->isAlly(thisFaction) == true) { factionForResourceView = selectedUnit->getFaction(); @@ -2510,7 +2513,14 @@ void Renderer::renderResourceStatus() { } //if any unit produces the resource - bool showResource = world->showResourceTypeForFaction(rt, factionForResourceView, false); + bool showResource; + if (twoRessourceLines) + showResource = world->showResourceTypeForTeam(rt, + factionForResourceView->getTeam()); + else + showResource = world->showResourceTypeForFaction(rt, + factionForResourceView); + if(showResource == true) { renderResource(factionForResourceView, localFactionResourcesOnly, twoRessourceLines, rt, rowsRendered, resourceCountRendered); diff --git a/source/glest_game/world/world.cpp b/source/glest_game/world/world.cpp index a6e7db50..40f3b227 100644 --- a/source/glest_game/world/world.cpp +++ b/source/glest_game/world/world.cpp @@ -2721,7 +2721,23 @@ int World::getStoreAmountForTeam(const ResourceType *rt, int teamIndex) const { return teamStoreAmount; } -bool World::showResourceTypeForFaction(const ResourceType *rt, const Faction *faction,bool localFactionOnly) const { +bool World::showResourceTypeForTeam(const ResourceType *rt, int teamIndex) const { + //if any unit produces the resource + bool showResource = false; + for(int index = 0; showResource == false && index < (int)factions.size(); ++index) { + const Faction *teamFaction = factions[index]; + if(teamFaction != NULL && teamFaction->getTeam() == teamIndex) { + + if(teamFaction->hasUnitTypeWithResourceCostInCache(rt) == true) { + showResource = true; + } + } + } + return showResource; +} + + +bool World::showResourceTypeForFaction(const ResourceType *rt, const Faction *faction) const { //if any unit produces the resource bool showResource = false; for(int factionUnitTypeIndex = 0; @@ -2734,21 +2750,6 @@ bool World::showResourceTypeForFaction(const ResourceType *rt, const Faction *fa break; } } - if(localFactionOnly == false && showResource == false && - (game->isFlagType1BitEnabled(ft1_allow_shared_team_units) == true || - game->isFlagType1BitEnabled(ft1_allow_shared_team_resources) == true)) { - - for(int index = 0; showResource == false && index < (int)factions.size(); ++index) { - const Faction *teamFaction = factions[index]; - if(teamFaction != NULL && teamFaction->getTeam() == faction->getTeam()) { - - if(teamFaction->hasUnitTypeWithResourceCostInCache(rt) == true) { - showResource = true; - } - } - } - } - return showResource; } diff --git a/source/glest_game/world/world.h b/source/glest_game/world/world.h index 268fe0c2..8e8fd566 100644 --- a/source/glest_game/world/world.h +++ b/source/glest_game/world/world.h @@ -326,7 +326,9 @@ public: void initTeamResource(const ResourceType *rt,int teamIndex, int value); const Resource * getResourceForTeam(const ResourceType *rt, int teamIndex); int getStoreAmountForTeam(const ResourceType *rt, int teamIndex) const; - bool showResourceTypeForFaction(const ResourceType *rt, const Faction *faction,bool localFactionOnly) const; + bool showResourceTypeForFaction(const ResourceType *rt, const Faction *faction) const; + bool showResourceTypeForTeam(const ResourceType *rt, int teamIndex) const; + private: