Difference between revisions of "001221d8 - 00122278"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 001221d8: 27bdffe0 addiu r29,r29,0xffe0 001221dc: afb20018 sw r18,0x0018(r29) 001221e0: 00809021 addu r18,r4,r0 001221e4: afb00010 sw r16,0x001...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<font face='Courier New'>
+
# Runs when opening the party menu or a shop (normal or fur shop).
 +
# Runs when purchasing or selling an item.
 +
# does not run when equipping or removing an item.
 +
# does not run when dropping an item from the inventory.
 +
# does not return a value.
 +
#
 +
# Parameters:
 +
#  r4 - sub menu type
 +
#      0x00 - Armaments
 +
#      0x01 - Headgear
 +
#      0x02 - Bodygear
 +
#      0x03 - Accessories
 +
#      0x04 - Throwables and Chemist Items
 
   
 
   
  001221d8: 27bdffe0 addiu r29,r29,0xffe0
+
  001221d8: 27bdffe0 addiu r29,r29,0xffe0       #
  001221dc: afb20018 sw r18,0x0018(r29)
+
  001221dc: afb20018 sw r18,0x0018(r29)         #
  001221e0: 00809021 addu r18,r4,r0
+
  001221e0: 00809021 addu r18,r4,r0             # r18 = sub menu type
  001221e4: afb00010 sw r16,0x0010(r29)
+
  001221e4: afb00010 sw r16,0x0010(r29)         #
  001221e8: 34100001 ori r16,r0,0x0001
+
  001221e8: 34100001 ori r16,r0,0x0001           # counter = 1
  001221ec: afbf001c sw r31,0x001c(r29)
+
  001221ec: afbf001c sw r31,0x001c(r29)         #
  001221f0: afb10014 sw r17,0x0014(r29)
+
  001221f0: afb10014 sw r17,0x0014(r29)         #
  001221f4: 00101400 sll r2,r16,0x10
+
  001221f4: 00101400 sll r2,r16,0x10             #
  001221f8: 00028c03 sra r17,r2,0x10
+
  001221f8: 00028c03 sra r17,r2,0x10             # do:
  001221fc: 0c0494dd jal 0x00125374
+
  001221fc: 0c0494dd jal 0x00125374             #  item_type = [[Get Item Type from Item Number]](counter)
  00122200: 02202021 addu r4,r17,r0
+
  00122200: 02202021 addu r4,r17,r0             #
  00122204: 10400002 beq r2,r0,0x00122210
+
  00122204: 10400002 beq r2,r0,0x00122210       #  if item_type == "weapon": goto 0x80122210
  00122208: 00001821 addu r3,r0,r0
+
  00122208: 00001821 addu r3,r0,r0               #  r3 = 0
  0012220c: 2443ffff addiu r3,r2,0xffff
+
  0012220c: 2443ffff addiu r3,r2,0xffff         #  r3 = item_type - 1
  00122210: 1643000f bne r18,r3,0x00122250
+
  00122210: 1643000f bne r18,r3,0x00122250       #  if sub menu type != r3: increment the counter and check next.
  00122214: 00000000 nop
+
  00122214: 00000000 nop                         #
  00122218: 0c048df9 jal 0x001237e4
+
  00122218: 0c048df9 jal 0x001237e4             #  result = func_[[001237e4 - 00123820]](counter)
  0012221c: 02202021 addu r4,r17,r0
+
  0012221c: 02202021 addu r4,r17,r0             #
  00122220: 10400009 beq r2,r0,0x00122248
+
  00122220: 10400009 beq r2,r0,0x00122248       #    if result == 0: goto 0x80122248
  00122224: 02002021 addu r4,r16,r0
+
  00122224: 02002021 addu r4,r16,r0             #
  00122228: 0c04889f jal 0x0012227c
+
  00122228: 0c04889f jal 0x0012227c             #    result = func_[[0012227c - 001222cc]](counter, sub menu type)
  0012222c: 02402821 addu r5,r18,r0
+
  0012222c: 02402821 addu r5,r18,r0             #
  00122230: 14400007 bne r2,r0,0x00122250
+
  00122230: 14400007 bne r2,r0,0x00122250       #    if result != 0: increment the counter and check next.
  00122234: 02002021 addu r4,r16,r0
+
  00122234: 02002021 addu r4,r16,r0             #
  00122238: 0c0488b4 jal 0x001222d0
+
  00122238: 0c0488b4 jal 0x001222d0             #    func_[[001222d0 - 00122334]](counter, sub menu type)
  0012223c: 02402821 addu r5,r18,r0
+
  0012223c: 02402821 addu r5,r18,r0             #
  00122240: 08048895 j 0x00122254
+
  00122240: 08048895 j 0x00122254               #    goto: increment the counter and check next.
  00122244: 26100001 addiu r16,r16,0x0001
+
  00122244: 26100001 addiu r16,r16,0x0001       #    counter++
  00122248: 0c0488ce jal 0x00122338
+
  00122248: 0c0488ce jal 0x00122338             #    func_[[00122338 - 001223b4]](counter, sub menu type)
  0012224c: 02402821 addu r5,r18,r0
+
  0012224c: 02402821 addu r5,r18,r0             #
  00122250: 26100001 addiu r16,r16,0x0001
+
  00122250: 26100001 addiu r16,r16,0x0001       #    counter++
  00122254: 2a0200fe slti r2,r16,0x00fe
+
  00122254: 2a0200fe slti r2,r16,0x00fe         #
  00122258: 1440ffe7 bne r2,r0,0x001221f8
