Get Script Variable

From Final Fantasy Hacktics Wiki
(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