| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- function get_default_save_data()
- {
- return
- {
- player:
- {
- maxHP: 5,
- maxINK: 100,
- Credit: 0,
-
- abilities:
- {
- dash: false,
- wall_climb: false,
- double_jump: false
- }
- },
- world:
- {
- current_room: "rTest_2",
- destroyed_objects: {},
- defeated_boss: {}
- }/*,
- meta:
- {
- play_time: 0,
- save_date: ""
- }*/
- }
- }
- function save_game_to_disk()
- {
- // 更新元数据
- // global.save_data.meta.save_date = date_datetime_string(date_current_datetime());
-
- // 序列化
- var _json_string = json_stringify(global.save_data);
-
- // 使用buffer写入
- 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 false;
-
- // 使用buffer读取
- 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;
-
- return true;
- }
|