Difference between revisions of "Set Script Variable"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with " # ROUTINE: SET SCRIPT VARIABLE # Parameters: # r4 = Variable ID # r5 = Value 8013b644: 27bdffe0 addiu r29,r29,-0x0020 8013b648: afb00010 sw...")
 
 
Line 1: Line 1:
 
  #  ROUTINE: SET SCRIPT VARIABLE
 
  #  ROUTINE: SET SCRIPT VARIABLE
 
  #      Parameters:
 
  #      Parameters:
  #          r4 = Variable ID
+
  #          r4 = (VariableID) Variable ID (https://ffhacktics.com/wiki/Variables)
  #          r5 = Value
+
  #          r5 = (Value) New value for variable to be set to
 
   
 
   
 
  8013b644: 27bdffe0 addiu r29,r29,-0x0020
 
  8013b644: 27bdffe0 addiu r29,r29,-0x0020
 
  8013b648: afb00010 sw r16,0x0010(r29)
 
  8013b648: afb00010 sw r16,0x0010(r29)
  8013b64c: 00808021 addu r16,r4,r0              #  Variable ID
+
  8013b64c: 00808021 addu r16,r4,r0              #  VariableID
 
  8013b650: afb10014 sw r17,0x0014(r29)
 
  8013b650: afb10014 sw r17,0x0014(r29)
 
  8013b654: 3c028016 lui r2,0x8016
 
  8013b654: 3c028016 lui r2,0x8016
  8013b658: 8c425f9c lw r2,0x5f9c(r2)            #  *0x80165f9c
+
  8013b658: 8c425f9c lw r2,0x5f9c(r2)            #  Variable_0_Pointer = *0x80165f9c
 
  8013b65c: 3403002c ori r3,r0,0x002c            #  0x2c
 
  8013b65c: 3403002c ori r3,r0,0x002c            #  0x2c
 
  8013b660: afbf001c sw r31,0x001c(r29)
 
  8013b660: afbf001c sw r31,0x001c(r29)
 
  8013b664: afb20018 sw r18,0x0018(r29)
 
  8013b664: afb20018 sw r18,0x0018(r29)
  8013b668: 8c520000 lw r18,0x0000(r2)            #  *(*0x80165f9c)
+
  8013b668: 8c520000 lw r18,0x0000(r2)            #  Old_Variable_0_Value = *Variable_0_Pointer
 
  8013b66c: 16030008 bne r16,r3,0x8013b690         
 
  8013b66c: 16030008 bne r16,r3,0x8013b690         
  8013b670: 00a08821 addu r17,r5,r0              #  tempValue = Value (Parameter 2)
+
  8013b670: 00a08821 addu r17,r5,r0              #  newValue = Value
                                                 #  if (p1 == 0x2c) {
+
                                                 #  if (VariableID == 0x2c) {           // War Funds
 
  8013b674: 3c0205f5 lui r2,0x05f5
 
  8013b674: 3c0205f5 lui r2,0x05f5
  8013b678: 3442e0ff ori r2,r2,0xe0ff            #      0x05f5e0ff
+
  8013b678: 3442e0ff ori r2,r2,0xe0ff            #      99999999
 
  8013b67c: 0051102a slt r2,r2,r17                       
 
  8013b67c: 0051102a slt r2,r2,r17                       
 
  8013b680: 10400004 beq r2,r0,0x8013b694        #       
 
  8013b680: 10400004 beq r2,r0,0x8013b694        #       
 
  8013b684: 340400be ori r4,r0,0x00be            #      0xbe
 
  8013b684: 340400be ori r4,r0,0x00be            #      0xbe
                                                 #      if (0x05f5e0ff < p2) {
+
                                                 #      if (99999999 < value) {
 
  8013b688: 3c1105f5 lui r17,0x05f5
 
  8013b688: 3c1105f5 lui r17,0x05f5
  8013b68c: 3631e0ff ori r17,r17,0xe0ff          #          tempValue = 0x05f5e0ff
+
  8013b68c: 3631e0ff ori r17,r17,0xe0ff          #          newValue = 99999999
 
                                                 #      }
 
                                                 #      }
 
                                                 #  }
 
                                                 #  }
Line 30: Line 30:
 
  8013b694: 02002821 addu r5,r16,r0              #  p1
 
  8013b694: 02002821 addu r5,r16,r0              #  p1
 
  8013b698: 00003021 addu r6,r0,r0                #  0
 
  8013b698: 00003021 addu r6,r0,r0                #  0
  8013b69c: 0c052806 jal 0x8014a018              #  ROUTINE: [[? 0x14a018]] (0xbe, p1, 0, 0)
+
  8013b69c: 0c052806 jal 0x8014a018              #  ROUTINE: [[Run Script Variable Command]] (0xbe, p1, 0, 0)              // ZERO (VariableID)
 
  8013b6a0: 00003821 addu r7,r0,r0                #  0
 
  8013b6a0: 00003821 addu r7,r0,r0                #  0
 
  8013b6a4: 340400b0 ori r4,r0,0x00b0            #  0xb0
 
  8013b6a4: 340400b0 ori r4,r0,0x00b0            #  0xb0
 
  8013b6a8: 02002821 addu r5,r16,r0              #  p1
 
  8013b6a8: 02002821 addu r5,r16,r0              #  p1
  8013b6ac: 02203021 addu r6,r17,r0              #  tempValue
