Difference between revisions of "000745ac - 000746a8"
Jump to navigation
Jump to search
(Return Locations) |
m |
||
Line 1: | Line 1: | ||
− | |||
− | |||
000745ac: 27bdffe0 addiu r29,r29,0xffe0 | 000745ac: 27bdffe0 addiu r29,r29,0xffe0 | ||
000745b0: afbf001c sw r31,0x001c(r29) | 000745b0: afbf001c sw r31,0x001c(r29) | ||
000745b4: 0c01bbbc jal 0x0006eef0 | 000745b4: 0c01bbbc jal 0x0006eef0 | ||
− | 000745b8: afb00018 sw r16,0x0018(r29) | + | 000745b8: afb00018 sw r16,0x0018(r29) |
000745bc: 3402001b ori r2,r0,0x001b | 000745bc: 3402001b ori r2,r0,0x001b | ||
000745c0: 3c018009 lui r1,0x8009 | 000745c0: 3c018009 lui r1,0x8009 | ||
Line 16: | Line 14: | ||
000745e0: 3c068009 lui r6,0x8009 | 000745e0: 3c068009 lui r6,0x8009 | ||
000745e4: 8cc661b8 lw r6,0x61b8(r6) | 000745e4: 8cc661b8 lw r6,0x61b8(r6) | ||
− | 000745e8: 0c01e8ae jal 0x0007a2b8 | + | 000745e8: 0c01e8ae jal 0x0007a2b8 [[Check if unit is on panel]] |
− | 000745ec: 00408021 addu r16,r2,r0 | + | 000745ec: 00408021 addu r16,r2,r0 unit misc. data pointer |
− | 000745f0: 00402021 addu r4,r2,r0 | + | 000745f0: 00402021 addu r4,r2,r0 misc data of unit on panel |
− | 000745f4: 8e030174 lw r3,0x0174(r16) | + | 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 | 000745f8: 34020001 ori r2,r0,0x0001 | ||
− | 000745fc: 10620012 beq r3,r2,0x00074648 | + | 000745fc: 10620012 beq r3,r2,0x00074648 branch if can't follow target |
00074600: 28620002 slti r2,r3,0x0002 | 00074600: 28620002 slti r2,r3,0x0002 | ||
− | 00074604: 10400005 beq r2,r0,0x0007461c | + | 00074604: 10400005 beq r2,r0,0x0007461c branch if not -1, 0, 1 |
00074608: 00000000 nop | 00074608: 00000000 nop | ||
− | 0007460c: 10600008 beq r3,r0,0x00074630 | + | 0007460c: 10600008 beq r3,r0,0x00074630 branch if can follow target |
00074610: 00000000 nop | 00074610: 00000000 nop | ||
− | 00074614: 0801d19e j 0x00074678 | + | 00074614: 0801d19e j 0x00074678 else go here, set r4 = 4, r5 = 0 |
00074618: 34040004 ori r4,r0,0x0004 | 00074618: 34040004 ori r4,r0,0x0004 | ||
+ | |||
0007461c: 34020002 ori r2,r0,0x0002 | 0007461c: 34020002 ori r2,r0,0x0002 | ||
− | 00074620: 1062000f beq r3,r2,0x00074660 | + | 00074620: 1062000f beq r3,r2,0x00074660 branch if auto target |
00074624: 00000000 nop | 00074624: 00000000 nop | ||
− | 00074628: 0801d19e j 0x00074678 | + | 00074628: 0801d19e j 0x00074678 else, r4 = 4, r5 = 0 |
0007462c: 34040004 ori r4,r0,0x0004 | 0007462c: 34040004 ori r4,r0,0x0004 | ||
− | 00074630: 10800003 beq r4,r0,0x00074640 | + | |
+ | can follow target | ||
+ | 00074630: 10800003 beq r4,r0,0x00074640 branch if no misc. unit data | ||
00074634: 34040004 ori r4,r0,0x0004 | 00074634: 34040004 ori r4,r0,0x0004 | ||
− | 00074638: 0801d19f j 0x0007467c | + | 00074638: 0801d19f j 0x0007467c r4 = 4, r5 = 1 (can follow, target on tile exists) |
0007463c: 34050001 ori r5,r0,0x0001 | 0007463c: 34050001 ori r5,r0,0x0001 | ||
− | 00074640: 0801d19f j 0x0007467c | + | 00074640: 0801d19f j 0x0007467c r4 = 4, r5 = 2 (can follow, no target on tile) |
00074644: 34050002 ori r5,r0,0x0002 | 00074644: 34050002 ori r5,r0,0x0002 | ||
− | 00074648: 10800003 beq r4,r0,0x00074658 | + | |
+ | can't follow target | ||
+ | 00074648: 10800003 beq r4,r0,0x00074658 branch if no misc. unit data | ||
0007464c: 34040004 ori r4,r0,0x0004 | 0007464c: 34040004 ori r4,r0,0x0004 | ||
− | 00074650: 0801d19f j 0x0007467c | + | 00074650: 0801d19f j 0x0007467c r4 = 4, r5 = 4 (can't follow, target on tile exists) |
00074654: 34050004 ori r5,r0,0x0004 | 00074654: 34050004 ori r5,r0,0x0004 | ||
− | 00074658: 0801d19f j 0x0007467c | + | 00074658: 0801d19f j 0x0007467c r4 = 4, r5 = 2 (can't follow, no target on tile) |
0007465c: 34050002 ori r5,r0,0x0002 | 0007465c: 34050002 ori r5,r0,0x0002 | ||
− | 00074660: 10800003 beq r4,r0,0x00074670 | + | |
+ | auto target | ||
+ | 00074660: 10800003 beq r4,r0,0x00074670 branch if no misc. unit data | ||
00074664: 34040004 ori r4,r0,0x0004 | 00074664: 34040004 ori r4,r0,0x0004 | ||
− | 00074668: 0801d19f j 0x0007467c | + | 00074668: 0801d19f j 0x0007467c r4 = 4, r5 = 3 |
0007466c: 34050003 ori r5,r0,0x0003 | 0007466c: 34050003 ori r5,r0,0x0003 | ||
− | 00074670: 0801d19f j 0x0007467c | + | 00074670: 0801d19f j 0x0007467c r4 = 4, r5 = 3 |
00074674: 34050002 ori r5,r0,0x0002 | 00074674: 34050002 ori r5,r0,0x0002 | ||
− | 00074678: 00002821 addu r5,r0,r0 | + | |
+ | otherwise | ||
+ | 00074678: 00002821 addu r5,r0,r0 | ||
+ | |||
+ | all return | ||
0007467c: 00003821 addu r7,r0,r0 | 0007467c: 00003821 addu r7,r0,r0 | ||
00074680: 8e020134 lw r2,0x0134(r16) | 00074680: 8e020134 lw r2,0x0134(r16) | ||
− | 00074684: 9203013d lbu r3,0x013d(r16) | + | 00074684: 9203013d lbu r3,0x013d(r16) ENTD flags from Unit data |
00074688: 9046018a lbu r6,0x018a(r2) | 00074688: 9046018a lbu r6,0x018a(r2) | ||
− | 0007468c: 30630008 andi r3,r3,0x0008 | + | 0007468c: 30630008 andi r3,r3,0x0008 check control bit |
− | 00074690: 0c05066e jal 0x001419b8 | + | 00074690: 0c05066e jal 0x001419b8 [[System function setup routine]] do [[Routine at 141b0c]] (r5, casUnitID, 0, isControlled) |
00074694: afa30010 sw r3,0x0010(r29) | 00074694: afa30010 sw r3,0x0010(r29) | ||
00074698: 8fbf001c lw r31,0x001c(r29) | 00074698: 8fbf001c lw r31,0x001c(r29) | ||
Line 65: | Line 74: | ||
000746a4: 03e00008 jr r31 | 000746a4: 03e00008 jr r31 | ||
000746a8: 00000000 nop | 000746a8: 00000000 nop | ||
− | |||
== Return Locations == | == Return Locations == | ||
00076d50: [[00076c50 - 00076d80]] | 00076d50: [[00076c50 - 00076d80]] |
Latest revision as of 11:30, 25 January 2025
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