Difference between revisions of "Get Tile Data Pointer"
Jump to navigation
Jump to search
(Created page with " # ROUTINE: GET TILE DATA POINTER # Parameters: # r4 = X Coordinate # r5 = Y Coordinate # r6 = Higher Elevation bit # Returns:...") |
|||
(7 intermediate revisions by 2 users not shown) | |||
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 17: | Line 17: | ||
00183fd4: 04a00005 bltz r5,0x00183fec # or (Y Coordinate < 0) | 00183fd4: 04a00005 bltz r5,0x00183fec # or (Y Coordinate < 0) | ||
00183fd8: 00a3102a slt r2,r5,r3 | 00183fd8: 00a3102a slt r2,r5,r3 | ||
− | 00183fdc: 10400003 beq r2,r0,0x00183fec # or (Y | + | 00183fdc: 10400003 beq r2,r0,0x00183fec # or (Y Coordinate >= Map Max Y Coordinate) |
00183fe0: 2cc20002 sltiu r2,r6,0x0002 | 00183fe0: 2cc20002 sltiu r2,r6,0x0002 | ||
00183fe4: 14400003 bne r2,r0,0x00183ff4 # or (Higher Elevation bit >= 2) | 00183fe4: 14400003 bne r2,r0,0x00183ff4 # or (Higher Elevation bit >= 2) | ||
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: [[Complex_Height_Data_from_unit_misc_data_and_coordinates]] | ||
+ | 0007d760: | ||
+ | 0007da10: | ||
+ | 0007ed80: | ||
+ | 00082808: | ||
+ | 00083514: | ||
+ | 00083fc0: | ||
+ | 00086c7c: | ||
+ | 00087b68: | ||
+ | 000891b4: | ||
+ | 00089324: | ||
+ | 0008a8c8: | ||
+ | 0008c4ac: [[Set_Unit_Xmod,_Y_Mod_and_Height_data_from_unit_ID]] | ||
+ | 0008df9c: | ||
+ | 0008dfd0: [[Get_Unit_Tile_data_pointer_from_Unit_ID]] | ||
+ | 0008e058: | ||
+ | 0008e430: | ||
+ | 00093298: | ||
+ | 001451e4: | ||
+ | 001a62fc: | ||
+ | 001a9194: | ||
+ | 001a9290: | ||
+ | 001aabbc: | ||
+ | 001aac54: | ||
+ | 001af944: [[Seek_Obstacle_On_Trajectory]] | ||
+ | 001af9cc: [[Seek_Obstacle_On_Trajectory]] | ||
+ | 001afffc: [[Set_and_Validate_Arc_Trajectory]] | ||
+ | 001b08f4: | ||
+ | 001b0b4c: |
Latest revision as of 21:08, 30 January 2022
# 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: Complex_Height_Data_from_unit_misc_data_and_coordinates 0007d760: 0007da10: 0007ed80: 00082808: 00083514: 00083fc0: 00086c7c: 00087b68: 000891b4: 00089324: 0008a8c8: 0008c4ac: Set_Unit_Xmod,_Y_Mod_and_Height_data_from_unit_ID 0008df9c: 0008dfd0: Get_Unit_Tile_data_pointer_from_Unit_ID 0008e058: 0008e430: 00093298: 001451e4: 001a62fc: 001a9194: 001a9290: 001aabbc: 001aac54: 001af944: Seek_Obstacle_On_Trajectory 001af9cc: Seek_Obstacle_On_Trajectory 001afffc: Set_and_Validate_Arc_Trajectory 001b08f4: 001b0b4c: