09-28-2019, 03:58 AM
Okay, I posted that pretty quickly... seven years ago? I do have some bugs.... Let me correct, shall I?
FIRST, IT IS NOT IMMUNE TO THE F12 STACK ERROR!!!!! So the three alias statements in the Window_Selectable Class should be encapsulated like this:
Now for my corrections....
Going into the initialize method of Window_Selectable class, replace...
...with this...
This will only let the cursor sprite be generated AND begin updating the cursor if the switch is turned on. If it isn't, no cursor.
Going into the dispose method of Window_Selectable class, replace...
...with this...
This will eliminate the cursor ONLY if the cursor switch is on. If there's no cursor and you try to dispose of it... *KE-RASH!!!*
NOW... for the removal/hiding of the RECTANGLE CURSOR... merely add...
...right before you draw the rectangle using this statement...
Yes, this means it will be the 2nd from the last statement in the method. And it hides the rectangle cursor by making it literally 0 pixels in width.
For a little extra, we have to make sure the cursor doesn't have any issues being turned on/off, so go into the update method of the Window_Selectable class, and add...
as the first line in the method.
And finally, going into the update method of Window_Selectable class, replace...
...with this...
This will only execute the cursor graphic update system if the switch is turned on.
Now all the time and code, I used the basic global switch of $cursor switch. That is a switch you can use in a map event. Like use the script call command and enter "$cursor_switch = true" to turn it on, and "$cursor_switch = nil" to turn it off. That means, you do not use the RPGMaker Switches to turn it on or off.
Using RMXP switches in this code can be problematic. That, I know.
FIRST, IT IS NOT IMMUNE TO THE F12 STACK ERROR!!!!! So the three alias statements in the Window_Selectable Class should be encapsulated like this:
Code:
if @selwyn_cursor_script_antistack.nil?
alias initialize_cursor initialize
alias update_cursor_moves update
alias dispose_cursor dispose
@selwyn_cursor_script_antistack = true
end
Now for my corrections....
Going into the initialize method of Window_Selectable class, replace...
Code:
@cursor = Sprite_Cursor.new(x, y)
update_cursor
Code:
@cursor = Sprite_Cursor.new(x, y) if $cursor_switch == true
update_cursor if $cursor_switch == true
Going into the dispose method of Window_Selectable class, replace...
Code:
@cursor.dispose
Code:
@cursor.dispose if $cursor_switch == true
NOW... for the removal/hiding of the RECTANGLE CURSOR... merely add...
Code:
cursor_width = 0 if $cursor_switch == true
Code:
self.cursor_rect.set(x, y, cursor_width, 32)
For a little extra, we have to make sure the cursor doesn't have any issues being turned on/off, so go into the update method of the Window_Selectable class, and add...
Code:
@cursor = Sprite_Cursor.new(x, y) if @cursor.nil?
And finally, going into the update method of Window_Selectable class, replace...
Code:
update_cursor
Code:
update_cursor if $cursor_switch == true
Now all the time and code, I used the basic global switch of $cursor switch. That is a switch you can use in a map event. Like use the script call command and enter "$cursor_switch = true" to turn it on, and "$cursor_switch = nil" to turn it off. That means, you do not use the RPGMaker Switches to turn it on or off.
Using RMXP switches in this code can be problematic. That, I know.