GMS 2 Loading Grid From Json Not Working Properly?

Discussion in 'Programming' started by Divinik, Jan 14, 2020 at 8:42 PM.

  1. Divinik

    Divinik Member

    Joined:
    Sep 25, 2017
    Posts:
    38
    So in the game I'm currently working on, every companion and their info is stored in a ds_grid (Companions_Grid), and within each companion's column is another inventory grid stored for the companion.

    The code for storing the inventory grids into the json seems to be working perfectly, I check the json files each time I run the game and all grids are there with their unique identifiers.

    Here is the code for writing the inventory grid data into the ds_map for the json file:

    (The ds_list named com_invData is used to find all companion inventories and read them into a ds_map. Companions_Grid[# 7, i] is the grid_position of the companion inventory.)

    Code:
    ///In the save_instances() script
    
    ds_list_clear(com_invData);
        
    for (var i = 0; i < ds_grid_height(Companions_Grid); i++)
       {
        ds_list_add(com_invData, ds_grid_write(Companions_Grid[# 7, i]));
        var my_key = "com_inv"+string_hash_to_newline(i)+string_hash_to_newline(Companions_Grid[# 0, i]);
        ds_map_add(wrapper_map, my_key, ds_list_find_value(com_invData, i));
       }
    

    When the load_instances() script is called, this section handles loading the companion inventories:

    Code:
    for (var i = 0; i < ds_grid_height(Companions_Grid); i++)
      {
       var my_key = "com_inv"+string_hash_to_newline(i)+string_hash_to_newline(Companions_Grid[# 0, i]);
     
       ds_string = wrapped_map[?my_key];
     
       if ds_string != undefined
         {
          var inv_toChange = Companions_Grid[# 7, i];
      
          ds_grid_clear(inv_toChange, undefined);
          ds_grid_resize(inv_toChange, 0, 0);
          ds_grid_read(inv_toChange, ds_string);
         }
      }
    


    So if I execute the loading script while in the game or when I first start the game, it works without a hitch. But if I restart the game, the first companion on the grid's inventory will look like this:

    upload_2020-1-14_13-41-12.png

    Anyone have any idea why this is happening? Any help would be appreciated!
     
    Last edited: Jan 14, 2020 at 8:49 PM
  2. SeraphSword

    SeraphSword Member

    Joined:
    Aug 16, 2016
    Posts:
    38
    Are the numbers in red what the value should be? Or is that just the grid cell?
     
  3. Divinik

    Divinik Member

    Joined:
    Sep 25, 2017
    Posts:
    38
    The red numbers just indicate the column. so 0 would be the very first column of the grid and so on. What is supposed to be displayed is a weapon icon, name and amount.
     
  4. SeraphSword

    SeraphSword Member

    Joined:
    Aug 16, 2016
    Posts:
    38
    Your code shows a "wrapper_map" in the save script and a "wrapped_map" in the load script, are those different things?
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice