Advertisement
Ulabael

scrSave()

Jul 23rd, 2022
621
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function scrSave()
  2. {
  3.     var data = array_create(0);
  4.  
  5.     var settings =
  6.     {
  7.         obj : object_get_name(object_index),
  8.         draw_shadows : global.draw_shadows,
  9.         game_fps : global.game_fps,
  10.         CameraNum : global.CameraNum
  11.     }
  12.     array_push(data, settings)
  13.  
  14.     if instance_exists(oObject)
  15.     {
  16.         with oObject
  17.         {
  18.             var saveData =
  19.             {
  20.                 obj : object_get_name(object_index),
  21.                 x : x,
  22.                 y : y,
  23.                 hp : hp,
  24.                 coordx : coordx,
  25.                 coordy : coordy,
  26.                 flammable : flammable,
  27.                 visible : visible,
  28.                 image_index : image_index,
  29.                 cur_neighbors : cur_neighbors,
  30.             }
  31.             array_push(data, saveData)
  32.         }
  33.     }
  34.  
  35.     if instance_exists(oPlayer)
  36.     {
  37.         with oPlayer
  38.         {
  39.             var saveData =
  40.             {
  41.                 obj : object_get_name(object_index),
  42.                 x : x,
  43.                 y : y,
  44.                 player_speed : player_speed,
  45.             }
  46.             array_push(data, saveData)
  47.         }
  48.     }
  49.  
  50.     if instance_exists(oCamera)
  51.     {
  52.         with oCamera
  53.         {
  54.             var saveData =
  55.             {
  56.                 obj : object_get_name(object_index),
  57.                 cameraX : cameraX,
  58.                 cameraY : cameraY,
  59.                 cameraWidth : cameraWidth,
  60.                 cameraHeight : cameraHeight,
  61.             }
  62.             array_push(data, saveData)
  63.         }
  64.     }
  65.  
  66.     if instance_exists(oGrid)
  67.     {
  68.         // Сперва заносим общую информацию по полю
  69.         with oGrid
  70.         {
  71.             var saveData =
  72.             {
  73.                 obj : object_get_name(object_index),
  74.                 cells_x : cells_x,
  75.                 cells_y : cells_y,
  76.             }
  77.             array_push(data, saveData)
  78.         }
  79.         // Затем заносим информацию по объектам
  80.         with oGrid
  81.         {
  82.             var lay_id_blocks = layer_get_id("BlockLayer");
  83.             var map_id_blocks = layer_tilemap_get_id(lay_id_blocks)
  84.        
  85.             var lay_id_block_backs = layer_get_id("Backs");
  86.             var map_id_block_backs = layer_tilemap_get_id(lay_id_block_backs)
  87.        
  88.             var lay_id_shadows = layer_get_id("ShadowLayer");
  89.             var map_id_shadows = layer_tilemap_get_id(lay_id_shadows)
  90.             for (var _y = 0; _y < cells_y; ++_y)
  91.             {
  92.                 for (var _x = 0; _x < cells_x; ++_x)
  93.                 {
  94.                     var saveData =
  95.                     {
  96.                         obj : "Tile",
  97.                         cell_x : _x,
  98.                         cell_y : _y,
  99.                         tile_block : tilemap_get(map_id_blocks, _x, _y),
  100.                         tile_backs : tilemap_get(map_id_block_backs, _x, _y),
  101.                         tile_shadows : tilemap_get(map_id_shadows, _x, _y),
  102.                         cost : ds_grid_get(global.grid, _x, _y),
  103.                     }
  104.                     array_push(data, saveData)
  105.                 }
  106.             }
  107.         }
  108.     }
  109.  
  110.  
  111.     var _string = json_stringify(data);
  112.     var _buffer = buffer_create(string_byte_length(_string) + 1, buffer_fixed, 1);
  113.  
  114.     buffer_write(_buffer, buffer_string, _string);
  115.     buffer_save(_buffer, "Save_Game.save");
  116.     buffer_delete(_buffer);
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement