Advertisement
TheSixth

Menu BGM

Jul 21st, 2016
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.14 KB | None | 0 0
  1. # Menu BGM
  2. # Made by: Sixth
  3.  
  4. module BGM_Saver
  5.  
  6.   # Set up your menu BGM here.  
  7.   # Format: RPG::BGM.new("file name",volume,pitch)  
  8.   MenuBGM = RPG::BGM.new("Town1",100,100)    
  9.    
  10.   # Set up the Map BGM replay mode here.  
  11.   # true = Will continue the map BGM from the exact time it changed.  
  12.   # false = Will replay the map BGM from the beginning.  
  13.   MapReplay = false
  14.    
  15.   # No touchy-touchy below!    
  16.  
  17.   def self.save_bgm    
  18.     if SceneManager.scene_is?(Scene_Map)      
  19.       @lastbgm_map = RPG::BGM.last    
  20.     elsif SceneManager.scene_is?(Scene_Menu)      
  21.       @lastbgm_menu = RPG::BGM.last    
  22.     end  
  23.   end    
  24.    
  25.   def self.get_last_bgm(type)    
  26.     case type    
  27.     when :map;  return @lastbgm_map
  28.     when :menu; return @lastbgm_menu    
  29.     end  
  30.   end
  31.  
  32. end
  33.  
  34. module SceneManager    
  35.  
  36.   class << self; alias save_lastbgm5814 call; end  
  37.   def self.call(scene_class)    
  38.     if scene_is?(Scene_Menu) || scene_is?(Scene_Map)      
  39.       BGM_Saver.save_bgm    
  40.     end    
  41.     save_lastbgm5814(scene_class)    
  42.     if scene_is?(Scene_Menu) || scene_is?(Scene_Map)      
  43.       BGM_Saver.save_bgm    
  44.     end  
  45.   end
  46.    
  47.   class << self; alias save_lastbgm7774 call; end  
  48.   def self.goto(scene_class)    
  49.     save_lastbgm7774(scene_class)    
  50.     if scene_class == Scene_Map      
  51.       if BGM_Saver::MapReplay == true
  52.         last = BGM_Saver.get_last_bgm(:map)      
  53.         last.replay if last      
  54.       else        
  55.         $game_map.autoplay      
  56.       end    
  57.     end  
  58.   end
  59.    
  60. end
  61.  
  62. class Scene_Menu < Scene_MenuBase    
  63.    
  64.   alias add_bgm_changes9986 start  
  65.   def start    
  66.     add_bgm_changes9986    
  67.     last = BGM_Saver.get_last_bgm(:menu)    
  68.     menubgm = BGM_Saver::MenuBGM    
  69.     menubgm.play if last && last.name != menubgm.name  
  70.   end
  71.    
  72.   alias add_bgm_saves8874 terminate  
  73.   def terminate    
  74.     add_bgm_saves8874    
  75.     if SceneManager.scene_is?(Scene_Map)            
  76.       if BGM_Saver::MapReplay == true
  77.         last = BGM_Saver.get_last_bgm(:map)
  78.         last.replay if last      
  79.       else        
  80.         $game_map.autoplay      
  81.       end
  82.     end
  83.   end
  84.    
  85. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement