Difference between revisions of "Calculate Move EXP/JP UP To earn"
Jump to navigation
Jump to search
m (Talcall moved page Move Cap? to Calculate Move EXP/JP UP To earn: because that's what it does) |
m |
||
Line 6: | Line 6: | ||
0017f100: 340200fe ori r2,r0,0x00fe | 0017f100: 340200fe ori r2,r0,0x00fe | ||
0017f104: 308300ff andi r3,r4,0x00ff | 0017f104: 308300ff andi r3,r4,0x00ff | ||
− | 0017f108: 1462000d bne r3,r2,0x0017f140 branch if No. Tiles Moved != | + | 0017f108: 1462000d bne r3,r2,0x0017f140 branch if No. Tiles Moved != Failed teleport |
0017f10c: afbf0014 sw r31,0x0014(r29) | 0017f10c: afbf0014 sw r31,0x0014(r29) | ||
0017f110: 0c0088c3 jal 0x0002230c rng | 0017f110: 0c0088c3 jal 0x0002230c rng | ||
Line 21: | Line 21: | ||
0017f13c: 308300ff andi r3,r4,0x00ff | 0017f13c: 308300ff andi r3,r4,0x00ff | ||
0017f140: 340200ff ori r2,r0,0x00ff | 0017f140: 340200ff ori r2,r0,0x00ff | ||
− | 0017f144: 14620003 bne r3,r2,0x0017f154 branch if | + | 0017f144: 14620003 bne r3,r2,0x0017f154 branch if No. Tiles moved != Successful teleport |
0017f148: 308200ff andi r2,r4,0x00ff | 0017f148: 308200ff andi r2,r4,0x00ff | ||
− | 0017f14c: 34040001 ori r4,r0,0x0001 if | + | 0017f14c: 34040001 ori r4,r0,0x0001 if No. Tiles moved == successful teleport, set No. Tiles moved to 1? (that seems wrong.) |
0017f150: 308200ff andi r2,r4,0x00ff | 0017f150: 308200ff andi r2,r4,0x00ff | ||
0017f154: 2c420064 sltiu r2,r2,0x0064 set if Exp/jp to earn < 100 | 0017f154: 2c420064 sltiu r2,r2,0x0064 set if Exp/jp to earn < 100 | ||
Line 33: | Line 33: | ||
0017f16c: 8fb00010 lw r16,0x0010(r29) | 0017f16c: 8fb00010 lw r16,0x0010(r29) | ||
0017f170: 27bd0018 addiu r29,r29,0x0018 | 0017f170: 27bd0018 addiu r29,r29,0x0018 | ||
− | 0017f174: 03e00008 jr r31 return exp/jp to earn as | + | 0017f174: 03e00008 jr r31 return exp/jp to earn as number of tiles moved |
0017f178: 00000000 nop | 0017f178: 00000000 nop |
Latest revision as of 10:30, 8 September 2025
0017f0ec: 27bdffe8 addiu r29,r29,0xffe8 0017f0f0: afb00010 sw r16,0x0010(r29) 0017f0f4: 00808021 addu r16,r4,r0 Unit data pointer 0017f0f8: 3c048019 lui r4,0x8019 0017f0fc: 9084f7f0 lbu r4,-0x0810(r4) load number of tiles moved 0017f100: 340200fe ori r2,r0,0x00fe 0017f104: 308300ff andi r3,r4,0x00ff 0017f108: 1462000d bne r3,r2,0x0017f140 branch if No. Tiles Moved != Failed teleport 0017f10c: afbf0014 sw r31,0x0014(r29) 0017f110: 0c0088c3 jal 0x0002230c rng 0017f114: 00000000 nop 0017f118: 9203003a lbu r3,0x003a(r16) load move 0017f11c: 00000000 nop 0017f120: 00430018 mult r2,r3 move*RND(0x8000 - 0x7fff) (Signed) 0017f124: 00001012 mflo r2 0017f128: 04410002 bgez r2,0x0017f134 0017f12c: 00000000 nop 0017f130: 24427fff addiu r2,r2,0x7fff Move*RND(0x0 - 0x7fff) 0017f134: 000213c3 sra r2,r2,0x0f Move*RND(0x0 - 0x1) 0017f138: 24440001 addiu r4,r2,0x0001 Ceil(Move*RND(0x0 - 0x1) 0017f13c: 308300ff andi r3,r4,0x00ff 0017f140: 340200ff ori r2,r0,0x00ff 0017f144: 14620003 bne r3,r2,0x0017f154 branch if No. Tiles moved != Successful teleport 0017f148: 308200ff andi r2,r4,0x00ff 0017f14c: 34040001 ori r4,r0,0x0001 if No. Tiles moved == successful teleport, set No. Tiles moved to 1? (that seems wrong.) 0017f150: 308200ff andi r2,r4,0x00ff 0017f154: 2c420064 sltiu r2,r2,0x0064 set if Exp/jp to earn < 100 0017f158: 14400003 bne r2,r0,0x0017f168 cap exp/jp earned to 99 0017f15c: 308200ff andi r2,r4,0x00ff 0017f160: 34040063 ori r4,r0,0x0063 0017f164: 308200ff andi r2,r4,0x00ff exp/jp to earn capped at 99 0017f168: 8fbf0014 lw r31,0x0014(r29) 0017f16c: 8fb00010 lw r16,0x0010(r29) 0017f170: 27bd0018 addiu r29,r29,0x0018 0017f174: 03e00008 jr r31 return exp/jp to earn as number of tiles moved 0017f178: 00000000 nop