Difference between revisions of "Get Tile Data Pointer"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
m (return link)
Line 5: Line 5:
 
  #          r6 = Higher Elevation bit
 
  #          r6 = Higher Elevation bit
 
  #      Returns:
 
  #      Returns:
  #          r2 = Pointer to Tile Data for specified coordinates
+
  #          r2 = Pointer to Tile Data for specified coordinates (0x00 if not valid)
 
   
 
   
 
  00183fb4: 3c07800e lui r7,0x800e
 
  00183fb4: 3c07800e lui r7,0x800e
Line 37: Line 37:
 
  00184014: 03e00008 jr r31                      #  Return Tile data pointer
 
  00184014: 03e00008 jr r31                      #  Return Tile data pointer
 
  00184018: 00000000 nop
 
  00184018: 00000000 nop
 +
===Return locations===
 +
'''Battle bin'''
 +
00069360:
 +
00069374:
 +
0006942c:
 +
00069524:
 +
00069790:
 +
000698f0:
 +
0006b0cc:
 +
0006b148:
 +
0006b21c:
 +
0006b310:
 +
0006b42c:
 +
0006b4e0:
 +
0006b6c4:
 +
0006b738:
 +
0006b7d8:
 +
0006b84c:
 +
0006b9c8:
 +
0006ba70:
 +
0006bb14:
 +
0006bbd8:
 +
0006c658:
 +
0006e834:
 +
0006e8c8:
 +
0006eb90:
 +
0006ebb4:
 +
0006fc94:
 +
0006fcb8:
 +
00070840:
 +
00076a74:
 +
00076b4c:
 +
0007ba60:
 +
0007c4c8:
 +
0007c894:
 +
0007d1c8:
 +
0007d760:
 +
0007da10:
 +
0007ed80:
 +
00082808:
 +
00083514:
 +
00083fc0:
 +
00086c7c:
 +
00087b68:
 +
000891b4:
 +
00089324:
 +
0008a8c8:
 +
0008c4ac: [[0008c468_-_0008c514]]
 +
0008df9c:
 +
0008dfd0:
 +
0008e058:
 +
0008e430:
 +
00093298:
 +
001451e4:
 +
001a62fc:
 +
001a9194:
 +
001a9290:
 +
001aabbc:
 +
001aac54:
 +
001af944:
 +
001af9cc:
 +
001afffc:
 +
001b08f4:
 +
001b0b4c:

Revision as of 20:29, 9 December 2021

#   ROUTINE: GET TILE DATA POINTER
#       Parameters:
#           r4 = X Coordinate
#           r5 = Y Coordinate
#           r6 = Higher Elevation bit
#       Returns:
#           r2 = Pointer to Tile Data for specified coordinates (0x00 if not valid)

00183fb4: 3c07800e lui r7,0x800e
00183fb8: 90e74e9c lbu r7,0x4e9c(r7)            #   Map Max X Coordinate
00183fbc: 3c03800e lui r3,0x800e
00183fc0: 90634ea0 lbu r3,0x4ea0(r3)            #   Map Max Y Coordinate
00183fc4: 04800009 bltz r4,0x00183fec           #   if ((X Coordinate < 0) 
00183fc8: 0087102a slt r2,r4,r7
00183fcc: 10400007 beq r2,r0,0x00183fec         #       or (X Coordinate >= Map Max X Coordinate)
00183fd0: 00000000 nop
00183fd4: 04a00005 bltz r5,0x00183fec           #       or (Y Coordinate < 0)
00183fd8: 00a3102a slt r2,r5,r3
00183fdc: 10400003 beq r2,r0,0x00183fec         #       or (Y Coordinate >= Map Max Y Coordinate)
00183fe0: 2cc20002 sltiu r2,r6,0x0002
00183fe4: 14400003 bne r2,r0,0x00183ff4         #       or (Higher Elevation bit >= 2)
00183fe8: 00a70018 mult r5,r7
                                                #   ) {

00183fec: 08061005 j 0x00184014                         Return 0 (null)
00183ff0: 00001021 addu r2,r0,r0
                                                #   }
00183ff4: 00061200 sll r2,r6,0x08               #   [Higher Elevation bit] * 256
00183ff8: 00001812 mflo r3                      #   (Y Coordinate * Map Max X Coordinate)
00183ffc: 00431021 addu r2,r2,r3                #   [Higher Elevation bit] * 256 + (Y Coordinate * Map Max X Coordinate) 
00184000: 00441021 addu r2,r2,r4                #   [Higher Elevation bit] * 256 + (Y Coordinate * Map Max X Coordinate) + X Coordinate
00184004: 000210c0 sll r2,r2,0x03               #   Offset for tile at coordinates: ([Higher Elevation bit] * 256 + (Y Coordinate * Map Max X Coordinate) + X Coordinate) * 8
00184008: 3c038019 lui r3,0x8019
0018400c: 2463f8cc addiu r3,r3,-0x0734          #   Tile data base pointer (0x8018f8cc)
00184010: 00431021 addu r2,r2,r3                #   Pointer to Tile data for this tile

00184014: 03e00008 jr r31                       #   Return Tile data pointer
00184018: 00000000 nop

Return locations

Battle bin
00069360:
00069374:
0006942c:
00069524:
00069790:
000698f0:
0006b0cc:
0006b148:
0006b21c:
0006b310:
0006b42c:
0006b4e0:
0006b6c4:
0006b738:
0006b7d8:
0006b84c:
0006b9c8:
0006ba70:
0006bb14:
0006bbd8:
0006c658:
0006e834:
0006e8c8:
0006eb90:
0006ebb4:
0006fc94:
0006fcb8:
00070840:
00076a74:
00076b4c:
0007ba60:
0007c4c8:
0007c894:
0007d1c8:
0007d760:
0007da10:
0007ed80:
00082808:
00083514:
00083fc0:
00086c7c:
00087b68:
000891b4:
00089324:
0008a8c8:
0008c4ac: 0008c468_-_0008c514
0008df9c:
0008dfd0:
0008e058:
0008e430:
00093298:
001451e4:
001a62fc:
001a9194:
001a9290:
001aabbc:
001aac54:
001af944:
001af9cc:
001afffc:
001b08f4:
001b0b4c: