000745ac - 000746a8

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
000745ac: 27bdffe0 addiu r29,r29,0xffe0
000745b0: afbf001c sw r31,0x001c(r29)
000745b4: 0c01bbbc jal 0x0006eef0
000745b8: afb00018 sw r16,0x0018(r29)      
000745bc: 3402001b ori r2,r0,0x001b
000745c0: 3c018009 lui r1,0x8009
000745c4: ac2260e4 sw r2,0x60e4(r1)
000745c8: 0c01e886 jal 0x0007a218
000745cc: 00000000 nop
000745d0: 3c048009 lui r4,0x8009
000745d4: 8c8461b4 lw r4,0x61b4(r4)
000745d8: 3c058009 lui r5,0x8009
000745dc: 8ca561bc lw r5,0x61bc(r5)
000745e0: 3c068009 lui r6,0x8009
000745e4: 8cc661b8 lw r6,0x61b8(r6)
000745e8: 0c01e8ae jal 0x0007a2b8                Check if unit is on panel
000745ec: 00408021 addu r16,r2,r0                unit misc. data pointer
000745f0: 00402021 addu r4,r2,r0                 misc data of unit on panel
000745f4: 8e030174 lw r3,0x0174(r16)             load result from Set Target Tiles -> see Decide what to do based on skillset/ability selections
000745f8: 34020001 ori r2,r0,0x0001
000745fc: 10620012 beq r3,r2,0x00074648          branch if can't follow target
00074600: 28620002 slti r2,r3,0x0002
00074604: 10400005 beq r2,r0,0x0007461c          branch if not -1, 0, 1
00074608: 00000000 nop
0007460c: 10600008 beq r3,r0,0x00074630          branch if can follow target
00074610: 00000000 nop
00074614: 0801d19e j 0x00074678                  else go here, set r4 = 4, r5 = 0
00074618: 34040004 ori r4,r0,0x0004
0007461c: 34020002 ori r2,r0,0x0002
00074620: 1062000f beq r3,r2,0x00074660          branch if auto target
00074624: 00000000 nop
00074628: 0801d19e j 0x00074678                  else, r4 = 4, r5 = 0
0007462c: 34040004 ori r4,r0,0x0004

can follow target

00074630: 10800003 beq r4,r0,0x00074640          branch if no misc. unit data
00074634: 34040004 ori r4,r0,0x0004
00074638: 0801d19f j 0x0007467c                  r4 = 4, r5 = 1 (can follow, target on tile exists)
0007463c: 34050001 ori r5,r0,0x0001
00074640: 0801d19f j 0x0007467c                  r4 = 4, r5 = 2 (can follow, no target on tile)
00074644: 34050002 ori r5,r0,0x0002

can't follow target

00074648: 10800003 beq r4,r0,0x00074658          branch if no misc. unit data
0007464c: 34040004 ori r4,r0,0x0004
00074650: 0801d19f j 0x0007467c                  r4 = 4, r5 = 4 (can't follow, target on tile exists)
00074654: 34050004 ori r5,r0,0x0004
00074658: 0801d19f j 0x0007467c                  r4 = 4, r5 = 2 (can't follow, no target on tile)
0007465c: 34050002 ori r5,r0,0x0002

auto target

00074660: 10800003 beq r4,r0,0x00074670          branch if no misc. unit data
00074664: 34040004 ori r4,r0,0x0004
00074668: 0801d19f j 0x0007467c                  r4 = 4, r5 = 3
0007466c: 34050003 ori r5,r0,0x0003
00074670: 0801d19f j 0x0007467c                  r4 = 4, r5 = 3
00074674: 34050002 ori r5,r0,0x0002

otherwise

00074678: 00002821 addu r5,r0,r0              

all return

0007467c: 00003821 addu r7,r0,r0
00074680: 8e020134 lw r2,0x0134(r16)
00074684: 9203013d lbu r3,0x013d(r16)            ENTD flags from Unit data
00074688: 9046018a lbu r6,0x018a(r2)
0007468c: 30630008 andi r3,r3,0x0008             check control bit
00074690: 0c05066e jal 0x001419b8                System function setup routine do Routine at 141b0c (r5, casUnitID, 0, isControlled)
00074694: afa30010 sw r3,0x0010(r29)
00074698: 8fbf001c lw r31,0x001c(r29)
0007469c: 8fb00018 lw r16,0x0018(r29)
000746a0: 27bd0020 addiu r29,r29,0x0020
000746a4: 03e00008 jr r31
000746a8: 00000000 nop

Return Locations

00076d50: 00076c50 - 00076d80