X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=cdfac29bb3094b75b54c9c212dff24d8c2e4dff5;hb=095207353ef58a65f5146e6ddc7eefb51bfe0f55;hp=bbc20e0dfbf51dbd757cfb9bce1abf97c18d1d57;hpb=b399baa8e7bc4cc0cd593ff71f9da95291ba4ccd;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index bbc20e0d..cdfac29b 100644 --- a/src/init.c +++ b/src/init.c @@ -560,6 +560,11 @@ void InitElementGraphicInfo() } } +#if 1 + /* set hardcoded definitions for some runtime elements without graphic */ + element_info[EL_AMOEBA_TO_DIAMOND].graphic[ACTION_DEFAULT] = IMG_AMOEBA_DEAD; +#endif + #if 1 /* now set all undefined/invalid graphics to -1 to set to default after it */ for (i = 0; i < MAX_NUM_ELEMENTS; i++) @@ -646,6 +651,7 @@ void InitElementGraphicInfo() default_action_crumbled = element_info[EL_SB_DEFAULT].crumbled[act]; #if 1 + /* !!! needed because EL_EMPTY_SPACE treated as IS_SP_ELEMENT !!! */ /* !!! make this better !!! */ if (i == EL_EMPTY_SPACE) { @@ -3655,7 +3661,17 @@ void InitElementPropertiesEngine(int engine_version) static void InitGlobal() { + int i; + + for (i = 0; i < MAX_NUM_ELEMENTS + 1; i++) + { + element_info[i].token_name = element_name_info[i].token_name; + element_info[i].class_name = element_name_info[i].class_name; + element_info[i].editor_description=element_name_info[i].editor_description; + } + global.autoplay_leveldir = NULL; + global.convert_leveldir = NULL; global.frames_per_second = 0; global.fps_slowdown = FALSE; @@ -3791,6 +3807,20 @@ void Execute_Command(char *command) global.autoplay_level_nr = atoi(str_ptr); /* get level_nr value */ } } + else if (strncmp(command, "convert ", 8) == 0) + { + char *str_copy = getStringCopy(&command[8]); + char *str_ptr = strchr(str_copy, ' '); + + global.convert_leveldir = str_copy; + global.convert_level_nr = -1; + + if (str_ptr != NULL) + { + *str_ptr++ = '\0'; /* terminate leveldir string */ + global.convert_level_nr = atoi(str_ptr); /* get level_nr value */ + } + } else { Error(ERR_EXIT_HELP, "unrecognized command '%s'", command); @@ -4396,16 +4426,31 @@ void OpenAll() AutoPlayTape(); return; } + else if (global.convert_leveldir) + { + ConvertLevels(); + return; + } game_status = GAME_MODE_MAIN; DrawMainMenu(); InitNetworkServer(); + +#if 1 + em_open_all(); +#endif + } void CloseAllAndExit(int exit_value) { + +#if 1 + em_close_all(); +#endif + StopSounds(); FreeAllSounds(); FreeAllMusic();