Set r5 as New Variable Value

From Final Fantasy Hacktics Wiki
(Redirected from 0013b644 - 0013b6e0)
Jump to navigation Jump to search
Parameters : r4 = Variable ID
             r5 = New Variable Value

This routine will first clear Variable r4 value and then store r5 as new Variable value      
----------------------------------------------------------------------------------------------
0013b644: 27bdffe0 addiu r29,r29,-0x0020    |
0013b648: afb00010 sw r16,0x0010(r29)       |
0013b64c: 00808021 addu r16,r4,r0           |r16 = Variable ID
0013b650: afb10014 sw r17,0x0014(r29)       |
0013b654: 3c028016 lui r2,0x8016            |
0013b658: 8c425f9c lw r2,0x5f9c(r2)         |r2 = Variable 0x00 data pointer
0013b65c: 3403002c ori r3,r0,0x002c         |r3 = 0x2c
0013b660: afbf001c sw r31,0x001c(r29)       |
0013b664: afb20018 sw r18,0x0018(r29)       |
0013b668: 8c520000 lw r18,0x0000(r2)        |r18 = Variable 0x00 value
0013b66c: 16030008 bne r16,r3,0x0013b690    #If Variable ID is war funds
0013b670: 00a08821 addu r17,r5,r0           |r17 = Input Value
0013b674: 3c0205f5 lui r2,0x05f5                |
0013b678: 3442e0ff ori r2,r2,0xe0ff             |r2 = 0x05f5e0ff 99 999 999
0013b67c: 0051102a slt r2,r2,r17                |r2 = 0x01 if 99 999 999 < War funds
0013b680: 10400004 beq r2,r0,0x0013b694         #If War funds > 99 999 999 gils
0013b684: 340400be ori r4,r0,0x00be             |r4 = 0xbe
0013b688: 3c1105f5 lui r17,0x05f5                   | 
0013b68c: 3631e0ff ori r17,r17,0xe0ff               |r17 = 0x05f5e0ff (max warfunds is 99 999 999 gils)
0013b690: 340400be ori r4,r0,0x00be                 |r4 = 0xbe 
0013b694: 02002821 addu r5,r16,r0           |r5 = Variable ID
0013b698: 00003021 addu r6,r0,r0            |r6 = 0x00
0013b69c: 0c052806 jal 0x0014a018           |-->Run_Script_Variable_Command  Nullify Variable (r5)
0013b6a0: 00003821 addu r7,r0,r0            |r7 = 0x00
0013b6a4: 340400b0 ori r4,r0,0x00b0         |r4 = 0xb0
0013b6a8: 02002821 addu r5,r16,r0           |r5 = Variable ID
0013b6ac: 02203021 addu r6,r17,r0           |r6 = Input Value (or Max War Funds)
0013b6b0: 0c052806 jal 0x0014a018           |-->Run_Script_Variable_Command  Add Input Value (r6) to Variable (r5)
0013b6b4: 00003821 addu r7,r0,r0            |r7 = 0x00
0013b6b8: 3c028016 lui r2,0x8016            |
0013b6bc: 8c425f9c lw r2,0x5f9c(r2)         |r2 = Variable 0x00 data pointer
0013b6c0: 00000000 nop                      |
0013b6c4: ac520000 sw r18,0x0000(r2)        |Restore Variable 0x00 Value
0013b6c8: 8fbf001c lw r31,0x001c(r29)       
0013b6cc: 8fb20018 lw r18,0x0018(r29)       
0013b6d0: 8fb10014 lw r17,0x0014(r29)       
0013b6d4: 8fb00010 lw r16,0x0010(r29)       
0013b6d8: 27bd0020 addiu r29,r29,0x0020     
0013b6dc: 03e00008 jr r31                   
0013b6e0: 00000000 nop

Return locations

SCUS_942.21
0004eeb8:
00031330:
0003133c:

Battle.bin
00070d84:
00070db0:
0008ea14:
0008ea50:
0012fad4:
00130900:
00132280:
00132314:
00132334:
00134238:
0013b5ec:
0013cd98:
0013e994:
0013e9ac:
00141c80:
00141d2c:
00141d98:
00141dec:
001422e8:
00142b2c:
00142bf4:
00142c00:
00142c14:
00142e8c:
00142edc:
00142f30:
00142f3c:
00142fb0:
001432f8:
00143748:
00143cc4:
00143cd0:
00143cdc:
00143eac:
00143eb8:
00143ef0:
00143fc4:
00143fdc:
00144330:
001443a0:
00144b40:
00145e90:
0014621c:
0014b53c:
0014b5a8:
0014b5b4:
0014b5c8:
0018eb38: Add_price_of_item_/_4_to_total_gil