コード例 #1
0
ファイル: get_dir.c プロジェクト: vanner-a/my_ls
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);
}
コード例 #2
0
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);
}
コード例 #3
0
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);
    };
};