Difference between revisions of "Set Reachable Tile Flag"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 00175288: 27bdffd8 addiu r29,r29,0xffd8 0017528c: afb10014 sw r17,0x0014(r29) 00175290: 3c118019 lui r17,0x8019 00175294: 8e31f4e0 lw r17,-0x0b...")
 
Line 1: Line 1:
<font face='Courier New'>
+
BATTLE.BIN : Set Reachable Tile Flag
 +
------------------------------------------------------------------------------------------------------------
 +
Parameters : Nothing
 +
Returns  : Nothing
 +
           
 +
Loop Through each Tile and enable Flag 0x20 on Byte 0x05 from Tile's data (8018f8cc)
 +
Increment a reachable Tile counter in S-Pad 0x180 (0x18)
 +
------------------------------------------------------------------------------------------------------------
 +
00175288: 27bdffd8 addiu r29,r29,-0x0028    |
 +
0017528c: afb10014 sw r17,0x0014(r29)      |
 +
00175290: 3c118019 lui r17,0x8019          |
 +
00175294: 8e31f4e0 lw r17,-0x0b20(r17)      |{{f/adr|Pointer to Scratch Pad (0x1f800000)}}
 +
00175298: afbf0020 sw r31,0x0020(r29)      |
 +
0017529c: afb3001c sw r19,0x001c(r29)      |
 +
001752a0: afb20018 sw r18,0x0018(r29)      |
 +
001752a4: afb00010 sw r16,0x0010(r29)      |
 +
001752a8: 92230008 lbu r3,0x0008(r17)      |{{f/load|Active Unit Y}}
 +
001752ac: 92220018 lbu r2,0x0018(r17)      |{{f/load|Map Max X}}
 +
001752b0: 00000000 nop                      |
 +
001752b4: 00620018 mult r3,r2              |
 +
001752b8: 3c128019 lui r18,0x8019          |
 +
001752bc: 8e52f4e4 lw r18,-0x0b1c(r18)      |{{f/adr|Pointer to Scratch Pad (0x1f800180)}}
 +
001752c0: 3c108019 lui r16,0x8019          |
 +
001752c4: 8e10f4f0 lw r16,-0x0b10(r16)      |{{f/adr|Pointer to Scratch Pad (0x1f800200) - Dynamic}}
 +
001752c8: 92220009 lbu r2,0x0009(r17)      |{{f/load|Active Unit Elevation}}
 +
001752cc: 92240007 lbu r4,0x0007(r17)      |{{f/load|Active Unit X}}
 +
001752d0: 00021200 sll r2,r2,0x08          |{{f/std|Elevation offset (0 or 0x100)}}
 +
001752d4: 00001812 mflo r3                  |
 +
001752d8: 00431021 addu r2,r2,r3            |
 +
001752dc: 0c05d37e jal 0x00174df8          |{{f/jal|Disable_Tile_Flag_0x10_For_Dead_and_Jumping_Units|Disable_Tile_Flag_0x10_For_Dead_and_Jumping_Units}} {{f/std|Check all units}}
 +
