rmxp_extractor 1.7 → 1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (534) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +74 -74
  3. data/Data/Actors.rxdata +0 -0
  4. data/Data/Animations.rxdata +0 -0
  5. data/Data/Armors.rxdata +0 -0
  6. data/Data/Classes.rxdata +0 -0
  7. data/Data/CommonEvents.rxdata +0 -0
  8. data/Data/Enemies.rxdata +0 -0
  9. data/Data/Items.rxdata +0 -0
  10. data/Data/Map001.rxdata +0 -0
  11. data/Data/Map002.rxdata +0 -0
  12. data/Data/Map003.rxdata +0 -0
  13. data/Data/Map004.rxdata +0 -0
  14. data/Data/Map005.rxdata +0 -0
  15. data/Data/Map006.rxdata +0 -0
  16. data/Data/Map007.rxdata +0 -0
  17. data/Data/Map008.rxdata +0 -0
  18. data/Data/Map009.rxdata +0 -0
  19. data/Data/Map010.rxdata +0 -0
  20. data/Data/Map011.rxdata +0 -0
  21. data/Data/Map012.rxdata +0 -0
  22. data/Data/Map013.rxdata +0 -0
  23. data/Data/Map014.rxdata +0 -0
  24. data/Data/Map015.rxdata +0 -0
  25. data/Data/Map016.rxdata +0 -0
  26. data/Data/Map017.rxdata +0 -0
  27. data/Data/Map018.rxdata +0 -0
  28. data/Data/Map019.rxdata +0 -0
  29. data/Data/Map020.rxdata +0 -0
  30. data/Data/Map021.rxdata +0 -0
  31. data/Data/Map022.rxdata +0 -0
  32. data/Data/Map023.rxdata +0 -0
  33. data/Data/Map024.rxdata +0 -0
  34. data/Data/Map025.rxdata +0 -0
  35. data/Data/Map026.rxdata +0 -0
  36. data/Data/Map027.rxdata +0 -0
  37. data/Data/Map028.rxdata +0 -0
  38. data/Data/Map029.rxdata +0 -0
  39. data/Data/Map030.rxdata +0 -0
  40. data/Data/Map031.rxdata +0 -0
  41. data/Data/Map032.rxdata +0 -0
  42. data/Data/Map033.rxdata +0 -0
  43. data/Data/Map034.rxdata +0 -0
  44. data/Data/Map035.rxdata +0 -0
  45. data/Data/Map036.rxdata +0 -0
  46. data/Data/Map037.rxdata +0 -0
  47. data/Data/Map038.rxdata +0 -0
  48. data/Data/Map039.rxdata +0 -0
  49. data/Data/Map040.rxdata +0 -0
  50. data/Data/Map041.rxdata +0 -0
  51. data/Data/Map042.rxdata +0 -0
  52. data/Data/Map043.rxdata +0 -0
  53. data/Data/Map044.rxdata +0 -0
  54. data/Data/Map045.rxdata +0 -0
  55. data/Data/Map046.rxdata +0 -0
  56. data/Data/Map047.rxdata +0 -0
  57. data/Data/Map048.rxdata +0 -0
  58. data/Data/Map049.rxdata +0 -0
  59. data/Data/Map050.rxdata +0 -0
  60. data/Data/Map051.rxdata +0 -0
  61. data/Data/Map052.rxdata +0 -0
  62. data/Data/Map053.rxdata +0 -0
  63. data/Data/Map054.rxdata +0 -0
  64. data/Data/Map055.rxdata +0 -0
  65. data/Data/Map056.rxdata +0 -0
  66. data/Data/Map057.rxdata +0 -0
  67. data/Data/Map058.rxdata +0 -0
  68. data/Data/Map059.rxdata +0 -0
  69. data/Data/Map060.rxdata +0 -0
  70. data/Data/Map061.rxdata +0 -0
  71. data/Data/Map062.rxdata +0 -0
  72. data/Data/Map063.rxdata +0 -0
  73. data/Data/Map064.rxdata +0 -0
  74. data/Data/Map065.rxdata +0 -0
  75. data/Data/Map066.rxdata +0 -0
  76. data/Data/Map067.rxdata +0 -0
  77. data/Data/Map068.rxdata +0 -0
  78. data/Data/Map069.rxdata +0 -0
  79. data/Data/Map070.rxdata +0 -0
  80. data/Data/Map071.rxdata +0 -0
  81. data/Data/Map072.rxdata +0 -0
  82. data/Data/Map073.rxdata +0 -0
  83. data/Data/Map074.rxdata +0 -0
  84. data/Data/Map075.rxdata +0 -0
  85. data/Data/Map076.rxdata +0 -0
  86. data/Data/Map077.rxdata +0 -0
  87. data/Data/Map078.rxdata +0 -0
  88. data/Data/Map079.rxdata +0 -0
  89. data/Data/Map080.rxdata +0 -0
  90. data/Data/Map081.rxdata +0 -0
  91. data/Data/Map082.rxdata +0 -0
  92. data/Data/Map083.rxdata +0 -0
  93. data/Data/Map084.rxdata +0 -0
  94. data/Data/Map085.rxdata +0 -0
  95. data/Data/Map086.rxdata +0 -0
  96. data/Data/Map087.rxdata +0 -0
  97. data/Data/Map088.rxdata +0 -0
  98. data/Data/Map089.rxdata +0 -0
  99. data/Data/Map090.rxdata +0 -0
  100. data/Data/Map091.rxdata +0 -0
  101. data/Data/Map092.rxdata +0 -0
  102. data/Data/Map093.rxdata +0 -0
  103. data/Data/Map094.rxdata +0 -0
  104. data/Data/Map095.rxdata +0 -0
  105. data/Data/Map096.rxdata +0 -0
  106. data/Data/Map097.rxdata +0 -0
  107. data/Data/Map098.rxdata +0 -0
  108. data/Data/Map099.rxdata +0 -0
  109. data/Data/Map100.rxdata +0 -0
  110. data/Data/Map101.rxdata +0 -0
  111. data/Data/Map102.rxdata +0 -0
  112. data/Data/Map103.rxdata +0 -0
  113. data/Data/Map104.rxdata +0 -0
  114. data/Data/Map105.rxdata +0 -0
  115. data/Data/Map106.rxdata +0 -0
  116. data/Data/Map107.rxdata +0 -0
  117. data/Data/Map108.rxdata +0 -0
  118. data/Data/Map109.rxdata +0 -0
  119. data/Data/Map110.rxdata +0 -0
  120. data/Data/Map111.rxdata +0 -0
  121. data/Data/Map112.rxdata +0 -0
  122. data/Data/Map113.rxdata +0 -0
  123. data/Data/Map114.rxdata +0 -0
  124. data/Data/Map115.rxdata +0 -0
  125. data/Data/Map116.rxdata +0 -0
  126. data/Data/Map117.rxdata +0 -0
  127. data/Data/Map118.rxdata +0 -0
  128. data/Data/Map119.rxdata +0 -0
  129. data/Data/Map120.rxdata +0 -0
  130. data/Data/Map121.rxdata +0 -0
  131. data/Data/Map122.rxdata +0 -0
  132. data/Data/Map123.rxdata +0 -0
  133. data/Data/Map124.rxdata +0 -0
  134. data/Data/Map125.rxdata +0 -0
  135. data/Data/Map126.rxdata +0 -0
  136. data/Data/Map127.rxdata +0 -0
  137. data/Data/Map128.rxdata +0 -0
  138. data/Data/Map129.rxdata +0 -0
  139. data/Data/Map130.rxdata +0 -0
  140. data/Data/Map131.rxdata +0 -0
  141. data/Data/Map132.rxdata +0 -0
  142. data/Data/Map133.rxdata +0 -0
  143. data/Data/Map134.rxdata +0 -0
  144. data/Data/Map135.rxdata +0 -0
  145. data/Data/Map136.rxdata +0 -0
  146. data/Data/Map137.rxdata +0 -0
  147. data/Data/Map138.rxdata +0 -0
  148. data/Data/Map139.rxdata +0 -0
  149. data/Data/Map140.rxdata +0 -0
  150. data/Data/Map141.rxdata +0 -0
  151. data/Data/Map142.rxdata +0 -0
  152. data/Data/Map143.rxdata +0 -0
  153. data/Data/Map144.rxdata +0 -0
  154. data/Data/Map145.rxdata +0 -0
  155. data/Data/Map146.rxdata +0 -0
  156. data/Data/Map147.rxdata +0 -0
  157. data/Data/Map148.rxdata +0 -0
  158. data/Data/Map149.rxdata +0 -0
  159. data/Data/Map150.rxdata +0 -0
  160. data/Data/Map151.rxdata +0 -0
  161. data/Data/Map152.rxdata +0 -0
  162. data/Data/Map153.rxdata +0 -0
  163. data/Data/Map154.rxdata +0 -0
  164. data/Data/Map155.rxdata +0 -0
  165. data/Data/Map156.rxdata +0 -0
  166. data/Data/Map157.rxdata +0 -0
  167. data/Data/Map158.rxdata +0 -0
  168. data/Data/Map159.rxdata +0 -0
  169. data/Data/Map160.rxdata +0 -0
  170. data/Data/Map161.rxdata +0 -0
  171. data/Data/Map162.rxdata +0 -0
  172. data/Data/Map163.rxdata +0 -0
  173. data/Data/Map164.rxdata +0 -0
  174. data/Data/Map165.rxdata +0 -0
  175. data/Data/Map166.rxdata +0 -0
  176. data/Data/Map167.rxdata +0 -0
  177. data/Data/Map168.rxdata +0 -0
  178. data/Data/Map169.rxdata +0 -0
  179. data/Data/Map170.rxdata +0 -0
  180. data/Data/Map171.rxdata +0 -0
  181. data/Data/Map172.rxdata +0 -0
  182. data/Data/Map173.rxdata +0 -0
  183. data/Data/Map174.rxdata +0 -0
  184. data/Data/Map175.rxdata +0 -0
  185. data/Data/Map176.rxdata +0 -0
  186. data/Data/Map177.rxdata +0 -0
  187. data/Data/Map178.rxdata +0 -0
  188. data/Data/Map179.rxdata +0 -0
  189. data/Data/Map180.rxdata +0 -0
  190. data/Data/Map181.rxdata +0 -0
  191. data/Data/Map182.rxdata +0 -0
  192. data/Data/Map183.rxdata +0 -0
  193. data/Data/Map184.rxdata +0 -0
  194. data/Data/Map185.rxdata +0 -0
  195. data/Data/Map186.rxdata +0 -0
  196. data/Data/Map187.rxdata +0 -0
  197. data/Data/Map188.rxdata +0 -0
  198. data/Data/Map189.rxdata +0 -0
  199. data/Data/Map190.rxdata +0 -0
  200. data/Data/Map191.rxdata +0 -0
  201. data/Data/Map192.rxdata +0 -0
  202. data/Data/Map193.rxdata +0 -0
  203. data/Data/Map194.rxdata +0 -0
  204. data/Data/Map195.rxdata +0 -0
  205. data/Data/Map196.rxdata +0 -0
  206. data/Data/Map197.rxdata +0 -0
  207. data/Data/Map198.rxdata +0 -0
  208. data/Data/Map199.rxdata +0 -0
  209. data/Data/Map200.rxdata +0 -0
  210. data/Data/Map201.rxdata +0 -0
  211. data/Data/Map202.rxdata +0 -0
  212. data/Data/Map203.rxdata +0 -0
  213. data/Data/Map204.rxdata +0 -0
  214. data/Data/Map205.rxdata +0 -0
  215. data/Data/Map206.rxdata +0 -0
  216. data/Data/Map207.rxdata +0 -0
  217. data/Data/Map208.rxdata +0 -0
  218. data/Data/Map209.rxdata +0 -0
  219. data/Data/Map210.rxdata +0 -0
  220. data/Data/Map211.rxdata +0 -0
  221. data/Data/Map212.rxdata +0 -0
  222. data/Data/Map213.rxdata +0 -0
  223. data/Data/Map214.rxdata +0 -0
  224. data/Data/Map215.rxdata +0 -0
  225. data/Data/Map216.rxdata +0 -0
  226. data/Data/Map217.rxdata +0 -0
  227. data/Data/Map218.rxdata +0 -0
  228. data/Data/Map219.rxdata +0 -0
  229. data/Data/Map220.rxdata +0 -0
  230. data/Data/Map221.rxdata +0 -0
  231. data/Data/Map222.rxdata +0 -0
  232. data/Data/Map223.rxdata +0 -0
  233. data/Data/Map224.rxdata +0 -0
  234. data/Data/Map225.rxdata +0 -0
  235. data/Data/Map226.rxdata +0 -0
  236. data/Data/Map227.rxdata +0 -0
  237. data/Data/Map228.rxdata +0 -0
  238. data/Data/Map229.rxdata +0 -0
  239. data/Data/Map230.rxdata +0 -0
  240. data/Data/Map231.rxdata +0 -0
  241. data/Data/Map232.rxdata +0 -0
  242. data/Data/Map233.rxdata +0 -0
  243. data/Data/Map234.rxdata +0 -0
  244. data/Data/Map235.rxdata +0 -0
  245. data/Data/Map236.rxdata +0 -0
  246. data/Data/Map237.rxdata +0 -0
  247. data/Data/Map238.rxdata +0 -0
  248. data/Data/Map239.rxdata +0 -0
  249. data/Data/Map240.rxdata +0 -0
  250. data/Data/Map241.rxdata +0 -0
  251. data/Data/Map242.rxdata +0 -0
  252. data/Data/Map243.rxdata +0 -0
  253. data/Data/Map244.rxdata +0 -0
  254. data/Data/Map245.rxdata +0 -0
  255. data/Data/Map246.rxdata +0 -0
  256. data/Data/Map247.rxdata +0 -0
  257. data/Data/Map248.rxdata +0 -0
  258. data/Data/Map249.rxdata +0 -0
  259. data/Data/Map250.rxdata +0 -0
  260. data/Data/Map251.rxdata +0 -0
  261. data/Data/Map252.rxdata +0 -0
  262. data/Data/Map253.rxdata +0 -0
  263. data/Data/Map254.rxdata +0 -0
  264. data/Data/Map255.rxdata +0 -0
  265. data/Data/Map256.rxdata +0 -0
  266. data/Data/Map257.rxdata +0 -0
  267. data/Data/Map258.rxdata +0 -0
  268. data/Data/Map259.rxdata +0 -0
  269. data/Data/Map260.rxdata +0 -0
  270. data/Data/Map261.rxdata +0 -0
  271. data/Data/Map262.rxdata +0 -0
  272. data/Data/Map263.rxdata +0 -0
  273. data/Data/MapInfos.rxdata +0 -0
  274. data/Data/Scripts.rxdata +0 -0
  275. data/Data/Skills.rxdata +0 -0
  276. data/Data/States.rxdata +0 -0
  277. data/Data/System.rxdata +0 -0
  278. data/Data/Tilesets.rxdata +0 -0
  279. data/Data/Troops.rxdata +0 -0
  280. data/Data/Weapons.rxdata +0 -0
  281. data/Data/xScripts.rxdata +0 -0
  282. data/Gemfile +13 -13
  283. data/LICENSE.txt +21 -21
  284. data/README.md +35 -35
  285. data/Rakefile +6 -6
  286. data/Scripts/Credits_Message.rb +259 -0
  287. data/Scripts/Data_FastTravel.rb +50 -0
  288. data/Scripts/Data_Footsteps.rb +77 -0
  289. data/Scripts/Data_Item.rb +50 -0
  290. data/Scripts/Data_SpecialEventData.rb +60 -0
  291. data/Scripts/Demo.rb +7 -0
  292. data/Scripts/Desktop_Message.rb +210 -0
  293. data/Scripts/Doc_Message.rb +273 -0
  294. data/Scripts/EdText.rb +50 -0
  295. data/Scripts/Ed_Message.rb +234 -0
  296. data/Scripts/FastTravel.rb +175 -0
  297. data/Scripts/Game_Actor.rb +156 -0
  298. data/Scripts/Game_Actors.rb +28 -0
  299. data/Scripts/Game_BattleAction.rb +145 -0
  300. data/Scripts/Game_Battler 1.rb +307 -0
  301. data/Scripts/Game_Battler 2.rb +294 -0
  302. data/Scripts/Game_Battler 3.rb +354 -0
  303. data/Scripts/Game_Character 1.rb +291 -0
  304. data/Scripts/Game_Character 2.rb +355 -0
  305. data/Scripts/Game_Character 3.rb +505 -0
  306. data/Scripts/Game_CommonEvent.rb +70 -0
  307. data/Scripts/Game_Enemy.rb +317 -0
  308. data/Scripts/Game_Event.rb +264 -0
  309. data/Scripts/Game_FastTravel.rb +40 -0
  310. data/Scripts/Game_Follower.rb +76 -0
  311. data/Scripts/Game_Light.rb +13 -0
  312. data/Scripts/Game_Map.rb +551 -0
  313. data/Scripts/Game_Oneshot.rb +83 -0
  314. data/Scripts/Game_Party.rb +380 -0
  315. data/Scripts/Game_Picture.rb +164 -0
  316. data/Scripts/Game_Player.rb +298 -0
  317. data/Scripts/Game_Screen.rb +148 -0
  318. data/Scripts/Game_SelfSwitches.rb +30 -0
  319. data/Scripts/Game_Switches.rb +45 -0
  320. data/Scripts/Game_System.rb +210 -0
  321. data/Scripts/Game_Temp.rb +145 -0
  322. data/Scripts/Game_Variables.rb +36 -0
  323. data/Scripts/Interpreter 1.rb +320 -0
  324. data/Scripts/Interpreter 2.rb +286 -0
  325. data/Scripts/Interpreter 3.rb +474 -0
  326. data/Scripts/Interpreter 4.rb +327 -0
  327. data/Scripts/Interpreter 5.rb +448 -0
  328. data/Scripts/Interpreter 6.rb +307 -0
  329. data/Scripts/Interpreter 7.rb +282 -0
  330. data/Scripts/Main.rb +46 -9
  331. data/Scripts/Particles.rb +141 -0
  332. data/Scripts/Persistent.rb +71 -0
  333. data/Scripts/Puzzle_Film.rb +14 -0
  334. data/Scripts/Puzzle_Pixel.rb +210 -0
  335. data/Scripts/Puzzle_Safe.rb +152 -0
  336. data/Scripts/Puzzle_Sokoban.rb +14 -0
  337. data/Scripts/RPG.rb +55 -0
  338. data/Scripts/SaveLoad.rb +275 -0
  339. data/Scripts/Scene_Debug.rb +190 -0
  340. data/Scripts/Scene_End.rb +108 -0
  341. data/Scripts/Scene_Equip.rb +222 -0
  342. data/Scripts/Scene_File.rb +111 -0
  343. data/Scripts/Scene_Item.rb +205 -0
  344. data/Scripts/Scene_Load.rb +106 -0
  345. data/Scripts/Scene_Map.rb +540 -0
  346. data/Scripts/Scene_Menu.rb +213 -0
  347. data/Scripts/Scene_Name.rb +113 -0
  348. data/Scripts/Scene_Save.rb +88 -0
  349. data/Scripts/Scene_Skill.rb +232 -0
  350. data/Scripts/Scene_Status.rb +78 -0
  351. data/Scripts/Scene_Title.rb +237 -0
  352. data/Scripts/Script.rb +780 -0
  353. data/Scripts/Sprite_Battler.rb +131 -0
  354. data/Scripts/Sprite_Character.rb +192 -0
  355. data/Scripts/Sprite_Footprint.rb +35 -0
  356. data/Scripts/Sprite_Footsplash.rb +54 -0
  357. data/Scripts/Sprite_Light.rb +18 -0
  358. data/Scripts/Sprite_MapText.rb +63 -0
  359. data/Scripts/Sprite_Picture.rb +72 -0
  360. data/Scripts/Sprite_Timer.rb +52 -0
  361. data/Scripts/Spriteset_Map.rb +370 -0
  362. data/Scripts/Window_Base.rb +327 -0
  363. data/Scripts/Window_BattleResult.rb +51 -0
  364. data/Scripts/Window_BattleStatus.rb +62 -0
  365. data/Scripts/Window_Command.rb +49 -0
  366. data/Scripts/Window_DebugLeft.rb +57 -0
  367. data/Scripts/Window_DebugRight.rb +69 -0
  368. data/Scripts/Window_EquipItem.rb +94 -0
  369. data/Scripts/Window_EquipLeft.rb +61 -0
  370. data/Scripts/Window_EquipRight.rb +56 -0
  371. data/Scripts/Window_Gold.rb +27 -0
  372. data/Scripts/Window_Help.rb +33 -0
  373. data/Scripts/Window_InputNumber.rb +111 -0
  374. data/Scripts/Window_Item.rb +229 -0
  375. data/Scripts/Window_MainMenu.rb +150 -0
  376. data/Scripts/Window_MenuStatus.rb +48 -0
  377. data/Scripts/Window_Message.rb +459 -0
  378. data/Scripts/Window_NameEdit.rb +108 -0
  379. data/Scripts/Window_NameInput.rb +262 -0
  380. data/Scripts/Window_PartyCommand.rb +42 -0
  381. data/Scripts/Window_PlayTime.rb +40 -0
  382. data/Scripts/Window_SaveFile.rb +91 -0
  383. data/Scripts/Window_Selectable.rb +203 -0
  384. data/Scripts/Window_Settings.rb +469 -0
  385. data/Scripts/Window_ShopBuy.rb +93 -0
  386. data/Scripts/Window_ShopCommand.rb +37 -0
  387. data/Scripts/Window_ShopNumber.rb +87 -0
  388. data/Scripts/Window_ShopSell.rb +94 -0
  389. data/Scripts/Window_ShopStatus.rb +107 -0
  390. data/Scripts/Window_Skill.rb +83 -0
  391. data/Scripts/Window_SkillStatus.rb +28 -0
  392. data/Scripts/Window_Status.rb +64 -0
  393. data/Scripts/Window_Steps.rb +26 -0
  394. data/Scripts/Window_Target.rb +49 -0
  395. data/Scripts/_scripts.txt +111 -1
  396. data/Scripts/i18n_English.rb +59 -0
  397. data/Scripts/i18n_Language.rb +130 -0
  398. data/bin/rmxp_extractor +13 -13
  399. data/bin/setup +8 -8
  400. data/diff_check.rb +13 -13
  401. data/lib/rmxp_extractor/classnames.rb +245 -244
  402. data/lib/rmxp_extractor/data_export.rb +82 -82
  403. data/lib/rmxp_extractor/data_import.rb +69 -69
  404. data/lib/rmxp_extractor/ron.rb +144 -144
  405. data/lib/rmxp_extractor/script_handler.rb +85 -85
  406. data/lib/rmxp_extractor/version.rb +3 -3
  407. data/lib/rmxp_extractor.rb +46 -46
  408. data/rmxp_extractor.gemspec +30 -30
  409. data/spec/spec_helper.rb +100 -100
  410. metadata +112 -126
  411. data/Data/Map-1.rxdata +0 -0
  412. data/Data/Map-327.rxdata +0 -0
  413. data/Data/Map264.rxdata +0 -0
  414. data/Data/Map265.rxdata +0 -0
  415. data/Data/Map266.rxdata +0 -0
  416. data/Data/Map267.rxdata +0 -0
  417. data/Data/Map268.rxdata +0 -0
  418. data/Data/Map269.rxdata +0 -0
  419. data/Data/Map270.rxdata +0 -0
  420. data/Data/Map271.rxdata +0 -0
  421. data/Data/Map272.rxdata +0 -0
  422. data/Data/Map273.rxdata +0 -0
  423. data/Data/Map274.rxdata +0 -0
  424. data/Data/Map275.rxdata +0 -0
  425. data/Data/Map276.rxdata +0 -0
  426. data/Data/Map277.rxdata +0 -0
  427. data/Data/Map278.rxdata +0 -0
  428. data/Data/Map279.rxdata +0 -0
  429. data/Data/Map280.rxdata +0 -0
  430. data/Data/Map281.rxdata +0 -0
  431. data/Data/Map282.rxdata +0 -0
  432. data/Data/Map283.rxdata +0 -0
  433. data/Data/Map284.rxdata +0 -0
  434. data/Data/Map285.rxdata +0 -0
  435. data/Data/Map286.rxdata +0 -0
  436. data/Data/Map287.rxdata +0 -0
  437. data/Data/Map288.rxdata +0 -0
  438. data/Data/Map289.rxdata +0 -0
  439. data/Data/Map290.rxdata +0 -0
  440. data/Data/Map291.rxdata +0 -0
  441. data/Data/Map292.rxdata +0 -0
  442. data/Data/Map293.rxdata +0 -0
  443. data/Data/Map294.rxdata +0 -0
  444. data/Data/Map295.rxdata +0 -0
  445. data/Data/Map296.rxdata +0 -0
  446. data/Data/Map297.rxdata +0 -0
  447. data/Data/Map298.rxdata +0 -0
  448. data/Data/Map299.rxdata +0 -0
  449. data/Data/Map300.rxdata +0 -0
  450. data/Data/Map301.rxdata +0 -0
  451. data/Data/Map302.rxdata +0 -0
  452. data/Data/Map303.rxdata +0 -0
  453. data/Data/Map304.rxdata +0 -0
  454. data/Data/Map305.rxdata +0 -0
  455. data/Data/Map306.rxdata +0 -0
  456. data/Data/Map307.rxdata +0 -0
  457. data/Data/Map308.rxdata +0 -0
  458. data/Data/Map309.rxdata +0 -0
  459. data/Data/Map310.rxdata +0 -0
  460. data/Data/Map311.rxdata +0 -0
  461. data/Data/Map312.rxdata +0 -0
  462. data/Data/Map313.rxdata +0 -0
  463. data/Data/Map314.rxdata +0 -0
  464. data/Data/Map315.rxdata +0 -0
  465. data/Data/Map316.rxdata +0 -0
  466. data/Data/Map317.rxdata +0 -0
  467. data/Data/Map318.rxdata +0 -0
  468. data/Data/Map319.rxdata +0 -0
  469. data/Data/Map320.rxdata +0 -0
  470. data/Data/Map321.rxdata +0 -0
  471. data/Data/Map322.rxdata +0 -0
  472. data/Data/Map323.rxdata +0 -0
  473. data/Data/Map324.rxdata +0 -0
  474. data/Data/Map325.rxdata +0 -0
  475. data/Data/Map326.rxdata +0 -0
  476. data/Data/Map327.rxdata +0 -0
  477. data/Data/Map328.rxdata +0 -0
  478. data/Data/Map329.rxdata +0 -0
  479. data/Data/Map330.rxdata +0 -0
  480. data/Data/Map331.rxdata +0 -0
  481. data/Data/Map332.rxdata +0 -0
  482. data/Data/Map333.rxdata +0 -0
  483. data/Data/Map334.rxdata +0 -0
  484. data/Data/Map335.rxdata +0 -0
  485. data/Data/Map336.rxdata +0 -0
  486. data/Data/Map337.rxdata +0 -0
  487. data/Data/Map338.rxdata +0 -0
  488. data/Data/Map339.rxdata +0 -0
  489. data/Data/Map340.rxdata +0 -0
  490. data/Data/Map341.rxdata +0 -0
  491. data/Data/Map342.rxdata +0 -0
  492. data/Data/Map343.rxdata +0 -0
  493. data/Data/Map344.rxdata +0 -0
  494. data/Data/Map345.rxdata +0 -0
  495. data/Data/Map346.rxdata +0 -0
  496. data/Data/Map347.rxdata +0 -0
  497. data/Data/Map348.rxdata +0 -0
  498. data/Data/Map349.rxdata +0 -0
  499. data/Data/Map350.rxdata +0 -0
  500. data/Data/Map351.rxdata +0 -0
  501. data/Data/Map352.rxdata +0 -0
  502. data/Data/Map353.rxdata +0 -0
  503. data/Data/Map354.rxdata +0 -0
  504. data/Data/Map355.rxdata +0 -0
  505. data/Data/Map356.rxdata +0 -0
  506. data/Data/Map357.rxdata +0 -0
  507. data/Data/Map358.rxdata +0 -0
  508. data/Data/Map359.rxdata +0 -0
  509. data/Data/Map360.rxdata +0 -0
  510. data/Data/Map361.rxdata +0 -0
  511. data/Data/Map362.rxdata +0 -0
  512. data/Data/Map363.rxdata +0 -0
  513. data/Data/Map364.rxdata +0 -0
  514. data/Data/Map365.rxdata +0 -0
  515. data/Data/Map366.rxdata +0 -0
  516. data/Data/Map367.rxdata +0 -0
  517. data/Data/Map368.rxdata +0 -0
  518. data/Data/Map369.rxdata +0 -0
  519. data/Data/Map370.rxdata +0 -0
  520. data/Data/Map371.rxdata +0 -0
  521. data/Data/Map372.rxdata +0 -0
  522. data/Data/Map373.rxdata +0 -0
  523. data/Data/Map374.rxdata +0 -0
  524. data/Data/Map375.rxdata +0 -0
  525. data/Data/Map376.rxdata +0 -0
  526. data/Data/Map377.rxdata +0 -0
  527. data/Data/Map378.rxdata +0 -0
  528. data/Data/Map379.rxdata +0 -0
  529. data/Data/Map380.rxdata +0 -0
  530. data/Data/Map381.rxdata +0 -0
  531. data/Data/Map382.rxdata +0 -0
  532. data/Data/Map383.rxdata +0 -0
  533. data/Data/Map384.rxdata +0 -0
  534. data/Data/Map385.rxdata +0 -0
