Code
2099void resetSlots()2100{2101 //setNumMinorCivs( CvPreGame::worldInfo().getDefaultMinorCivs() );2102 // adjust player slots2103 int suggestedPlayerCount = CvPreGame::worldInfo().getDefaultPlayers();2104 int slotsAssigned = 0;2105 int i = 0;2106 for(i = 0; i < MAX_CIV_PLAYERS; ++i)2107 {2108 PlayerTypes p = static_cast<PlayerTypes>(i);2109 if(!isNetworkMultiplayerGame())2110 {2111 if(slotsAssigned < suggestedPlayerCount)2112 {2113 // don't reset slots taken by human players2114 SlotStatus s = slotStatus(p);2115 if(s != SS_TAKEN)2116 {2117 // the player may have already assigned2118 // a civ for this computer slot, don't2119 // overwrite those settings.2120 if(s != SS_COMPUTER)2121 {2122 setSlotStatus(p, SS_COMPUTER);2123 setSlotClaim(p, SLOTCLAIM_ASSIGNED);2124 setCivilization(p, NO_CIVILIZATION); // defaults to random civ2125 }2126 }21272128 //S.S: In single player games, slot 1 *should* be marked as taken but it currently is not.2129 if(slotStatus(p) == SS_COMPUTER && i != 0)2130 setHandicap(p, (HandicapTypes)GC.getAI_HANDICAP());2131 else2132 {2133 if(isHotSeatGame())2134 setHandicap(p, (HandicapTypes)GC.getMULTIPLAYER_HANDICAP());2135 else2136 {2137 //S.S: Commenting this out to prevent handicap from getting reset everytime the map size changes.2138 //setHandicap(p, (HandicapTypes)GC.getSTANDARD_HANDICAP());2139 }2140 }2141 ++slotsAssigned;2142 }2143 else2144 {2145 resetPlayer(p);2146 // setup an observer slot2147 if(p >= suggestedPlayerCount && p < MAX_MAJOR_CIVS)2148 setSlotStatus(p, SS_OBSERVER);2149 }2150 }2151 else2152 {2153 // don't reset slots taken by human players, even if we exceed the suggested slots2154 SlotStatus s = slotStatus(p);2155 if(s != SS_TAKEN && slotsAssigned >= suggestedPlayerCount)2156 {2157 resetPlayer(p);2158 // setup an observer slot2159 if(p >= suggestedPlayerCount && p < MAX_MAJOR_CIVS)2160 setSlotStatus(p, SS_OBSERVER);2161 }2162 else2163 {2164 if(s != SS_TAKEN)2165 {2166 if(slotsAssigned < suggestedPlayerCount)2167 {2168 // the player may have already assigned2169 // a civ for this computer slot, don't2170 // overwrite those settings.2171 setSlotStatus(p, SS_OPEN);2172 setSlotClaim(p, SLOTCLAIM_ASSIGNED);2173 setCivilization(p, NO_CIVILIZATION); // defaults to random civ2174 }2175 }2176 if(slotStatus(p) == SS_COMPUTER)2177 setHandicap(p, (HandicapTypes)GC.getAI_HANDICAP());2178 else2179 setHandicap(p, (HandicapTypes)GC.getMULTIPLAYER_HANDICAP());21802181 ++slotsAssigned;2182 }2183 }2184 }2185}