* Get the list of newly available research projects once a ResearchProject has been completed. This function doesn't check for fake ResearchProject. * @param dependables the list of RuleResearch which are now available. * @param research The RuleResearch which has just been discovered * @param ruleset the Game Ruleset * @param base a pointer to a Base */
| 1171 | * @param base a pointer to a Base |
| 1172 | */ |
| 1173 | void SavedGame::getDependableResearchBasic (std::vector<RuleResearch *> & dependables, const RuleResearch *research, const Ruleset * ruleset, Base * base) const |
| 1174 | { |
| 1175 | std::vector<RuleResearch *> possibleProjects; |
| 1176 | getAvailableResearchProjects(possibleProjects, ruleset, base); |
| 1177 | for(std::vector<RuleResearch *>::iterator iter = possibleProjects.begin (); iter != possibleProjects.end (); ++iter) |
| 1178 | { |
| 1179 | if (std::find((*iter)->getDependencies().begin (), (*iter)->getDependencies().end (), research->getName()) != (*iter)->getDependencies().end () |
| 1180 | || std::find((*iter)->getUnlocked().begin (), (*iter)->getUnlocked().end (), research->getName()) != (*iter)->getUnlocked().end ()) |
| 1181 | { |
| 1182 | dependables.push_back(*iter); |
| 1183 | if ((*iter)->getCost() == 0) |
| 1184 | { |
| 1185 | getDependableResearchBasic(dependables, *iter, ruleset, base); |
| 1186 | } |
| 1187 | } |
| 1188 | } |
| 1189 | } |
| 1190 | |
| 1191 | /** |
| 1192 | * Get the list of newly available manufacture projects once a ResearchProject has been completed. This function check for fake ResearchProject. |