Advertisement
atm959

Save and Load

Oct 11th, 2018
406
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. void loadGame(){
  2.     maple_device_t *dev;
  3.    
  4.     dev = maple_enum_dev(0, 1);
  5.    
  6.     if(dev == NULL){
  7.         //No VMU is plugged into slot A1
  8.         return;
  9.     }
  10.    
  11.     file_t    f;
  12.    
  13.     f = fs_open("/vmu/a1/SCS_SAVE", O_RDONLY);
  14.     if(f != (-1)){
  15.         printf("Opened file!\n");
  16.        
  17.         uint8 *pkg_in;
  18.         vmu_pkg_t pkg;
  19.        
  20.         pkg_in = (uint8*)malloc(fs_total(f));
  21.         fs_read(f, pkg_in, fs_total(f));
  22.        
  23.         vmu_pkg_parse(pkg_in, &pkg);
  24.        
  25.         free(pkg_in);
  26.        
  27.         coin.setCoinCount(pkg.data[0]);
  28.         character.setPosition(pkg.data[1], pkg.data[2]);
  29.     } else {
  30.         printf("Couldn't open file!\n");
  31.     }
  32.    
  33.     fs_close(f);
  34. }
  35.  
  36. void saveGame(){
  37.     maple_device_t *dev;
  38.    
  39.     dev = maple_enum_dev(0, 1);
  40.    
  41.     if(dev == NULL){
  42.         //No VMU is plugged into slot A1
  43.         return;
  44.     }
  45.    
  46.     vmu_pkg_t pkg;
  47.     uint8     data[3], *pkg_out;
  48.     int       pkg_size;
  49.     int       i;
  50.     file_t    f;
  51.    
  52.     strcpy(pkg.desc_short, "SCS Save Data");
  53.     strcpy(pkg.desc_long, "Save data for Super Coin Shooter");
  54.     strcpy(pkg.app_id, "SCS");
  55.     pkg.icon_cnt = 0;
  56.     pkg.icon_anim_speed = 0;
  57.     pkg.eyecatch_type = VMUPKG_EC_NONE;
  58.     pkg.data_len = 3;
  59.     pkg.data = data;
  60.    
  61.     data[0] = coin.getCoinCount();
  62.     data[1] = character.getX();
  63.     data[2] = character.getY();
  64.    
  65.     printf("Coin Count: %d\n", data[0]);
  66.     printf("Character X: %d\n", data[1]);
  67.     printf("Character Y: %d\n", data[2]);
  68.    
  69.     vmu_pkg_build(&pkg, &pkg_out, &pkg_size);
  70.    
  71.     fs_unlink("/vmu/a1/SCS_SAVE");
  72.     f = fs_open("/vmu/a1/SCS_SAVE", O_WRONLY);
  73.    
  74.     if(!f){
  75.         //The file failed to open, probably doesn't exist
  76.         return;
  77.     }
  78.    
  79.     fs_write(f, pkg_out, pkg_size);
  80.     fs_close(f);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement