| 11148 | } |
| 11149 | |
| 11150 | int loadMainMenuMap(bool blessedAdditionMaps, bool forceVictoryMap, int forcemap) |
| 11151 | { |
| 11152 | bool foundVictory = false; |
| 11153 | for ( node_t* node = topscores_json.first; node != nullptr && !foundVictory; node = node->next ) |
| 11154 | { |
| 11155 | score_t* score = (score_t*)node->element; |
| 11156 | if ( score && (score->victory == 3 || score->victory == 4 || score->victory == 5) ) |
| 11157 | { |
| 11158 | foundVictory = true; |
| 11159 | } |
| 11160 | } |
| 11161 | for ( node_t* node = topscoresMultiplayer_json.first; node != nullptr && !foundVictory; node = node->next ) |
| 11162 | { |
| 11163 | score_t* score = (score_t*)node->element; |
| 11164 | if ( score && (score->victory == 3 || score->victory == 4 || score->victory == 5) ) |
| 11165 | { |
| 11166 | foundVictory = true; |
| 11167 | } |
| 11168 | } |
| 11169 | |
| 11170 | std::string fullMapName; |
| 11171 | |
| 11172 | int selection = forcemap; |
| 11173 | if (selection <= 0) { |
| 11174 | if ( forceVictoryMap || (foundVictory && local_rng.rand() % 5 == 0) ) |
| 11175 | { |
| 11176 | selection = 9; |
| 11177 | } |
| 11178 | else if ( blessedAdditionMaps ) |
| 11179 | { |
| 11180 | selection = 5 + local_rng.rand() % 4; |
| 11181 | } |
| 11182 | else |
| 11183 | { |
| 11184 | selection = 1 + local_rng.rand() % 4; |
| 11185 | } |
| 11186 | } |
| 11187 | |
| 11188 | switch ( selection ) |
| 11189 | { |
| 11190 | case 1: |
| 11191 | fullMapName = physfsFormatMapName("mainmenu1"); |
| 11192 | loadMap(fullMapName.c_str(), &map, map.entities, map.creatures); |
| 11193 | menucam.x = 8; |
| 11194 | menucam.y = 4.5; |
| 11195 | menucam.z = 0; |
| 11196 | menucam.ang = 0.6; |
| 11197 | return 0; |
| 11198 | case 2: |
| 11199 | fullMapName = physfsFormatMapName("mainmenu2"); |
| 11200 | loadMap(fullMapName.c_str(), &map, map.entities, map.creatures); |
| 11201 | menucam.x = 7; |
| 11202 | menucam.y = 4; |
| 11203 | menucam.z = -4; |
| 11204 | menucam.ang = 1.0; |
| 11205 | return 0; |
| 11206 | case 3: |
| 11207 | fullMapName = physfsFormatMapName("mainmenu3"); |
no test coverage detected