Looks good, but I can't say I approve of your Scene_Base overwriting shenanigans.
Anyway, when you want to add something to Scene_Base, it is unnecessary to overwrite it entirely. First, because you can add things to a class even if it is not in the same sheet in the editor.
In other words, if I actually did want to overwrite the execute_transition method of Scene_Base, then it would be enough to make a new sheet in the editor anywhere below the real Scene_Base and put this in:
class Scene_Base
#--------------------------------------------------------------------------
# * Execute Transition
#--------------------------------------------------------------------------
def perform_transition
Graphics.transition(0)
end
end
You do not perform major changes to Scene_Base, and, like I said, it is unnecessary to reproduce the entire class because you do not need to write over all of that other stuff.
From what I can tell, you have modified four methods of Scene_Base: perform_transition, terminate, snapshot_for_background, and create_menu_background. Thus, assuming we are overwriting and not aliasing, it is enough to add this into a new script:
class Scene_Base
#--------------------------------------------------------------------------
# * Execute Transition
#--------------------------------------------------------------------------
def perform_transition
Graphics.transition(0)
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
Graphics.transition(0)
end
#--------------------------------------------------------------------------
# * Create Snapshot for Using as Background of Another Screen
#--------------------------------------------------------------------------
def snapshot_for_background
$game_temp.background_bitmap.dispose
$game_temp.background_bitmap = Graphics.snap_to_bitmap
end
#--------------------------------------------------------------------------
# * Create Background for Menu Screen
#--------------------------------------------------------------------------
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
update_menu_background
end
end
Now, you shouldn't overwrite these methods - under normal circumstances you would alias them but my stronger objection is that you shouldn't be editing Scene_Base because by doing so you are affecting every other scene that uses these methods when you really only want to be affecting Scene_Menu
Now, I will teach you something. Scene_Menu, which you edit, is a subclass of Scene_Base (Scene_Menu < Scene_Base) - This means a lot of things, but for our purposes what it means is that whenever these methods in Scene_Base are accessed, they are accessed
through Scene_Menu. So, what we really ought to do is place these methods in Scene_Menu, rather than Scene_Base.
So, now we have:
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# * Execute Transition
#--------------------------------------------------------------------------
def perform_transition
Graphics.transition(0)
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
alias arrow1_mothermenu_trmnt terminate
def terminate
arrow1_mothermenu_trmnt
Graphics.transition(0)
end
#--------------------------------------------------------------------------
# * Create Snapshot for Using as Background of Another Screen
#--------------------------------------------------------------------------
def snapshot_for_background
$game_temp.background_bitmap.dispose
$game_temp.background_bitmap = Graphics.snap_to_bitmap
end
#--------------------------------------------------------------------------
# * Create Background for Menu Screen
#--------------------------------------------------------------------------
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
update_menu_background
end
end
Adding that will make it so that your script works exactly as it does now, but already you have cut out having to replace all of Scene_Menu and avoided a thousand compatibility issues with other scripts.
Now, I would normally use this opportunity to teach you about aliasing, but in this case you would actually use super if you wanted to call the old methods. I don't have time to get into it right now unfortunately. And actually, this is a case where aliasing is unnecessary. Just for good measure though, I'll point you to this tutorial that I never released because it makes some shaky, untrue claims, but it might give you a good idea about how to use aliasing, even if it misleads you about what aliasing is:
http://rmrk.net/index.php/topic,20892.0.htmlSo really those are my only comments.
Anyway, good job Arrow - my criticism is long but there isn't much meat in it - it looks like you did a good job. I haven't looked at the other part of the script yet.
* moves to Database
EDIT::
Whoops, I lied actually. That script will not work because Worale also edits the terminate method. I threw in an alias there now so that nothing would screw up as long as this thing is below worale's, but considering you are editing his script it actually makes sense to just put your changes in with his method. But as it is, it should work, unless I overlooked it more and worale edited the other methods too.