Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Map name as save file name
#2
Hrm... thinking thinking.... lotta projects in my mind (and others that I get suckered into...)

At first thought, I figured you would need to have the SaveFile change its design from saving files like Save1.rxdata, Save2.rxdata... and so on.

Instead, I was thinking something else.... When the default system shows the 'SaveFile' windows, it shows the party members as chararactersets in each window. This means, you can access the game data for each save file.

Now the default system only loads but so much data, and not the name of the game map. BUT that can be fixed... and I did. Winking It just meant adding in a tried and true method of getting the map name, and performing a few edits to the Window_SaveFile class....

Code:
#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles the map. It includes scrolling and passable determining
#  functions. Refer to "$game_map" for the instance of this class.
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # * Get Map Name
  #--------------------------------------------------------------------------  
  def map_name
    @mapinfo = load_data("Data/MapInfos.rxdata") if @mapinfo == nil
    return @mapinfo[@map_id].name
  end
end


#==============================================================================
# ** Window_SaveFile
#------------------------------------------------------------------------------
#  This window displays save files on the save and load screens.
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :filename                 # file name
  attr_reader   :selected                 # selected
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     file_index : save file index (0-3)
  #     filename   : file name
  #--------------------------------------------------------------------------
  def initialize(file_index, filename)
    super(0, 64 + file_index % 4 * 104, 640, 104)
    self.contents = Bitmap.new(width - 32, height - 32)
    @file_index = file_index
    @filename = "Save#{@file_index + 1}.rxdata"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      @characters = Marshal.load(file)
      @frame_count = Marshal.load(file)
      @game_system = Marshal.load(file)
      @game_switches = Marshal.load(file)
      @game_variables = Marshal.load(file)
      # ==================================================
      #  -- This skips through other pieces of data until
      #     We get to the game map section
      t = Marshal.load(file) # Self Switches
      t = Marshal.load(file) # Screen
      t = Marshal.load(file) # Actors
      t = Marshal.load(file) # Party
      t = Marshal.load(file) # Troop
      # ==================================================
      @game_map       = Marshal.load(file)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
    @selected = false
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # If save file exists
    if @file_exist
    # Draw file number
      self.contents.font.color = normal_color
      name = "File#{@file_index + 1}: " + @game_map.map_name
      self.contents.draw_text(4, 0, 600, 32, name)
      @name_width = contents.text_size(name).width
      # Draw character
      for i in 0...@characters.size
        bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
        cw = bitmap.rect.width / 4
        ch = bitmap.rect.height / 4
        src_rect = Rect.new(0, 0, cw, ch)
        x = 300 - @characters.size * 32 + i * 64 - cw / 2
        self.contents.blt(x, 68 - ch, bitmap, src_rect)
      end
      # Draw play time
      hour = @total_sec / 60 / 60
      min = @total_sec / 60 % 60
      sec = @total_sec % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 8, 600, 32, time_string, 2)
      # Draw timestamp
      self.contents.font.color = normal_color
      time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
      self.contents.draw_text(4, 40, 600, 32, time_string, 2)
    else
    # Draw file number
    self.contents.font.color = normal_color
    name = "File#{@file_index + 1}"
    self.contents.draw_text(4, 0, 600, 32, name)
    @name_width = contents.text_size(name).width
    end
  end
end

Enjoy.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)
[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png] [Image: liM4ikn.png] [Image: fdzKgZA.png] [Image: sj0H81z.png]
[Image: QL7oRau.png] [Image: uSqjY09.png] [Image: GAA3qE9.png] [Image: 2Hmnx1G.png] [Image: BwtNdKw.png%5B]
Above are clickable links

Reply }


Messages In This Thread
Map name as save file name - by Whisper - 04-29-2020, 09:31 PM
RE: Map name as save file name - by DerVVulfman - 04-30-2020, 03:36 AM
RE: Map name as save file name - by kyonides - 04-30-2020, 04:00 AM
RE: Map name as save file name - by DerVVulfman - 04-30-2020, 04:11 AM
RE: Map name as save file name - by Whisper - 04-30-2020, 05:17 PM
RE: Map name as save file name - by kyonides - 04-30-2020, 08:56 PM
RE: Map name as save file name - by Whisper - 04-30-2020, 10:11 PM
RE: Map name as save file name - by kyonides - 05-01-2020, 12:59 AM
RE: Map name as save file name - by DerVVulfman - 05-01-2020, 03:57 AM
RE: Map name as save file name - by Whisper - 05-01-2020, 05:35 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
   Weird error when using a custom save script. Steel Beast 6Beets 8 10,038 06-27-2015, 05:54 PM
Last Post: Steel Beast 6Beets
   Custom Save/Load screen Raou 2 6,911 04-01-2015, 08:18 PM
Last Post: Raou
   Script Request - Variables Specific Save File JayRay 2 4,514 04-28-2014, 05:15 AM
Last Post: JayRay
   Checking if a file exists without knowing the extension? PK8 1 4,604 05-29-2011, 10:13 AM
Last Post: MGC
   Save Screen Screenshot Yin 2 5,549 07-05-2010, 06:31 PM
Last Post: Yin
   Can I execute a txt file from a script? deValdr 8 9,654 04-18-2010, 07:34 PM
Last Post: deValdr
   Help With Law's Save System Ryu-ka 0 3,439 04-06-2010, 06:37 PM
Last Post: Ryu-ka
   Need advice on best/easiest save setup rcg916 3 5,579 11-08-2009, 06:24 AM
Last Post: DerVVulfman
   How can I save a map? Charlie Fleed 3 6,090 07-08-2009, 09:55 PM
Last Post: dacloudster
   Forced Save? Yin 9 12,543 04-18-2009, 08:41 PM
Last Post: DerVVulfman



Users browsing this thread: