rgss3_default_scripts 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
@@ -0,0 +1,87 @@
1
+ #==============================================================================
2
+ # ** Scene_Debug
3
+ #------------------------------------------------------------------------------
4
+ # This class performs debug screen processing.
5
+ #==============================================================================
6
+
7
+ class Scene_Debug < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_left_window
14
+ create_right_window
15
+ create_debug_help_window
16
+ end
17
+ #--------------------------------------------------------------------------
18
+ # * Termination Processing
19
+ #--------------------------------------------------------------------------
20
+ def terminate
21
+ super
22
+ #$game_map.refresh
23
+ end
24
+ #--------------------------------------------------------------------------
25
+ # * Create Left Window
26
+ #--------------------------------------------------------------------------
27
+ def create_left_window
28
+ @left_window = Window_DebugLeft.new(0, 0)
29
+ @left_window.set_handler(:ok, method(:on_left_ok))
30
+ @left_window.set_handler(:cancel, method(:return_scene))
31
+ end
32
+ #--------------------------------------------------------------------------
33
+ # * Create Right Window
34
+ #--------------------------------------------------------------------------
35
+ def create_right_window
36
+ wx = @left_window.width
37
+ ww = Graphics.width - wx
38
+ @right_window = Window_DebugRight.new(wx, 0, ww)
39
+ @right_window.set_handler(:cancel, method(:on_right_cancel))
40
+ @left_window.right_window = @right_window
41
+ end
42
+ #--------------------------------------------------------------------------
43
+ # * Create Help Window
44
+ #--------------------------------------------------------------------------
45
+ def create_debug_help_window
46
+ wx = @right_window.x
47
+ wy = @right_window.height
48
+ ww = @right_window.width
49
+ wh = Graphics.height - wy
50
+ @debug_help_window = Window_Base.new(wx, wy, ww, wh)
51
+ end
52
+ #--------------------------------------------------------------------------
53
+ # * Left [OK]
54
+ #--------------------------------------------------------------------------
55
+ def on_left_ok
56
+ refresh_help_window
57
+ @right_window.activate
58
+ @right_window.select(0)
59
+ end
60
+ #--------------------------------------------------------------------------
61
+ # * Right [Cancel]
62
+ #--------------------------------------------------------------------------
63
+ def on_right_cancel
64
+ @left_window.activate
65
+ @right_window.unselect
66
+ @debug_help_window.contents.clear
67
+ end
68
+ #--------------------------------------------------------------------------
69
+ # * Refresh Help Window
70
+ #--------------------------------------------------------------------------
71
+ def refresh_help_window
72
+ @debug_help_window.draw_text_ex(4, 0, help_text)
73
+ end
74
+ #--------------------------------------------------------------------------
75
+ # * Get Help Text
76
+ #--------------------------------------------------------------------------
77
+ def help_text
78
+ if @left_window.mode == :switch
79
+ "C (Enter) : ON / OFF"
80
+ else
81
+ "← (Left) : -1\n" +
82
+ "→ (Right) : +1\n" +
83
+ "L (Pageup) : -10\n" +
84
+ "R (Pagedown) : +10"
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,61 @@
1
+ #==============================================================================
2
+ # ** Scene_End
3
+ #------------------------------------------------------------------------------
4
+ # This class performs game over screen processing.
5
+ #==============================================================================
6
+
7
+ class Scene_End < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_command_window
14
+ end
15
+ #--------------------------------------------------------------------------
16
+ # * Pre-Termination Processing
17
+ #--------------------------------------------------------------------------
18
+ def pre_terminate
19
+ super
20
+ close_command_window
21
+ end
22
+ #--------------------------------------------------------------------------
23
+ # * Create Background
24
+ #--------------------------------------------------------------------------
25
+ def create_background
26
+ super
27
+ @background_sprite.tone.set(0, 0, 0, 128)
28
+ end
29
+ #--------------------------------------------------------------------------
30
+ # * Create Command Window
31
+ #--------------------------------------------------------------------------
32
+ def create_command_window
33
+ @command_window = Window_GameEnd.new
34
+ @command_window.set_handler(:to_title, method(:command_to_title))
35
+ @command_window.set_handler(:shutdown, method(:command_shutdown))
36
+ @command_window.set_handler(:cancel, method(:return_scene))
37
+ end
38
+ #--------------------------------------------------------------------------
39
+ # * Close Command Window
40
+ #--------------------------------------------------------------------------
41
+ def close_command_window
42
+ @command_window.close
43
+ update until @command_window.close?
44
+ end
45
+ #--------------------------------------------------------------------------
46
+ # * [Go to Title] Command
47
+ #--------------------------------------------------------------------------
48
+ def command_to_title
49
+ close_command_window
50
+ fadeout_all
51
+ SceneManager.goto(Scene_Title)
52
+ end
53
+ #--------------------------------------------------------------------------
54
+ # * [Shut Down] Command
55
+ #--------------------------------------------------------------------------
56
+ def command_shutdown
57
+ close_command_window
58
+ fadeout_all
59
+ SceneManager.exit
60
+ end
61
+ end
@@ -0,0 +1,144 @@
1
+ #==============================================================================
2
+ # ** Scene_Equip
3
+ #------------------------------------------------------------------------------
4
+ # This class performs the equipment screen processing.
5
+ #==============================================================================
6
+
7
+ class Scene_Equip < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_help_window
14
+ create_status_window
15
+ create_command_window
16
+ create_slot_window
17
+ create_item_window
18
+ end
19
+ #--------------------------------------------------------------------------
20
+ # * Create Status Window
21
+ #--------------------------------------------------------------------------
22
+ def create_status_window
23
+ @status_window = Window_EquipStatus.new(0, @help_window.height)
24
+ @status_window.viewport = @viewport
25
+ @status_window.actor = @actor
26
+ end
27
+ #--------------------------------------------------------------------------
28
+ # * Create Command Window
29
+ #--------------------------------------------------------------------------
30
+ def create_command_window
31
+ wx = @status_window.width
32
+ wy = @help_window.height
33
+ ww = Graphics.width - @status_window.width
34
+ @command_window = Window_EquipCommand.new(wx, wy, ww)
35
+ @command_window.viewport = @viewport
36
+ @command_window.help_window = @help_window
37
+ @command_window.set_handler(:equip, method(:command_equip))
38
+ @command_window.set_handler(:optimize, method(:command_optimize))
39
+ @command_window.set_handler(:clear, method(:command_clear))
40
+ @command_window.set_handler(:cancel, method(:return_scene))
41
+ @command_window.set_handler(:pagedown, method(:next_actor))
42
+ @command_window.set_handler(:pageup, method(:prev_actor))
43
+ end
44
+ #--------------------------------------------------------------------------
45
+ # * Create Slot Window
46
+ #--------------------------------------------------------------------------
47
+ def create_slot_window
48
+ wx = @status_window.width
49
+ wy = @command_window.y + @command_window.height
50
+ ww = Graphics.width - @status_window.width
51
+ @slot_window = Window_EquipSlot.new(wx, wy, ww)
52
+ @slot_window.viewport = @viewport
53
+ @slot_window.help_window = @help_window
54
+ @slot_window.status_window = @status_window
55
+ @slot_window.actor = @actor
56
+ @slot_window.set_handler(:ok, method(:on_slot_ok))
57
+ @slot_window.set_handler(:cancel, method(:on_slot_cancel))
58
+ end
59
+ #--------------------------------------------------------------------------
60
+ # * Create Item Window
61
+ #--------------------------------------------------------------------------
62
+ def create_item_window
63
+ wx = 0
64
+ wy = @slot_window.y + @slot_window.height
65
+ ww = Graphics.width
66
+ wh = Graphics.height - wy
67
+ @item_window = Window_EquipItem.new(wx, wy, ww, wh)
68
+ @item_window.viewport = @viewport
69
+ @item_window.help_window = @help_window
70
+ @item_window.status_window = @status_window
71
+ @item_window.actor = @actor
72
+ @item_window.set_handler(:ok, method(:on_item_ok))
73
+ @item_window.set_handler(:cancel, method(:on_item_cancel))
74
+ @slot_window.item_window = @item_window
75
+ end
76
+ #--------------------------------------------------------------------------
77
+ # * [Change Equipment] Command
78
+ #--------------------------------------------------------------------------
79
+ def command_equip
80
+ @slot_window.activate
81
+ @slot_window.select(0)
82
+ end
83
+ #--------------------------------------------------------------------------
84
+ # * [Ultimate Equipment] Command
85
+ #--------------------------------------------------------------------------
86
+ def command_optimize
87
+ Sound.play_equip
88
+ @actor.optimize_equipments
89
+ @status_window.refresh
90
+ @slot_window.refresh
91
+ @command_window.activate
92
+ end
93
+ #--------------------------------------------------------------------------
94
+ # * [Remove All] Command
95
+ #--------------------------------------------------------------------------
96
+ def command_clear
97
+ Sound.play_equip
98
+ @actor.clear_equipments
99
+ @status_window.refresh
100
+ @slot_window.refresh
101
+ @command_window.activate
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Slot [OK]
105
+ #--------------------------------------------------------------------------
106
+ def on_slot_ok
107
+ @item_window.activate
108
+ @item_window.select(0)
109
+ end
110
+ #--------------------------------------------------------------------------
111
+ # * Slot [Cancel]
112
+ #--------------------------------------------------------------------------
113
+ def on_slot_cancel
114
+ @slot_window.unselect
115
+ @command_window.activate
116
+ end
117
+ #--------------------------------------------------------------------------
118
+ # * Item [OK]
119
+ #--------------------------------------------------------------------------
120
+ def on_item_ok
121
+ Sound.play_equip
122
+ @actor.change_equip(@slot_window.index, @item_window.item)
123
+ @slot_window.activate
124
+ @slot_window.refresh
125
+ @item_window.unselect
126
+ @item_window.refresh
127
+ end
128
+ #--------------------------------------------------------------------------
129
+ # * Item [Cancel]
130
+ #--------------------------------------------------------------------------
131
+ def on_item_cancel
132
+ @slot_window.activate
133
+ @item_window.unselect
134
+ end
135
+ #--------------------------------------------------------------------------
136
+ # * Change Actors
137
+ #--------------------------------------------------------------------------
138
+ def on_actor_change
139
+ @status_window.actor = @actor
140
+ @slot_window.actor = @actor
141
+ @item_window.actor = @actor
142
+ @command_window.activate
143
+ end
144
+ end
@@ -0,0 +1,203 @@
1
+ #==============================================================================
2
+ # ** Scene_File
3
+ #------------------------------------------------------------------------------
4
+ # This class performs common processing for the save screen and load screen.
5
+ #==============================================================================
6
+
7
+ class Scene_File < Scene_MenuBase
8
+ #--------------------------------------------------------------------------
9
+ # * Start Processing
10
+ #--------------------------------------------------------------------------
11
+ def start
12
+ super
13
+ create_help_window
14
+ create_savefile_viewport
15
+ create_savefile_windows
16
+ init_selection
17
+ end
18
+ #--------------------------------------------------------------------------
19
+ # * Termination Processing
20
+ #--------------------------------------------------------------------------
21
+ def terminate
22
+ super
23
+ @savefile_viewport.dispose
24
+ @savefile_windows.each {|window| window.dispose }
25
+ end
26
+ #--------------------------------------------------------------------------
27
+ # * Frame Update
28
+ #--------------------------------------------------------------------------
29
+ def update
30
+ super
31
+ @savefile_windows.each {|window| window.update }
32
+ update_savefile_selection
33
+ end
34
+ #--------------------------------------------------------------------------
35
+ # * Create Help Window
36
+ #--------------------------------------------------------------------------
37
+ def create_help_window
38
+ @help_window = Window_Help.new(1)
39
+ @help_window.set_text(help_window_text)
40
+ end
41
+ #--------------------------------------------------------------------------
42
+ # * Get Help Window Text
43
+ #--------------------------------------------------------------------------
44
+ def help_window_text
45
+ return ""
46
+ end
47
+ #--------------------------------------------------------------------------
48
+ # * Create Save File Viewport
49
+ #--------------------------------------------------------------------------
50
+ def create_savefile_viewport
51
+ @savefile_viewport = Viewport.new
52
+ @savefile_viewport.rect.y = @help_window.height
53
+ @savefile_viewport.rect.height -= @help_window.height
54
+ end
55
+ #--------------------------------------------------------------------------
56
+ # * Create Save File Window
57
+ #--------------------------------------------------------------------------
58
+ def create_savefile_windows
59
+ @savefile_windows = Array.new(item_max) do |i|
60
+ Window_SaveFile.new(savefile_height, i)
61
+ end
62
+ @savefile_windows.each {|window| window.viewport = @savefile_viewport }
63
+ end
64
+ #--------------------------------------------------------------------------
65
+ # * Initialize Selection State
66
+ #--------------------------------------------------------------------------
67
+ def init_selection
68
+ @index = first_savefile_index
69
+ @savefile_windows[@index].selected = true
70
+ self.top_index = @index - visible_max / 2
71
+ ensure_cursor_visible
72
+ end
73
+ #--------------------------------------------------------------------------
74
+ # * Get Number of Items
75
+ #--------------------------------------------------------------------------
76
+ def item_max
77
+ DataManager.savefile_max
78
+ end
79
+ #--------------------------------------------------------------------------
80
+ # * Get Number of Save Files to Show on Screen
81
+ #--------------------------------------------------------------------------
82
+ def visible_max
83
+ return 4
84
+ end
85
+ #--------------------------------------------------------------------------
86
+ # * Get Height of Save File Window
87
+ #--------------------------------------------------------------------------
88
+ def savefile_height
89
+ @savefile_viewport.rect.height / visible_max
90
+ end
91
+ #--------------------------------------------------------------------------
92
+ # * Get File Index to Select First
93
+ #--------------------------------------------------------------------------
94
+ def first_savefile_index
95
+ return 0
96
+ end
97
+ #--------------------------------------------------------------------------
98
+ # * Get Current Index
99
+ #--------------------------------------------------------------------------
100
+ def index
101
+ @index
102
+ end
103
+ #--------------------------------------------------------------------------
104
+ # * Get Top Index
105
+ #--------------------------------------------------------------------------
106
+ def top_index
107
+ @savefile_viewport.oy / savefile_height
108
+ end
109
+ #--------------------------------------------------------------------------
110
+ # * Set Top Index
111
+ #--------------------------------------------------------------------------
112
+ def top_index=(index)
113
+ index = 0 if index < 0
114
+ index = item_max - visible_max if index > item_max - visible_max
115
+ @savefile_viewport.oy = index * savefile_height
116
+ end
117
+ #--------------------------------------------------------------------------
118
+ # * Get Bottom Index
119
+ #--------------------------------------------------------------------------
120
+ def bottom_index
121
+ top_index + visible_max - 1
122
+ end
123
+ #--------------------------------------------------------------------------
124
+ # * Set Bottom Index
125
+ #--------------------------------------------------------------------------
126
+ def bottom_index=(index)
127
+ self.top_index = index - (visible_max - 1)
128
+ end
129
+ #--------------------------------------------------------------------------
130
+ # * Update Save File Selection
131
+ #--------------------------------------------------------------------------
132
+ def update_savefile_selection
133
+ return on_savefile_ok if Input.trigger?(:C)
134
+ return on_savefile_cancel if Input.trigger?(:B)
135
+ update_cursor
136
+ end
137
+ #--------------------------------------------------------------------------
138
+ # * Save File [OK]
139
+ #--------------------------------------------------------------------------
140
+ def on_savefile_ok
141
+ end
142
+ #--------------------------------------------------------------------------
143
+ # * Save File [Cancel]
144
+ #--------------------------------------------------------------------------
145
+ def on_savefile_cancel
146
+ Sound.play_cancel
147
+ return_scene
148
+ end
149
+ #--------------------------------------------------------------------------
150
+ # * Update Cursor
151
+ #--------------------------------------------------------------------------
152
+ def update_cursor
153
+ last_index = @index
154
+ cursor_down (Input.trigger?(:DOWN)) if Input.repeat?(:DOWN)
155
+ cursor_up (Input.trigger?(:UP)) if Input.repeat?(:UP)
156
+ cursor_pagedown if Input.trigger?(:R)
157
+ cursor_pageup if Input.trigger?(:L)
158
+ if @index != last_index
159
+ Sound.play_cursor
160
+ @savefile_windows[last_index].selected = false
161
+ @savefile_windows[@index].selected = true
162
+ end
163
+ end
164
+ #--------------------------------------------------------------------------
165
+ # * Move Cursor Down
166
+ #--------------------------------------------------------------------------
167
+ def cursor_down(wrap)
168
+ @index = (@index + 1) % item_max if @index < item_max - 1 || wrap
169
+ ensure_cursor_visible
170
+ end
171
+ #--------------------------------------------------------------------------
172
+ # * Move Cursor Up
173
+ #--------------------------------------------------------------------------
174
+ def cursor_up(wrap)
175
+ @index = (@index - 1 + item_max) % item_max if @index > 0 || wrap
176
+ ensure_cursor_visible
177
+ end
178
+ #--------------------------------------------------------------------------
179
+ # * Move Cursor One Page Down
180
+ #--------------------------------------------------------------------------
181
+ def cursor_pagedown
182
+ if top_index + visible_max < item_max
183
+ self.top_index += visible_max
184
+ @index = [@index + visible_max, item_max - 1].min
185
+ end
186
+ end
187
+ #--------------------------------------------------------------------------
188
+ # * Move Cursor One Page Up
189
+ #--------------------------------------------------------------------------
190
+ def cursor_pageup
191
+ if top_index > 0
192
+ self.top_index -= visible_max
193
+ @index = [@index - visible_max, 0].max
194
+ end
195
+ end
196
+ #--------------------------------------------------------------------------
197
+ # * Scroll Cursor to Position Within Screen
198
+ #--------------------------------------------------------------------------
199
+ def ensure_cursor_visible
200
+ self.top_index = index if index < top_index
201
+ self.bottom_index = index if index > bottom_index
202
+ end
203
+ end