001752e0: 00449821 addu r19,r2,r4          |{{f/std|Active Unit Tile's ID}} {{f/std| (Y*Max X) + X + Elevation offset}}
 +
001752e4: 00004021 addu r8,r0,r0            |{{f/std|Initialize Tile counter}}
 +
001752e8: 00004821 addu r9,r0,r0            |{{f/std|Initialize Tile offset (+ 0x5 each iteration)}}
 +
                                            {{f/bloop|LOOP 0x200 Times (Each Tile)}}
 +
001752ec: 000818c0 sll r3,r8,0x03              |{{f/std|Tile ID * 8}}
 +
001752f0: 3c028019 lui r2,0x8019                |
 +
001752f4: 2442f8cc addiu r2,r2,-0x0734          |
 +
001752f8: 00622021 addu r4,r3,r2                |{{f/adr|Pointer : This iteration Tile's data ( 8018f8cc )}}
 +
001752fc: 90820005 lbu r2,0x0005(r4)            |{{f/load|Load Tile 0x05}}
 +
00175300: 00000000 nop                          |
 +
00175304: 304200df andi r2,r2,0x00df            |
 +
00175308: a0820005 sb r2,0x0005(r4)            |{{f/store|Disable flag 0x20 and store data back}}
 +
0017530c: 3c028019 lui r2,0x8019                |
 +
00175310: 24422dd8 addiu r2,r2,0x2dd8          |
 +
00175314: 11130061 beq r8,r19,0x0017549c        {{f/Cond|If This Tile is the Actve Unit tile : branch to }} {{f/loc| Next Tile iteration}}
 +
00175318: 01222821 addu r5,r9,r2                |{{f/adr|Pointer : This iteration Tile's Grid data ( 80192dd8 )}}
 +
0017531c: 9223000e lbu r3,0x000e(r17)          |{{f/load|Load Unit Move Type}}
 +
00175320: 34020001 ori r2,r0,0x0001            |
 +
00175324: 14620006 bne r3,r2,0x00175340        {{f/Cond|If Unit is not Teleporting}}
 +
00175328: 00000000 nop                              |
 +
0017532c: 92020000 lbu r2,0x0000(r16)              |{{f/load|Load Tile's flag (S-Pad 0x200)}}
 +
00175330: 00000000 nop                              |
 +
00175334: 30420020 andi r2,r2,0x0020                |
 +
00175338: 14400050 bne r2,r0,0x0017547c            {{f/Cond|If Tile's 0x20 Flag is ON : branch to}} {{f/loc| Reachable Tile section}}
 +
0017533c: 00000000 nop                                  |
 +
00175340: 90a20003 lbu r2,0x0003(r5)            |{{f/load|Load Grid 0x03}}
 +
00175344: 00000000 nop                          |
 +
00175348: 10400005 beq r2,r0,0x00175360        {{f/Cond|If Grid [0x03] <> 0x00  (Move cost from acting unit)}}
 +
0017534c: 00000000 nop                              |
 +
00175350: 92220016 lbu r2,0x0016(r17)              |{{f/load|Can Ride Flag}} {{f/std|Human not frog/chicken/charm}}
 +
00175354: 00000000 nop                              |
 +
00175358: 14400048 bne r2,r0,0x0017547c            {{f/Cond|If Unit can ride : branch to}} {{f/loc| Reachable Tile section}}
 +
0017535c: 00000000 nop                                  |
 +
00175360: 90870003 lbu r7,0x0003(r4)            |{{f/load|Tile's Halves + Depth}}
 +
00175364: 00000000 nop                          |
 +
00175368: 30e3001f andi r3,r7,0x001f            |{{f/std|Halves only}}
 +
0017536c: 28620003 slti r2,r3,0x0003            |
 +
00175370: 14400006 bne r2,r0,0x0017538c        {{f/Cond|<nowiki>If Halve >= 0x3</nowiki>}}
 +
00175374: 00000000 nop                              |
 +
00175378: 92020000 lbu r2,0x0000(r16)              |{{f/load|Load Tile's flags (S-Pad 0x200)}}
 +
0017537c: 00000000 nop                              |
 +
00175380: 30420002 andi r2,r2,0x0002                |
 +
00175384: 14400045 bne r2,r0,0x0017549c            {{f/Cond|If [0x02] is ON : branch to}} {{f/loc| Next Tile iteration}}
 +
00175388: 00000000 nop                                  |
 +
0017538c: 90a20000 lbu r2,0x0000(r5)            |{{f/load|Load Grid 0x00 (AoE)}}
 +
00175390: 00000000 nop                          |
 +
00175394: 10400041 beq r2,r0,0x0017549c        {{f/Cond|<nowiki>If AoE = 0x00 : Branch to</nowiki>}} {{f/loc| Next Tile iteration}}
 +
00175398: 28620004 slti r2,r3,0x0004                |
 +
0017539c: 1040003f beq r2,r0,0x0017549c        {{f/Cond|if Halves > 0x03 : Branch to}} {{f/loc| Next Tile iteration}}
 +
001753a0: 00000000 nop                              |
 +
001753a4: 90860006 lbu r6,0x0006(r4)            |{{f/load|Load Tile's 0x06}}
 +
001753a8: 00000000 nop                          |
 +
001753ac: 30c20080 andi r2,r6,0x0080            |
 +
001753b0: 1440003a bne r2,r0,0x0017549c        {{f/Cond|If Tile's 0x06 flag 0x80 is ON : Branch to}} {{f/loc| Next Tile iteration}}
 +
001753b4: 00000000 nop                              |
 +
001753b8: 90820000 lbu r2,0x0000(r4)            |{{f/load|Load Tile's Type}}
 +
001753bc: 00000000 nop                          |
 +
001753c0: 3045003f andi r5,r2,0x003f            |{{f/std|<nowiki>r5 = Tile's Type</nowiki>}}
 +
001753c4: 3402001c ori r2,r0,0x001c            |
 +
001753c8: 10a20034 beq r5,r2,0x0017549c        {{f/Cond|If Tile's Type is Obstacle : Branch to}} {{f/loc| Next Tile iteration}}
 +
001753cc: 00000000 nop                              |
 +
001753d0: 90820003 lbu r2,0x0003(r4)            |{{f/load|Load Tile's Halves + Depth}}
 +
001753d4: 00000000 nop                          |
 +
001753d8: 304300e0 andi r3,r2,0x00e0            |
 +
001753dc: 10600005 beq r3,r0,0x001753f4        {{f/Cond|If Tile has depth}}
 +
001753e0: 34020060 ori r2,r0,0x0060                |
 +
001753e4: 92220014 lbu r2,0x0014(r17)              |{{f/load|Load Unit Can enter Water flag}}
 +
001753e8: 00000000 nop                              |
 +
001753ec: 1440002b bne r2,r0,0x0017549c            {{f/Cond|If Unit cannot enter water : branch to}} {{f/loc| Next Tile iteration}}
 +
001753f0: 34020060 ori r2,r0,0x0060                    |
 +
001753f4: 14620005 bne r3,r2,0x0017540c        {{f/Cond|<nowiki>If Depth =  3</nowiki>}}
 +
001753f8: 00071142 srl r2,r7,0x05              |{{f/std|Depth only (1 to 4)}}
 +
001753fc: 92220012 lbu r2,0x0012(r17)              |{{f/load|Load Unit's Walk on/in/under water flag}}
 +
00175400: 00000000 nop                              |
 +
00175404: 14400025 bne r2,r0,0x0017549c            {{f/Cond|If Unit cannot move in/on water : branch to }} {{f/loc| Next Tile iteration}}
 +
00175408: 00071142 srl r2,r7,0x05                      |
 +
0017540c: 28420004 slti r2,r2,0x0004            |
 +
00175410: 14400005 bne r2,r0,0x00175428        {{f/Cond|<nowiki>If Depth >= 4</nowiki>}}
 +
00175414: 34020012 ori r2,r0,0x0012            |{{f/std|<nowiki>r2 = 0x12</nowiki>}}
 +
00175418: 92220013 lbu r2,0x0013(r17)              |{{f/load|Load Unit's Walk on/in water flag (0 if ok)}}
 +
0017541c: 00000000 nop                              |
 +
00175420: 1440001e bne r2,r0,0x0017549c            {{f/Cond|If Unit cannot walk on/in water : branch to }} {{f/loc| Next Tile iteration}}
 +
00175424: 34020012 ori r2,r0,0x0012                    |
 +
00175428: 14a20005 bne r5,r2,0x00175440        {{f/Cond|if Tile's Type is Lava}}
 +
0017542c: 30c20002 andi r2,r6,0x0002            |{{f/std|Check [Cannot Target]}}
 +
00175430: 92220025 lbu r2,0x0025(r17)              |{{f/load|Load Unit's Float/move on lava flag}}
 +
00175434: 00000000 nop                              |
 +
00175438: 10400018 beq r2,r0,0x0017549c            {{f/Cond|If cannot pass lava : branch to}} {{f/loc| Next Tile iteration}}
 +
0017543c: 30c20002 andi r2,r6,0x0002                    |
 +
00175440: 14400016 bne r2,r0,0x0017549c        {{f/Cond|If Tile has [Cannot Target] flag : branch to }} {{f/loc| Next Tile iteration}}
 +
00175444: 00000000 nop                              |
 +
00175448: 92030000 lbu r3,0x0000(r16)          |{{f/load|Load Tile's flags (S-Pad 0x200)}}
 +
0017544c: 00000000 nop                          |
 +
00175450: 30620010 andi r2,r3,0x0010            |{{f/std|Check flag [0x10]}}
 +
00175454: 10400011 beq r2,r0,0x0017549c        {{f/Cond|If Flag 0x10 is OFF : branch to }} {{f/loc| Next Tile iteration}}
 +
00175458: 30620004 andi r2,r3,0x0004                |
 +
0017545c: 10400007 beq r2,r0,0x0017547c        {{f/Cond|If There's a Unit on Tile}}
 +
00175460: 30620020 andi r2,r3,0x0020                |
 +
00175464: 1040000d beq r2,r0,0x0017549c            {{f/Cond|If Flag 0x20 is OFF : branch to }} {{f/loc| Next Tile iteration}} {{f/std| (Chocobo check behind this flag)}}
 +
00175468: 00000000 nop                                  |
 +
0017546c: 92220016 lbu r2,0x0016(r17)                  |{{f/load|Load Can Ride Flag}} {{f/std| Human not frog/chicken/charm}}
 +
00175470: 00000000 nop                                  |
 +
00175474: 10400009 beq r2,r0,0x0017549c                {{f/Cond|If cannot ride  : branch to }} {{f/loc| Next Tile iteration}}
 +
00175478: 00000000 nop                                      |
 
   
 
   
  00175288: 27bdffd8 addiu r29,r29,0xffd8
+
  {{f/sec|---- Flag Tile as reachable ----}}
0017528c: afb10014 sw r17,0x0014(r29)
+
  0017547c: 96420018 lhu r2,0x0018(r18)                   |{{f/load|Load Reachable Tile counter}}
00175290: 3c118019 lui r17,0x8019
+
  00175480: 00000000 nop                                 |
00175294: 8e31f4e0 lw r17,-0x0b20(r17)
+
  00175484: 24420001 addiu r2,r2,0x0001                   |
00175298: afbf0020 sw r31,0x0020(r29)
+
  00175488: a6420018 sh r2,0x0018(r18)                   |{{f/store|Store counter + 1}}
0017529c: afb3001c sw r19,0x001c(r29)
+
  0017548c: 90820005 lbu r2,0x0005(r4)                   |{{f/load|Load Tile's 0x05}}
001752a0: afb20018 sw r18,0x0018(r29)
+
  00175490: 00000000 nop                                 |
001752a4: afb00010 sw r16,0x0010(r29)
+
  00175494: 34420020 ori r2,r2,0x0020                     |
001752a8: 92230008 lbu r3,0x0008(r17)
+
  00175498: a0820005 sb r2,0x0005(r4)                     |{{f/store|Enable flag 0x20 on Tile data byte 0x05}}
001752ac: 92220018 lbu r2,0x0018(r17)
+
  0017549c: 26100001 addiu r16,r16,0x0001         |{{f/adr|Tile Offset (S-Pad 0x200)}}
001752b0: 00000000 nop
+
  001754a0: 25080001 addiu r8,r8,0x0001           |{{f/std|Tile Counter +1}}
001752b4: 00620018 mult r3,r2
+
  001754a4: 29020200 slti r2,r8,0x0200           |
001752b8: 3c128019 lui r18,0x8019
+
  001754a8: 1440ff90 bne r2,r0,0x001752ec     {{f/eloop|Loop 0x200 Times (each Map's Tile)}}
001752bc: 8e52f4e4 lw r18,-0x0b1c(r18)
+
  001754ac: 25290005 addiu r9,r9,0x0005           |{{f/adr|Tile Offset + 5}}
001752c0: 3c108019 lui r16,0x8019
+
  001754b0: 8fbf0020 lw r31,0x0020(r29)       END
001752c4: 8e10f4f0 lw r16,-0x0b10(r16)
 
001752c8: 92220009 lbu r2,0x0009(r17)
 
001752cc: 92240007 lbu r4,0x0007(r17)
 
001752d0: 00021200 sll r2,r2,0x08
 
001752d4: 00001812 mflo r3
 
001752d8: 00431021 addu r2,r2,r3
 
001752dc: 0c05d37e jal 0x00174df8
 
001752e0: 00449821 addu r19,r2,r4
 
001752e4: 00004021 addu r8,r0,r0
 
001752e8: 00004821 addu r9,r0,r0
 
001752ec: 000818c0 sll r3,r8,0x03
 
001752f0: 3c028019 lui r2,0x8019
 
001752f4: 2442f8cc addiu r2,r2,0xf8cc
 
001752f8: 00622021 addu r4,r3,r2
 
001752fc: 90820005 lbu r2,0x0005(r4)
 
00175300: 00000000 nop
 
00175304: 304200df andi r2,r2,0x00df
 
00175308: a0820005 sb r2,0x0005(r4)
 
0017530c: 3c028019 lui r2,0x8019
 
00175310: 24422dd8 addiu r2,r2,0x2dd8
 
00175314: 11130061 beq r8,r19,0x0017549c
 
00175318: 01222821 addu r5,r9,r2
 
0017531c: 9223000e lbu r3,0x000e(r17)
 
00175320: 34020001 ori r2,r0,0x0001
 
00175324: 14620006 bne r3,r2,0x00175340
 
00175328: 00000000 nop
 
0017532c: 92020000 lbu r2,0x0000(r16)
 
00175330: 00000000 nop
 
00175334: 30420020 andi r2,r2,0x0020
 
00175338: 14400050 bne r2,r0,0x0017547c
 
0017533c: 00000000 nop
 
00175340: 90a20003 lbu r2,0x0003(r5)
 
00175344: 00000000 nop
 
00175348: 10400005 beq r2,r0,0x00175360
 
0017534c: 00000000 nop
 
00175350: 92220016 lbu r2,0x0016(r17)
 
00175354: 00000000 nop
 
00175358: 14400048 bne r2,r0,0x0017547c
 
0017535c: 00000000 nop
 
00175360: 90870003 lbu r7,0x0003(r4)
 
00175364: 00000000 nop
 
00175368: 30e3001f andi r3,r7,0x001f
 
0017536c: 28620003 slti r2,r3,0x0003
 
00175370: 14400006 bne r2,r0,0x0017538c
 
00175374: 00000000 nop
 
00175378: 92020000 lbu r2,0x0000(r16)
 
0017537c: 00000000 nop
 
00175380: 30420002 andi r2,r2,0x0002
 
00175384: 14400045 bne r2,r0,0x0017549c
 
00175388: 00000000 nop
 
0017538c: 90a20000 lbu r2,0x0000(r5)
 
00175390: 00000000 nop
 
00175394: 10400041 beq r2,r0,0x0017549c
 
00175398: 28620004 slti r2,r3,0x0004
 
0017539c: 1040003f beq r2,r0,0x0017549c
 
001753a0: 00000000 nop
 
001753a4: 90860006 lbu r6,0x0006(r4)
 
001753a8: 00000000 nop
 
001753ac: 30c20080 andi r2,r6,0x0080
 
001753b0: 1440003a bne r2,r0,0x0017549c
 
001753b4: 00000000 nop
 
001753b8: 90820000 lbu r2,0x0000(r4)
 
001753bc: 00000000 nop
 
001753c0: 3045003f andi r5,r2,0x003f
 
001753c4: 3402001c ori r2,r0,0x001c
 
001753c8: 10a20034 beq r5,r2,0x0017549c
 
001753cc: 00000000 nop
 
001753d0: 90820003 lbu r2,0x0003(r4)
 
001753d4: 00000000 nop
 
001753d8: 304300e0 andi r3,r2,0x00e0
 
001753dc: 10600005 beq r3,r0,0x001753f4
 
001753e0: 34020060 ori r2,r0,0x0060
 
001753e4: 92220014 lbu r2,0x0014(r17)
 
001753e8: 00000000 nop
 
001753ec: 1440002b bne r2,r0,0x0017549c
 
001753f0: 34020060 ori r2,r0,0x0060
 
001753f4: 14620005 bne r3,r2,0x0017540c
 
001753f8: 00071142 srl r2,r7,0x05
 
001753fc: 92220012 lbu r2,0x0012(r17)
 
00175400: 00000000 nop
 
00175404: 14400025 bne r2,r0,0x0017549c
 
00175408: 00071142 srl r2,r7,0x05
 
0017540c: 28420004 slti r2,r2,0x0004
 
00175410: 14400005 bne r2,r0,0x00175428
 
00175414: 34020012 ori r2,r0,0x0012
 
00175418: 92220013 lbu r2,0x0013(r17)
 
0017541c: 00000000 nop
 
00175420: 1440001e bne r2,r0,0x0017549c
 
00175424: 34020012 ori r2,r0,0x0012
 
00175428: 14a20005 bne r5,r2,0x00175440
 
0017542c: 30c20002 andi r2,r6,0x0002
 
00175430: 92220025 lbu r2,0x0025(r17)
 
00175434: 00000000 nop
 
00175438: 10400018 beq r2,r0,0x0017549c
 
0017543c: 30c20002 andi r2,r6,0x0002
 
00175440: 14400016 bne r2,r0,0x0017549c
 
00175444: 00000000 nop
 
00175448: 92030000 lbu r3,0x0000(r16)
 
0017544c: 00000000 nop
 
00175450: 30620010 andi r2,r3,0x0010
 
00175454: 10400011 beq r2,r0,0x0017549c
 
00175458: 30620004 andi r2,r3,0x0004
 
0017545c: 10400007 beq r2,r0,0x0017547c
 
00175460: 30620020 andi r2,r3,0x0020
 
00175464: 1040000d beq r2,r0,0x0017549c
 
00175468: 00000000 nop
 
0017546c: 92220016 lbu r2,0x0016(r17)
 
00175470: 00000000 nop
 
00175474: 10400009 beq r2,r0,0x0017549c
 
00175478: 00000000 nop
 
  0017547c: 96420018 lhu r2,0x0018(r18)
 
  00175480: 00000000 nop
 
  00175484: 24420001 addiu r2,r2,0x0001
 
  00175488: a6420018 sh r2,0x0018(r18)
 
  0017548c: 90820005 lbu r2,0x0005(r4)
 
  00175490: 00000000 nop
 
  00175494: 34420020 ori r2,r2,0x0020
 
  00175498: a0820005 sb r2,0x0005(r4)
 
  0017549c: 26100001 addiu r16,r16,0x0001
 
  001754a0: 25080001 addiu r8,r8,0x0001
 
  001754a4: 29020200 slti r2,r8,0x0200
 
  001754a8: 1440ff90 bne r2,r0,0x001752ec
 
  001754ac: 25290005 addiu r9,r9,0x0005
 
  001754b0: 8fbf0020 lw r31,0x0020(r29)
 
 
  001754b4: 8fb3001c lw r19,0x001c(r29)
 
  001754b4: 8fb3001c lw r19,0x001c(r29)
 
  001754b8: 8fb20018 lw r18,0x0018(r29)
 
  001754b8: 8fb20018 lw r18,0x0018(r29)
Line 147: Line 156:
 
  001754c8: 03e00008 jr r31
 
  001754c8: 03e00008 jr r31
 
  001754cc: 00000000 nop
 
  001754cc: 00000000 nop
</font>
+
=== Return Location ===
 +
'''BATTLE.BIN'''
 +
00174dbc: [[00174b8c_-_00174df4]]
 +
001791b4: [[Find_Tiles_for_the_AI_to_move_to_(00178ca4)]]

Revision as of 20:05, 1 June 2023

BATTLE.BIN : Set Reachable Tile Flag
------------------------------------------------------------------------------------------------------------
Parameters : Nothing
Returns  : Nothing
           
Loop Through each Tile and enable Flag 0x20 on Byte 0x05 from Tile's data (8018f8cc)
Increment a reachable Tile counter in S-Pad 0x180 (0x18)
------------------------------------------------------------------------------------------------------------
00175288: 27bdffd8 addiu r29,r29,-0x0028    |
0017528c: afb10014 sw r17,0x0014(r29)       |
00175290: 3c118019 lui r17,0x8019           |
00175294: 8e31f4e0 lw r17,-0x0b20(r17)      |Pointer to Scratch Pad (0x1f800000)
00175298: afbf0020 sw r31,0x0020(r29)       |
0017529c: afb3001c sw r19,0x001c(r29)       |
001752a0: afb20018 sw r18,0x0018(r29)       |
001752a4: afb00010 sw r16,0x0010(r29)       |
001752a8: 92230008 lbu r3,0x0008(r17)       |Active Unit Y
001752ac: 92220018 lbu r2,0x0018(r17)       |Map Max X
001752b0: 00000000 nop                      |
001752b4: 00620018 mult r3,r2               |
001752b8: 3c128019 lui r18,0x8019           |
001752bc: 8e52f4e4 lw r18,-0x0b1c(r18)      |Pointer to Scratch Pad (0x1f800180)
001752c0: 3c108019 lui r16,0x8019           |
001752c4: 8e10f4f0 lw r16,-0x0b10(r16)      |Pointer to Scratch Pad (0x1f800200) - Dynamic
001752c8: 92220009 lbu r2,0x0009(r17)       |Active Unit Elevation
001752cc: 92240007 lbu r4,0x0007(r17)       |Active Unit X
001752d0: 00021200 sll r2,r2,0x08           |Elevation offset (0 or 0x100)
001752d4: 00001812 mflo r3                  |
001752d8: 00431021 addu r2,r2,r3            |
001752dc: 0c05d37e jal 0x00174df8           |-->Disable_Tile_Flag_0x10_For_Dead_and_Jumping_Units Check all units
001752e0: 00449821 addu r19,r2,r4           |Active Unit Tile's ID  (Y*Max X) + X + Elevation offset
001752e4: 00004021 addu r8,r0,r0            |Initialize Tile counter
001752e8: 00004821 addu r9,r0,r0            |Initialize Tile offset (+ 0x5 each iteration)
                                            @LOOP 0x200 Times (Each Tile)
001752ec: 000818c0 sll r3,r8,0x03               |Tile ID * 8
001752f0: 3c028019 lui r2,0x8019                |
001752f4: 2442f8cc addiu r2,r2,-0x0734          |
001752f8: 00622021 addu r4,r3,r2                |Pointer : This iteration Tile's data ( 8018f8cc )
001752fc: 90820005 lbu r2,0x0005(r4)            |Load Tile 0x05
00175300: 00000000 nop                          |
00175304: 304200df andi r2,r2,0x00df            |
00175308: a0820005 sb r2,0x0005(r4)             |Disable flag 0x20 and store data back
0017530c: 3c028019 lui r2,0x8019                |
00175310: 24422dd8 addiu r2,r2,0x2dd8           |
00175314: 11130061 beq r8,r19,0x0017549c        #If This Tile is the Actve Unit tile : branch to   Next Tile iteration
00175318: 01222821 addu r5,r9,r2                |Pointer : This iteration Tile's Grid data ( 80192dd8 )
0017531c: 9223000e lbu r3,0x000e(r17)           |Load Unit Move Type
00175320: 34020001 ori r2,r0,0x0001             |
00175324: 14620006 bne r3,r2,0x00175340         #If Unit is not Teleporting
00175328: 00000000 nop                              |
0017532c: 92020000 lbu r2,0x0000(r16)               |Load Tile's flag (S-Pad 0x200)
00175330: 00000000 nop                              |
00175334: 30420020 andi r2,r2,0x0020                |
00175338: 14400050 bne r2,r0,0x0017547c             #If Tile's 0x20 Flag is ON : branch to  Reachable Tile section
0017533c: 00000000 nop                                  |
00175340: 90a20003 lbu r2,0x0003(r5)            |Load Grid 0x03
00175344: 00000000 nop                          |
00175348: 10400005 beq r2,r0,0x00175360         #If Grid [0x03] <> 0x00  (Move cost from acting unit)
0017534c: 00000000 nop                              |
00175350: 92220016 lbu r2,0x0016(r17)               |Can Ride Flag Human not frog/chicken/charm
00175354: 00000000 nop                              |
00175358: 14400048 bne r2,r0,0x0017547c             #If Unit can ride : branch to  Reachable Tile section
0017535c: 00000000 nop                                  |
00175360: 90870003 lbu r7,0x0003(r4)            |Tile's Halves + Depth
00175364: 00000000 nop                          |
00175368: 30e3001f andi r3,r7,0x001f            |Halves only
0017536c: 28620003 slti r2,r3,0x0003            |
00175370: 14400006 bne r2,r0,0x0017538c         #If Halve >= 0x3
00175374: 00000000 nop                              |
00175378: 92020000 lbu r2,0x0000(r16)               |Load Tile's flags (S-Pad 0x200)
0017537c: 00000000 nop                              |
00175380: 30420002 andi r2,r2,0x0002                |
00175384: 14400045 bne r2,r0,0x0017549c             #If [0x02] is ON : branch to  Next Tile iteration
00175388: 00000000 nop                                  |
0017538c: 90a20000 lbu r2,0x0000(r5)            |Load Grid 0x00 (AoE)
00175390: 00000000 nop                          |
00175394: 10400041 beq r2,r0,0x0017549c         #If AoE = 0x00 : Branch to  Next Tile iteration
00175398: 28620004 slti r2,r3,0x0004                |
0017539c: 1040003f beq r2,r0,0x0017549c         #if Halves > 0x03 : Branch to  Next Tile iteration
001753a0: 00000000 nop                              |
001753a4: 90860006 lbu r6,0x0006(r4)            |Load Tile's 0x06
001753a8: 00000000 nop                          |
001753ac: 30c20080 andi r2,r6,0x0080            |
001753b0: 1440003a bne r2,r0,0x0017549c         #If Tile's 0x06 flag 0x80 is ON : Branch to  Next Tile iteration
001753b4: 00000000 nop                              |
001753b8: 90820000 lbu r2,0x0000(r4)            |Load Tile's Type
001753bc: 00000000 nop                          |
001753c0: 3045003f andi r5,r2,0x003f            |r5 = Tile's Type
001753c4: 3402001c ori r2,r0,0x001c             |
001753c8: 10a20034 beq r5,r2,0x0017549c         #If Tile's Type is Obstacle : Branch to  Next Tile iteration
001753cc: 00000000 nop                              |
001753d0: 90820003 lbu r2,0x0003(r4)            |Load Tile's Halves + Depth
001753d4: 00000000 nop                          |
001753d8: 304300e0 andi r3,r2,0x00e0            |
001753dc: 10600005 beq r3,r0,0x001753f4         #If Tile has depth
001753e0: 34020060 ori r2,r0,0x0060                 |
001753e4: 92220014 lbu r2,0x0014(r17)               |Load Unit Can enter Water flag
001753e8: 00000000 nop                              |
001753ec: 1440002b bne r2,r0,0x0017549c             #If Unit cannot enter water : branch to  Next Tile iteration
001753f0: 34020060 ori r2,r0,0x0060                     |
001753f4: 14620005 bne r3,r2,0x0017540c         #If Depth =  3
001753f8: 00071142 srl r2,r7,0x05               |Depth only (1 to 4)
001753fc: 92220012 lbu r2,0x0012(r17)               |Load Unit's Walk on/in/under water flag
00175400: 00000000 nop                              |
00175404: 14400025 bne r2,r0,0x0017549c             #If Unit cannot move in/on water : branch to   Next Tile iteration
00175408: 00071142 srl r2,r7,0x05                       |
0017540c: 28420004 slti r2,r2,0x0004            |
00175410: 14400005 bne r2,r0,0x00175428         #If Depth >= 4
00175414: 34020012 ori r2,r0,0x0012             |r2 = 0x12
00175418: 92220013 lbu r2,0x0013(r17)               |Load Unit's Walk on/in water flag (0 if ok)
0017541c: 00000000 nop                              |
00175420: 1440001e bne r2,r0,0x0017549c             #If Unit cannot walk on/in water : branch to   Next Tile iteration
00175424: 34020012 ori r2,r0,0x0012                     |
00175428: 14a20005 bne r5,r2,0x00175440         #if Tile's Type is Lava
0017542c: 30c20002 andi r2,r6,0x0002            |Check [Cannot Target]
00175430: 92220025 lbu r2,0x0025(r17)               |Load Unit's Float/move on lava flag
00175434: 00000000 nop                              |
00175438: 10400018 beq r2,r0,0x0017549c             #If cannot pass lava : branch to  Next Tile iteration
0017543c: 30c20002 andi r2,r6,0x0002                    |
00175440: 14400016 bne r2,r0,0x0017549c         #If Tile has [Cannot Target] flag : branch to   Next Tile iteration
00175444: 00000000 nop                              |
00175448: 92030000 lbu r3,0x0000(r16)           |Load Tile's flags (S-Pad 0x200)
0017544c: 00000000 nop                          |
00175450: 30620010 andi r2,r3,0x0010            |Check flag [0x10]
00175454: 10400011 beq r2,r0,0x0017549c         #If Flag 0x10 is OFF : branch to   Next Tile iteration
00175458: 30620004 andi r2,r3,0x0004                |
0017545c: 10400007 beq r2,r0,0x0017547c         #If There's a Unit on Tile
00175460: 30620020 andi r2,r3,0x0020                |
00175464: 1040000d beq r2,r0,0x0017549c             #If Flag 0x20 is OFF : branch to   Next Tile iteration  (Chocobo check behind this flag)
00175468: 00000000 nop                                  |
0017546c: 92220016 lbu r2,0x0016(r17)                   |Load Can Ride Flag  Human not frog/chicken/charm
00175470: 00000000 nop                                  |
00175474: 10400009 beq r2,r0,0x0017549c                 #If cannot ride  : branch to   Next Tile iteration
00175478: 00000000 nop                                      |

---- Flag Tile as reachable ----
0017547c: 96420018 lhu r2,0x0018(r18)                   |Load Reachable Tile counter
00175480: 00000000 nop                                  |
00175484: 24420001 addiu r2,r2,0x0001                   |
00175488: a6420018 sh r2,0x0018(r18)                    |Store counter + 1
0017548c: 90820005 lbu r2,0x0005(r4)                    |Load Tile's 0x05
00175490: 00000000 nop                                  |
00175494: 34420020 ori r2,r2,0x0020                     |
00175498: a0820005 sb r2,0x0005(r4)                     |Enable flag 0x20 on Tile data byte 0x05
0017549c: 26100001 addiu r16,r16,0x0001         |Tile Offset (S-Pad 0x200)
001754a0: 25080001 addiu r8,r8,0x0001           |Tile Counter +1
001754a4: 29020200 slti r2,r8,0x0200            |
001754a8: 1440ff90 bne r2,r0,0x001752ec     Λ Loop 0x200 Times (each Map's Tile)
001754ac: 25290005 addiu r9,r9,0x0005           |Tile Offset + 5
001754b0: 8fbf0020 lw r31,0x0020(r29)       END
001754b4: 8fb3001c lw r19,0x001c(r29)
001754b8: 8fb20018 lw r18,0x0018(r29)
001754bc: 8fb10014 lw r17,0x0014(r29)
001754c0: 8fb00010 lw r16,0x0010(r29)
001754c4: 27bd0028 addiu r29,r29,0x0028
001754c8: 03e00008 jr r31
001754cc: 00000000 nop

Return Location

BATTLE.BIN
00174dbc: 00174b8c_-_00174df4
001791b4: Find_Tiles_for_the_AI_to_move_to_(00178ca4)