+
  8013b6ac: 02203021 addu r6,r17,r0              #  newValue
  8013b6b0: 0c052806 jal 0x8014a018              #  ROUTINE: [[? 0x14a018]] (0xb0, p1, tempValue, 0)
+
  8013b6b0: 0c052806 jal 0x8014a018              #  ROUTINE: [[Run Script Variable Command]] (0xb0, p1, newValue, 0)        // ADD (VariableID, newValue)
 
  8013b6b4: 00003821 addu r7,r0,r0                #  0
 
  8013b6b4: 00003821 addu r7,r0,r0                #  0
 
  8013b6b8: 3c028016 lui r2,0x8016
 
  8013b6b8: 3c028016 lui r2,0x8016
  8013b6bc: 8c425f9c lw r2,0x5f9c(r2)            #  *0x80165f9c
+
  8013b6bc: 8c425f9c lw r2,0x5f9c(r2)            #  Variable_0_Pointer = *0x80165f9c
 
  8013b6c0: 00000000 nop
 
  8013b6c0: 00000000 nop
  8013b6c4: ac520000 sw r18,0x0000(r2)            #  *0x80165f9c = *(*0x80165f9c)
+
  8013b6c4: ac520000 sw r18,0x0000(r2)            #  *(Variable_0_Pointer) = Old_Variable_0_Value
 
  8013b6c8: 8fbf001c lw r31,0x001c(r29)
 
  8013b6c8: 8fbf001c lw r31,0x001c(r29)
 
  8013b6cc: 8fb20018 lw r18,0x0018(r29)
 
  8013b6cc: 8fb20018 lw r18,0x0018(r29)

Latest revision as of 15:25, 1 December 2021

#   ROUTINE: SET SCRIPT VARIABLE
#       Parameters:
#           r4 = (VariableID) Variable ID (https://ffhacktics.com/wiki/Variables)
#           r5 = (Value) New value for variable to be set to

8013b644: 27bdffe0 addiu r29,r29,-0x0020
8013b648: afb00010 sw r16,0x0010(r29)
8013b64c: 00808021 addu r16,r4,r0               #   VariableID
8013b650: afb10014 sw r17,0x0014(r29)
8013b654: 3c028016 lui r2,0x8016
8013b658: 8c425f9c lw r2,0x5f9c(r2)             #   Variable_0_Pointer = *0x80165f9c
8013b65c: 3403002c ori r3,r0,0x002c             #   0x2c
8013b660: afbf001c sw r31,0x001c(r29)
8013b664: afb20018 sw r18,0x0018(r29)
8013b668: 8c520000 lw r18,0x0000(r2)            #   Old_Variable_0_Value = *Variable_0_Pointer
8013b66c: 16030008 bne r16,r3,0x8013b690        
8013b670: 00a08821 addu r17,r5,r0               #   newValue = Value
                                                #   if (VariableID == 0x2c) {           // War Funds
8013b674: 3c0205f5 lui r2,0x05f5
8013b678: 3442e0ff ori r2,r2,0xe0ff             #       99999999
8013b67c: 0051102a slt r2,r2,r17                       
8013b680: 10400004 beq r2,r0,0x8013b694         #       
8013b684: 340400be ori r4,r0,0x00be             #       0xbe
                                                #       if (99999999 < value) {
8013b688: 3c1105f5 lui r17,0x05f5
8013b68c: 3631e0ff ori r17,r17,0xe0ff           #           newValue = 99999999
                                                #       }
                                                #   }
8013b690: 340400be ori r4,r0,0x00be             #   0xbe
8013b694: 02002821 addu r5,r16,r0               #   p1
8013b698: 00003021 addu r6,r0,r0                #   0
8013b69c: 0c052806 jal 0x8014a018               #   ROUTINE: Run Script Variable Command (0xbe, p1, 0, 0)               // ZERO (VariableID)
8013b6a0: 00003821 addu r7,r0,r0                #   0
8013b6a4: 340400b0 ori r4,r0,0x00b0             #   0xb0
8013b6a8: 02002821 addu r5,r16,r0               #   p1
8013b6ac: 02203021 addu r6,r17,r0               #   newValue
8013b6b0: 0c052806 jal 0x8014a018               #   ROUTINE: Run Script Variable Command (0xb0, p1, newValue, 0)        // ADD (VariableID, newValue)
8013b6b4: 00003821 addu r7,r0,r0                #   0
8013b6b8: 3c028016 lui r2,0x8016
8013b6bc: 8c425f9c lw r2,0x5f9c(r2)             #   Variable_0_Pointer = *0x80165f9c
8013b6c0: 00000000 nop
8013b6c4: ac520000 sw r18,0x0000(r2)            #   *(Variable_0_Pointer) = Old_Variable_0_Value
8013b6c8: 8fbf001c lw r31,0x001c(r29)
8013b6cc: 8fb20018 lw r18,0x0018(r29)
8013b6d0: 8fb10014 lw r17,0x0014(r29)
8013b6d4: 8fb00010 lw r16,0x0010(r29)
8013b6d8: 27bd0020 addiu r29,r29,0x0020
8013b6dc: 03e00008 jr r31
8013b6e0: 00000000 nop