Bazaar developer reference

CvPlayerCulture::MoveSingleWorks(vector<CvGreatWorkBuildingInMyEmpire> &, vector<CvGreatWorkInMyEmpire> &, vector<CvGreatWorkInMyEmpire> &, YieldTypes)

Defined in
CvCultureClasses.cpp, line 1804
Class
CvPlayerCulture
Hook name
CivHooks::CvPlayerCulture_MoveSingleWorks

Hooks

static bool BeforeCvPlayerCulture_MoveSingleWorks(CvPlayerCulture* self, vector<CvGreatWorkBuildingInMyEmpire> & buildings, vector<CvGreatWorkInMyEmpire> & works1, vector<CvGreatWorkInMyEmpire> & works2, YieldTypes eFocusYield);static void AfterCvPlayerCulture_MoveSingleWorks(CvPlayerCulture* self, vector<CvGreatWorkBuildingInMyEmpire> & buildings, vector<CvGreatWorkInMyEmpire> & works1, vector<CvGreatWorkInMyEmpire> & works2, YieldTypes eFocusYield);static void ReplaceCvPlayerCulture_MoveSingleWorks(void (*original)(CvPlayerCulture*, vector<CvGreatWorkBuildingInMyEmpire> &, vector<CvGreatWorkInMyEmpire> &, vector<CvGreatWorkInMyEmpire> &, YieldTypes), CvPlayerCulture* self, vector<CvGreatWorkBuildingInMyEmpire> & buildings, vector<CvGreatWorkInMyEmpire> & works1, vector<CvGreatWorkInMyEmpire> & works2, YieldTypes eFocusYield);CivRegisterBefore<CivHooks::CvPlayerCulture_MoveSingleWorks>(host, &BeforeCvPlayerCulture_MoveSingleWorks);CivRegisterAfter<CivHooks::CvPlayerCulture_MoveSingleWorks>(host, &AfterCvPlayerCulture_MoveSingleWorks);CivRegisterReplace<CivHooks::CvPlayerCulture_MoveSingleWorks>(host, &ReplaceCvPlayerCulture_MoveSingleWorks);

Code

1803#if defined(MOD_GLOBAL_GREATWORK_YIELDTYPES)1804void CvPlayerCulture::MoveSingleWorks(vector<CvGreatWorkBuildingInMyEmpire> &buildings, vector<CvGreatWorkInMyEmpire> &works1, vector<CvGreatWorkInMyEmpire> &works2, YieldTypes eFocusYield)1805{1806	// CUSTOMLOG("Move Single Works");1807	vector<CvGreatWorkBuildingInMyEmpire>::iterator itBuilding;18081809	/*1810	 * The order is1811	 *  - fill single homeland buildings with a focused yield1812	 *  - fill single puppet buildings with a focused yield1813	 *  - fill single homeland buildings with any yield1814	 *  - fill single puppet buildings with any yield1815	 *  - fill single homeland buildings with no yield1816	 *  - fill single puppet buildings with no yield1817	 *  - fill single endangered buildings with a focused yield1818	 *  - fill single endangered buildings with any yield1819	 *  - fill single endangered buildings with no yield1820	*/18211822	vector<CvGreatWorkBuildingInMyEmpire> homelandBuildingsFocus;1823	vector<CvGreatWorkBuildingInMyEmpire> homelandBuildingsAny;1824	vector<CvGreatWorkBuildingInMyEmpire> homelandBuildingsNone;1825	vector<CvGreatWorkBuildingInMyEmpire> puppetBuildingsFocus;1826	vector<CvGreatWorkBuildingInMyEmpire> puppetBuildingsAny;1827	vector<CvGreatWorkBuildingInMyEmpire> puppetBuildingsNone;1828	vector<CvGreatWorkBuildingInMyEmpire> endangeredBuildingsFocus;1829	vector<CvGreatWorkBuildingInMyEmpire> endangeredBuildingsAny;1830	vector<CvGreatWorkBuildingInMyEmpire> endangeredBuildingsNone;18311832	for (itBuilding = buildings.begin(); itBuilding != buildings.end(); itBuilding++)1833	{1834		if (!itBuilding->m_bThemed) {1835			if (!itBuilding->m_bEndangered) {1836				if (!itBuilding->m_bPuppet) {1837					if (itBuilding->m_eYieldType == eFocusYield) {1838						homelandBuildingsFocus.push_back(*itBuilding);1839					} else if (itBuilding->m_eYieldType != NO_YIELD) {1840						homelandBuildingsAny.push_back(*itBuilding);1841					} else {1842						homelandBuildingsNone.push_back(*itBuilding);1843					}1844				} else {1845					if (itBuilding->m_eYieldType == eFocusYield) {1846						puppetBuildingsFocus.push_back(*itBuilding);1847					} else if (itBuilding->m_eYieldType != NO_YIELD) {1848						puppetBuildingsAny.push_back(*itBuilding);1849					} else {1850						puppetBuildingsNone.push_back(*itBuilding);1851					}1852				}1853			} else {1854				if (itBuilding->m_eYieldType == eFocusYield) {1855					endangeredBuildingsFocus.push_back(*itBuilding);1856				} else if (itBuilding->m_eYieldType != NO_YIELD) {1857					endangeredBuildingsAny.push_back(*itBuilding);1858				} else {1859					endangeredBuildingsNone.push_back(*itBuilding);1860				}1861			}1862		}1863	}18641865	for (itBuilding = homelandBuildingsFocus.begin(); itBuilding != homelandBuildingsFocus.end(); itBuilding++) {1866		FillBuilding(itBuilding, works1, works2);1867	}1868	for (itBuilding = puppetBuildingsFocus.begin(); itBuilding != puppetBuildingsFocus.end(); itBuilding++) {1869		FillBuilding(itBuilding, works1, works2);1870	}1871	for (itBuilding = homelandBuildingsAny.begin(); itBuilding != homelandBuildingsAny.end(); itBuilding++) {1872		FillBuilding(itBuilding, works1, works2);1873	}1874	for (itBuilding = puppetBuildingsAny.begin(); itBuilding != puppetBuildingsAny.end(); itBuilding++) {1875		FillBuilding(itBuilding, works1, works2);1876	}1877	for (itBuilding = homelandBuildingsNone.begin(); itBuilding != homelandBuildingsNone.end(); itBuilding++) {1878		FillBuilding(itBuilding, works1, works2);1879	}1880	for (itBuilding = puppetBuildingsNone.begin(); itBuilding != puppetBuildingsNone.end(); itBuilding++) {1881		FillBuilding(itBuilding, works1, works2);1882	}1883	for (itBuilding = endangeredBuildingsFocus.begin(); itBuilding != endangeredBuildingsFocus.end(); itBuilding++) {1884		FillBuilding(itBuilding, works1, works2);1885	}1886	for (itBuilding = endangeredBuildingsAny.begin(); itBuilding != endangeredBuildingsAny.end(); itBuilding++) {1887		FillBuilding(itBuilding, works1, works2);1888	}1889	for (itBuilding = endangeredBuildingsNone.begin(); itBuilding != endangeredBuildingsNone.end(); itBuilding++) {1890		FillBuilding(itBuilding, works1, works2);1891	}1892}

Calls

Called by