Alright,
. If you ever have trouble knowing what an argument is for, take a look at the method being called. In your case, it is the initialize method of Scene_BoeMenu:
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
It helps to have the official version for the translation of the comments, but as you see, that tells you exactly what the argument you pass is (just in case you didn't know, when you call another method and you pass something on to it, then that thing that you pass on is an argument. For instance, in the line, @command_window = Window_Command.new (x, y), x and y are the arguments)
Anyway, if you want a tip on doing it the way I suggested, take a look at the similarities between the scripts you have. Particularly, notice:
# main
s1 = "Item"
s2 = "Status"
s3 = "Equip"
@command_window = Window_Command.new(160, [s1, s2, s3])
and
s1 = "Menu"
s2 = "Save"
@command_window = Window_Command.new(160, [s1, s2])
I think you know what both are, and so what we want are two command windows in the same scene, so we can just rename them and have them in one script:
# main
s1 = "Menu"
s2 = "Save"
@command_window = Window_Command.new(160, [s1, s2])
@command_window.index = @menu_index
@command_window.x = 340
@command_window.y = 300
s1 = "Item"
s2 = "Status"
s3 = "Equip"
@command_window2 = Window_Command.new(160, [s1, s2, s3])
@command_window2.index = @menu_index
@command_window2.x = 340
@command_window2.y = 300
@command_window2.visible = false
@command_window2.active = false
You'll see that I added the two last lines there. Basically, by visible = false I am making the window invisible, since we are working with the other command window first. by active = false I am making sure that we can act on the first one without the second one responding
Now, let's take a look at our update method:
def update
# ????????
@command_window.update
@spriteset.update
# ??????????????????: update_command ???
if @command_window.active
update_command
return
end
# ???????????????????: update_status ???
if @status_window.active
update_status
return
end
end
Specifically, notice this:
if @command_window.active
update_command
return
end
So, when you think about it, all you really need to add in is:
if @command_window2.active
update_command_2
return
end
and you have to pull in the update_command method from Scene_BoeMenu and rename it to update_command_2.
Just to mention this, much of your update command methods are unnecessary: 2 - 5 can never run because you have removed them as options. Anyway, all you need to do now is change it so that instead of everywhere that you would normally switch between scenes using these codes:
$scene = Scene_Boe.new
$scene = Scene_BoeMenu.new
you can do it by these codes:
# Disable Menu window
@command_window2.active = false
@command_window2.visible = false
# Enable Pre Menu window
@command_window.index = 0
@command_window.active = true
@command_window.visible = true
# Disable Pre Menu window
@command_window.active = false
@command_window.visible = false
# Enable Menu window
@command_window2.index = 0
@command_window2.active = true
@command_window2.visible = true
I might have forgotten something, but that is roughly the idea.