scores.last_added = addScoreEntry(&scores, &new_entry, one_per_name);
- if (scores.last_added >= 0)
- {
- SaveScore(level_nr);
+ if (scores.last_added < 0)
+ return;
- // store last added local score entry (before merging server scores)
- scores.last_added_local = scores.last_added;
- }
+ SaveScore(level_nr);
- if (game.LevelSolved_SaveTape)
+ // store last added local score entry (before merging server scores)
+ scores.last_added_local = scores.last_added;
+
+ if (!game.LevelSolved_SaveTape)
+ return;
+
+ SaveScoreTape(level_nr);
+
+ if (setup.ask_for_using_api_server)
{
- SaveScoreTape(level_nr);
- SaveServerScore(level_nr, tape_saved);
+ setup.use_api_server =
+ Request("Upload your score and tape to the high score server?", REQ_ASK);
+
+ if (!setup.use_api_server)
+ Request("Not using high score server! Use setup menu to enable again!",
+ REQ_CONFIRM);
+
+ runtime.use_api_server = setup.use_api_server;
+
+ // after asking for using API server once, do not ask again
+ setup.ask_for_using_api_server = FALSE;
+
+ SaveSetup_ServerSetup();
}
+
+ SaveServerScore(level_nr, tape_saved);
}
void MergeServerScore(void)
Warn("element '%s' caused endless loop in game engine",
EL_NAME(recursion_loop_element));
- RequestQuitGameExt(FALSE, level_editor_test_game, message);
+ RequestQuitGameExt(program.headless, level_editor_test_game, message);
recursion_loop_detected = FALSE; // if game should be continued