Difference between revisions of "Get Positive Priority (00196908)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0019689c: 3c03801a lui r3,0x801a 001968a0: 8c6301f8 lw r3,0x01f8(r3) acting units AI decision data 001968a4: 27bdffe8 addiu r29,r29,0xffe8 0...")
 
m
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<font face='Courier New'>
+
'''BATTLE.BIN''' :  - Get Positive Priority
   
+
  2 Attemps to find a Tile to move on
  0019689c: 3c03801a lui r3,0x801a
+
- if 0xe2d = 1 the two attempts try to get closer to Target the first One has a distance check (based on closest ability range) the second only check priority score.
  001968a0: 8c6301f8 lw r3,0x01f8(r3) acting units AI decision data
+
  ------------------------------------------------------------------------------------------
  001968a4: 27bdffe8 addiu r29,r29,0xffe8
+
  Parameter : r4 = Shortest Ability (0x8019f36c)
  001968a8: afbf0010 sw r31,0x0010(r29)
+
  ------------------------------------------------------------------------------------------
  001968ac: 90620005 lbu r2,0x0005(r3) load main target ID
+
00196908: 27bdffe8 addiu r29,r29,0xffe8     |
001968b0: 00000000 nop
+
  0019690c: afbf0010 sw r31,0x0010(r29)       |
001968b4: 00021100 sll r2,r2,0x04
+
  00196910: 0c065a4f jal 0x0019693c            |{{f/jal|AI_Post_Action_Movement_Decision_Routine_(0019693c)|AI_Post_Action_Movement_Decision_Routine_(0019693c)}} {{f/std|Find better closer tile beating r4}}
001968b8: 3c01801a lui r1,0x801a
+
  00196914: 00002821 addu r5,r0,r0            |{{f/std|Prioritize Distance over Priority}}
001968bc: 00220821 addu r1,r1,r2
+
  00196918: 14400004 bne r2,r0,0x0019692c      {{f/Cond|If a Tile was found}} {{f/loc|Exit routine}}
001968c0: 90220bf8 lbu r2,0x0bf8(r1) load enemy flag
+
  0019691c: 3c047fff lui r4,0x7fff                |
  001968c4: 00000000 nop
+
  00196920: 3484ffff ori r4,r4,0xffff              |
001968c8: 10400009 beq r2,r0,0x001968f0 branch if ally
+
  00196924: 0c065a4f jal 0x0019693c            |{{f/jal|AI_Post_Action_Movement_Decision_Routine_(0019693c)|AI_Post_Action_Movement_Decision_Routine_(0019693c)}} {{f/std|Find better priority }}
001968cc: 00000000 nop
+
  00196928: 34050001 ori r5,r0,0x0001          |{{f/std|Prioritize Priority over Distance}}
001968d0: 90620006 lbu r2,0x0006(r3) load
+
  0019692c: 8fbf0010 lw r31,0x0010(r29)
  001968d4: 00000000 nop
+
  00196930: 27bd0018 addiu r29,r29,0x0018
001968d8: 30420001 andi r2,r2,0x0001
+
  00196934: 03e00008 jr r31
001968dc: 10400004 beq r2,r0,0x001968f0 branch if not ??
+
  00196938: 00000000 nop
  001968e0: 28820003 slti r2,r4,0x0003
+
===Return locations===
  001968e4: 10400002 beq r2,r0,0x001968f0 branch if ?? is not < 3
+
'''BATTLE.BIN'''
  001968e8: 00000000 nop
+
  00196754: [[Map_movement_decision/data_setting]]                        r4 = Shortest Ability range (8019f36c)
  001968ec: 34040003 ori r4,r0,0x0003
+
  001968f8: [[Find_Positive_Priority_Target_within_3_Range_(0019689c)]]  r4 = Distance from Target -1 (If Target is enemy and arcing ability range is at least 0x3 (??))
  001968f0: 0c065a42 jal 0x00196908
+
  00198408: [[001982d8_-_001984e8]]
001968f4: 00000000 nop
 
001968f8: 8fbf0010 lw r31,0x0010(r29)
 
  001968fc: 27bd0018 addiu r29,r29,0x0018
 
  00196900: 03e00008 jr r31
 
  00196904: 00000000 nop
 
</font>
 

Latest revision as of 13:24, 20 June 2024

BATTLE.BIN :  - Get Positive Priority
2 Attemps to find a Tile to move on
- if 0xe2d = 1 the two attempts try to get closer to Target the first One has a distance check (based on closest ability range) the second only check priority score.
------------------------------------------------------------------------------------------
Parameter : r4 = Shortest Ability (0x8019f36c)
------------------------------------------------------------------------------------------
00196908: 27bdffe8 addiu r29,r29,0xffe8      |
0019690c: afbf0010 sw r31,0x0010(r29)        |
00196910: 0c065a4f jal 0x0019693c            |-->AI_Post_Action_Movement_Decision_Routine_(0019693c) Find better closer tile beating r4
00196914: 00002821 addu r5,r0,r0             |Prioritize Distance over Priority
00196918: 14400004 bne r2,r0,0x0019692c      #If a Tile was found Exit routine
0019691c: 3c047fff lui r4,0x7fff                 |
00196920: 3484ffff ori r4,r4,0xffff              |
00196924: 0c065a4f jal 0x0019693c            |-->AI_Post_Action_Movement_Decision_Routine_(0019693c) Find better priority 
00196928: 34050001 ori r5,r0,0x0001          |Prioritize Priority over Distance
0019692c: 8fbf0010 lw r31,0x0010(r29)
00196930: 27bd0018 addiu r29,r29,0x0018
00196934: 03e00008 jr r31
00196938: 00000000 nop

Return locations

BATTLE.BIN
 00196754: Map_movement_decision/data_setting                        r4 = Shortest Ability range (8019f36c)
 001968f8: Find_Positive_Priority_Target_within_3_Range_(0019689c)   r4 = Distance from Target -1 (If Target is enemy and arcing ability range is at least 0x3 (??))
 00198408: 001982d8_-_001984e8