Find Positive Priority Target within 3 Range (0019689c)
(Redirected from 0019689c - 00196904)
Jump to navigation
Jump to search
BATTLE.BIN : - Find_Positive_Priority_Target_within_3_Range_(0019689c) ------------------------------------------------------------------------------------------ Parameter : r4 = Acting Unit distance to Target - 1 (0x8019f374 - 1) ------------------------------------------------------------------------------------------ 0019689c: 3c03801a lui r3,0x801a | 001968a0: 8c6301f8 lw r3,0x01f8(r3) |Acting Unit's AI Decision Pointer 8019f3c4 + 0x182c + acting unit offset 001968a4: 27bdffe8 addiu r29,r29,-0x0018 | 001968a8: afbf0010 sw r31,0x0010(r29) | 001968ac: 90620005 lbu r2,0x0005(r3) |Acting Unit Target ID 001968b0: 00000000 nop | 001968b4: 00021100 sll r2,r2,0x04 |ID * 16 001968b8: 3c01801a lui r1,0x801a | 001968bc: 00220821 addu r1,r1,r2 | 001968c0: 90220bf8 lbu r2,0x0bf8(r1) |Load Target's Enemy Flag 8019f3c4 + 0x182c + 0x08 + Unit offset 001968c4: 00000000 nop | 001968c8: 10400009 beq r2,r0,0x001968f0 #If Unit is an Ally : branch to routine 001968cc: 00000000 nop | Else : Acting Unit is an Enemy 001968d0: 90620006 lbu r2,0x0006(r3) |Acting unit AI Decision 0x06 001968d4: 00000000 nop | 001968d8: 30420001 andi r2,r2,0x0001 | 001968dc: 10400004 beq r2,r0,0x001968f0 #If Unit didn't use any arcing/direct abilities branch to routine Else Unit can use some arcing abilities 001968e0: 28820003 slti r2,r4,0x0003 | 001968e4: 10400002 beq r2,r0,0x001968f0 #If Distance to Target > = 3 : branch to routine 001968e8: 00000000 nop | Else : force Distance to at least 3 001968ec: 34040003 ori r4,r0,0x0003 | 001968f0: 0c065a42 jal 0x00196908 |-->Get_Positive_Priority_(00196908) 001968f4: 00000000 nop | 001968f8: 8fbf0010 lw r31,0x0010(r29) 001968fc: 27bd0018 addiu r29,r29,0x0018 00196900: 03e00008 jr r31 00196904: 00000000 nop
Return locations
BATTLE.BIN 0019682c: Map_movement_decision/data_setting 00198478: 001982d8_-_001984e8