static boolean PlayScoreTape_WaitForDownload(void)
{
- unsigned int download_delay = 0;
- unsigned int download_delay_value = 10000;
+ DelayCounter download_delay = { 10000 };
ResetDelayCounter(&download_delay);
// wait for score tape to be successfully downloaded (and fail on timeout)
while (!server_scores.tape_downloaded)
{
- if (DelayReached(&download_delay, download_delay_value))
+ if (DelayReached(&download_delay))
return FALSE;
UPDATE_BUSY_STATE_NOT_LOADING();
boolean PlayScoreTape(int entry_nr)
{
struct ScoreEntry *entry = &scores.entry[entry_nr];
- char *tape_filename = getScoreTapeFilename(entry->tape_basename, level_nr);
+ char *tape_filename =
+ (entry->id == -1 ?
+ getScoreTapeFilename(entry->tape_basename, level_nr) :
+ getScoreCacheTapeFilename(entry->tape_basename, level_nr));
boolean download_tape = (!fileExists(tape_filename));
- if (entry->id == -1)
+ if (download_tape && entry->id == -1)
+ {
+ FadeSkipNextFadeIn();
+
+ Request("Cannot find score tape!", REQ_CONFIRM);
+
return FALSE;
+ }
server_scores.tape_downloaded = FALSE;
// if tape recorder already contains a tape, remove it without asking
TapeErase();
- LoadScoreTape(entry->tape_basename, level_nr);
+ if (entry->id == -1)
+ LoadScoreTape(entry->tape_basename, level_nr);
+ else
+ LoadScoreCacheTape(entry->tape_basename, level_nr);
if (TAPE_IS_EMPTY(tape))
{
static boolean AutoPlayTapes_WaitForUpload(void)
{
- unsigned int upload_delay = 0;
- unsigned int upload_delay_value = 10000;
+ DelayCounter upload_delay = { 10000 };
ResetDelayCounter(&upload_delay);
// wait for score tape to be successfully uploaded (and fail on timeout)
while (!server_scores.uploaded)
{
- if (DelayReached(&upload_delay, upload_delay_value))
+ if (DelayReached(&upload_delay))
{
PrintNoLog("\r");
Print("- uploading score tape to score server - TIMEOUT.\n");