char *levenshtein(char *str, UNUSED char **env) { char **dic; char **command; int i; int pos; i = 0; pos = 0; command = cut_command(str); if ((dic = gen_data(save_my_env(NULL))) == NULL) return (str); while (command && command[i] != NULL) { if (i == 0 || is_separator_ext(command[i - 1][0]) == 0) { if (check_command(command[i], save_my_env(NULL)) == -1) { pos = where_is_space(command[i]); command[i] = change_command(command[i], leven(dic, po_s(command[i], pos))); } } i++; } free_array_char(dic); return (tab_string(command)); }
void cmd_move_image(struct Game* game, char* arg) { int id, x, y; char* cur = cut_command(arg); id = eval(game->vars, arg); arg = cut_command(cur); y = eval(game->vars, arg); x = eval(game->vars, cur); if(image_id_in_range(id)) { game->display->images[id].x = x; game->display->images[id].y = y; if(*game->verbose) printf("image %s%d%s -> %s%d%s;%s%d%s", TGREEN, id, TDEF, TMAGENTA, x, TDEF, TMAGENTA, y, TDEF); } }
void cmd_set(struct Game* game, char* arg) { char* valuestr = cut_command(arg); int value = eval(game->vars, valuestr); if(*game->verbose) printf("%s%s%s = %s%d%s", TGREEN, arg, TDEF, TMAGENTA, value, TDEF); set_var(game->vars, arg, value); }
void cmd_play_sound_loop(struct Game* game, char* arg) { char* filename = cut_command(arg); int id = eval(game->vars, arg); path_compatibilize(filename); if(sound_id_in_range(id)) { if(game->display->sounds[id]) freestop_sound(game->display->sounds[id]); if(!(game->display->sounds[id] = loadplay_sound(filename, 1))) sprintf(error, "cannot load sound %d \"%s\"", id, filename); } }
void cmd_load_image(struct Game* game, char* arg) { char* filename = cut_command(arg); int id = eval(game->vars, arg); path_compatibilize(filename); if(image_id_in_range(id)) { if(game->display->images[id].bitmap) { al_destroy_bitmap(game->display->images[id].bitmap); game->display->images[id].bitmap = NULL; } if(!load_image(game->display->images + id, filename)) sprintf(error, "cannot load image %d \"%s\"", id, filename); } }
void cmd_choice(struct Game* game, char* s) { char* text = cut_command(s); add_line(game->display->messagebox, text, s); }