Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1151a1152
- >
- 1156,1160c1157
- < std::vector<const RuleResearch *>::const_iterator itDiscovered = std::find(discovered.begin(), discovered.end(), research);
- <
- < bool liveAlien = mod->getUnit(research->getName()) != 0;
- <
- < if (itDiscovered != discovered.end())
- ---
- > if (!research->getRequirements().empty())
- 1162,1175c1159
- < bool cull = true;
- < if (!research->getGetOneFree().empty())
- < {
- < for (std::vector<std::string>::const_iterator ohBoy = research->getGetOneFree().begin(); ohBoy != research->getGetOneFree().end(); ++ohBoy)
- < {
- < std::vector<const RuleResearch *>::const_iterator more_iteration = std::find(discovered.begin(), discovered.end(), mod->getResearch(*ohBoy));
- < if (more_iteration == discovered.end())
- < {
- < cull = false;
- < break;
- < }
- < }
- < }
- < if (!liveAlien && cull)
- ---
- > if(!isResearched(research->getRequirements()))
- 1179,1203d1162
- < else
- < {
- < std::vector<std::string>::const_iterator leaderCheck = std::find(research->getUnlocked().begin(), research->getUnlocked().end(), "STR_LEADER_PLUS");
- < std::vector<std::string>::const_iterator cmnderCheck = std::find(research->getUnlocked().begin(), research->getUnlocked().end(), "STR_COMMANDER_PLUS");
- <
- < bool leader ( leaderCheck != research->getUnlocked().end());
- < bool cmnder ( cmnderCheck != research->getUnlocked().end());
- <
- < if (leader)
- < {
- < std::vector<const RuleResearch*>::const_iterator found = std::find(discovered.begin(), discovered.end(), mod->getResearch("STR_LEADER_PLUS"));
- < if (found == discovered.end())
- < cull = false;
- < }
- <
- < if (cmnder)
- < {
- < std::vector<const RuleResearch*>::const_iterator found = std::find(discovered.begin(), discovered.end(), mod->getResearch("STR_COMMANDER_PLUS"));
- < if (found == discovered.end())
- < cull = false;
- < }
- <
- < if (cull)
- < continue;
- < }
- 1205c1164,1186
- <
- ---
- > std::vector<const RuleResearch *>::const_iterator itDiscovered = std::find(discovered.begin(), discovered.end(), research);
- > if(itDiscovered != discovered.end())
- > {
- > bool removeFromMenu = true;
- > if(!research->getGetOneFree().empty())
- > {
- > if(!isResearched(research->getGetOneFree()))
- > {
- > removeFromMenu = false;
- > }
- > }
- > if(research->getCost() != 0 && !research->getUnlocked().empty())
- > {
- > if(!isResearched(research->getUnlocked()))
- > {
- > removeFromMenu = false;
- > }
- > }
- > if(removeFromMenu)
- > {
- > continue;
- > }
- > }
- 1214,1227d1194
- < if (!research->getRequirements().empty())
- < {
- < size_t tally(0);
- < for (size_t itreq = 0; itreq != research->getRequirements().size(); ++itreq)
- < {
- < itDiscovered = std::find(discovered.begin(), discovered.end(), mod->getResearch(research->getRequirements().at(itreq)));
- < if (itDiscovered != discovered.end())
- < {
- < tally++;
- < }
- < }
- < if (tally != research->getRequirements().size())
- < continue;
- < }
- 1273,1275d1239
- < std::vector<std::string> deps = r->getDependencies();
- < const std::vector<const RuleResearch *> & discovered(getDiscoveredResearch());
- < bool liveAlien = mod->getUnit(r->getName()) != 0;
- 1280,1305c1244
- < else if (liveAlien)
- < {
- < if (!r->getGetOneFree().empty())
- < {
- < std::vector<std::string>::const_iterator leaderCheck = std::find(r->getUnlocked().begin(), r->getUnlocked().end(), "STR_LEADER_PLUS");
- < std::vector<std::string>::const_iterator cmnderCheck = std::find(r->getUnlocked().begin(), r->getUnlocked().end(), "STR_COMMANDER_PLUS");
- <
- < bool leader ( leaderCheck != r->getUnlocked().end());
- < bool cmnder ( cmnderCheck != r->getUnlocked().end());
- <
- < if (leader)
- < {
- < std::vector<const RuleResearch*>::const_iterator found = std::find(discovered.begin(), discovered.end(), mod->getResearch("STR_LEADER_PLUS"));
- < if (found == discovered.end())
- < return true;
- < }
- <
- < if (cmnder)
- < {
- < std::vector<const RuleResearch*>::const_iterator found = std::find(discovered.begin(), discovered.end(), mod->getResearch("STR_COMMANDER_PLUS"));
- < if (found == discovered.end())
- < return true;
- < }
- < }
- < }
- < for (std::vector<std::string>::const_iterator itFree = r->getGetOneFree().begin(); itFree != r->getGetOneFree().end(); ++itFree)
- ---
- > if (!r->getDependencies().empty())
- 1307,1317c1246
- < if (std::find(unlocked.begin(), unlocked.end(), mod->getResearch(*itFree)) == unlocked.end())
- < {
- < return true;
- < }
- < }
- <
- < for (std::vector<std::string>::const_iterator iter = deps.begin(); iter != deps.end(); ++ iter)
- < {
- < RuleResearch *research = mod->getResearch(*iter);
- < std::vector<const RuleResearch *>::const_iterator itDiscovered = std::find(discovered.begin(), discovered.end(), research);
- < if (itDiscovered == discovered.end())
- ---
- > if(!isResearched(r->getDependencies()))
- 1322c1251,1270
- <
- ---
- > bool allGetOneFree = false;
- > bool allUnlocks = false;
- > if(!r->getGetOneFree().empty())
- > {
- > if(isResearched(r->getGetOneFree()))
- > {
- > allGetOneFree = true;
- > }
- > }
- > if(!r->getUnlocked().empty())
- > {
- > if(isResearched(r->getUnlocked()))
- > {
- > allUnlocks = true;
- > }
- > }
- > if(allGetOneFree && allUnlocks)
- > {
- > return false;
- > }
Advertisement
Add Comment
Please, Sign In to add comment