| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- function initialize_save_data()
- {
- global.save_data =
- {
- player:
- {
- maxHP: 5,
- maxINK: 9,
- Credit: 0,
-
- abilities:
- {
- attack: false,
- accesscard : false,
- annotate: false,
- dash: false,
- wall_climb: false,
- double_jump: false
- },
- corpse:
- {
- targetRoom: noone,
- xPos: -1,
- yPos: -1,
- droppedCredit: 0
- },
- },
- world:
- {
- spRoom: "rTest1",
- spxPos: 192,
- spyPos: 864,
- activated_objects: {},
- defeated_boss: {},
- npc_flags: {}
- }
- };
- global.dialogue =
- {
- warden:
- {
- idle : ["Morning!"],
- first :
- [[
- @"Good morning.
- I haven't met you before!
- Are you new here?",
- @"By the way, my access card is lost,
- so you probably can't leave the dorm right now.
- I'm pretty sorry."
- ],[
- @"Tell me if you see it anywhere!"
- ]],
- accesscard :
- [[
- @"Wow, thanks a lot!
- Here, try this.",
- @"Oh, I can lend a card to you.
- There may be other locked doors like these."
- ],[
- @"Are you leaving?
- Remember to pay a visit when you have spare time.
- I'm planning to sell some daily necessities."
- ]]
- }
- };
- var _npc_names = struct_get_names(global.dialogue);
- for(var i = 0; i < array_length(_npc_names); i++)
- {
- var _npc = _npc_names[i];
- var _blocks = struct_get_names(global.dialogue[$ _npc]);
-
- var _flags = {};
- for(var j = 0; j < array_length(_blocks); j++)
- {
- var _block = _blocks[j];
- if _block != "idle"
- _flags[$ _block] = -1;
- else if _block == "first"
- _flags[$ _block] = 0;
- }
- global.save_data.world.npc_flags[$ _npc] = _flags;
- }
- }
- function save_game_to_disk()
- {
- var _json_string = json_stringify(global.save_data);
-
- var _buffer = buffer_create(string_byte_length(_json_string) + 1, buffer_fixed, 1);
- buffer_write(_buffer, buffer_string, _json_string);
- buffer_save(_buffer, global.save_filename);
- buffer_delete(_buffer);
-
- if global.developer_mode
- show_debug_message("The game has been saved to " + global.save_filename);
- }
- function load_game_from_disk()
- {
- if !file_exists(global.save_filename)
- return;
-
- var _buffer = buffer_load(global.save_filename);
- var _json_string = buffer_read(_buffer, buffer_string);
- buffer_delete(_buffer);
-
- var _loaded_data = json_parse(_json_string);
-
- global.save_data = _loaded_data;
-
- room_goto(asset_get_index(global.save_data.world.spRoom));
-
- global.in_game_manager = icl(oInGameManager);
- }
- function self_check_activated()
- {
- return struct_exists(global.save_data.world.activated_objects, uuid)
- }
- function autosave()
- {
- var _list = global.save_data.world.activated_objects;
- _list[$ uuid] = true;
- save_game_to_disk();
- }
|