+
  00122258: 1440ffe7 bne r2,r0,0x001221f8       # while: counter < number of items
  0012225c: 00101400 sll r2,r16,0x10
+
  0012225c: 00101400 sll r2,r16,0x10             #
  00122260: 8fbf001c lw r31,0x001c(r29)
+
  00122260: 8fbf001c lw r31,0x001c(r29)         #
  00122264: 8fb20018 lw r18,0x0018(r29)
+
  00122264: 8fb20018 lw r18,0x0018(r29)         #
  00122268: 8fb10014 lw r17,0x0014(r29)
+
  00122268: 8fb10014 lw r17,0x0014(r29)         #
  0012226c: 8fb00010 lw r16,0x0010(r29)
+
  0012226c: 8fb00010 lw r16,0x0010(r29)         #
  00122270: 27bd0020 addiu r29,r29,0x0020
+
  00122270: 27bd0020 addiu r29,r29,0x0020       #
  00122274: 03e00008 jr r31
+
  00122274: 03e00008 jr r31                     #
  00122278: 00000000 nop
+
  00122278: 00000000 nop                         #
</font>
+
 
 +
==Return Locations==
 +
'''WORLD.bin'''
 +
0x0011342c
 +
0x00113434
 +
0x0011343c
 +
0x00113444
 +
0x0011344c
 +
0x0011cc60
 +
0x001345c4
 +
0x00135094
 +
0x00136364
 +
0x0013636c
 +
0x00136374
 +
0x0013637c
 +
0x00136384
 +
0x00137700
 +
0x00137ec4

Latest revision as of 05:07, 26 September 2024

# Runs when opening the party menu or a shop (normal or fur shop).
# Runs when purchasing or selling an item.
# does not run when equipping or removing an item.
# does not run when dropping an item from the inventory.
# does not return a value.
#
# Parameters:
#   r4 - sub menu type
#       0x00 - Armaments
#       0x01 - Headgear
#       0x02 - Bodygear
#       0x03 - Accessories
#       0x04 - Throwables and Chemist Items

001221d8: 27bdffe0 addiu r29,r29,0xffe0        #
001221dc: afb20018 sw r18,0x0018(r29)          #
001221e0: 00809021 addu r18,r4,r0              # r18 = sub menu type
001221e4: afb00010 sw r16,0x0010(r29)          #
001221e8: 34100001 ori r16,r0,0x0001           # counter = 1
001221ec: afbf001c sw r31,0x001c(r29)          #
001221f0: afb10014 sw r17,0x0014(r29)          #
001221f4: 00101400 sll r2,r16,0x10             # 
001221f8: 00028c03 sra r17,r2,0x10             # do: 
001221fc: 0c0494dd jal 0x00125374              #   item_type = Get Item Type from Item Number(counter)
00122200: 02202021 addu r4,r17,r0              # 
00122204: 10400002 beq r2,r0,0x00122210        #   if item_type == "weapon": goto 0x80122210
00122208: 00001821 addu r3,r0,r0               #   r3 = 0
0012220c: 2443ffff addiu r3,r2,0xffff          #   r3 = item_type - 1
00122210: 1643000f bne r18,r3,0x00122250       #   if sub menu type != r3: increment the counter and check next.
00122214: 00000000 nop                         #
00122218: 0c048df9 jal 0x001237e4              #   result = func_001237e4 - 00123820(counter)
0012221c: 02202021 addu r4,r17,r0              #
00122220: 10400009 beq r2,r0,0x00122248        #    if result == 0: goto 0x80122248
00122224: 02002021 addu r4,r16,r0              #
00122228: 0c04889f jal 0x0012227c              #    result = func_0012227c - 001222cc(counter, sub menu type)
0012222c: 02402821 addu r5,r18,r0              #
00122230: 14400007 bne r2,r0,0x00122250        #    if result != 0: increment the counter and check next.
00122234: 02002021 addu r4,r16,r0              #
00122238: 0c0488b4 jal 0x001222d0              #    func_001222d0 - 00122334(counter, sub menu type)
0012223c: 02402821 addu r5,r18,r0              #
00122240: 08048895 j 0x00122254                #    goto: increment the counter and check next.
00122244: 26100001 addiu r16,r16,0x0001        #    counter++
00122248: 0c0488ce jal 0x00122338              #    func_00122338 - 001223b4(counter, sub menu type)
0012224c: 02402821 addu r5,r18,r0              # 
00122250: 26100001 addiu r16,r16,0x0001        #    counter++
00122254: 2a0200fe slti r2,r16,0x00fe          # 
00122258: 1440ffe7 bne r2,r0,0x001221f8        # while: counter < number of items
0012225c: 00101400 sll r2,r16,0x10             #
00122260: 8fbf001c lw r31,0x001c(r29)          #
00122264: 8fb20018 lw r18,0x0018(r29)          #
00122268: 8fb10014 lw r17,0x0014(r29)          #
0012226c: 8fb00010 lw r16,0x0010(r29)          #
00122270: 27bd0020 addiu r29,r29,0x0020        #
00122274: 03e00008 jr r31                      #
00122278: 00000000 nop                         #

Return Locations

WORLD.bin
0x0011342c
0x00113434
0x0011343c
0x00113444
0x0011344c
0x0011cc60
0x001345c4
0x00135094
0x00136364
0x0013636c
0x00136374
0x0013637c
0x00136384
0x00137700
0x00137ec4