hmmm, ill look it up.
meanwhile look at my solution to the problem, its a bit bulky but ill slimm it down later.HandleEvent(BeginTurn) 'WonderLookup' post {
// general vars
int_t i;
int_t hasrunonce;
int_t adv;
city_t tmpCity;
// vars for internet fix
int_t B;
int_t inetPlayer;
int_t oldInetPlayer;
// vars for national shield fix
int_t C;
int_t shieldPlayer;
int_t oldShieldPlayer;
// vars for central matter decompiler fix
int_t D;
int_t compPlayer;
int_t oldCompPlayer;
// vars for hagnia sophia fix
int_t E;
int_t hagnPlayer;
int_t oldHagnPlayer;
if(hasrunonce != 0){
oldInetPlayer = -2;
oldShieldPlayer = -2;
oldCompPlayer = -2;
oldHagnPlayer = -2;
hasrunonce = 0;
}
inetPlayer = WonderOwner(WonderDB(WONDER_INTERNET));
adv = AdvanceDB(ADVANCE_BUGFIX_B);
if(inetPlayer == -1 && oldInetPlayer != -2){
// see if wonder has been destroyed, then clean up
RemoveAdvance(oldInetPlayer, AdvanceDB(ADVANCE_BUGFIX_B));
oldInetPlayer = -2;
}
if(inetPlayer != -1 && inetPlayer != oldInetPlayer) {
// see if a new player has the wonder, then sell buildings
// then remove building from lists and clean up
B = 0;
for( i = 0 ; i < Cities(inetPlayer); i = i + 1 ){
GetCityByIndex(inetPlayer, i, tmpCity);
if(CityHasBuilding(tmpCity, "IMPROVE_COMPUTER_CENTER")){
B = B + 1200;
}
}
AddGold(inetPlayer, B);
if(oldHagnPlayer != -2){
RemoveAdvance(oldInetPlayer, adv);
}
GrantAdvance(inetPlayer, adv);
oldInetPlayer = inetPlayer;
}
shieldPlayer = WonderOwner(WonderDB(WONDER_NATIONAL_SHIELD));
adv = AdvanceDB(ADVANCE_BUGFIX_C);
if(shieldPlayer == -1 && oldShieldPlayer != -2){
// see if wonder has been destroyed, then clean up
RemoveAdvance(oldShieldPlayer, AdvanceDB(ADVANCE_BUGFIX_C));
oldShieldPlayer = -2;
}
if(shieldPlayer != -1 && shieldPlayer != oldShieldPlayer) {
// see if a new player has the wonder, then sell buildings, then remove building from lists and clean up
C = 0;
for( i = 0 ; i < Cities(shieldPlayer); i = i + 1 ){
GetCityByIndex(shieldPlayer, i, tmpCity);
if(CityHasBuilding(tmpCity, "IMPROVE_FORCEFIELD")){
C = C + 5000;
}
}
AddGold(shieldPlayer, C);
if(oldHagnPlayer != -2){
RemoveAdvance(oldShieldPlayer, adv);
}
GrantAdvance(shieldPlayer, adv);
oldShieldPlayer = shieldPlayer;
}
compPlayer = WonderOwner(WonderDB(WONDER_CENTRAL_MATTER_DECOMPILER));
adv = AdvanceDB(ADVANCE_BUGFIX_D);
if(compPlayer == -1 && oldCompPlayer != -2){
// see if wonder has been destroyed, then clean up
RemoveAdvance(oldCompPlayer, AdvanceDB(ADVANCE_BUGFIX_D));
oldCompPlayer = -2;
}
if(compPlayer != -1 && compPlayer != oldCompPlayer) {
// see if a new player has the wonder, then sell buildings, then remove building from lists and clean up
D = 0;
for( i = 0 ; i < Cities(compPlayer); i = i + 1 ){
GetCityByIndex(compPlayer, i, tmpCity);
if(CityHasBuilding(tmpCity, "IMPROVE_MATTER_DECOMPILER")){
D = D + 2250;
}
}
AddGold(compPlayer, D);
if(oldHagnPlayer != -2){
RemoveAdvance(oldHagnPlayer, adv);
}
GrantAdvance(compPlayer, adv);
oldCompPlayer = compPlayer;
}
hagnPlayer = WonderOwner(WonderDB(WONDER_HAGIA_SOPHIA));
adv = AdvanceDB(ADVANCE_BUGFIX_E);
if(hagnPlayer == -1 && oldHagnPlayer != -2){
// see if wonder has been destroyed, then clean up
RemoveAdvance(oldHagnPlayer, AdvanceDB(ADVANCE_BUGFIX_E));
oldHagnPlayer = -2;
}
if(hagnPlayer != -1 && hagnPlayer != oldHagnPlayer) {
// see if a new player has the wonder, then sell buildings, then remove building from lists and clean up
E = 0;
for( i = 0 ; i < Cities(hagnPlayer); i = i + 1 ){
GetCityByIndex(hagnPlayer, i, tmpCity);
if(CityHasBuilding(tmpCity, "IMPROVE_SHRINE")){
E = E + 135;
}
}
AddGold(hagnPlayer, E);
if(oldHagnPlayer != -2){
RemoveAdvance(oldHagnPlayer, adv);
}
GrantAdvance(hagnPlayer, adv);
oldHagnPlayer = hagnPlayer;
}
}