Difference between revisions of "Get Script Variable"
Jump to navigation
Jump to search
m (Add duplicated link) |
m (return link) |
||
Line 1: | Line 1: | ||
# ROUTINE: GET SCRIPT VARIABLE | # ROUTINE: GET SCRIPT VARIABLE | ||
# Parameters: | # Parameters: | ||
− | # r4 = VariableID | + | # r4 = VariableID (0x2C from steal gil) |
# Returns: | # Returns: | ||
# r2 = Value of Script Variable with specified ID | # r2 = Value of Script Variable with specified ID | ||
Line 53: | Line 53: | ||
8013b640: 00000000 nop | 8013b640: 00000000 nop | ||
+ | == Return location == | ||
+ | 00186794: [[Steal_Gil]] | ||
Routine duplicated here : [[Unknown_1]] | Routine duplicated here : [[Unknown_1]] |
Revision as of 19:57, 31 August 2021
# ROUTINE: GET SCRIPT VARIABLE # Parameters: # r4 = VariableID (0x2C from steal gil) # 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) # *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) # originalValue = *(*0x80165f9c) 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) # *0x80165f9c 8013b61c: 00000000 nop 8013b620: 8c620000 lw r2,0x0000(r3) # result = *(*0x80165f9c) 8013b624: ac720000 sw r18,0x0000(r3) # *(*0x80165f9c) = originalValue 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
00186794: Steal_Gil
Routine duplicated here : Unknown_1