@@ -0,0 +1,262 @@
1
+ #==============================================================================
2
+ # ** Window_NameInput
3
+ #------------------------------------------------------------------------------
4
+ # This window is used to select text characters on the input name screen.
5
+ #==============================================================================
6
+
7
+ class NameInputMode
8
+ attr_reader :names
9
+ attr_reader :size
10
+ attr_accessor :index
11
+ attr_accessor :count
12
+
13
+ def initialize(names, bitmap)
14
+ @names = names
15
+ @size = names.map { |n| bitmap.text_size(n).width }.max
16
+ @index = 0
17
+ @count = 0
18
+ end
19
+
20
+ def cycle
21
+ @index = (@index + 1) % @count
22
+ end
23
+
24
+ def label
25
+ @names[(@index + 1) % @count]
26
+ end
27
+ end
28
+
29
+ class Window_NameInput < Window_Base
30
+ BUTTON_BUFFER = 8
31
+ BUTTON_PADDING = 16
32
+
33
+ attr_accessor :index
34
+ attr_accessor :ok_text
35
+ attr_accessor :character_tables
36
+ attr_accessor :table_height
37
+ attr_accessor :char_w
38
+ attr_accessor :char_h
39
+
40
+ #--------------------------------------------------------------------------
41
+ # * Object Initialization
42
+ #--------------------------------------------------------------------------
43
+ def initialize
44
+ super(0, 128, 640, 352)
45
+ self.contents = Bitmap.new(width - 32, height - 32)
46
+ @index = 0
47
+ @ok_text = "OK"
48
+ @char_w = 28
49
+ @char_h = 32
50
+ end
51
+ def init
52
+ # Create dimension information
53
+ @table_size = @character_tables.values.first.size
54
+ @table_width = @table_size / @table_height
55
+ @start_x = ((width - 32) - @table_width * @char_w) / 2
56
+ @start_y = ((height - 32) - (@table_height + 1) * @char_h + BUTTON_BUFFER) / 2
57
+ @ok_text_size = self.contents.text_size(@ok_text).width
58
+
59
+ # Initialize mode information
60
+ @character_tables.each_key do |key|
61
+ key.each_with_index do |new_max, i|
62
+ @modes[i].count = new_max + 1 if @modes[i].count < new_max + 1
63
+ end
64
+ end
65
+
66
+ refresh
67
+ update_cursor_rect
68
+ self
69
+ end
70
+ #--------------------------------------------------------------------------
71
+ # * Properties
72
+ #--------------------------------------------------------------------------
73
+ def set_mode_buttons(buttons)
74
+ @modes = buttons.map { |n| NameInputMode.new(n, self.contents) }
75
+ end
76
+ #--------------------------------------------------------------------------
77
+ # * Text Character Acquisition
78
+ #--------------------------------------------------------------------------
79
+ def character
80
+ return current_table[@index]
81
+ end
82
+ #--------------------------------------------------------------------------
83
+ # * Mode Button Cursor Positioning
84
+ #--------------------------------------------------------------------------
85
+ def mode_button_slot
86
+ pos = @index % @table_width
87
+ x = 0
88
+ @modes.each_with_index do |mode, i|
89
+ size = mode.size + BUTTON_PADDING * 2
90
+ if pos * @char_w >= x && pos * @char_w <= x + size
91
+ if (pos + 1) * @char_w - BUTTON_PADDING <= x + size || i < @modes.size - 1
92
+ return i
93
+ end
94
+ end
95
+ x += size
96
+ end
97
+ return -1
98
+ end
99
+ #--------------------------------------------------------------------------
100
+ # * Cycle Current Mode
101
+ #--------------------------------------------------------------------------
102
+ def cycle_mode(slot)
103
+ @modes[slot].cycle
104
+ refresh
105
+ end
106
+ #--------------------------------------------------------------------------
107
+ # * Get Character Table for Mode
108
+ #--------------------------------------------------------------------------
109
+ def current_table
110
+ @character_tables[@modes.map { |m| m.index }]
111
+ end
112
+ #--------------------------------------------------------------------------
113
+ # * Refresh
114
+ #--------------------------------------------------------------------------
115
+ def refresh
116
+ self.contents.clear
117
+ delete_text = tr("Press X to delete characters (default controls)")
118
+ delete_width = self.contents.text_size(delete_text).width
119
+ delete_height = self.contents.text_size(delete_text).height
120
+ self.contents.draw_text((self.contents.width - delete_width)/2, self.contents.height - (delete_height+2), delete_width, delete_height, delete_text, 1)
121
+ table = current_table
122
+ @table_size.times do |i|
123
+ x = @start_x + (i % @table_width) * @char_w
124
+ y = @start_y + (i / @table_width) * @char_h
125
+ self.contents.draw_text(x, y, @char_w, @char_h, table[i], 1)
126
+ end
127
+ # OK button
128
+ self.contents.draw_text(@start_x + @table_width * @char_w - @ok_text_size - BUTTON_PADDING,
129
+ @start_y + @table_height * @char_h + BUTTON_BUFFER,
130
+ @ok_text_size, @char_h, @ok_text, 1)
131
+ # Mode buttons
132
+ x = @start_x + BUTTON_PADDING
133
+ @modes.each do |mode|
134
+ self.contents.draw_text(x, @start_y + @table_height * @char_h + BUTTON_BUFFER,
135
+ mode.size, @char_h, mode.label, 1)
136
+ x += BUTTON_PADDING * 2 + mode.size
137
+ end
138
+ end
139
+ #--------------------------------------------------------------------------
140
+ # * Cursor Rectangle Update
141
+ #--------------------------------------------------------------------------
142
+ def update_cursor_rect
143
+ if @index >= @table_size
144
+ # Cursor is positioned on OK or mode buttons
145
+ slot = mode_button_slot
146
+ if slot >= 0
147
+ # Cursor is positioned on mode button
148
+ x = @start_x
149
+ @modes.each_with_index do |mode, i|
150
+ if slot == i
151
+ self.cursor_rect.set(x, @start_y + @table_height * @char_h + BUTTON_BUFFER,
152
+ mode.size + BUTTON_PADDING * 2, @char_h)
153
+ break
154
+ end
155
+ x += BUTTON_PADDING * 2 + mode.size
156
+ end
157
+ else
158
+ # Cursor is positioned on OK button
159
+ self.cursor_rect.set(@start_x + @table_width * @char_w - @ok_text_size - BUTTON_PADDING * 2,
160
+ @start_y + @table_height * @char_h + BUTTON_BUFFER,
161
+ @ok_text_size + 32, @char_h)
162
+ end
163
+ else
164
+ # Cursor is not positioned on OK or mode buttons
165
+ x = @start_x + (@index % @table_width) * @char_w
166
+ y = @start_y + (@index / @table_width) * @char_h
167
+ self.cursor_rect.set(x, y, @char_w, @char_h)
168
+ end
169
+ end
170
+ #--------------------------------------------------------------------------
171
+ # * Frame Update
172
+ #--------------------------------------------------------------------------
173
+ def update
174
+ super
175
+ if @index >= @table_size
176
+ # Cursor is positioned on OK or mode buttons
177
+ if Input.repeat?(Input::LEFT)
178
+ # If directional button pressed down is not a repeat, or
179
+ # cursor is not positioned on the left edge
180
+ old_slot = mode_button_slot
181
+ if Input.trigger?(Input::LEFT) || old_slot != 0
182
+ $game_system.se_play($data_system.cursor_se)
183
+ if old_slot == 0
184
+ @index = @table_size + @table_width - 1
185
+ else
186
+ loop do
187
+ @index -= 1
188
+ break if old_slot != mode_button_slot
189
+ end
190
+ end
191
+ end
192
+ end
193
+ if Input.repeat?(Input::RIGHT)
194
+ # If directional button pressed down is not a repeat, or
195
+ # cursor is not positioned on the right edge
196
+ old_slot = mode_button_slot
197
+ if Input.trigger?(Input::RIGHT) || old_slot != -1
198
+ $game_system.se_play($data_system.cursor_se)
199
+ if old_slot == -1
200
+ @index = @table_size
201
+ else
202
+ loop do
203
+ @index += 1
204
+ break if old_slot != mode_button_slot
205
+ end
206
+ end
207
+ end
208
+ end
209
+ if Input.trigger?(Input::DOWN)
210
+ $game_system.se_play($data_system.cursor_se)
211
+ @index -= @table_size
212
+ end
213
+ if Input.repeat?(Input::UP)
214
+ $game_system.se_play($data_system.cursor_se)
215
+ @index -= @table_width
216
+ end
217
+ else
218
+ # Cursor is not positioned on OK or mode buttons
219
+ if Input.repeat?(Input::RIGHT)
220
+ # If directional button pressed down is not a repeat, or
221
+ # cursor is not positioned on the right edge
222
+ if Input.trigger?(Input::RIGHT) || @index % @table_width < @table_width - 1
223
+ $game_system.se_play($data_system.cursor_se)
224
+ if @index % @table_width < @table_width - 1
225
+ @index += 1
226
+ else
227
+ @index -= @table_width - 1
228
+ end
229
+ end
230
+ end
231
+ if Input.repeat?(Input::LEFT)
232
+ # If directional button pressed down is not a repeat, or
233
+ # cursor is not positioned on the left edge
234
+ if Input.trigger?(Input::LEFT) || @index % @table_width > 0
235
+ $game_system.se_play($data_system.cursor_se)
236
+ if @index % @table_width > 0
237
+ @index -= 1
238
+ else
239
+ @index += @table_width - 1
240
+ end
241
+ end
242
+ end
243
+ if Input.repeat?(Input::DOWN)
244
+ $game_system.se_play($data_system.cursor_se)
245
+ @index += @table_width
246
+ end
247
+ if Input.repeat?(Input::UP)
248
+ # If directional button pressed down is not a repeat, or
249
+ # cursor is not positioned on the upper edge
250
+ if Input.trigger?(Input::UP) || @index >= @table_width
251
+ $game_system.se_play($data_system.cursor_se)
252
+ if @index >= @table_width
253
+ @index -= @table_width
254
+ else
255
+ @index += @table_size
256
+ end
257
+ end
258
+ end
259
+ end
260
+ update_cursor_rect
261
+ end
262
+ end
@@ -0,0 +1,42 @@
1
+ #==============================================================================
2
+ # ** Window_PartyCommand
3
+ #------------------------------------------------------------------------------
4
+ # This window is used to select whether to fight or escape on the battle
5
+ # screen.
6
+ #==============================================================================
7
+
8
+ class Window_PartyCommand < Window_Selectable
9
+ #--------------------------------------------------------------------------
10
+ # * Object Initialization
11
+ #--------------------------------------------------------------------------
12
+ def initialize
13
+ super(0, 0, 640, 64)
14
+ self.contents = Bitmap.new(width - 32, height - 32)
15
+ self.back_opacity = 160
16
+ @commands = ["Fight", "Escape"]
17
+ @item_max = 2
18
+ @column_max = 2
19
+ draw_item(0, normal_color)
20
+ draw_item(1, $game_temp.battle_can_escape ? normal_color : disabled_color)
21
+ self.active = false
22
+ self.visible = false
23
+ self.index = 0
24
+ end
25
+ #--------------------------------------------------------------------------
26
+ # * Draw Item
27
+ # index : item number
28
+ # color : text character color
29
+ #--------------------------------------------------------------------------
30
+ def draw_item(index, color)
31
+ self.contents.font.color = color
32
+ rect = Rect.new(160 + index * 160 + 4, 0, 128 - 10, 32)
33
+ self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
34
+ self.contents.draw_text(rect, @commands[index], 1)
35
+ end
36
+ #--------------------------------------------------------------------------
37
+ # * Cursor Rectangle Update
38
+ #--------------------------------------------------------------------------
39
+ def update_cursor_rect
40
+ self.cursor_rect.set(160 + index * 160, 0, 128, 32)
41
+ end
42
+ end
@@ -0,0 +1,40 @@
1
+ #==============================================================================
2
+ # ** Window_PlayTime
3
+ #------------------------------------------------------------------------------
4
+ # This window displays play time on the menu screen.
5
+ #==============================================================================
6
+
7
+ class Window_PlayTime < Window_Base
8
+ #--------------------------------------------------------------------------
9
+ # * Object Initialization
10
+ #--------------------------------------------------------------------------
11
+ def initialize
12
+ super(0, 0, 160, 96)
13
+ self.contents = Bitmap.new(width - 32, height - 32)
14
+ refresh
15
+ end
16
+ #--------------------------------------------------------------------------
17
+ # * Refresh
18
+ #--------------------------------------------------------------------------
19
+ def refresh
20
+ self.contents.clear
21
+ self.contents.font.color = system_color
22
+ self.contents.draw_text(4, 0, 120, 32, "Play Time")
23
+ @total_sec = Graphics.frame_count / Graphics.frame_rate
24
+ hour = @total_sec / 60 / 60
25
+ min = @total_sec / 60 % 60
26
+ sec = @total_sec % 60
27
+ text = sprintf("%02d:%02d:%02d", hour, min, sec)
28
+ self.contents.font.color = normal_color
29
+ self.contents.draw_text(4, 32, 120, 32, text, 2)
30
+ end
31
+ #--------------------------------------------------------------------------
32
+ # * Frame Update
33
+ #--------------------------------------------------------------------------
34
+ def update
35
+ super
36
+ if Graphics.frame_count / Graphics.frame_rate != @total_sec
37
+ refresh
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,91 @@
1
+ #==============================================================================
2
+ # ** Window_SaveFile
3
+ #------------------------------------------------------------------------------
4
+ # This window displays save files on the save and load screens.
5
+ #==============================================================================
6
+
7
+ class Window_SaveFile < Window_Base
8
+ #--------------------------------------------------------------------------
9
+ # * Public Instance Variables
10
+ #--------------------------------------------------------------------------
11
+ attr_reader :filename # file name
12
+ attr_reader :selected # selected
13
+ #--------------------------------------------------------------------------
14
+ # * Object Initialization
15
+ # file_index : save file index (0-3)
16
+ # filename : file name
17
+ #--------------------------------------------------------------------------
18
+ def initialize(file_index, filename)
19
+ super(0, 64 + file_index % 4 * 104, 640, 104)
20
+ self.contents = Bitmap.new(width - 32, height - 32)
21
+ @file_index = file_index
22
+ @filename = "Save#{@file_index + 1}.rxdata"
23
+ @time_stamp = Time.at(0)
24
+ @file_exist = FileTest.exist?(@filename)
25
+ if @file_exist
26
+ file = File.open(@filename, "r")
27
+ @time_stamp = file.mtime
28
+ @characters = Marshal.load(file)
29
+ @frame_count = Marshal.load(file)
30
+ @game_system = Marshal.load(file)
31
+ @game_switches = Marshal.load(file)
32
+ @game_variables = Marshal.load(file)
33
+ @total_sec = @frame_count / Graphics.frame_rate
34
+ file.close
35
+ end
36
+ refresh
37
+ @selected = false
38
+ end
39
+ #--------------------------------------------------------------------------
40
+ # * Refresh
41
+ #--------------------------------------------------------------------------
42
+ def refresh
43
+ self.contents.clear
44
+ # Draw file number
45
+ self.contents.font.color = normal_color
46
+ name = "File#{@file_index + 1}"
47
+ self.contents.draw_text(4, 0, 600, 32, name)
48
+ @name_width = contents.text_size(name).width
49
+ # If save file exists
50
+ if @file_exist
51
+ # Draw character
52
+ for i in 0...@characters.size
53
+ bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
54
+ cw = bitmap.rect.width / 4
55
+ ch = bitmap.rect.height / 4
56
+ src_rect = Rect.new(0, 0, cw, ch)
57
+ x = 300 - @characters.size * 32 + i * 64 - cw / 2
58
+ self.contents.blt(x, 68 - ch, bitmap, src_rect)
59
+ end
60
+ # Draw play time
61
+ hour = @total_sec / 60 / 60
62
+ min = @total_sec / 60 % 60
63
+ sec = @total_sec % 60
64
+ time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
65
+ self.contents.font.color = normal_color
66
+ self.contents.draw_text(4, 8, 600, 32, time_string, 2)
67
+ # Draw timestamp
68
+ self.contents.font.color = normal_color
69
+ time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
70
+ self.contents.draw_text(4, 40, 600, 32, time_string, 2)
71
+ end
72
+ end
73
+ #--------------------------------------------------------------------------
74
+ # * Set Selected
75
+ # selected : new selected (true = selected, false = unselected)
76
+ #--------------------------------------------------------------------------
77
+ def selected=(selected)
78
+ @selected = selected
79
+ update_cursor_rect
80
+ end
81
+ #--------------------------------------------------------------------------
82
+ # * Cursor Rectangle Update
83
+ #--------------------------------------------------------------------------
84
+ def update_cursor_rect
85
+ if @selected
86
+ self.cursor_rect.set(0, 0, @name_width + 8, 32)
87
+ else
88
+ self.cursor_rect.empty
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,203 @@
1
+ #==============================================================================
2
+ # ** Window_Selectable
3
+ #------------------------------------------------------------------------------
4
+ # This window class contains cursor movement and scroll functions.
5
+ #==============================================================================
6
+
7
+ class Window_Selectable < Window_Base
8
+ #--------------------------------------------------------------------------
9
+ # * Public Instance Variables
10
+ #--------------------------------------------------------------------------
11
+ attr_reader :index # cursor position
12
+ attr_reader :help_window # help window
13
+ #--------------------------------------------------------------------------
14
+ # * Object Initialization
15
+ # x : window x-coordinate
16
+ # y : window y-coordinate
17
+ # width : window width
18
+ # height : window height
19
+ #--------------------------------------------------------------------------
20
+ def initialize(x, y, width, height)
21
+ super(x, y, width, height)
22
+ @item_max = 1
23
+ @column_max = 1
24
+ @index = -1
25
+ end
26
+ #--------------------------------------------------------------------------
27
+ # * Set Cursor Position
28
+ # index : new cursor position
29
+ #--------------------------------------------------------------------------
30
+ def index=(index)
31
+ @index = index
32
+ # Update Help Text (update_help is defined by the subclasses)
33
+ if self.active and @help_window != nil
34
+ update_help
35
+ end
36
+ # Update cursor rectangle
37
+ update_cursor_rect
38
+ end
39
+ #--------------------------------------------------------------------------
40
+ # * Get Row Count
41
+ #--------------------------------------------------------------------------
42
+ def row_max
43
+ # Compute rows from number of items and columns
44
+ return (@item_max + @column_max - 1) / @column_max
45
+ end
46
+ #--------------------------------------------------------------------------
47
+ # * Get Top Row
48
+ #--------------------------------------------------------------------------
49
+ def top_row
50
+ # Divide y-coordinate of window contents transfer origin by 1 row
51
+ # height of 32
52
+ return self.oy / 32
53
+ end
54
+ #--------------------------------------------------------------------------
55
+ # * Set Top Row
56
+ # row : row shown on top
57
+ #--------------------------------------------------------------------------
58
+ def top_row=(row)
59
+ # If row is less than 0, change it to 0
60
+ if row < 0
61
+ row = 0
62
+ end
63
+ # If row exceeds row_max - 1, change it to row_max - 1
64
+ if row > row_max - 1
65
+ row = row_max - 1
66
+ end
67
+ # Multiply 1 row height by 32 for y-coordinate of window contents
68
+ # transfer origin
69
+ self.oy = row * 32
70
+ end
71
+ #--------------------------------------------------------------------------
72
+ # * Get Number of Rows Displayable on 1 Page
73
+ #--------------------------------------------------------------------------
74
+ def page_row_max
75
+ # Subtract a frame height of 32 from the window height, and divide it by
76
+ # 1 row height of 32
77
+ return (self.height - 32) / 32
78
+ end
79
+ #--------------------------------------------------------------------------
80
+ # * Get Number of Items Displayable on 1 Page
81
+ #--------------------------------------------------------------------------
82
+ def page_item_max
83
+ # Multiply row count (page_row_max) times column count (@column_max)
84
+ return page_row_max * @column_max
85
+ end
86
+ #--------------------------------------------------------------------------
87
+ # * Set Help Window
88
+ # help_window : new help window
89
+ #--------------------------------------------------------------------------
90
+ def help_window=(help_window)
91
+ @help_window = help_window
92
+ # Update help text (update_help is defined by the subclasses)
93
+ if self.active and @help_window != nil
94
+ update_help
95
+ end
96
+ end
97
+ #--------------------------------------------------------------------------
98
+ # * Update Cursor Rectangle
99
+ #--------------------------------------------------------------------------
100
+ def update_cursor_rect
101
+ # If cursor position is less than 0
102
+ if @index < 0
103
+ self.cursor_rect.empty
104
+ return
105
+ end
106
+ # Get current row
107
+ row = @index / @column_max
108
+ # If current row is before top row
109
+ if row < self.top_row
110
+ # Scroll so that current row becomes top row
111
+ self.top_row = row
112
+ end
113
+ # If current row is more to back than back row
114
+ if row > self.top_row + (self.page_row_max - 1)
115
+ # Scroll so that current row becomes back row
116
+ self.top_row = row - (self.page_row_max - 1)
117
+ end
118
+ # Calculate cursor width
119
+ cursor_width = self.width / @column_max - 32
120
+ # Calculate cursor coordinates
121
+ x = @index % @column_max * (cursor_width + 32)
122
+ y = @index / @column_max * 32 - self.oy
123
+ # Update cursor rectangle
124
+ self.cursor_rect.set(x, y, cursor_width, 32)
125
+ end
126
+ #--------------------------------------------------------------------------
127
+ # * Frame Update
128
+ #--------------------------------------------------------------------------
129
+ def update
130
+ super
131
+ # If cursor is movable
132
+ if self.active and @item_max > 0 and @index >= 0
133
+ # If pressing down on the directional buttons
134
+ if Input.repeat?(Input::DOWN)
135
+ # If column count is 1 and directional button was pressed down with no
136
+ # repeat, or if cursor position is more to the front than
137
+ # (item count - column count)
138
+ if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
139
+ @index < @item_max - @column_max
140
+ # Move cursor down
141
+ $game_system.se_play($data_system.cursor_se)
142
+ @index = (@index + @column_max) % @item_max
143
+ end
144
+ end
145
+ # If the up directional button was pressed
146
+ if Input.repeat?(Input::UP)
147
+ # If column count is 1 and directional button was pressed up with no
148
+ # repeat, or if cursor position is more to the back than column count
149
+ if (@column_max == 1 and Input.trigger?(Input::UP)) or
150
+ @index >= @column_max
151
+ # Move cursor up
152
+ $game_system.se_play($data_system.cursor_se)
153
+ @index = (@index - @column_max + @item_max) % @item_max
154
+ end
155
+ end
156
+ # If the right directional button was pressed
157
+ if Input.repeat?(Input::RIGHT)
158
+ # If column count is 2 or more, and cursor position is closer to front
159
+ # than (item count -1)
160
+ if @column_max >= 2 and @index < @item_max - 1
161
+ # Move cursor right
162
+ $game_system.se_play($data_system.cursor_se)
163
+ @index += 1
164
+ end
165
+ end
166
+ # If the left directional button was pressed
167
+ if Input.repeat?(Input::LEFT)
168
+ # If column count is 2 or more, and cursor position is more back than 0
169
+ if @column_max >= 2 and @index > 0
170
+ # Move cursor left
171
+ $game_system.se_play($data_system.cursor_se)
172
+ @index -= 1
173
+ end
174
+ end
175
+ # If R button was pressed
176
+ #if Input.repeat?(Input::R)
177
+ # # If bottom row being displayed is more to front than bottom data row
178
+ # if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
179
+ # # Move cursor 1 page back
180
+ # $game_system.se_play($data_system.cursor_se)
181
+ # @index = [@index + self.page_item_max, @item_max - 1].min
182
+ # self.top_row += self.page_row_max
183
+ # end
184
+ #end
185
+ # If L button was pressed
186
+ #if Input.repeat?(Input::L)
187
+ # # If top row being displayed is more to back than 0
188
+ # if self.top_row > 0
189
+ # # Move cursor 1 page forward
190
+ # $game_system.se_play($data_system.cursor_se)
191
+ # @index = [@index - self.page_item_max, 0].max
192
+ # self.top_row -= self.page_row_max
193
+ # end
194
+ #end
195
+ end
196
+ # Update help text (update_help is defined by the subclasses)
197
+ if self.active and @help_window != nil
198
+ update_help
199
+ end
200
+ # Update cursor rectangle
201
+ update_cursor_rect
202
+ end
203
+ end