Item quantity increment for steal/break
Jump to navigation
Jump to search
Parameters : r4 = Unit data pointer r5 = Item ID Returns : r2 = Item price / 4 if item is maxed r2 = 0x00 if not or nothing is done Checks number of Items in inventory. - If < 99 : Add one Item - If = 99 : Add 25% of Item price to war funds -------------------------------------------------------------------------------- 0018e9e8: 3c028019 lui r2,0x8019 | 0018e9ec: 8c42f5fc lw r2,-0x0a04(r2) |r2 = Action Stata 0018e9f0: 27bdffe0 addiu r29,r29,-0x0020 | 0018e9f4: afb10014 sw r17,0x0014(r29) | 0018e9f8: 00808821 addu r17,r4,r0 |r17 = Targeted Unit Data pointer 0018e9fc: afbf0018 sw r31,0x0018(r29) | 0018ea00: 1440000a bne r2,r0,0x0018ea2c #If Action is being Executed /Else Branch to jump to END (r2 = 0x00) 0018ea04: afb00010 sw r16,0x0010(r29) | 0018ea08: 922201ba lbu r2,0x01ba(r17) |r2 = Targeted Unit modified ENTD flags 0018ea0c: 00000000 nop | 0018ea10: 30420030 andi r2,r2,0x0030 |r2 <> 0x00 If Targeted Unit is not in player Team 0018ea14: 14400005 bne r2,r0,0x0018ea2c #If Targeted Unit is in player Team /Else Branch to jump to END (r2 = 0x00) 0018ea18: 30b000ff andi r16,r5,0x00ff |r16 = Targeted Unit 0x1b2 (supposed to be last received attack - seems to be received Item here) 0018ea1c: 12000003 beq r16,r0,0x0018ea2c #If Targeted Unit 0x1b2 <> 0x00 /Else Branch to jump to END (r2 = 0x00) 0018ea20: 340200ff ori r2,r0,0x00ff |r2 =0x0ff 0018ea24: 16020003 bne r16,r2,0x0018ea34 #If Targeted Unit 0x1b2 = 0x0ff /Else Avoid the jump to END 0018ea28: 02002021 addu r4,r16,r0 | 0018ea2c: 08063aa0 j 0x0018ea80 #E #E #E >>Jump to END r2 = 0x00 0018ea30: 00001021 addu r2,r0,r0 |r2 = 0x00 #Else (All checks are OK) 0018ea34: 0c0178a2 jal 0x0005e288 |-->Get_Total_Equipment_Quantity 0018ea38: 34050001 ori r5,r0,0x0001 |r5 = 0x01 0018ea3c: 28420063 slti r2,r2,0x0063 |r2 = 0x01 if Quantity < 0x63 (99) 0018ea40: 1040000b beq r2,r0,0x0018ea70 #If Item Quantity is less than 99 0018ea44: 00001021 addu r2,r0,r0 |r2 = 0x00 0018ea48: 3c018006 lui r1,0x8006 | 0018ea4c: 00300821 addu r1,r1,r16 | 0018ea50: 902396e0 lbu r3,-0x6920(r1) |r3 = Item quantity 0x800596e0 + Item offset 0018ea54: 00000000 nop | 0018ea58: 24630001 addiu r3,r3,0x0001 |r3 = Item quantity + 1 0018ea5c: 3c018006 lui r1,0x8006 | 0018ea60: 00300821 addu r1,r1,r16 | 0018ea64: a02396e0 sb r3,-0x6920(r1) |store new item quantity 0018ea68: 08063aa0 j 0x0018ea80 >>jump to end 0018ea6c: 00000000 nop | #Else (Item at 99) 0018ea70: 02202021 addu r4,r17,r0 |r4 = Targeted Unit Data pointer 0018ea74: 00002821 addu r5,r0,r0 |r5 = 0x00 0018ea78: 0c063aa6 jal 0x0018ea98 |-->Add_price_of_item_/_4_to_total_gil 0018ea7c: 02003021 addu r6,r16,r0 |r6 = Item ID 0018ea80: 8fbf0018 lw r31,0x0018(r29) 0018ea84: 8fb10014 lw r17,0x0014(r29) 0018ea88: 8fb00010 lw r16,0x0010(r29) 0018ea8c: 27bd0020 addiu r29,r29,0x0020 0018ea90: 03e00008 jr r31 0018ea94: 00000000 nop
Return locations
Battle.bin 00180948: Learn_from_Crystal ?? 0018bf24: Attack_Finalisation_&_Reaction_Flagging 0018c1a8: Attack_Finalisation_&_Reaction_Flagging 0018d498: Steal_Routine