collected items keep appearing in rooms after loading from save

Discussion in 'Legacy GameMaker Community Tech Support' started by retroactivegames, Oct 30, 2019.

  1. retroactivegames

    retroactivegames Member

    Joined:
    Apr 15, 2019
    Posts:
    7
    hey all!
    I've been working on a remake for Casper for the ps1, sega saturn, 3DO, etc. Im about 95% done. Im just hitting a snag with saving and loading from an INF file. All of my attributes and player position and current room I'm in saves. However, when I save the game and load from said save, I cant get the game to remember which items I've already collected (ie, which instances have been destroyed in a room, and which remain). All reload. Obviously this is a problem as opened doors and chests, etc, will also all re-appear. heres my script for saving:

    save script (runs on pressing spacebar in the player object)
    var file,inst_num,n0,n1,inst;
    file=get_save_filename("save","Savefile.inf")
    if (file_exists(file)) file_delete(file); //SAVES GAME/OVERWRITES

    ini_open(file);
    var saveroom = room;
    inst_num = instance_number(saveinstance) ;//THIS IS A PARENT OBJECT- ITEMS ARE CHILDREN.
    n0=0;
    n1=0;
    while inst_num >0{
    inst = instance_find(saveinstance,inst_num-1)
    ini_write_real("save",string(n0)+string(n1),inst.object_index);
    n1+=1;
    ini_write_real("save",string(n0)+string(n1),inst.x);
    n1+=1;
    ini_write_real("save",string(n0)+string(n1),inst.y);
    inst_num-=1;
    n0+=1;
    n1=0;

    }
    ini_write_real("save","room",saveroom);
    ini_write_real("save","brass keys",global.brasskeys);
    ini_write_real("save","health points",health);
    ini_write_real("save","gold coins",global.gold);
    ini_write_real("save","iron keys",global.ironkeys);
    ini_write_real("save","iron weights",global.ironweights);
    ini_write_real("save","x location",player.x);
    ini_write_real("save","y location",player.y);

    HERE IS THE LOAD SCRIPT, runs from main menu by pressing load button and selecting save INF file when prompted;
    var file,n0,n1,inst,xx,yy;
    file = get_open_filename("save","Savefile.inf")
    {
    ini_open(file);
    n0=0;
    n1=0;
    inst=0;
    xx=0;
    yy=0;
    while ini_key_exists("save",string(n0)+string(n1)){
    inst = ini_read_real("save",string(n0)+string(n1),0);
    n1+=1;
    xx = ini_read_real("save",string(n0)+string(n1),0);
    n1+=1;
    yy = ini_read_real("save",string(n0)+string(n1),0);
    instance_create(xx,yy,inst);
    n0+=1;
    n1=0;
    }
    var LoadedRoom = ini_read_real("save","room",0)
    global.brasskeys= ini_read_real("save","brass keys",0)
    global.ironkeys= ini_read_real("save","iron keys",0)
    global.gold= ini_read_real("save","gold coins",0)
    health = ini_read_real("save"," health points",100)
    global.ironweights = ini_read_real("save","iron weights",0)
    player.x= ini_read_real("save","x location",0)
    player.y= ini_read_real("save","y location",0)


    ini_close();

    room_goto(LoadedRoom);

    audio_play_sound(gamerestored,0,false)
    }




    ini_close();
    audio_play_sound(gamesaved,0,false)

    and Ive uploaded a screenshot of the INF text file! I cant figure out whats wrong exactly. Any viable solutions would be greatly appreciated!
     

    Attached Files:

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