X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=8233ac5141d754d86f69495d33444cac798ee880;hb=4bb90da7a98b741b4576099be6b89d324c8a80de;hp=086531614eaa54fb229bc3558ce92fe7ca7befa0;hpb=b645a25fff77d62a36c744fa4047a3c0e5929341;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 08653161..8233ac51 100644 --- a/src/files.c +++ b/src/files.c @@ -2762,23 +2762,6 @@ void LoadSpecialMenuDesignSettings() freeSetupFileHash(setup_file_hash); } -static char *itoa(unsigned int i) -{ - static char *a = NULL; - - if (a != NULL) - free(a); - - if (i > 2147483647) /* yes, this is a kludge */ - i = 2147483647; - - a = checked_malloc(10 + 1); - - sprintf(a, "%d", i); - - return a; -} - void LoadUserDefinedEditorElementList(int **elements, int *num_elements) { char *filename = getEditorSetupFilename(); @@ -2793,7 +2776,7 @@ void LoadUserDefinedEditorElementList(int **elements, int *num_elements) element_hash = newSetupFileHash(); for (i = 0; i < NUM_FILE_ELEMENTS; i++) - setHashEntry(element_hash, element_info[i].token_name, itoa(i)); + setHashEntry(element_hash, element_info[i].token_name, i_to_a(i)); /* determined size may be larger than needed (due to unknown elements) */ *num_elements = 0; @@ -3066,8 +3049,6 @@ void print_unknown_token_end(int token_nr) Error(ERR_RETURN_LINE, "-"); } -#if 1 - void LoadHelpAnimInfo() { char *filename = getHelpAnimFilename(); @@ -3100,16 +3081,16 @@ void LoadHelpAnimInfo() direction_hash = newSetupFileHash(); for (i = 0; i < MAX_NUM_ELEMENTS; i++) - setHashEntry(element_hash, element_info[i].token_name, itoa(i)); + setHashEntry(element_hash, element_info[i].token_name, i_to_a(i)); for (i = 0; i < NUM_ACTIONS; i++) setHashEntry(action_hash, element_action_info[i].suffix, - itoa(element_action_info[i].value)); + i_to_a(element_action_info[i].value)); /* do not store direction index (bit) here, but direction value! */ for (i = 0; i < NUM_DIRECTIONS; i++) setHashEntry(direction_hash, element_direction_info[i].suffix, - itoa(1 << element_direction_info[i].value)); + i_to_a(1 << element_direction_info[i].value)); for (list = setup_file_list; list != NULL; list = list->next) { @@ -3259,7 +3240,8 @@ void LoadHelpAnimInfo() print_unknown_token_end(num_unknown_tokens); - add_helpanim_entry(HELPANIM_LIST_END, -1, -1, -1, &num_list_entries); + add_helpanim_entry(HELPANIM_LIST_NEXT, -1, -1, -1, &num_list_entries); + add_helpanim_entry(HELPANIM_LIST_END, -1, -1, -1, &num_list_entries); freeSetupFileList(setup_file_list); freeSetupFileHash(element_hash); @@ -3277,188 +3259,6 @@ void LoadHelpAnimInfo() #endif } -#else - -void LoadHelpAnimInfo() -{ - char *filename = getHelpAnimFilename(); - SetupFileList *setup_file_list = NULL, *list; - SetupFileHash *element_hash, *action_hash, *direction_hash; - int num_list_entries = 0; - int num_unknown_tokens = 0; - int i; - - if (fileExists(filename)) - setup_file_list = loadSetupFileList(filename); - - if (setup_file_list == NULL) - { - /* use reliable default values from static configuration */ - SetupFileList *insert_ptr; - - insert_ptr = setup_file_list = - newSetupFileList(helpanim_config[0].token, - helpanim_config[0].value); - - for (i = 1; helpanim_config[i].token; i++) - insert_ptr = addListEntry(insert_ptr, - helpanim_config[i].token, - helpanim_config[i].value); - } - - element_hash = newSetupFileHash(); - action_hash = newSetupFileHash(); - direction_hash = newSetupFileHash(); - - for (i = 0; i < MAX_NUM_ELEMENTS; i++) - setHashEntry(element_hash, element_info[i].token_name, itoa(i)); - - for (i = 0; i < NUM_ACTIONS; i++) - setHashEntry(action_hash, element_action_info[i].suffix, - itoa(element_action_info[i].value)); - - /* do not store direction index (bit) here, but direction value! */ - for (i = 0; i < NUM_DIRECTIONS; i++) - setHashEntry(direction_hash, element_direction_info[i].suffix, - itoa(1 << element_direction_info[i].value)); - - for (list = setup_file_list; list != NULL; list = list->next) - { - char *element_token, *action_token, *direction_token; - char *element_value, *action_value, *direction_value; - int delay = atoi(list->value); - - if (strcmp(list->token, "end") == 0) - { - add_helpanim_entry(HELPANIM_LIST_NEXT, -1, -1, -1, &num_list_entries); - - continue; - } - - element_token = list->token; - element_value = getHashEntry(element_hash, element_token); - - if (element_value != NULL) - { - /* element found */ - add_helpanim_entry(atoi(element_value), -1, -1, delay,&num_list_entries); - - continue; - } - - if (strchr(element_token, '.') == NULL) - { - /* no further suffixes found -- this is not an element */ - print_unknown_token(filename, list->token, num_unknown_tokens++); - - continue; - } - - action_token = strchr(element_token, '.'); - element_token = getStringCopy(element_token); - *strchr(element_token, '.') = '\0'; - - element_value = getHashEntry(element_hash, element_token); - - if (element_value == NULL) - { - /* this is not an element */ - print_unknown_token(filename, list->token, num_unknown_tokens++); - free(element_token); - - continue; - } - - action_value = getHashEntry(action_hash, action_token); - - if (action_value != NULL) - { - /* action found */ - add_helpanim_entry(atoi(element_value), atoi(action_value), -1, delay, - &num_list_entries); - free(element_token); - - continue; - } - - direction_token = action_token; - direction_value = getHashEntry(direction_hash, direction_token); - - if (direction_value != NULL) - { - /* direction found */ - add_helpanim_entry(atoi(element_value), -1, atoi(direction_value), delay, - &num_list_entries); - free(element_token); - - continue; - } - - if (strchr(action_token + 1, '.') == NULL) - { - /* no further suffixes found -- this is not an action or direction */ - print_unknown_token(filename, list->token, num_unknown_tokens++); - free(element_token); - - continue; - } - - direction_token = strchr(action_token + 1, '.'); - action_token = getStringCopy(action_token); - *strchr(action_token + 1, '.') = '\0'; - - action_value = getHashEntry(action_hash, action_token); - - if (action_value == NULL) - { - /* this is not an action */ - print_unknown_token(filename, list->token, num_unknown_tokens++); - free(element_token); - free(action_token); - - continue; - } - - direction_value = getHashEntry(direction_hash, direction_token); - - if (direction_value != NULL) - { - /* direction found */ - add_helpanim_entry(atoi(element_value), atoi(action_value), - atoi(direction_value), delay, &num_list_entries); - free(element_token); - free(action_token); - - continue; - } - - print_unknown_token(filename, list->token, num_unknown_tokens++); - - free(element_token); - free(action_token); - } - - print_unknown_token_end(num_unknown_tokens); - - add_helpanim_entry(HELPANIM_LIST_END, -1, -1, -1, &num_list_entries); - - freeSetupFileList(setup_file_list); - freeSetupFileHash(element_hash); - freeSetupFileHash(action_hash); - freeSetupFileHash(direction_hash); - -#if 0 - /* TEST ONLY */ - for (i = 0; i < num_list_entries; i++) - printf("::: %d, %d, %d => %d\n", - helpanim_info[i].element, - helpanim_info[i].action, - helpanim_info[i].direction, - helpanim_info[i].delay); -#endif -} -#endif - void LoadHelpTextInfo() { char *filename = getHelpTextFilename();