Advertisement
Squeetz

Untitled

Apr 19th, 2020
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.97 KB | None | 0 0
  1. .thumb
  2.  
  3. .include "equ.h"
  4.  
  5. .equ BagListMenuMoveCursorFunc, 0x081085A4|1
  6.  
  7. .equ offset, 0xBFF974
  8.  
  9. @@
  10.  
  11. .org 0x108130
  12. .word CB2_BagMenuRun + 1
  13.  
  14. .org 0x10886A
  15. str r0, [sp, #0x10]
  16. mov r0, #1
  17. str r0, [sp, #0xC]
  18. mov r1, #2
  19.  
  20. .org 0x108BB6
  21. ldr r0, =(StopPrinter + 1)
  22. bx r0
  23. .align 2, 0
  24. .pool
  25.  
  26. .org 0x109084
  27. ldr r0, =(PrintRest + 1)
  28. bx r0
  29. .pool
  30.  
  31. .org 0x1091FE
  32. ldr r0, =(SwitchPockets + 1)
  33. bx r0
  34. .align 2, 0
  35. .pool
  36.  
  37. .org 0x109F40
  38. .word Task_WaitAB_RedrawAndReturnToBag + 1
  39.  
  40. .org 0x10A1F8
  41. ldr r1, =(Task_ReturnToBagFromContextMenu + 1)
  42. bx r1
  43. .pool
  44.  
  45. .org 0x10ACE8
  46. .word Task_WaitAB_RedrawAndReturnToBag + 1
  47.  
  48. @@
  49.  
  50. .org offset
  51. CB2_BagMenuRun:
  52. push {lr}
  53. bl RunTasks
  54. bl RunTextPrinter1
  55. bl AnimateSprites
  56. bl BuildOamBuffer
  57. bl DoScheduledBgTilemapCopiesToVram
  58. bl UpdatePaletteFade
  59. pop {pc}
  60.  
  61. @
  62.  
  63. StopPrinter:
  64. bl StopItemDescriptionPrint
  65. ldrb r0, [r4]
  66. ldr r4, =(gBagMenuState)
  67. ldrh r2, [r4, #0x6]
  68. lsl r2, #0x1
  69. mov r1, r4
  70. ldr r3, =(0x08108BC0|1)
  71. bx r3
  72.  
  73. @
  74.  
  75. PrintRest:
  76. bl PrintRestOfItemDescription
  77. bl BagDestroyPocketScrollArrowPair
  78. ldrb r0, [r7]
  79. mov r1, #2
  80. ldr r2, =(0x0810908C|1)
  81. bx r2
  82.  
  83. @
  84.  
  85. SwitchPockets:
  86. bl StopItemDescriptionPrint
  87. mov r0, #0
  88. bl ClearWindowTilemap
  89. mov r0, #1
  90. bl ClearWindowTilemap
  91. mov r0, #2
  92. ldr r1, =(0x0810920C|1)
  93. bx r1
  94.  
  95. @
  96.  
  97. Task_WaitAB_RedrawAndReturnToBag:
  98. push {r4-r7, lr}
  99. mov r7, r9
  100. mov r6, r8
  101. push {r6-r7}
  102. mov r8, r0
  103. lsl r0, r0, #0x2
  104. add r0, r0, r8
  105. lsl r0, r0, #0x3
  106. ldr r1, =(gTasks + 0x8)
  107. mov r9, r1
  108. add r7, r0, r1
  109. ldr r0, =(gMain)
  110. ldrh r1, [r0, #0x2E]
  111. mov r0, #0x1
  112. and r0, r0, r1
  113. cmp r0, #0
  114. bne .L617 @cond_branch
  115. mov r0, #0x2
  116. and r0, r0, r1
  117. cmp r0, #0
  118. beq .L616 @cond_branch
  119. .L617:
  120. mov r0, #0x5
  121. bl PlaySfx
  122. ldr r0, =(gSpecialVar_ItemId)
  123. ldrh r0, [r0]
  124. ldrh r1, [r7, #0x10]
  125. bl RemoveBagItem
  126. mov r0, #0x6
  127. bl HideBagWindow
  128. ldrb r0, [r7]
  129. ldr r4, =(gBagMenuState)
  130. ldrh r2, [r4, #0x6]
  131. lsl r2, r2, #0x1
  132. add r5, r4, #0
  133. add r5, r5, #0xe
  134. add r1, r2, r5
  135. add r6, r4, #0
  136. add r6, r6, #0x8
  137. add r2, r2, r6
  138. bl DestroyListMenuTask
  139. ldrb r0, [r4, #0x6]
  140. bl Pocket_CalculateNItemsAndMaxShowed
  141. ldrb r0, [r4, #0x6]
  142. bl PocketCalculateInitialCursorPosAndItemsAbove
  143. ldrb r0, [r4, #0x6]
  144. bl Bag_BuildListMenuTemplate
  145. ldr r0, =(gMultiuseListMenuTemplate)
  146. mov r1, #0x0
  147. str r1, [r0, #0x4]
  148. ldrh r2, [r4, #0x6]
  149. lsl r2, r2, #0x1
  150. add r5, r2, r5
  151. ldrh r1, [r5]
  152. add r2, r2, r6
  153. ldrh r2, [r2]
  154. add r4, r1, r2
  155. bl ListMenuInit
  156. strh r0, [r7]
  157. mov r0, #0x1
  158. bl PutWindowTilemap
  159. mov r0, #0x0
  160. bl ScheduleBgCopyTilemapToVram
  161. ldrb r0, [r7]
  162. mov r1, #0x1
  163. bl bag_menu_print_cursor_
  164. mov r0, #0x0
  165. ldrsh r1, [r7, r0]
  166. lsl r0, r1, #0x2
  167. add r0, r0, r1
  168. lsl r0, r0, #0x3
  169. add r0, r0, r9
  170. ldr r3, =(BagListMenuMoveCursorFunc)
  171. str r3, [r0, #0x4]
  172. ldr r0, =(sListMenuItems)
  173. ldr r0, [r0]
  174. lsl r4, r4, #0x3
  175. add r4, r4, r0
  176. ldr r0, [r4, #0x4]
  177. mov r1, #0x1
  178. mov r2, #0x0
  179. bl _call_via_r3
  180. mov r0, r8
  181. bl Task_RedrawArrowsAndReturnToBagMenuSelect
  182. .L616:
  183. pop {r3, r4}
  184. mov r8, r3
  185. mov r9, r4
  186. pop {r4-r7, pc}
  187.  
  188. @
  189.  
  190. Task_ReturnToBagFromContextMenu:
  191. push {r4-r6, lr}
  192. mov r6, r10
  193. mov r5, r9
  194. mov r4, r8
  195. push {r4-r6}
  196. mov r8, r0
  197. lsl r5, r0, #0x2
  198. add r5, r5, r8
  199. lsl r5, r5, #0x3
  200. ldr r3, =(gTasks + 0x8)
  201. mov r10, r3
  202. add r5, r5, r10
  203. mov r0, #0x5
  204. bl CloseBagWindow
  205. ldrb r0, [r5]
  206. ldr r4, =(gBagMenuState)
  207. ldrh r2, [r4, #0x6]
  208. lsl r2, r2, #0x1
  209. add r6, r4, #0
  210. add r6, r6, #0xe
  211. add r1, r2, r6
  212. mov r3, #0x8
  213. add r3, r3, r4
  214. mov r9, r3
  215. add r2, r2, r9
  216. bl DestroyListMenuTask
  217. ldrb r0, [r4, #0x6]
  218. bl Pocket_CalculateNItemsAndMaxShowed
  219. ldrb r0, [r4, #0x6]
  220. bl PocketCalculateInitialCursorPosAndItemsAbove
  221. ldrb r0, [r4, #0x6]
  222. bl Bag_BuildListMenuTemplate
  223. ldr r0, =(gMultiuseListMenuTemplate)
  224. mov r1, #0x0
  225. str r1, [r0, #0x4]
  226. ldrh r2, [r4, #0x6]
  227. lsl r2, r2, #0x1
  228. add r6, r2, r6
  229. ldrh r1, [r6]
  230. add r2, r2, r9
  231. ldrh r2, [r2]
  232. add r4, r1, r2
  233. lsl r4, r4, #0x10
  234. lsr r4, r4, #0x10
  235. bl ListMenuInit
  236. strh r0, [r5]
  237. mov r0, #0x0
  238. bl ScheduleBgCopyTilemapToVram
  239. ldrb r0, [r5]
  240. mov r1, #0x1
  241. bl bag_menu_print_cursor_
  242. mov r0, #0x0
  243. ldrsh r1, [r5, r0]
  244. lsl r0, r1, #0x2
  245. add r0, r0, r1
  246. lsl r0, r0, #0x3
  247. add r0, r0, r10
  248. ldr r3, =(BagListMenuMoveCursorFunc)
  249. str r3, [r0, #0x4]
  250. ldr r0, =(sListMenuItems)
  251. ldr r0, [r0]
  252. lsl r4, r4, #0x3
  253. add r4, r4, r0
  254. ldr r0, [r4, #0x4]
  255. mov r1, #0x1
  256. mov r2, #0x0
  257. bl _call_via_r3
  258. mov r0, r8
  259. bl Task_RedrawArrowsAndReturnToBagMenuSelect
  260. pop {r3, r4, r5}
  261. mov r8, r3
  262. mov r9, r4
  263. mov r10, r5
  264. pop {r4-r6, pc}
  265.  
  266. @@
  267.  
  268. StopItemDescriptionPrint:
  269. ldr r1, =(sTextPrinters + 0x24)
  270. mov r0, #0x0
  271. strb r0, [r1, #0x1B]
  272. bx lr
  273.  
  274. @
  275.  
  276. RunTextPrinter1:
  277. push {r4, lr}
  278. ldr r4, =(sTextPrinters + 0x24)
  279. ldrb r0, [r4, #0x1B]
  280. cmp r0, #0x0
  281. beq RTP1_Ret
  282. mov r0, r4
  283. bl RenderFont
  284. cmp r0, #0x0
  285. beq RTP1_Zero
  286. cmp r0, #0x1
  287. beq RTP1_One
  288. cmp r0, #0x3
  289. bne RTP1_Ret
  290. ldr r3, [r4, #0x10]
  291. cmp r3, #0x0
  292. beq RTP1_Ret
  293. mov r1, r0
  294. mov r0, r4
  295. bl _call_via_r3
  296. b RTP1_Ret
  297.  
  298. RTP1_One:
  299. mov r0, #0x0
  300. strb r0, [r4, #0x1B]
  301. b RTP1_Ret
  302.  
  303. RTP1_Zero:
  304. ldrb r0, [r4, #0x4]
  305. mov r1, #2
  306. bl CopyWindowToVram
  307. RTP1_Ret:
  308. pop {r4, pc}
  309.  
  310. @
  311.  
  312. PrintRestOfItemDescription:
  313. push {r4-r5, lr}
  314. ldr r4, =(sTextPrinters + 0x24)
  315. ldrb r0, [r4, #0x1B]
  316. cmp r0, #0x0
  317. beq PROID_Ret
  318. mov r5, #0x0
  319. PROID_Loop:
  320. mov r0, r4
  321. bl RenderFont
  322. cmp r0, #0x0
  323. bne PROID_Break
  324. add r5, #0x1
  325. mov r0, #0x4
  326. lsl r0, #0x8
  327. cmp r0, r5
  328. bhi PROID_Loop
  329. PROID_Break:
  330. mov r0, #1
  331. mov r1, #2
  332. bl CopyWindowToVram
  333. mov r0, #0x0
  334. strb r0, [r4, #0x1B]
  335. PROID_Ret:
  336. pop {r4-r5, pc}
  337.  
  338. @@
  339.  
  340. _call_via_r3:
  341. bx r3
  342.  
  343. CopyWindowToVram:
  344. ldr r2, =(0x08003F20|1)
  345. bx r2
  346.  
  347. RenderFont:
  348. ldr r1, =(0x08002E7C|1)
  349. bx r1
  350.  
  351. Task_RedrawArrowsAndReturnToBagMenuSelect:
  352. ldr r1, =(0x0810910C|1)
  353. bx r1
  354.  
  355. bag_menu_print_cursor_:
  356. ldr r2, =(0x0810876C|1)
  357. bx r2
  358.  
  359. ScheduleBgCopyTilemapToVram:
  360. ldr r1, =(0x080F67A4|1)
  361. bx r1
  362.  
  363. ListMenuInit:
  364. ldr r3, =(0x08106FF8|1)
  365. bx r3
  366.  
  367. Bag_BuildListMenuTemplate:
  368. ldr r1, =(0x0810842C|1)
  369. bx r1
  370.  
  371. PocketCalculateInitialCursorPosAndItemsAbove:
  372. ldr r1, =(0x081089F4|1)
  373. bx r1
  374.  
  375. Pocket_CalculateNItemsAndMaxShowed:
  376. ldr r1, =(0x08108DC8|1)
  377. bx r1
  378.  
  379. DestroyListMenuTask:
  380. ldr r3, =(0x0810713C|1)
  381. bx r3
  382.  
  383. CloseBagWindow:
  384. ldr r1, =(0x0810BA9C|1)
  385. bx r1
  386.  
  387. HideBagWindow:
  388. ldr r1, =(0x0810BA3C|1)
  389. bx r1
  390.  
  391. RemoveBagItem:
  392. ldr r2, =(0x0809A1D8|1)
  393. bx r2
  394.  
  395. PlaySfx:
  396. ldr r1, =(0x080722CC|1)
  397. bx r1
  398.  
  399. ClearWindowTilemap:
  400. ldr r1, =(0x080040B8|1)
  401. bx r1
  402.  
  403. RunTasks:
  404. ldr r0, =(0x08077578|1)
  405. bx r0
  406.  
  407. AnimateSprites:
  408. ldr r0, =(0x08006B5C|1)
  409. bx r0
  410.  
  411. BuildOamBuffer:
  412. ldr r0, =(0x08006BA8|1)
  413. bx r0
  414.  
  415. DoScheduledBgTilemapCopiesToVram:
  416. ldr r0, =(0x080F67B8|1)
  417. bx r0
  418.  
  419. UpdatePaletteFade:
  420. ldr r0, =(0x080704D0|1)
  421. bx r0
  422.  
  423. PutWindowTilemap:
  424. ldr r1, =(0x08003FA0|1)
  425. bx r1
  426.  
  427. BagDestroyPocketScrollArrowPair:
  428. ldr r0, =(0x08108978|1)
  429. bx r0
  430.  
  431. @
  432.  
  433. .align 2, 0
  434. .pool
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement