t_dir *get_dir(char *path, t_option *option) { DIR *rep; FDIR *file; FSTAT sfile; t_dir *dir; char *tfile; rep = opendir(path); dir = 0; if (rep == 0) { display_error(path); return (0); } while ((file = readdir(rep)) != 0) { tfile = cat_path(path, file->d_name); if (option->opt[7] == 1) stat(tfile, &sfile); else lstat(tfile, &sfile); dir = push_dir(dir, file->d_name, sfile, tfile); free(tfile); } closedir(rep); return (dir); }
void control_led(char *color, int state) { char path[PATH_MAX]; int fd; cat_path(path, color); fd = open_file(path, O_WRONLY); if (state) { write_file(fd, "1"); } else { write_file(fd, "0"); } close(fd); }
void load_images() { char Ganondorfs_castle_path[FILE_PATH_SIZE]; //cat_path (Ganondorfs_castle_path, "Level Design\\Casa do Ganondorf\\", "Casa do Ganondorf.png"); cat_path (Ganondorfs_castle_path, CO, "Castle with organ and statues.png"); Ganondorfs_castle.LoadPNGImage(Ganondorfs_castle_path); Ganondorf.load (CO, "Ganondorf.png"); Ganondorf.select_frame (0, 2); Ganondorf.set_position ((SCREEN_WIDTH - Ganondorf.get_frame_w()) / 2 - 8, 345); portal.load (CO, "Portals.png"); medallion.load (CO, "Medallions.png"); easter_egg.load (CO, "Easter_Eggs.png"); forest_map.load(TR, "Floresta 1.png"); heart.load (CO, "Heart.png"); rupee.load (CO, "Rupee copy.png"); Epona.load (CO, "Epona.png"); Epona.set_position (360, 230); Epona.select_frame (1, 0); };
void MapParser::parse() { FILE * pFile; char line_buffer[100]; // 100: arbitrário char argument_buffer[9][20]; // 9: máximo de args + função; 20: arbitrário int size = 100; int arguments = 0; int current_argument = 0; char map_file_path[FILE_PATH_SIZE]; cat_path (map_file_path, SH, "Files\\MapFileBG.txt"); fopen_s (&pFile, map_file_path, "r"); if (pFile == NULL) printf("Error opening background map file\n"); else { keep_last_added_tile = false; while (fgets(line_buffer, size, pFile) != NULL) { int arg_i, line_i; for (arg_i = 0, line_i = 0; line_buffer[line_i] != '('; arg_i++, line_i++) { if (line_buffer[line_i] != ' ' && line_buffer[line_i] != '\t') argument_buffer[0][arg_i] = line_buffer[line_i]; else argument_buffer[0][arg_i] = '\0'; }; argument_buffer[0][arg_i] = '\0'; line_i++; if (strcmp(argument_buffer[0], "Select") == 0 || strcmp(argument_buffer[0], "Layer") == 0) arguments = 1; if (strcmp(argument_buffer[0], "Assign_file") == 0) arguments = 2; else if (strcmp(argument_buffer[0], "Tile") == 0 || strcmp(argument_buffer[0], "Stop") == 0) arguments = 4; else if (strcmp(argument_buffer[0], "Door") == 0 || strcmp(argument_buffer[0], "Button") == 0) arguments = 5; else if (strcmp(argument_buffer[0], "Rect") == 0 || strcmp(argument_buffer[0], "As_is") == 0 || strcmp(argument_buffer[0], "Stretch3") == 0 || strcmp(argument_buffer[0], "Stretch4") == 0) arguments = 6; else if (strcmp(argument_buffer[0], "Row") == 0 || strcmp(argument_buffer[0], "Col") == 0) arguments = 5; for (current_argument = 1; current_argument < 9; current_argument++) { for (int i = 0; i<20; i++) argument_buffer[current_argument][i] = '\0'; //Cleaning }; for (current_argument = 1; current_argument <= arguments; current_argument++) { for (arg_i = 0; line_buffer[line_i] != ',' && line_buffer[line_i] != ')'; line_i++) { if (line_buffer[line_i] != ' ') { argument_buffer[current_argument][arg_i] = line_buffer[line_i]; arg_i++; }; }; argument_buffer[current_argument][arg_i] = '\0'; line_i++; }; if (0) { printf("N = %d\n", arguments); for (int print_i = 0; print_i <= arguments; print_i++) printf("Arg %d = [%s]\n", print_i, argument_buffer[print_i]); printf("\n"); }; if (strcmp(argument_buffer[0], "Tile") == 0) Tile(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4])); else if (strcmp(argument_buffer[0], "Rect") == 0) Rect(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4]), p_atoi(argument_buffer[5]), p_atoi(argument_buffer[6])); else if (strcmp(argument_buffer[0], "Row") == 0) Row(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4]), p_atoi(argument_buffer[5])); else if (strcmp(argument_buffer[0], "Col") == 0) Col(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4]), p_atoi(argument_buffer[5])); else if (strcmp(argument_buffer[0], "As_is") == 0) As_is(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4]), p_atoi(argument_buffer[5]), p_atoi(argument_buffer[6])); else if (strcmp(argument_buffer[0], "Stretch3") == 0) Stretch3(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4]), p_atoi(argument_buffer[5]), p_atoi(argument_buffer[6])); else if (strcmp(argument_buffer[0], "Stretch4") == 0) Stretch4(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4]), p_atoi(argument_buffer[5]), p_atoi(argument_buffer[6])); else if (strcmp(argument_buffer[0], "Assign_file") == 0) Assign_file(p_atoi(argument_buffer[1]), argument_buffer[2]); else if (strcmp(argument_buffer[0], "Select") == 0) set_working_map (p_atoi(argument_buffer[1])); else if (strcmp(argument_buffer[0], "Stop") == 0) Stop(p_atoi(argument_buffer[1]), p_atoi(argument_buffer[2]), p_atoi(argument_buffer[3]), p_atoi(argument_buffer[4])); else if (strcmp(argument_buffer[0], "Layer") == 0) Layer (p_atoi(argument_buffer[1])); else if (strcmp(argument_buffer[0], "Door") == 0) { door_state s_buffer; direction d_buffer; if (strcmp(argument_buffer[1], "open") == 0) s_buffer = open; else if (strcmp(argument_buffer[1], "locked") == 0) s_buffer = locked; else if (strcmp(argument_buffer[1], "barred") == 0) s_buffer = barred; if (strcmp(argument_buffer[2], "up") == 0) d_buffer = up; else if (strcmp(argument_buffer[2], "left") == 0) d_buffer = left; else if (strcmp(argument_buffer[2], "down") == 0) d_buffer = down; else if (strcmp(argument_buffer[2], "right") == 0) d_buffer = right; PutDoor (s_buffer, d_buffer, atoi(argument_buffer[3]), atoi(argument_buffer[4]), atoi(argument_buffer[5])); } else if (strcmp(argument_buffer[0], "Button") == 0) { button_type t_buffer; if (strcmp(argument_buffer[1], "toggle") == 0) t_buffer = toggle; else if (strcmp(argument_buffer[1], "hold") == 0) t_buffer = hold; PutButton (t_buffer, atoi(argument_buffer[2]), atoi(argument_buffer[3]), atoi(argument_buffer[4])); }; }; for (int i = 0; i<size; i++) line_buffer[i] = 0; fclose (pFile); }; };