diff --git a/scripts/Game_System.rb b/scripts/Game_System.rb index e670986..4b6206b 100644 --- a/scripts/Game_System.rb +++ b/scripts/Game_System.rb @@ -20,6 +20,7 @@ class Game_System attr_accessor :message_frame # text option: window frame attr_accessor :save_count # save count attr_accessor :magic_number # magic number + attr_accessor :playing_bgm #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- diff --git a/scripts/Game_Temp.rb b/scripts/Game_Temp.rb index 5e26df0..f7d3aa5 100644 --- a/scripts/Game_Temp.rb +++ b/scripts/Game_Temp.rb @@ -9,6 +9,9 @@ class Game_Temp #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- + attr_accessor :target_bgm_vol_level # volume we want to reach when fading in music + attr_accessor :bgm_fadein_speed # speed at which we will reach target bgm vol_level + attr_accessor :bgm_fadein_timer # used so we aren't changing the volume every frame attr_accessor :map_bgm # map music (for battle memory) attr_accessor :message_text # message text attr_accessor :message_face # face graphic @@ -62,6 +65,9 @@ class Game_Temp # * Object Initialization #-------------------------------------------------------------------------- def initialize + @target_bgm_vol_level = -1 + @bgm_fadein_speed = 0 + @bgm_fadein_timer = 0 @map_bgm = nil @message_text = nil @message_face = nil @@ -111,4 +117,20 @@ class Game_Temp @footstep_sfx = nil @filmsprite = nil end + + def bgm_fadein(game_system) + if @target_bgm_vol_level > 0 + @bgm_fadein_timer += 1 + if @bgm_fadein_timer > 14 + @bgm_fadein_timer = 0 + game_system.playing_bgm.volume += @bgm_fadein_speed + if game_system.playing_bgm.volume >= @target_bgm_vol_level + game_system.playing_bgm.volume = @target_bgm_vol_level + @target_bgm_vol_level = -1 + @bgm_fadein_speed = 1 + end + game_system.bgm_play(game_system.playing_bgm) + end + end + end end diff --git a/scripts/Scene_Map.rb b/scripts/Scene_Map.rb index 84429c2..c30c991 100644 --- a/scripts/Scene_Map.rb +++ b/scripts/Scene_Map.rb @@ -94,6 +94,7 @@ class Scene_Map end # Loop loop do + $game_temp.bgm_fadein($game_system) # Update map, interpreter, and player order # (this update order is important for when conditions are fulfilled # to run any event, and the player isn't provided the opportunity to diff --git a/scripts/Script.rb b/scripts/Script.rb index 282b461..da23878 100644 --- a/scripts/Script.rb +++ b/scripts/Script.rb @@ -117,6 +117,11 @@ module Script $game_map.display_x = x $game_map.display_y = y end + + def self.fadein_bgm(target, speed) + $game_temp.target_bgm_vol_level = target + $game_temp.bgm_fadein_speed = speed + end end def has_lightbulb?