Get Script Variable
(Redirected from 0013b590 - 0013b640)
Jump to navigation
Jump to search
# ROUTINE: GET SCRIPT VARIABLE # Parameters: # r4 = (VariableID) (https://ffhacktics.com/wiki/Variables) # Returns: # r2 = Value of Script Variable with specified ID 8013b590: 27bdffe0 addiu r29,r29,-0x0020 8013b594: afb10014 sw r17,0x0014(r29) 8013b598: 00808821 addu r17,r4,r0 # VariableID 8013b59c: 3c028016 lui r2,0x8016 8013b5a0: 8c425f9c lw r2,0x5f9c(r2) # Variable_0_Pointer = *0x80165f9c 8013b5a4: 34030022 ori r3,r0,0x0022 # 0x22 8013b5a8: afbf001c sw r31,0x001c(r29) 8013b5ac: afb20018 sw r18,0x0018(r29) 8013b5b0: afb00010 sw r16,0x0010(r29) 8013b5b4: 8c520000 lw r18,0x0000(r2) # Old_Variable_0_Value = *Variable_0_Pointer 8013b5b8: 1623000d bne r17,r3,0x8013b5f0 8013b5bc: 340400be ori r4,r0,0x00be # 0xbe # if (Variable ID == 0x22) { 8013b5c0: 0c04ed64 jal 0x8013b590 # ROUTINE: (Result_0x24) = Get Script Variable (0x24) // Recursive call! 8013b5c4: 34040024 ori r4,r0,0x0024 # 0x24 8013b5c8: 30500001 andi r16,r2,0x0001 # (Result_0x24) & 0x01 8013b5cc: 0c04ed64 jal 0x8013b590 # ROUTINE: (Result_0x23) = Get Script Variable (0x23) // Recursive call! 8013b5d0: 34040023 ori r4,r0,0x0023 # 0x23 8013b5d4: 30420007 andi r2,r2,0x0007 # (Result_0x23) & 0x07 8013b5d8: 001083c0 sll r16,r16,0x0f # ((Result_0x24) & 0x01) << 15 8013b5dc: 00021300 sll r2,r2,0x0c # ((Result_0x23) & 0x07) << 12 8013b5e0: 34040022 ori r4,r0,0x0022 # 0x22 8013b5e4: 0c04ed91 jal 0x8013b644 # ROUTINE: Set Script Variable (0x22, ((((Result_0x24) & 0x01) << 15) | (((Result_0x23) & 0x07) << 12))) 8013b5e8: 02022825 or r5,r16,r2 # ((((Result_0x24) & 0x01) << 15) | (((Result_0x23) & 0x07) << 12)) 8013b5ec: 340400be ori r4,r0,0x00be # 0xbe # } 8013b5f0: 00002821 addu r5,r0,r0 # 0 8013b5f4: 00003021 addu r6,r0,r0 # 0 8013b5f8: 0c052806 jal 0x8014a018 # ROUTINE: Run Script Variable Command (0xbe, 0, 0, 0) // ZERO (0) 8013b5fc: 00003821 addu r7,r0,r0 # 0 8013b600: 340400b1 ori r4,r0,0x00b1 # 0xb1 8013b604: 00002821 addu r5,r0,r0 # 0 8013b608: 02203021 addu r6,r17,r0 # Variable ID 8013b60c: 0c052806 jal 0x8014a018 # ROUTINE: Run Script Variable Command (0xb1, 0, VariableID, 0) // ADDVAR (0, VariableID) 8013b610: 00003821 addu r7,r0,r0 # 0 8013b614: 3c038016 lui r3,0x8016 8013b618: 8c635f9c lw r3,0x5f9c(r3) # Variable_0_Pointer = *0x80165f9c 8013b61c: 00000000 nop 8013b620: 8c620000 lw r2,0x0000(r3) # result = *(Variable_0_Pointer) 8013b624: ac720000 sw r18,0x0000(r3) # *(Variable_0_Pointer) = Old_Variable_0_Value 8013b628: 8fbf001c lw r31,0x001c(r29) # return result 8013b62c: 8fb20018 lw r18,0x0018(r29) 8013b630: 8fb10014 lw r17,0x0014(r29) 8013b634: 8fb00010 lw r16,0x0010(r29) 8013b638: 27bd0020 addiu r29,r29,0x0020 8013b63c: 03e00008 jr r31 8013b640: 00000000 nop
Return location
SCUS_942.21 0005e69c: Increase_Casualties/Injured_Counters Battle.bin 00070d70: 00079314: 00079344: 00081ea0: 00081eac: 00088880: 0008e6ec: 0008e93c: 0008e948: 0008e954: 0008ebcc: 0008edd4: 0008ee80: 00093674: 000eeb80: 000f35a8: 000f35b4: 000f35c8: 000f3930: 000f393c: 000f3950: 000f3b88: 000f3b94: 000f3ba8: 000f3ffc: 000f4008: 000f401c: 000f4bf4: 000f4c00: 000f4c14: 0012da30: 0012da40: 0012db20: 0012dc94: 0012dfc4: 0012fac8: 0012fb0c: 0012fcd0: 00131428: 00131d70: 001322f0: 0013332c: 001333f8: 00137c5c: 0013b5c8: 0013b5d4: 0013cd8c: 0013e82c: 0013f420: 0013f450: 0014066c: 001418b4: 00141b90: 00141c68: 00141d18: 00141d4c: 00141d7c: 001422d4: 001426dc: 001426f8: 00142714: 0014292c: 00142948: 00142964: 00142978: 00142988: 001429a4: 001429b8: 001429c8: 001429e4: 00142a00: 00142b78: 00142c64: 00142c7c: 00142e74: 00142eb4: 001435f0: 00143614: 00143694: 00143c94: 00143dd8: 00143e08: 00143e20: 00143e94: 00144370: 00145608: 00145b9c: 00145bb4: 00145bc0: 00145e7c: 00145fc4: 001461cc: 001486d0: 0014a1e4: Run_Script_Variable_Command 0014a21c: Run_Script_Variable_Command 0014a430: 0014b588: 0017f904: 00180298: 001803d8: 00185780: Weather_effects_on_Bows 0018578c: Weather_effects_on_Bows 00186794: Steal_Gil 0018e670: 0018eb00:
Routine duplicated here : Unknown_1