X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=e1cc87babd4f9854420f8a66daf3fae1b85f333e;hb=c6a3052208767e8feadd0d712b1354f29547db07;hp=a2f7cf69faf45be632ac96a07d0e6b4c20832ca9;hpb=3a503b2292cd93a5c67cda25e8912391eb12273b;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index a2f7cf69..e1cc87ba 100644 --- a/src/files.c +++ b/src/files.c @@ -3019,16 +3019,16 @@ void LoadMusicInfo() #endif } -void add_info_animation(int element, int action, int direction, int delay, +void add_helpanim_entry(int element, int action, int direction, int delay, int *num_list_entries) { - struct InfoAnimationInfo *new_list_entry; + struct HelpAnimInfo *new_list_entry; (*num_list_entries)++; - info_animation_info = - checked_realloc(info_animation_info, - *num_list_entries * sizeof(struct InfoAnimationInfo)); - new_list_entry = &info_animation_info[*num_list_entries - 1]; + helpanim_info = + checked_realloc(helpanim_info, + *num_list_entries * sizeof(struct HelpAnimInfo)); + new_list_entry = &helpanim_info[*num_list_entries - 1]; new_list_entry->element = element; new_list_entry->action = action; @@ -3054,9 +3054,9 @@ void print_unknown_token_end(int token_nr) Error(ERR_RETURN_LINE, "-"); } -void LoadInfoAnimations() +void LoadHelpAnimInfo() { - char *filename = getElementInfoFilename(); + char *filename = getHelpAnimFilename(); SetupFileList *setup_file_list, *list; SetupFileHash *element_hash, *action_hash, *direction_hash; int num_list_entries = 0; @@ -3069,13 +3069,13 @@ void LoadInfoAnimations() SetupFileList *insert_ptr; insert_ptr = setup_file_list = - newSetupFileList(info_animation_config[0].token, - info_animation_config[0].value); + newSetupFileList(helpanim_config[0].token, + helpanim_config[0].value); - for (i=1; info_animation_config[i].token; i++) - insert_ptr = addListEntry(insert_ptr, - info_animation_config[i].token, - info_animation_config[i].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(); @@ -3102,7 +3102,7 @@ void LoadInfoAnimations() if (strcmp(list->token, "end") == 0) { - add_info_animation(-1, -1, -1, -1, &num_list_entries); + add_helpanim_entry(HELPANIM_LIST_NEXT, -1, -1, -1, &num_list_entries); continue; } @@ -3113,8 +3113,7 @@ void LoadInfoAnimations() if (element_value != NULL) { /* element found */ - add_info_animation(atoi(element_value), -1, -1, - delay, &num_list_entries); + add_helpanim_entry(atoi(element_value), -1, -1, delay,&num_list_entries); continue; } @@ -3147,8 +3146,8 @@ void LoadInfoAnimations() if (action_value != NULL) { /* action found */ - add_info_animation(atoi(element_value), atoi(action_value), -1, - delay, &num_list_entries); + add_helpanim_entry(atoi(element_value), atoi(action_value), -1, delay, + &num_list_entries); free(element_token); continue; @@ -3160,8 +3159,8 @@ void LoadInfoAnimations() if (direction_value != NULL) { /* direction found */ - add_info_animation(atoi(element_value), -1, atoi(direction_value), - delay, &num_list_entries); + add_helpanim_entry(atoi(element_value), -1, atoi(direction_value), delay, + &num_list_entries); free(element_token); continue; @@ -3197,9 +3196,8 @@ void LoadInfoAnimations() if (direction_value != NULL) { /* direction found */ - add_info_animation(atoi(element_value), atoi(action_value), - atoi(direction_value), - delay, &num_list_entries); + add_helpanim_entry(atoi(element_value), atoi(action_value), + atoi(direction_value), delay, &num_list_entries); free(element_token); free(action_token); @@ -3214,7 +3212,7 @@ void LoadInfoAnimations() print_unknown_token_end(num_unknown_tokens); - add_info_animation(-999, -999, -999, -999, &num_list_entries); + add_helpanim_entry(HELPANIM_LIST_END, -1, -1, -1, &num_list_entries); freeSetupFileList(setup_file_list); freeSetupFileHash(element_hash); @@ -3225,9 +3223,39 @@ void LoadInfoAnimations() /* TEST ONLY */ for (i=0; i < num_list_entries; i++) printf("::: %d, %d, %d => %d\n", - info_animation_info[i].element, - info_animation_info[i].action, - info_animation_info[i].direction, - info_animation_info[i].delay); + helpanim_info[i].element, + helpanim_info[i].action, + helpanim_info[i].direction, + helpanim_info[i].delay); +#endif +} + +void LoadHelpTextInfo() +{ + char *filename = getHelpTextFilename(); + int i; + + if (helptext_info != NULL) + freeSetupFileHash(helptext_info); + + if ((helptext_info = loadSetupFileHash(filename)) == NULL) + { + /* use reliable default values from static configuration */ + helptext_info = newSetupFileHash(); + + for (i=0; helptext_config[i].token; i++) + setHashEntry(helptext_info, + helptext_config[i].token, + helptext_config[i].value); + } + +#if 0 + /* TEST ONLY */ + BEGIN_HASH_ITERATION(helptext_info, itr) + { + printf("::: '%s' => '%s'\n", + HASH_ITERATION_TOKEN(itr), HASH_ITERATION_VALUE(itr)); + } + END_HASH_ITERATION(hash, itr) #endif }