projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added checking for missing INFO chunk when loading tape by filename only
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index 20f5102594962e230d669b28ed2e551e99f9153b..61ea14cb7e7cdf1a76cce5382ce68d12af89a12c 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-7763,6
+7763,7
@@
static void setTapeInfoToDefaults(void)
tape.scr_fieldx = SCR_FIELDX_DEFAULT;
tape.scr_fieldy = SCR_FIELDY_DEFAULT;
tape.scr_fieldx = SCR_FIELDX_DEFAULT;
tape.scr_fieldy = SCR_FIELDY_DEFAULT;
+ tape.no_info_chunk = TRUE;
tape.no_valid_file = FALSE;
}
tape.no_valid_file = FALSE;
}
@@
-7867,6
+7868,8
@@
static int LoadTape_INFO(File *file, int chunk_size, struct TapeInfo *tape)
int level_identifier_size;
int i;
int level_identifier_size;
int i;
+ tape->no_info_chunk = FALSE;
+
level_identifier_size = getFile16BitBE(file);
level_identifier = checked_malloc(level_identifier_size);
level_identifier_size = getFile16BitBE(file);
level_identifier = checked_malloc(level_identifier_size);
@@
-9245,7
+9248,7
@@
static void LoadServerScoreFromCache(int nr)
void LoadServerScore(int nr, boolean download_score)
{
void LoadServerScore(int nr, boolean download_score)
{
- if (!setup.api_server)
+ if (!setup.
use_
api_server)
return;
// always start with reliable default values
return;
// always start with reliable default values
@@
-9255,7
+9258,7
@@
void LoadServerScore(int nr, boolean download_score)
// (this should prevent reading it while the thread is writing to it)
LoadServerScoreFromCache(nr);
// (this should prevent reading it while the thread is writing to it)
LoadServerScoreFromCache(nr);
- if (download_score && runtime.api_server)
+ if (download_score && runtime.
use_
api_server)
{
// 2nd step: download server scores from score server to cache file
// (as thread, as it might time out if the server is not reachable)
{
// 2nd step: download server scores from score server to cache file
// (as thread, as it might time out if the server is not reachable)
@@
-9358,6
+9361,7
@@
static void UploadScoreToServerExt(struct HttpRequest *request,
"{\n"
"%s"
" \"game_version\": \"%s\",\n"
"{\n"
"%s"
" \"game_version\": \"%s\",\n"
+ " \"batch_time\": \"%d\",\n"
" \"levelset_identifier\": \"%s\",\n"
" \"levelset_name\": \"%s\",\n"
" \"levelset_author\": \"%s\",\n"
" \"levelset_identifier\": \"%s\",\n"
" \"levelset_name\": \"%s\",\n"
" \"levelset_author\": \"%s\",\n"
@@
-9376,6
+9380,7
@@
static void UploadScoreToServerExt(struct HttpRequest *request,
"}\n",
getPasswordJSON(setup.api_server_password),
getProgramRealVersionString(),
"}\n",
getPasswordJSON(setup.api_server_password),
getProgramRealVersionString(),
+ (int)global.autoplay_time,
levelset_identifier,
levelset_name,
levelset_author,
levelset_identifier,
levelset_name,
levelset_author,
@@
-9477,7
+9482,7
@@
static void UploadScoreToServerAsThread(int nr, char *score_tape_filename)
void SaveServerScore(int nr)
{
void SaveServerScore(int nr)
{
- if (!runtime.api_server)
+ if (!runtime.
use_
api_server)
return;
UploadScoreToServerAsThread(nr, NULL);
return;
UploadScoreToServerAsThread(nr, NULL);
@@
-9485,7
+9490,7
@@
void SaveServerScore(int nr)
void SaveServerScoreFromFile(int nr, char *score_tape_filename)
{
void SaveServerScoreFromFile(int nr, char *score_tape_filename)
{
- if (!runtime.api_server)
+ if (!runtime.
use_
api_server)
return;
UploadScoreToServerAsThread(nr, score_tape_filename);
return;
UploadScoreToServerAsThread(nr, score_tape_filename);
@@
-9500,7
+9505,7
@@
void LoadLocalAndServerScore(int nr, boolean download_score)
// restore last added local score entry (before merging server scores)
scores.last_added = scores.last_added_local = last_added_local;
// restore last added local score entry (before merging server scores)
scores.last_added = scores.last_added_local = last_added_local;
- if (setup.api_server && !setup.only_show_local_scores)
+ if (setup.
use_
api_server && !setup.only_show_local_scores)
{
// load server scores from cache file and trigger update from server
LoadServerScore(nr, download_score);
{
// load server scores from cache file and trigger update from server
LoadServerScore(nr, download_score);
@@
-9758,19
+9763,23
@@
static struct TokenInfo global_setup_tokens[] =
},
{
TYPE_SWITCH,
},
{
TYPE_SWITCH,
- &setup.
api_server, "
api_server"
+ &setup.
use_api_server, TEST_PREFIX "use_
api_server"
},
{
TYPE_STRING,
},
{
TYPE_STRING,
- &setup.api_server_hostname,
"api_server_hostname"
+ &setup.api_server_hostname,
TEST_PREFIX
"api_server_hostname"
},
{
TYPE_STRING,
},
{
TYPE_STRING,
- &setup.api_server_password, "api_server_password"
+ &setup.api_server_password, TEST_PREFIX "api_server_password"
+ },
+ {
+ TYPE_SWITCH,
+ &setup.ask_for_uploading_tapes, TEST_PREFIX "ask_for_uploading_tapes"
},
{
TYPE_SWITCH,
},
{
TYPE_SWITCH,
- &setup.
ask_for_uploading_tapes, "ask_for
_uploading_tapes"
+ &setup.
provide_uploading_tapes, TEST_PREFIX "provide
_uploading_tapes"
},
{
TYPE_STRING,
},
{
TYPE_STRING,
@@
-10408,10
+10417,11
@@
static void setSetupInfoToDefaults(struct SetupInfo *si)
si->network_player_nr = 0; // first player
si->network_server_hostname = getStringCopy(STR_NETWORK_AUTO_DETECT);
si->network_player_nr = 0; // first player
si->network_server_hostname = getStringCopy(STR_NETWORK_AUTO_DETECT);
- si->api_server = TRUE;
+ si->
use_
api_server = TRUE;
si->api_server_hostname = getStringCopy(API_SERVER_HOSTNAME);
si->api_server_password = getStringCopy(UNDEFINED_PASSWORD);
si->ask_for_uploading_tapes = TRUE;
si->api_server_hostname = getStringCopy(API_SERVER_HOSTNAME);
si->api_server_password = getStringCopy(UNDEFINED_PASSWORD);
si->ask_for_uploading_tapes = TRUE;
+ si->provide_uploading_tapes = TRUE;
si->touch.control_type = getStringCopy(TOUCH_CONTROL_DEFAULT);
si->touch.move_distance = TOUCH_MOVE_DISTANCE_DEFAULT; // percent
si->touch.control_type = getStringCopy(TOUCH_CONTROL_DEFAULT);
si->touch.move_distance = TOUCH_MOVE_DISTANCE_DEFAULT; // percent
@@
-11036,7
+11046,7
@@
void SaveSetup(void)
global_setup_tokens[i].value == &setup.graphics_set ||
global_setup_tokens[i].value == &setup.volume_simple ||
global_setup_tokens[i].value == &setup.network_mode ||
global_setup_tokens[i].value == &setup.graphics_set ||
global_setup_tokens[i].value == &setup.volume_simple ||
global_setup_tokens[i].value == &setup.network_mode ||
- global_setup_tokens[i].value == &setup.
api_server
||
+ global_setup_tokens[i].value == &setup.
use_api_server
||
global_setup_tokens[i].value == &setup.touch.control_type ||
global_setup_tokens[i].value == &setup.touch.grid_xsize[0] ||
global_setup_tokens[i].value == &setup.touch.grid_xsize[1])
global_setup_tokens[i].value == &setup.touch.control_type ||
global_setup_tokens[i].value == &setup.touch.grid_xsize[0] ||
global_setup_tokens[i].value == &setup.touch.grid_xsize[1])