Bazaar developer reference

CvLuaPlayer::lGetOthersGreatWorks(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 4869
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetOthersGreatWorks

Hooks

static bool BeforeCvLuaPlayer_lGetOthersGreatWorks(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetOthersGreatWorks(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetOthersGreatWorks(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetOthersGreatWorks>(host, &BeforeCvLuaPlayer_lGetOthersGreatWorks);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetOthersGreatWorks>(host, &AfterCvLuaPlayer_lGetOthersGreatWorks);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetOthersGreatWorks>(host, &ReplaceCvLuaPlayer_lGetOthersGreatWorks);

Code

4869int CvLuaPlayer::lGetOthersGreatWorks(lua_State* L)4870{4871	CvPlayerAI* pkPlayer = GetInstance(L);48724873	lua_createtable(L, 0, 0);4874	int index = 1;48754876	for (uint uiPlayer = 0; uiPlayer < MAX_MAJOR_CIVS; uiPlayer++)4877	{4878		PlayerTypes eOtherPlayer = (PlayerTypes)uiPlayer;48794880		// skip if me4881		if (eOtherPlayer == pkPlayer->GetID())4882		{4883			continue;4884		}48854886		// skip if dead4887		if (!GET_PLAYER(eOtherPlayer).isAlive())4888		{4889			continue;4890		}48914892		// skip if at war4893		if (GET_TEAM(pkPlayer->getTeam()).isAtWar(GET_PLAYER(eOtherPlayer).getTeam()))4894		{4895			continue;4896		}48974898		// skip if have not met4899		if (!GET_TEAM(pkPlayer->getTeam()).isHasMet(GET_PLAYER(eOtherPlayer).getTeam()))4900		{4901			continue;4902		}49034904		lua_createtable(L, 0, 0);4905		const int t = lua_gettop(L);49064907		lua_pushinteger(L, eOtherPlayer);4908		lua_setfield(L, t, "iPlayer");49094910		// writing4911		int iWritingWorkIndex = GET_PLAYER(eOtherPlayer).GetCulture()->GetSwappableWritingIndex();4912		PlayerTypes eWritingWorkPlayer = NO_PLAYER;4913		EraTypes eWritingWorkEra = NO_ERA;4914		lua_pushinteger(L, iWritingWorkIndex);4915		lua_setfield(L, t, "WritingIndex");4916		if (iWritingWorkIndex != -1)4917		{4918			eWritingWorkPlayer = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iWritingWorkIndex].m_ePlayer;4919			eWritingWorkEra = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iWritingWorkIndex].m_eEra;4920		}4921		lua_pushinteger(L, eWritingWorkPlayer);4922		lua_setfield(L, t, "WritingCreator");4923		lua_pushinteger(L, eWritingWorkEra);4924		lua_setfield(L, t, "WritingEra");49254926		// art4927		int iArtWorkIndex = GET_PLAYER(eOtherPlayer).GetCulture()->GetSwappableArtIndex();4928		PlayerTypes eArtWorkPlayer = NO_PLAYER;4929		EraTypes eArtWorkEra = NO_ERA;4930		lua_pushinteger(L, iArtWorkIndex);4931		lua_setfield(L, t, "ArtIndex");4932		if (iArtWorkIndex != -1)4933		{4934			eArtWorkPlayer = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iArtWorkIndex].m_ePlayer;4935			eArtWorkEra = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iArtWorkIndex].m_eEra;4936		}4937		lua_pushinteger(L, eArtWorkPlayer);4938		lua_setfield(L, t, "ArtCreator");4939		lua_pushinteger(L, eArtWorkEra);4940		lua_setfield(L, t, "ArtEra");49414942		// artifact4943		int iArtifactWorkIndex = GET_PLAYER(eOtherPlayer).GetCulture()->GetSwappableArtifactIndex();4944		PlayerTypes eArtifactWorkPlayer = NO_PLAYER;4945		EraTypes eArtifactWorkEra = NO_ERA;4946		lua_pushinteger(L, iArtifactWorkIndex);4947		lua_setfield(L, t, "ArtifactIndex");4948		if (iArtifactWorkIndex != -1)4949		{4950			eArtifactWorkPlayer = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iArtifactWorkIndex].m_ePlayer;4951			eArtifactWorkEra = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iArtifactWorkIndex].m_eEra;4952		}4953		lua_pushinteger(L, eArtifactWorkPlayer);4954		lua_setfield(L, t, "ArtifactCreator");4955		lua_pushinteger(L, eArtifactWorkEra);4956		lua_setfield(L, t, "ArtifactEra");49574958		// music4959		int iMusicWorkIndex = GET_PLAYER(eOtherPlayer).GetCulture()->GetSwappableMusicIndex();4960		PlayerTypes eMusicWorkPlayer = NO_PLAYER;4961		EraTypes eMusicWorkEra = NO_ERA;4962		lua_pushinteger(L, iMusicWorkIndex);4963		lua_setfield(L, t, "MusicIndex");4964		if (iMusicWorkIndex != -1)4965		{4966			eMusicWorkPlayer = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iMusicWorkIndex].m_ePlayer;4967			eMusicWorkEra = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iMusicWorkIndex].m_eEra;4968		}4969		lua_pushinteger(L, eMusicWorkPlayer);4970		lua_setfield(L, t, "MusicCreator");4971		lua_pushinteger(L, eMusicWorkEra);4972		lua_setfield(L, t, "MusicEra");49734974		lua_rawseti(L, -2, index++);4975	}49764977	return 1;4978}

Calls

Called by