Module: DataManager
- Defined in:
- lib/rgss3_default_scripts/DataManager.rb
Overview
** DataManager
This module manages the database and game objects. Almost all of the
global variables used by the game are initialized by this module.
Class Method Summary collapse
-
.check_player_location ⇒ Object
————————————————————————– * Check Player Start Location Existence ————————————————————————–.
-
.create_game_objects ⇒ Object
————————————————————————– * Create Game Objects ————————————————————————–.
-
.delete_save_file(index) ⇒ Object
————————————————————————– * Delete Save File ————————————————————————–.
-
.extract_save_contents(contents) ⇒ Object
————————————————————————– * Extract Save Contents ————————————————————————–.
-
.init ⇒ Object
————————————————————————– * Initialize Module ————————————————————————–.
-
.last_savefile_index ⇒ Object
————————————————————————– * Get Index of File Most Recently Accessed ————————————————————————–.
-
.latest_savefile_index ⇒ Object
————————————————————————– * Get File Index with Latest Update Date ————————————————————————–.
-
.load_battle_test_database ⇒ Object
————————————————————————– * Load Battle Test Database ————————————————————————–.
-
.load_database ⇒ Object
————————————————————————– * Load Database ————————————————————————–.
-
.load_game(index) ⇒ Object
————————————————————————– * Execute Load ————————————————————————–.
-
.load_game_without_rescue(index) ⇒ Object
————————————————————————– * Execute Load (No Exception Processing) ————————————————————————–.
-
.load_header(index) ⇒ Object
————————————————————————– * Load Save Header ————————————————————————–.
-
.load_header_without_rescue(index) ⇒ Object
————————————————————————– * Load Save Header (No Exception Processing) ————————————————————————–.
-
.load_normal_database ⇒ Object
————————————————————————– * Load Normal Database ————————————————————————–.
-
.make_filename(index) ⇒ Object
————————————————————————– * Create Filename index : File Index ————————————————————————–.
-
.make_save_contents ⇒ Object
————————————————————————– * Create Save Contents ————————————————————————–.
-
.make_save_header ⇒ Object
————————————————————————– * Create Save Header ————————————————————————–.
-
.reload_map_if_updated ⇒ Object
————————————————————————– * Reload Map if Data Is Updated ————————————————————————–.
-
.save_file_exists? ⇒ Boolean
————————————————————————– * Determine Existence of Save File ————————————————————————–.
-
.save_game(index) ⇒ Object
————————————————————————– * Execute Save ————————————————————————–.
-
.save_game_without_rescue(index) ⇒ Object
————————————————————————– * Execute Save (No Exception Processing) ————————————————————————–.
-
.savefile_max ⇒ Object
————————————————————————– * Maximum Number of Save Files ————————————————————————–.
-
.savefile_time_stamp(index) ⇒ Object
————————————————————————– * Get Update Date of Save File ————————————————————————–.
-
.setup_battle_test ⇒ Object
————————————————————————– * Set Up Battle Test ————————————————————————–.
-
.setup_new_game ⇒ Object
————————————————————————– * Set Up New Game ————————————————————————–.
Class Method Details
.check_player_location ⇒ Object
-
Check Player Start Location Existence
73 74 75 76 77 78 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 73 def self.check_player_location if $data_system.start_map_id == 0 msgbox(Vocab::PlayerPosError) exit end end |
.create_game_objects ⇒ Object
-
Create Game Objects
82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 82 def self.create_game_objects $game_temp = Game_Temp.new $game_system = Game_System.new $game_timer = Game_Timer.new = Game_Message.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new end |
.delete_save_file(index) ⇒ Object
-
Delete Save File
193 194 195 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 193 def self.delete_save_file(index) File.delete(make_filename(index)) rescue nil end |
.extract_save_contents(contents) ⇒ Object
-
Extract Save Contents
226 227 228 229 230 231 232 233 234 235 236 237 238 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 226 def self.extract_save_contents(contents) $game_system = contents[:system] $game_timer = contents[:timer] = contents[:message] $game_switches = contents[:switches] $game_variables = contents[:variables] $game_self_switches = contents[:self_switches] $game_actors = contents[:actors] $game_party = contents[:party] $game_troop = contents[:troop] $game_map = contents[:map] $game_player = contents[:player] end |
.init ⇒ Object
-
Initialize Module
16 17 18 19 20 21 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 16 def self.init @last_savefile_index = 0 load_database create_game_objects setup_battle_test if $BTEST end |
.last_savefile_index ⇒ Object
-
Get Index of File Most Recently Accessed
264 265 266 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 264 def self.last_savefile_index @last_savefile_index end |
.latest_savefile_index ⇒ Object
-
Get File Index with Latest Update Date
258 259 260 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 258 def self.latest_savefile_index savefile_max.times.max_by {|i| savefile_time_stamp(i) } end |
.load_battle_test_database ⇒ Object
-
Load Battle Test Database
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 55 def self.load_battle_test_database $data_actors = load_data("Data/BT_Actors.rvdata2") $data_classes = load_data("Data/BT_Classes.rvdata2") $data_skills = load_data("Data/BT_Skills.rvdata2") $data_items = load_data("Data/BT_Items.rvdata2") $data_weapons = load_data("Data/BT_Weapons.rvdata2") $data_armors = load_data("Data/BT_Armors.rvdata2") $data_enemies = load_data("Data/BT_Enemies.rvdata2") $data_troops = load_data("Data/BT_Troops.rvdata2") $data_states = load_data("Data/BT_States.rvdata2") $data_animations = load_data("Data/BT_Animations.rvdata2") $data_tilesets = load_data("Data/BT_Tilesets.rvdata2") $data_common_events = load_data("Data/BT_CommonEvents.rvdata2") $data_system = load_data("Data/BT_System.rvdata2") end |
.load_database ⇒ Object
-
Load Database
25 26 27 28 29 30 31 32 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 25 def self.load_database if $BTEST load_battle_test_database else load_normal_database check_player_location end end |
.load_game(index) ⇒ Object
-
Execute Load
148 149 150 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 148 def self.load_game(index) load_game_without_rescue(index) rescue false end |
.load_game_without_rescue(index) ⇒ Object
-
Execute Load (No Exception Processing)
172 173 174 175 176 177 178 179 180 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 172 def self.load_game_without_rescue(index) File.open(make_filename(index), "rb") do |file| Marshal.load(file) extract_save_contents(Marshal.load(file)) reload_map_if_updated @last_savefile_index = index end return true end |
.load_header(index) ⇒ Object
-
Load Save Header
154 155 156 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 154 def self.load_header(index) load_header_without_rescue(index) rescue nil end |
.load_header_without_rescue(index) ⇒ Object
-
Load Save Header (No Exception Processing)
184 185 186 187 188 189 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 184 def self.load_header_without_rescue(index) File.open(make_filename(index), "rb") do |file| return Marshal.load(file) end return nil end |
.load_normal_database ⇒ Object
-
Load Normal Database
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 36 def self.load_normal_database $data_actors = load_data("Data/Actors.rvdata2") $data_classes = load_data("Data/Classes.rvdata2") $data_skills = load_data("Data/Skills.rvdata2") $data_items = load_data("Data/Items.rvdata2") $data_weapons = load_data("Data/Weapons.rvdata2") $data_armors = load_data("Data/Armors.rvdata2") $data_enemies = load_data("Data/Enemies.rvdata2") $data_troops = load_data("Data/Troops.rvdata2") $data_states = load_data("Data/States.rvdata2") $data_animations = load_data("Data/Animations.rvdata2") $data_tilesets = load_data("Data/Tilesets.rvdata2") $data_common_events = load_data("Data/CommonEvents.rvdata2") $data_system = load_data("Data/System.rvdata2") $data_mapinfos = load_data("Data/MapInfos.rvdata2") end |
.make_filename(index) ⇒ Object
-
Create Filename
index : File Index
131 132 133 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 131 def self.make_filename(index) sprintf("Save%02d.rvdata2", index + 1) end |
.make_save_contents ⇒ Object
-
Create Save Contents
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 208 def self.make_save_contents contents = {} contents[:system] = $game_system contents[:timer] = $game_timer contents[:message] = contents[:switches] = $game_switches contents[:variables] = $game_variables contents[:self_switches] = $game_self_switches contents[:actors] = $game_actors contents[:party] = $game_party contents[:troop] = $game_troop contents[:map] = $game_map contents[:player] = $game_player contents end |
.make_save_header ⇒ Object
-
Create Save Header
199 200 201 202 203 204 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 199 def self.make_save_header header = {} header[:characters] = $game_party.characters_for_savefile header[:playtime_s] = $game_system.playtime_s header end |
.reload_map_if_updated ⇒ Object
-
Reload Map if Data Is Updated
242 243 244 245 246 247 248 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 242 def self.reload_map_if_updated if $game_system.version_id != $data_system.version_id $game_map.setup($game_map.map_id) $game_player.center($game_player.x, $game_player.y) $game_player.make_encounter_count end end |
.save_file_exists? ⇒ Boolean
-
Determine Existence of Save File
118 119 120 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 118 def self.save_file_exists? !Dir.glob('Save*.rvdata2').empty? end |
.save_game(index) ⇒ Object
-
Execute Save
137 138 139 140 141 142 143 144 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 137 def self.save_game(index) begin save_game_without_rescue(index) rescue delete_save_file(index) false end end |
.save_game_without_rescue(index) ⇒ Object
-
Execute Save (No Exception Processing)
160 161 162 163 164 165 166 167 168 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 160 def self.save_game_without_rescue(index) File.open(make_filename(index), "wb") do |file| $game_system.on_before_save Marshal.dump(make_save_header, file) Marshal.dump(make_save_contents, file) @last_savefile_index = index end return true end |
.savefile_max ⇒ Object
-
Maximum Number of Save Files
124 125 126 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 124 def self.savefile_max return 16 end |
.savefile_time_stamp(index) ⇒ Object
-
Get Update Date of Save File
252 253 254 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 252 def self.savefile_time_stamp(index) File.mtime(make_filename(index)) rescue Time.at(0) end |
.setup_battle_test ⇒ Object
-
Set Up Battle Test
110 111 112 113 114 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 110 def self.setup_battle_test $game_party.setup_battle_test BattleManager.setup($data_system.test_troop_id) BattleManager.play_battle_bgm end |
.setup_new_game ⇒ Object
-
Set Up New Game
99 100 101 102 103 104 105 106 |
# File 'lib/rgss3_default_scripts/DataManager.rb', line 99 def self.setup_new_game create_game_objects $game_party.setup_starting_members $game_map.setup($data_system.start_map_id) $game_player.moveto($data_system.start_x, $data_system.start_y) $game_player.refresh Graphics.frame_count = 0 end |