Difference between revisions of "Moldball Virus Depth Check"
Jump to navigation
Jump to search
(Created page with " Moldball Virus Depth Check 00179204: 00042400 sll r4,r4,0x10 00179208: 00042403 sra r4,r4,0x10 0017920c: 34020149 ori r2,r0,0x0149 r2 = Moldball Virus 00179210: 1482001...") |
m |
||
Line 1: | Line 1: | ||
− | + | Parameters : r4 = Ability ID | |
− | + | ||
− | 00179204: 00042400 sll r4,r4,0x10 | + | Nullify AoE flag of targetable grid panel if Ability is MoldBall virus (0x149) and tile depht > 0 |
− | 00179208: 00042403 sra r4,r4,0x10 | + | --------------------------------------------------------------------------------------------------- |
− | 0017920c: 34020149 ori r2,r0,0x0149 | + | 00179204: 00042400 sll r4,r4,0x10 | |
− | 00179210: 14820010 bne r4,r2, | + | 00179208: 00042403 sra r4,r4,0x10 |{{f/std|<nowiki>r4 = Ability ID (upper register cleard)</nowiki>}} |
− | 00179214: 00000000 nop | + | 0017920c: 34020149 ori r2,r0,0x0149 |{{f/std|<nowiki>r2 = Moldball Virus ID (0x149)</nowiki>}} |
− | 00179218: 00002821 addu r5,r0,r0 | + | 00179210: 14820010 bne r4,r2,0x00179254 {{f/Cond|<nowiki>If Ability is Moldball Virus</nowiki>}} {{f/Cond|<nowiki>\Else Branch to </nowiki>{{f/loc|<nowiki>END</nowiki>}}<nowiki></nowiki>}} |
− | 0017921c: 3c048019 lui r4,0x8019 | + | 00179214: 00000000 nop | |
− | 00179220: 24842dd8 addiu r4,r4,0x2dd8 | + | 00179218: 00002821 addu r5,r0,r0 |{{f/std|<nowiki>Counter = 0</nowiki>}} |
− | 00179224: 3c038019 lui r3,0x8019 | + | 0017921c: 3c048019 lui r4,0x8019 | |
− | 00179228: 2463f8cc addiu r3,r3, | + | 00179220: 24842dd8 addiu r4,r4,0x2dd8 |{{f/adr|<nowiki>r4 = Targetable grid data pointer</nowiki>}} |
− | 0017922c: 90620003 lbu r2,0x0003(r3) | + | 00179224: 3c038019 lui r3,0x8019 | |
− | 00179230: 00000000 nop | + | 00179228: 2463f8cc addiu r3,r3,-0x0734 |{{f/adr|<nowiki>r3 = Tile Data Pointer</nowiki>}} |
− | 00179234: 304200e0 andi r2,r2,0x00e0 | + | 0017922c: 90620003 lbu r2,0x0003(r3) {{f/bloop|<nowiki>LOOP through all tiles/panels</nowiki>}} {{f/load|<nowiki>r2 = this iteration tile depht + halves</nowiki>}} |
− | 00179238: 10400002 beq r2,r0, | + | 00179230: 00000000 nop | |
− | 0017923c: 24630008 addiu r3,r3,0x0008 | + | 00179234: 304200e0 andi r2,r2,0x00e0 |{{f/std|<nowiki>r2 <> 0x00 if depht <> 0</nowiki>}} |
− | 00179240: a0800000 sb r0,0x0000(r4) | + | 00179238: 10400002 beq r2,r0,0x00179244 {{f/Cond|<nowiki>If tile depht <> 0</nowiki>}} {{f/Cond|<nowiki>\Else branch to next loop iteration</nowiki>}} |
− | 00179244: 24a50001 addiu r5,r5,0x0001 | + | 0017923c: 24630008 addiu r3,r3,0x0008 |{{f/adr|<nowiki>r3 = Tile data pointer + 0x08 (next tile pointer)</nowiki>}} |
− | 00179248: 28a20200 slti r2,r5,0x0200 | + | 00179240: a0800000 sb r0,0x0000(r4) |{{f/store|<nowiki>Nullify targetable panel AoE (matching this iteration tile)</nowiki>}} |
− | 0017924c: 1440fff7 bne r2,r0, | + | 00179244: 24a50001 addiu r5,r5,0x0001 |{{f/std|<nowiki>r5 = Tile counter +1</nowiki>}} |
− | 00179250: 24840005 addiu r4,r4,0x0005 | + | 00179248: 28a20200 slti r2,r5,0x0200 |{{f/std|<nowiki>r2 = 0x01 if Tile counter < 0x200 (every tile - lower and higher elevation)</nowiki>}} |
− | 00179254: 03e00008 jr r31 | + | 0017924c: 1440fff7 bne r2,r0,0x0017922c {{f/eloop|<nowiki>Loop until last possible tile </nowiki>}} |
− | 00179258: 00000000 nop | + | 00179250: 24840005 addiu r4,r4,0x0005 |{{f/adr|<nowiki>r4 = Targetable panel data pointer + 0x05 (next panel pointer)</nowiki>}} |
+ | 00179254: 03e00008 jr r31 '''END''' | ||
+ | 00179258: 00000000 nop | ||
+ | === Return location === | ||
+ | 0017bafc: [[Targeting_routine]] |
Latest revision as of 13:32, 8 February 2022
Parameters : r4 = Ability ID Nullify AoE flag of targetable grid panel if Ability is MoldBall virus (0x149) and tile depht > 0 --------------------------------------------------------------------------------------------------- 00179204: 00042400 sll r4,r4,0x10 | 00179208: 00042403 sra r4,r4,0x10 |r4 = Ability ID (upper register cleard) 0017920c: 34020149 ori r2,r0,0x0149 |r2 = Moldball Virus ID (0x149) 00179210: 14820010 bne r4,r2,0x00179254 #If Ability is Moldball Virus #\Else Branch to END 00179214: 00000000 nop | 00179218: 00002821 addu r5,r0,r0 |Counter = 0 0017921c: 3c048019 lui r4,0x8019 | 00179220: 24842dd8 addiu r4,r4,0x2dd8 |r4 = Targetable grid data pointer 00179224: 3c038019 lui r3,0x8019 | 00179228: 2463f8cc addiu r3,r3,-0x0734 |r3 = Tile Data Pointer 0017922c: 90620003 lbu r2,0x0003(r3) @LOOP through all tiles/panels r2 = this iteration tile depht + halves 00179230: 00000000 nop | 00179234: 304200e0 andi r2,r2,0x00e0 |r2 <> 0x00 if depht <> 0 00179238: 10400002 beq r2,r0,0x00179244 #If tile depht <> 0 #\Else branch to next loop iteration 0017923c: 24630008 addiu r3,r3,0x0008 |r3 = Tile data pointer + 0x08 (next tile pointer) 00179240: a0800000 sb r0,0x0000(r4) |Nullify targetable panel AoE (matching this iteration tile) 00179244: 24a50001 addiu r5,r5,0x0001 |r5 = Tile counter +1 00179248: 28a20200 slti r2,r5,0x0200 |r2 = 0x01 if Tile counter < 0x200 (every tile - lower and higher elevation) 0017924c: 1440fff7 bne r2,r0,0x0017922c Λ Loop until last possible tile 00179250: 24840005 addiu r4,r4,0x0005 |r4 = Targetable panel data pointer + 0x05 (next panel pointer) 00179254: 03e00008 jr r31 END 00179258: 00000000 nop
Return location
0017bafc: Targeting_routine