Guest User

Untitled

a guest
Nov 20th, 2020
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.31 KB | None | 0 0
  1. #==============================================================================
  2. # ** Window_Base
  3. #==============================================================================
  4. class Window_Base < Window
  5.  
  6. #--------------------------------------------------------------------------
  7. # ● Draw Help Layout
  8. #--------------------------------------------------------------------------
  9. def draw_face_save(name,x,y,type)
  10. if type == 0
  11. image_name = name + "_0"
  12. elsif type == 1
  13. image_name = name + "_1"
  14. else
  15. image_name = name + "_2"
  16. end
  17. image = Cache.face(image_name)
  18. cw = image.width
  19. ch = image.height
  20. src_rect = Rect.new(0, 0, cw, ch)
  21. self.contents.blt(x , y , image, src_rect)
  22. image.dispose
  23. end
  24. end
  25.  
  26. #==============================================================================
  27. # ** Window_SaveFile
  28. #==============================================================================
  29.  
  30. class Window_SaveFile < Window_Base
  31. attr_reader :filename
  32. attr_reader :file_exist
  33. attr_reader :time_stamp
  34. attr_reader :selected
  35. attr_reader :file_index
  36. #--------------------------------------------------------------------------
  37. # * Object Initialization
  38. #--------------------------------------------------------------------------
  39. def initialize(file_index, filename)
  40. super(0, 56 + file_index % 4 * 90, 544, 90)
  41. @file_index = file_index
  42. @filename = filename
  43. load_gamedata
  44. refresh
  45. @selected = false
  46. end
  47. #--------------------------------------------------------------------------
  48. # * Load Partial Game Data
  49. #--------------------------------------------------------------------------
  50. def load_gamedata
  51. @time_stamp = Time.at(0)
  52. @file_exist = FileTest.exist?(@filename)
  53. if @file_exist
  54. file = File.open(@filename, "r")
  55. @time_stamp = file.mtime
  56. begin
  57. @characters = Marshal.load(file)
  58. @frame_count = Marshal.load(file)
  59. @last_bgm = Marshal.load(file)
  60. @last_bgs = Marshal.load(file)
  61. @game_system = Marshal.load(file)
  62. @game_message = Marshal.load(file)
  63. @game_switches = Marshal.load(file)
  64. @game_variables = Marshal.load(file)
  65. @total_sec = @frame_count / Graphics.frame_rate
  66. rescue
  67. @file_exist = false
  68. ensure
  69. file.close
  70. end
  71. end
  72. end
  73. #--------------------------------------------------------------------------
  74. # * Refresh
  75. #--------------------------------------------------------------------------
  76. def refresh
  77. self.contents.clear
  78. self.contents.font.color = normal_color
  79. name = Vocab::File + " #{@file_index + 1}"
  80. self.contents.draw_text(4, 0, 200, WLH, name)
  81. @name_width = contents.text_size(name).width
  82. if @file_exist
  83. draw_party_characters(152, 58)
  84. draw_playtime(0, 34, contents.width - 4, 2)
  85. draw_face_save(40,0)
  86. end
  87. end
  88.  
  89. #--------------------------------------------------------------------------
  90. # * Draw Face
  91. #--------------------------------------------------------------------------
  92. def draw_face_save(x,y)
  93. face_name = @characters[0][3]
  94. face_index = @characters[0][4]
  95. draw_face(face_name, face_index , x, y, 96)
  96. end
  97.  
  98. #--------------------------------------------------------------------------
  99. # * Draw Party Characters
  100. #--------------------------------------------------------------------------
  101.  
  102. def draw_party_characters(x, y)
  103. name = @characters[i][0]
  104. index = @characters[i][1]
  105. draw_character(name, index, x + i * 48, y)
  106. end
  107. end
  108.  
  109. #--------------------------------------------------------------------------
  110. # * Draw Play Time
  111. #--------------------------------------------------------------------------
  112. def draw_playtime(x, y, width, align)
  113. hour = @total_sec / 60 / 60
  114. min = @total_sec / 60 % 60
  115. sec = @total_sec % 60
  116. time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  117. self.contents.font.color = normal_color
  118. self.contents.draw_text(x, y, width, WLH, time_string, 2)
  119. end
  120. #--------------------------------------------------------------------------
  121. # * Set Selected
  122. #--------------------------------------------------------------------------
  123. def selected=(selected)
  124. @selected = selected
  125. update_cursor
  126. end
  127. #--------------------------------------------------------------------------
  128. # * Update cursor
  129. #--------------------------------------------------------------------------
  130. def update_cursor
  131. if @selected
  132. self.cursor_rect.set(0, 0, @name_width + 8, WLH)
  133. else
  134. self.cursor_rect.empty
  135. end
  136. end
  137. end
  138.  
  139. #==============================================================================
  140. # ** Scene_File
  141. #==============================================================================
  142.  
  143. class Scene_File < Scene_Base
  144.  
  145. #--------------------------------------------------------------------------
  146. # * Write_Save_Data
  147. #--------------------------------------------------------------------------
  148. def write_save_data(file)
  149. characters = []
  150. for actor in $game_party.members
  151. characters.push([actor.character_name, actor.character_index,
  152. actor.face_name, actor.face_index])
  153. end
  154. $game_system.save_count += 1
  155. $game_system.version_id = $data_system.version_id
  156. map_name = $game_map.name
  157. @last_bgm = RPG::BGM::last
  158. @last_bgs = RPG::BGS::last
  159. Marshal.dump(characters, file)
  160. Marshal.dump(map_name, file)
  161. Marshal.dump(Graphics.frame_count, file)
  162. Marshal.dump(@last_bgm, file)
  163. Marshal.dump(@last_bgs, file)
  164. Marshal.dump($game_system, file)
  165. Marshal.dump($game_message, file)
  166. Marshal.dump($game_switches, file)
  167. Marshal.dump($game_variables, file)
  168. Marshal.dump($game_self_switches, file)
  169. Marshal.dump($game_actors, file)
  170. Marshal.dump($game_party, file)
  171. Marshal.dump($game_troop, file)
  172. Marshal.dump($game_map, file)
  173. Marshal.dump($game_player, file)
  174. end
  175.  
  176. #--------------------------------------------------------------------------
  177. # * read_save_data
  178. #--------------------------------------------------------------------------
  179. def read_save_data(file)
  180. characters = Marshal.load(file)
  181. map_name = Marshal.load(file)
  182. Graphics.frame_count = Marshal.load(file)
  183. @last_bgm = Marshal.load(file)
  184. @last_bgs = Marshal.load(file)
  185. $game_system = Marshal.load(file)
  186. $game_message = Marshal.load(file)
  187. $game_switches = Marshal.load(file)
  188. $game_variables = Marshal.load(file)
  189. $game_self_switches = Marshal.load(file)
  190. $game_actors = Marshal.load(file)
  191. $game_party = Marshal.load(file)
  192. $game_troop = Marshal.load(file)
  193. $game_map = Marshal.load(file)
  194. $game_player = Marshal.load(file)
  195. if $game_system.version_id != $data_system.version_id
  196. $game_map.setup($game_map.map_id)
  197. $game_player.center($game_player.x, $game_player.y)
  198. end
  199. end
  200. end
Advertisement
Add Comment
Please, Sign In to add comment