Status Setting/Checking + Equip/R/S/M Stats
Jump to navigation
Jump to search
Status Setting/Checking + Equip/R/S/M Stats 0005d628: 27bdffc8 addiu r29,r29,0xffc8 0005d62c: afb10024 sw r17,0x0024(r29) 0005d630: 00808821 addu r17,r4,r0 r17 = Unit's Data Pointer 0005d634: afb20028 sw r18,0x0028(r29) 0005d638: 00a09021 addu r18,r5,r0 r18 = Initialization Flag? 0005d63c: afb3002c sw r19,0x002c(r29) 0005d640: afbf0034 sw r31,0x0034(r29) 0005d644: afb40030 sw r20,0x0030(r29) 0005d648: afb00020 sw r16,0x0020(r29) 0005d64c: 9234018a lbu r20,0x018a(r17) Load Unit's ID 0005d650: 0c0179d1 jal 0x 0005e744 Store Current Statuses 0005d654: 00c09821 addu r19,r6,r0 r19 = Statuses Set Flag? 0005d658: 00008021 addu r16,r0,r0 Counter = 0 0005d65c: 27a50010 addiu r5,r29,0x0010 r5 = Pointer to temp. stored inflicted statuses 0005d660: 27a40018 addiu r4,r29,0x0018 r4 = Pointer to temp. stored statuses 0005d664: 02301821 addu r3,r17,r16 r3 = Unit's Data Pointer 0005d668: 90620058 lbu r2,0x0058(r3) Load Unit's X set of Statuses 0005d66c: 26100001 addiu r16,r16,0x0001 Counter ++ 0005d670: a0820000 sb r2,0x0000(r4) Store Statuses Temorarily 0005d674: 906201bb lbu r2,0x01bb(r3) Load Unit's X set of Inflicted Statuses 0005d678: 24840001 addiu r4,r4,0x0001 Temp Stored Status Pointer ++ 0005d67c: a0a20000 sb r2,0x0000(r5) Store inflicted Statuses temporarily 0005d680: 2a02 0005 slti r2,r16,0x 0005 0005d684: 1440fff7 bne r2,r0,0x 0005d664 Branch if all statuses haven't been stored 0005d688: 24a50001 addiu r5,r5,0x0001 Temp Stored Inflicted Status Pointer ++ 0005d68c: 92220003 lbu r2,0x0003(r17) Load Unit's Job ID 0005d690: 2625004a addiu r5,r17,0x004a r5 = Unit's Data Pointer + 0x4a (Equippable Items) 0005d694: 00028040 sll r16,r2,0x01 Job ID * 2 0005d698: 02028021 addu r16,r16,r2 Job ID * 3 0005d69c: 3c028006 lui r2,0x8006 0005d6a0: 8c426194 lw r2,0x6194(r2) Load Job Data Pointer 0005d6a4: 00108100 sll r16,r16,0x04 Job ID * 24 0005d6a8: 02028021 addu r16,r16,r2 Job ID * 24 + Job Data Pointer 0005d6ac: 92020017 lbu r2,0x0017(r16) Load Job's Move 0005d6b0: 34060004 ori r6,r0,0x0004 Limit = 4 (all 4 equippable items) 0005d6b4: a222003a sb r2,0x003a(r17) Store Job's Move into Unit's Move 0005d6b8: 92020018 lbu r2,0x0018(r16) Load Job's Jump 0005d6bc: 26040009 addiu r4,r16,0x0009 r4 = Job Data Pointer (Equippable Items) 0005d6c0: 3042007f andi r2,r2,0x007f 0005d6c4: 0c017319 jal 0x 0005cc64 Store X into Y (Job's equippable items into Unit's) 0005d6c8: a222003b sb r2,0x003b(r17) Store Job's Jump into Unit's Jump 0005d6cc: 2604001a addiu r4,r16,0x001a r4 = Job's Data Pointer (Innate Statuses) 0005d6d0: 2625004e addiu r5,r17,0x004e r5 = Unit's Data Pointer (Innate Statuses) 0005d6d4: 0c017319 jal 0x 0005cc64 Store X Into Y (Job's Statuses into Unit's) 0005d6d8: 3406000f ori r6,r0,0x000f Limit = f (all three status groups) 0005d6dc: 26040029 addiu r4,r16,0x0029 r4 = Job's Data Pointer (Elemental Resistances) 0005d6e0: 2625006d addiu r5,r17,0x006d r5 = Unit's Data Pointer (Elemental Resistances) 0005d6e4: 0c017319 jal 0x 0005cc64 Store X into Y (Job's Elemental Resistances into Unit's) 0005d6e8: 34060004 ori r6,r0,0x0004 Limit = 4 (all elemental resistances) 0005d6ec: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d6f0: 0c016de8 jal 0x 0005b7a0 Enable Unit's R/S/M Flags 0005d6f4: a2200071 sb r0,0x0071(r17) Store Unit's Elements Strengthened = 0 0005d6f8: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d6fc: 0c01723b jal 0x 0005c8ec Move/Jump +X Calculation 0005d700: 34050001 ori r5,r0,0x0001 r5 = 1 (Don't set Current HP/MP to Max) 0005d704: 0c0170e6 jal 0x 0005c398 Equipment Stat Setting 0005d708: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d70c: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d710: 0c017172 jal 0x 0005c5c8 Equipment Attribute Setting 0005d714: 00002821 addu r5,r0,r0 Level UP Check = 0 (No Level UP, just stat setting) 0005d718: 0c01709f jal 0x 0005c27c Equippable item setting (Support/Female-only) 0005d71c: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d720: 27a40010 addiu r4,r29,0x0010 r4 = Pointer to temp. stored Inflicted Statuses 0005d724: 02201821 addu r3,r17,r0 r3 = Unit's Data Pointer 0005d728: 27a50015 addiu r5,r29,0x0015 r5 = Temp Stored Inflicted Status Limit (for loop) 0005d72c: 12600004 beq r19,r0,0x 0005d740 Branch if Statuses have been set? 0005d730: 00000000 nop 0005d734: 90620058 lbu r2,0x0058(r3) Load Unit's X set of statuses 0005d738: 080175d3 j 0x 0005d74c (Inflicted Statuses = Current Statuses) 0005d73c: a06201bb sb r2,0x01bb(r3) Store X set of statuses in Unit's Inflicted Statuses 0005d740: 90820000 lbu r2,0x0000(r4) Load X set of stored statuses 0005d744: 00000000 nop (Inflicted Statuses = Inflicted Statuses) 0005d748: a06201bb sb r2,0x01bb(r3) Store X set of statuses in Unit's Inflicted Statuses 0005d74c: 24840001 addiu r4,r4,0x0001 Pointer to Temp stored Inflicted Statuses += 1 0005d750: 0085102a slt r2,r4,r5 0005d754: 1440fff5 bne r2,r0,0x 0005d72c Branch if all statuses haven't been stored 0005d758: 24630001 addiu r3,r3,0x0001 Unit's Data Pointer += 1 0005d75c: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d760: 92300002 lbu r16,0x0002(r17) Load Unit's Party ID 0005d764: 340200ff ori r2,r0,0x00ff 0005d768: 0c017534 jal 0x 0005d4d0 Float/Current Statuses/Status Immunities/Status CT 0005d76c: a2220002 sb r2,0x0002(r17) Store Party ID = FF 0005d770: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d774: 0c0179d1 jal 0x 0005e744 Store Current Statuses 0005d778: a2300002 sb r16,0x0002(r17) Store Unit's Party ID 0005d77c: 16400037 bne r18,r0,0x 0005d85c Branch if Initializing Data? 0005d780: 3c03cccc lui r3,0xcccc 0005d784: 9622002a lhu r2,0x002a(r17) Load Unit's Max HP 0005d788: 3463cccd ori r3,r3,0xcccd 0005d78c: 00430019 multu r2,r3 Max HP * 0.8 0005d790: 96230028 lhu r3,0x0028(r17) Load Unit's Current HP 0005d794: 00001010 mfhi r2 r2 = Max HP * 0.8 0005d798: 00021082 srl r2,r2,0x02 r2 = Max HP * 0.8 / 4 (or Max HP / 5) 0005d79c: 3042ffff andi r2,r2,0xffff 0005d7a0: 0043102b sltu r2,r2,r3 0005d7a4: 14400004 bne r2,r0,0x 0005d7b8 Branch if not in Critical 0005d7a8: 00000000 nop 0005d7ac: 922201bd lbu r2,0x01bd(r17) Load Unit's 3rd set of Inflicted Statuses 0005d7b0: 080175f1 j 0x 0005d7c4 0005d7b4: 34420001 ori r2,r2,0x0001 Enable Critical 0005d7b8: 922201bd lbu r2,0x01bd(r17) Load Unit's 3rd set of Inflicted Statuses 0005d7bc: 00000000 nop 0005d7c0: 304200fe andi r2,r2,0x00fe Disable Critical 0005d7c4: a22201bd sb r2,0x01bd(r17) Store Unit's New Inflicted Statuses 0005d7c8: 0c0179d1 jal 0x 0005e744 Store Current Statuses 0005d7cc: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d7d0: 00008021 addu r16,r0,r0 Counter = 0 0005d7d4: 34120001 ori r18,r0,0x0001 Counter2 = 1 0005d7d8: 06010002 bgez r16,0x 0005d7e4 Branch if Counter >= 0 0005d7dc: 02001021 addu r2,r16,r0 r2 = Counter 0005d7e0: 26020007 addiu r2,r16,0x0007 Counter += 7 0005d7e4: 000210c3 sra r2,r2,0x03 Counter / 8 0005d7e8: 32040007 andi r4,r16,0x0007 0005d7ec: 34030080 ori r3,r0,0x0080 Status Check = 80 0005d7f0: 00831807 srav r3,r3,r4 r3 = Status Check / Counter 0005d7f4: 03a22021 addu r4,r29,r2 r4 = Counter / 8 + Temp Current Statuses Pointer 0005d7f8: 02221021 addu r2,r17,r2 r2 = Unit's Data Pointer += Counter / 8 0005d7fc: 90840018 lbu r4,0x0018(r4) Load Temp Stored Current Statuses 0005d800: 90420058 lbu r2,0x0058(r2) Load Unit's Current Statuses 0005d804: 00832024 and r4,r4,r3 0005d808: 16600003 bne r19,r0,0x 0005d818 Branch if Statuses haven't been set yet? 0005d80c: 00431024 and r2,r2,r3 0005d810: 1082000e beq r4,r2,0x 0005d84c Branch if Temp Stored Status is already present 0005d814: 00000000 nop 0005d818: 10400009 beq r2,r0,0x 0005d840 Branch if Status is not present 0005d81c: 02402021 addu r4,r18,r0 r4 = Counter2 0005d820: 12600004 beq r19,r0,0x 0005d834 Branch if Statuses have been set? 0005d824: 02202021 addu r4,r17,r0 r4 = Unit's Data Pointer 0005d828: 02002821 addu r5,r16,r0 r5 = Counter 0005d82c: 0c0176dc jal 0x 0005db70 Status CT Setting 0005d830: 00003021 addu r6,r0,r0 r6 = 0 (Not Initializing?) 0005d834: 02402021 addu r4,r18,r0 r4 = Counter2 0005d838: 08017611 j 0x 0005d844 0005d83c: 34050001 ori r5,r0,0x0001 r5 = 1 (Status Present) 0005d840: 00002821 addu r5,r0,r0 r5 = 0 (Status not Present) 0005d844: 0c063a6f jal 0x0018e9bc Determine if Status Flags can be Enabled? 0005d848: 02803021 addu r6,r20,r0 r6 = Unit's ID 0005d84c: 26100001 addiu r16,r16,0x0001 Counter += 1 0005d850: 2a020028 slti r2,r16,0x0028 0005d854: 1440ffe0 bne r2,r0,0x 0005d7d8 Branch if all statuses haven't been checked 0005d858: 26520001 addiu r18,r18,0x0001 Counter2 += 1 0005d85c: 8fbf0034 lw r31,0x0034(r29) 0005d860: 8fb40030 lw r20,0x0030(r29) 0005d864: 8fb3002c lw r19,0x002c(r29) 0005d868: 8fb20028 lw r18,0x0028(r29) 0005d86c: 8fb10024 lw r17,0x0024(r29) 0005d870: 8fb00020 lw r16,0x0020(r29) 0005d874: 27bd0038 addiu r29,r29,0x0038 0005d878: 03e00008 jr r31 0005d87c: 00000000 nop
Return Locations
0005d5c8: Status Setting/Checking + Equip/R/S/M Stats Prep 0005d5ec: Status Setting/Checking + Equip/R/S/M Stats Prep 2 0005d610: Status Setting/Checking + Equip/R/S/M Stats Prep 3