Difference between revisions of "Store Current Statuses"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with " Store Current Statuses 0005e744: 00803021 addu r6,r4,r0 r6 = Unit's Data Pointer 0005e748: 00002821 addu r5,r0,r0 r5 = Counter 0005e74c: 00c51821 addu r3,r6,r5 r3 = Uni...")
 
m
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  Store Current Statuses
+
  Parameter : r4 = Unit Data pointer
  0005e744: 00803021 addu r6,r4,r0 r6 = Unit's Data Pointer
+
  0005e748: 00002821 addu r5,r0,r0 r5 = Counter
+
Load Unit's Innate Status (Unit 0x4e) and Unit inflicted Status (Unit 0x1bb), combine them and store them in Unit's Current status (Unit 0x58)
  0005e74c: 00c51821 addu r3,r6,r5 r3 = Unit's Data Pointer += Counter
+
----------------------------------------------------------------------------------------------------------------------------------------------
  0005e750: 9062004e lbu r2,0x004e(r3) Load Unit's X set of Innate Statuses
+
  0005e744: 00803021 addu r6,r4,r0                 |r6 = Unit's Data Pointer
  0005e754: 906401bb lbu r4,0x01bb(r3) Load Unit's X set of Inflicted Statuses
+
  0005e748: 00002821 addu r5,r0,r0                 |r5 = Counter
  0005e758: 24a50001 addiu r5,r5,0x0001 Counter += 1
+
                                                  {{f/bloop|LOOP - through 5 sets of status}}
  0005e75c: 00441025 or r2,r2,r4 Combine Innate and Inflicted Statuses
+
  0005e74c: 00c51821 addu r3,r6,r5                     |{{f/adr|<nowiki>r3 = This iteration Unit's Data Pointer</nowiki>}}
  0005e760: a0620058 sb r2,0x0058(r3) Store Current Statuses into set X
+
  0005e750: 9062004e lbu r2,0x004e(r3)                 |{{f/load|<nowiki>r2 = This iteration Unit's Innate Statuses</nowiki>}}
  0005e764: 28a20005 slti r2,r5,0x0005
+
  0005e754: 906401bb lbu r4,0x01bb(r3)                 |{{f/load|<nowiki>r4 = This iteration Unit's Inflicted Statuses</nowiki>}}
  0005e768: 1440fff8 bne r2,r0,0x0005e74c Branch if all statuses haven't been altered
+
  0005e758: 24a50001 addiu r5,r5,0x0001               |{{f/std|<nowiki>r5 = loop counter + 1</nowiki>}}
  0005e76c: 00000000 nop
+
  0005e75c: 00441025 or r2,r2,r4                       |{{f/std|Combine Innate and Inflicted Statuses}}
 +
  0005e760: a0620058 sb r2,0x0058(r3)                 |{{f/store|Store Statuses into this iteration Unit's current status set}}
 +
  0005e764: 28a20005 slti r2,r5,0x0005                 |{{f/std|<nowiki>r2 = 0x01 if loop counter < 0x05</nowiki>}}
 +
  0005e768: 1440fff8 bne r2,r0,0x0005e74c         |{{f/eloop|Loop (5 times)}}
 +
  0005e76c: 00000000
 
  0005e770: 03e00008 jr r31
 
  0005e770: 03e00008 jr r31
  0005e774: 00000000 nop
+
  0005e774: 00000000
 +
 
 +
 
 +
 
 +
 
 +
== Return Locations ==
 +
 
 +
0005d650: [[Status Setting/Checking + Equip/R/S/M Stats]]
 +
0005d774: [[Status Setting/Checking + Equip/R/S/M Stats]]
 +
0005d7c8: [[Status Setting/Checking + Equip/R/S/M Stats]]
 +
001836c4: [[AT_List_Preview%3F]]
 +
0018e2f4: [[Inflicted_status_CT_setting,_xfer_last_used_CT]]
 +
0018e5b8: [[Store_status,modified_ENTD_for_current_attack]]

Latest revision as of 20:03, 20 March 2022

Parameter : r4 = Unit Data pointer

Load Unit's Innate Status (Unit 0x4e) and Unit inflicted Status (Unit 0x1bb), combine them and store them in Unit's Current status (Unit 0x58)
----------------------------------------------------------------------------------------------------------------------------------------------
0005e744: 00803021 addu r6,r4,r0                 |r6 = Unit's Data Pointer
0005e748: 00002821 addu r5,r0,r0                 |r5 = Counter
                                                 @LOOP - through 5 sets of status
0005e74c: 00c51821 addu r3,r6,r5                     |r3 = This iteration Unit's Data Pointer
0005e750: 9062004e lbu r2,0x004e(r3)                 |r2 = This iteration Unit's Innate Statuses
0005e754: 906401bb lbu r4,0x01bb(r3)                 |r4 = This iteration Unit's Inflicted Statuses
0005e758: 24a50001 addiu r5,r5,0x0001                |r5 = loop counter + 1
0005e75c: 00441025 or r2,r2,r4                       |Combine Innate and Inflicted Statuses
0005e760: a0620058 sb r2,0x0058(r3)                  |Store Statuses into this iteration Unit's current status set
0005e764: 28a20005 slti r2,r5,0x0005                 |r2 = 0x01 if loop counter < 0x05
0005e768: 1440fff8 bne r2,r0,0x0005e74c          |Λ Loop (5 times)
0005e76c: 00000000
0005e770: 03e00008 jr r31
0005e774: 00000000



Return Locations

0005d650: Status Setting/Checking + Equip/R/S/M Stats
0005d774: Status Setting/Checking + Equip/R/S/M Stats
0005d7c8: Status Setting/Checking + Equip/R/S/M Stats
001836c4: AT_List_Preview?
0018e2f4: Inflicted_status_CT_setting,_xfer_last_used_CT
0018e5b8: Store_status,modified_ENTD_for_current_attack