Difference between revisions of "Level up/down ability"
Jump to navigation
Jump to search
(Created page with " Level up/Down (ability) 0018c85c: 3c028019 lui r2,0x8019 0018c860: 8c422d90 lw r2,0x2d90(r2) target action 0018c864: 27bdffe8 addiu r29,r29,0xffe8 0018c868: afbf0010 sw ...") |
m |
||
Line 1: | Line 1: | ||
− | + | No parameters | |
− | 0018c85c: 3c028019 lui r2,0x8019 | + | |
− | 0018c860: 8c422d90 lw r2,0x2d90(r2) | + | Returns r2 = 0x01 if there is Lv alteration special flag (malus or bonus) |
− | 0018c864: 27bdffe8 addiu r29,r29, | + | r2 = 0x00 if current action doesn't modify Unit Lv |
− | 0018c868: afbf0010 sw r31,0x0010(r29) | + | --------------------------------------------------------------------------------- |
− | 0018c86c: 94430010 lhu r3,0x0010(r2) | + | 0018c85c: 3c028019 lui r2,0x8019 | |
− | 0018c870: 00000000 nop | + | 0018c860: 8c422d90 lw r2,0x2d90(r2) |{{f/adr|Target Current Action (TCA) data pointer}} |
− | 0018c874: 30620080 andi r2,r3,0x0080 | + | 0018c864: 27bdffe8 addiu r29,r29,-0x0018 | |
− | 0018c878: 1040000c beq r2,r0,0x0018c8ac | + | 0018c868: afbf0010 sw r31,0x0010(r29) | |
− | 0018c87c: 30620100 andi r2,r3,0x0100 | + | 0018c86c: 94430010 lhu r3,0x0010(r2) |{{f/load|Load TCA Specials flags}} |
− | 0018c880: 3c028019 lui r2,0x8019 | + | 0018c870: 00000000 nop | |
− | 0018c884: 8c422d98 lw r2,0x2d98(r2) | + | 0018c874: 30620080 andi r2,r3,0x0080 |{{f/std|Check for Lv Bonus}} |
− | 0018c888: 00000000 nop | + | 0018c878: 1040000c beq r2,r0,0x0018c8ac {{f/Cond|If Lv bonus special flag is ON}} |
− | 0018c88c: 90420022 lbu r2,0x0022(r2) | + | 0018c87c: 30620100 andi r2,r3,0x0100 |{{f/std|Check for Lv Malus}} |
− | 0018c890: 00000000 nop | + | 0018c880: 3c028019 lui r2,0x8019 |{{f/std|}} |
− | 0018c894: 24430001 addiu r3,r2,0x0001 | + | 0018c884: 8c422d98 lw r2,0x2d98(r2) |{{f/adr|Target data pointer}} |
− | 0018c898: 28620064 slti r2,r3,0x0064 | + | 0018c888: 00000000 nop | |
− | 0018c89c: 1440000e bne r2,r0,0x0018c8d8 | + | 0018c88c: 90420022 lbu r2,0x0022(r2) |{{f/load|Load Target Lv}} |
− | 0018c8a0: 00002821 addu r5,r0,r0 | + | 0018c890: 00000000 nop | |
− | 0018c8a4: 08063236 j 0x0018c8d8 | + | 0018c894: 24430001 addiu r3,r2,0x0001 |{{f/std|<nowiki>r3 = Target Lv + 1</nowiki>}} |
− | 0018c8a8: 34030063 ori r3,r0,0x0063 | + | 0018c898: 28620064 slti r2,r3,0x0064 |{{f/std|<nowiki>r2 = 0x01 if Target Lv < 100</nowiki>}} |
− | 0018c8ac: 10400018 beq r2,r0,0x0018c910 | + | 0018c89c: 1440000e bne r2,r0,0x0018c8d8 {{f/Cond|If Target new Lv is > 99}} /Else branch and store r3 as new Lv |
− | 0018c8b0: 00001021 addu r2,r0,r0 | + | 0018c8a0: 00002821 addu r5,r0,r0 |{{f/std|<nowiki>r5 = 0x00 (for Lv up routine)</nowiki>}} |
− | 0018c8b4: 3c028019 lui r2,0x8019 | + | 0018c8a4: 08063236 j 0x0018c8d8 {{f/jump|jump and force unit Lv to 99}} |
− | 0018c8b8: 8c422d98 lw r2,0x2d98(r2) | + | 0018c8a8: 34030063 ori r3,r0,0x0063 |{{f/std|<nowiki>r3 = 99</nowiki>}} |
− | 0018c8bc: 00000000 nop | + | 0018c8ac: 10400018 beq r2,r0,0x0018c910 {{f/Cond|If Lv Malus special flag is ON}} /Else branch to END |
− | 0018c8c0: 90420022 lbu r2,0x0022(r2) | + | 0018c8b0: 00001021 addu r2,r0,r0 |{{f/std|<nowiki>r2 = 0x00</nowiki>}} |
− | 0018c8c4: 00000000 nop | + | 0018c8b4: 3c028019 lui r2,0x8019 |{{f/std|}} |
− | 0018c8c8: 2443ffff addiu r3,r2,0xffff | + | 0018c8b8: 8c422d98 lw r2,0x2d98(r2) |{{f/adr|Target data pointer}} |
− | 0018c8cc: 1c600002 bgtz r3,0x0018c8d8 | + | 0018c8bc: 00000000 nop | |
− | 0018c8d0: 34050001 ori r5,r0,0x0001 | + | 0018c8c0: 90420022 lbu r2,0x0022(r2) |{{f/load|Load Target Lv}} |
− | 0018c8d4: 34030001 ori r3,r0,0x0001 | + | 0018c8c4: 00000000 nop | |
− | 0018c8d8: 3c028019 lui r2,0x8019 | + | 0018c8c8: 2443ffff addiu r3,r2,0xffff |{{f/std|<nowiki>r3 = Target Lv - 1</nowiki>}} |
− | 0018c8dc: 8c42f5fc lw r2,-0x0a04(r2) | + | 0018c8cc: 1c600002 bgtz r3,0x0018c8d8 {{f/Cond|If Target new Lv is < 1}} |
− | 0018c8e0: 00000000 nop | + | 0018c8d0: 34050001 ori r5,r0,0x0001 |{{f/std|<nowiki>r5 = 0x01</nowiki>}} |
− | 0018c8e4: 1440000a bne r2,r0,0x0018c910 | + | 0018c8d4: 34030001 ori r3,r0,0x0001 |{{f/std|Force r3 to 1 (Lv can't be 0)}} |
− | 0018c8e8: 34020001 ori r2,r0,0x0001 | + | 0018c8d8: 3c028019 lui r2,0x8019 |{{f/std|}} |
− | 0018c8ec: 3c028019 lui r2,0x8019 | + | 0018c8dc: 8c42f5fc lw r2,-0x0a04(r2) |{{f/adr|Load Action State}} 0x8018f5fc |
− | 0018c8f0: 8c422d98 lw r2,0x2d98(r2) | + | 0018c8e0: 00000000 nop | |
− | 0018c8f4: 00000000 nop | + | 0018c8e4: 1440000a bne r2,r0,0x0018c910 {{f/Cond|If Action is been executed}} / Avoid if preview or AI simulation |
− | 0018c8f8: a0430022 sb r3,0x0022(r2) | + | 0018c8e8: 34020001 ori r2,r0,0x0001 |{{f/std|<nowiki>r2 = 0x01</nowiki>}} |
− | 0018c8fc: 3c048019 lui r4,0x8019 | + | 0018c8ec: 3c028019 lui r2,0x8019 |{{f/std|}} |
− | 0018c900: 8c842d98 lw r4,0x2d98(r4) | + | 0018c8f0: 8c422d98 lw r2,0x2d98(r2) |{{f/adr|Target data pointer}} |
− | 0018c904: 0c017684 jal 0x0005da10 | + | 0018c8f4: 00000000 nop | |
− | 0018c908: 00000000 nop | + | 0018c8f8: a0430022 sb r3,0x0022(r2) |{{f/store|Store new Lv}} |
− | 0018c90c: 34020001 ori r2,r0,0x0001 | + | 0018c8fc: 3c048019 lui r4,0x8019 | |
− | 0018c910: 8fbf0010 lw r31,0x0010(r29) | + | 0018c900: 8c842d98 lw r4,0x2d98(r4) |{{f/adr|<nowiki>r4 = Target data pointer</nowiki>}} |
+ | 0018c904: 0c017684 jal 0x0005da10 |{{f/jal|Level_Up_Section|Level_Up_Section}} | ||
+ | 0018c908: 00000000 nop | | ||
+ | 0018c90c: 34020001 ori r2,r0,0x0001 |{{f/std|<nowiki>r2 = 0x01</nowiki>}} | ||
+ | 0018c910: 8fbf0010 lw r31,0x0010(r29) END | ||
0018c914: 27bd0018 addiu r29,r29,0x0018 | 0018c914: 27bd0018 addiu r29,r29,0x0018 | ||
0018c918: 03e00008 jr r31 | 0018c918: 03e00008 jr r31 | ||
0018c91c: 00000000 nop | 0018c91c: 00000000 nop | ||
+ | === Return location === | ||
+ | '''Battle.bin''' | ||
+ | 0018c244: [[Attack_Finalisation_%26_Reaction_Flagging]] |
Latest revision as of 20:16, 20 November 2022
No parameters Returns r2 = 0x01 if there is Lv alteration special flag (malus or bonus) r2 = 0x00 if current action doesn't modify Unit Lv --------------------------------------------------------------------------------- 0018c85c: 3c028019 lui r2,0x8019 | 0018c860: 8c422d90 lw r2,0x2d90(r2) |Target Current Action (TCA) data pointer 0018c864: 27bdffe8 addiu r29,r29,-0x0018 | 0018c868: afbf0010 sw r31,0x0010(r29) | 0018c86c: 94430010 lhu r3,0x0010(r2) |Load TCA Specials flags 0018c870: 00000000 nop | 0018c874: 30620080 andi r2,r3,0x0080 |Check for Lv Bonus 0018c878: 1040000c beq r2,r0,0x0018c8ac #If Lv bonus special flag is ON 0018c87c: 30620100 andi r2,r3,0x0100 |Check for Lv Malus 0018c880: 3c028019 lui r2,0x8019 | 0018c884: 8c422d98 lw r2,0x2d98(r2) |Target data pointer 0018c888: 00000000 nop | 0018c88c: 90420022 lbu r2,0x0022(r2) |Load Target Lv 0018c890: 00000000 nop | 0018c894: 24430001 addiu r3,r2,0x0001 |r3 = Target Lv + 1 0018c898: 28620064 slti r2,r3,0x0064 |r2 = 0x01 if Target Lv < 100 0018c89c: 1440000e bne r2,r0,0x0018c8d8 #If Target new Lv is > 99 /Else branch and store r3 as new Lv 0018c8a0: 00002821 addu r5,r0,r0 |r5 = 0x00 (for Lv up routine) 0018c8a4: 08063236 j 0x0018c8d8 >>jump and force unit Lv to 99 0018c8a8: 34030063 ori r3,r0,0x0063 |r3 = 99 0018c8ac: 10400018 beq r2,r0,0x0018c910 #If Lv Malus special flag is ON /Else branch to END 0018c8b0: 00001021 addu r2,r0,r0 |r2 = 0x00 0018c8b4: 3c028019 lui r2,0x8019 | 0018c8b8: 8c422d98 lw r2,0x2d98(r2) |Target data pointer 0018c8bc: 00000000 nop | 0018c8c0: 90420022 lbu r2,0x0022(r2) |Load Target Lv 0018c8c4: 00000000 nop | 0018c8c8: 2443ffff addiu r3,r2,0xffff |r3 = Target Lv - 1 0018c8cc: 1c600002 bgtz r3,0x0018c8d8 #If Target new Lv is < 1 0018c8d0: 34050001 ori r5,r0,0x0001 |r5 = 0x01 0018c8d4: 34030001 ori r3,r0,0x0001 |Force r3 to 1 (Lv can't be 0) 0018c8d8: 3c028019 lui r2,0x8019 | 0018c8dc: 8c42f5fc lw r2,-0x0a04(r2) |Load Action State 0x8018f5fc 0018c8e0: 00000000 nop | 0018c8e4: 1440000a bne r2,r0,0x0018c910 #If Action is been executed / Avoid if preview or AI simulation 0018c8e8: 34020001 ori r2,r0,0x0001 |r2 = 0x01 0018c8ec: 3c028019 lui r2,0x8019 | 0018c8f0: 8c422d98 lw r2,0x2d98(r2) |Target data pointer 0018c8f4: 00000000 nop | 0018c8f8: a0430022 sb r3,0x0022(r2) |Store new Lv 0018c8fc: 3c048019 lui r4,0x8019 | 0018c900: 8c842d98 lw r4,0x2d98(r4) |r4 = Target data pointer 0018c904: 0c017684 jal 0x0005da10 |-->Level_Up_Section 0018c908: 00000000 nop | 0018c90c: 34020001 ori r2,r0,0x0001 |r2 = 0x01 0018c910: 8fbf0010 lw r31,0x0010(r29) END 0018c914: 27bd0018 addiu r29,r29,0x0018 0018c918: 03e00008 jr r31 0018c91c: 00000000 nop
Return location
Battle.bin 0018c244: Attack_Finalisation_&_Reaction_Flagging