Difference between revisions of "Check Set Highest Unit Priority (0019d308)"
Jump to navigation
Jump to search
(Updated documentation) |
|||
Line 1: | Line 1: | ||
− | Check against and Set Highest Unit Priority | + | '''BATTLE.BIN''' : - Check against and Set Highest Unit Priority |
− | + | ------------------------------------------------------------------------------------------ | |
− | 0019d308: 27bdffe0 addiu r29,r29, | + | Parameter : Nothing |
− | 0019d30c: afbf0018 sw r31,0x0018(r29) | + | Return : r2 = -0x01 if 0019d37c returns -0x01 |
− | 0019d310: afb10014 sw r17,0x0014(r29) | + | r2 = 0x00 if 001937c returns 0x00 (all other cases) |
− | 0019d314: 0c0674df jal 0x0019d37c | + | ------------------------------------------------------------------------------------------ |
− | 0019d318: afb00010 sw r16,0x0010(r29) | + | 0019d308: 27bdffe0 addiu r29,r29,-0x0020 | |
− | 0019d31c: 3c10801a lui r16,0x801a | + | 0019d30c: afbf0018 sw r31,0x0018(r29) | |
− | 0019d320: 2610f3c4 addiu r16,r16, | + | 0019d310: afb10014 sw r17,0x0014(r29) | |
− | 0019d324: 00401821 addu r3,r2,r0 | + | 0019d314: 0c0674df jal 0x0019d37c |{{f/jal|AI_End_of_turn,_in_between_turn,_etc.|AI_End_of_turn,_in_between_turn,_etc.}} {{f/std|Simulate action and set priority score}} |
− | 0019d328: 2402ffff addiu r2,r0, | + | 0019d318: afb00010 sw r16,0x0010(r29) | |
− | 0019d32c: 1062000d beq r3,r2,0x0019d364 | + | 0019d31c: 3c10801a lui r16,0x801a | |
− | 0019d330: 00000000 nop | + | 0019d320: 2610f3c4 addiu r16,r16,-0x0c3c |{{f/adr|0x8019f3c4}} |
− | 0019d334: 1060000a beq r3,r0,0x0019d360 | + | 0019d324: 00401821 addu r3,r2,r0 | |
− | 0019d338: 26110014 addiu r17,r16,0x0014 | + | 0019d328: 2402ffff addiu r2,r0,-0x0001 | |
− | 0019d33c: 02202021 addu r4,r17,r0 | + | 0019d32c: 1062000d beq r3,r2,0x0019d364 {{f/Cond|If returned Value is -0x0001}} {{f/loc|Exit }} {{f/Returns|Returns -0x01}} |
− | 0019d340: 26100034 addiu r16,r16,0x0034 | + | 0019d330: 00000000 nop | |
− | 0019d344: 0c065b88 jal 0x00196e20 | + | 0019d334: 1060000a beq r3,r0,0x0019d360 {{f/Cond|If returned Value is 0x00}} {{f/loc|Exit }} {{f/Returns|Returns 0x00}} |
− | 0019d348: 02002821 addu r5,r16,r0 | + | 0019d338: 26110014 addiu r17,r16,0x0014 |{{f/adr|AI 0x0014}} {{f/std|Current action data}} |
− | 0019d34c: 10400004 beq r2,r0,0x0019d360 | + | 0019d33c: 02202021 addu r4,r17,r0 |{{f/std|Send AI 0x14 pointer}} |
− | 0019d350: 02002021 addu r4,r16,r0 | + | 0019d340: 26100034 addiu r16,r16,0x0034 |{{f/adr|AI 0x0034}} {{f/std| Best Action data (so far)}} |
− | 0019d354: 02202821 addu r5,r17,r0 | + | 0019d344: 0c065b88 jal 0x00196e20 |{{f/jal|Check Unit Target Priority vs the highest Priority|Check Unit Target Priority vs the highest Priority}} |
− | 0019d358: 0c066ac2 jal 0x0019ab08 | + | 0019d348: 02002821 addu r5,r16,r0 |{{f/std|Send AI 0x34 pointer}} |
− | 0019d35c: 34060020 ori r6,r0,0x0020 | + | 0019d34c: 10400004 beq r2,r0,0x0019d360 {{f/Cond|If returned Value is 0x00}} {{f/loc|Exit }} {{f/Returns|Returns 0x00}} |
− | 0019d360: 00001021 addu r2,r0,r0 | + | |
+ | '''Else : returned Value is 0x01''' | ||
+ | 0019d350: 02002021 addu r4,r16,r0 |{{f/std|AI 0x0034}} | ||
+ | 0019d354: 02202821 addu r5,r17,r0 |{{f/std|AI 0x0014}} | ||
+ | 0019d358: 0c066ac2 jal 0x0019ab08 |{{f/jal|Transfer Halfword Values (Save Current Target Priority as the highest)|Transfer Halfword Values (Save Current Target Priority as the highest)}} {{f/std|replace AI 0x34 by AI 0x14 data}} | ||
+ | 0019d35c: 34060020 ori r6,r0,0x0020 | | ||
+ | 0019d360: 00001021 addu r2,r0,r0 |{{f/Returns|Returns 0x00}} | ||
0019d364: 8fbf0018 lw r31,0x0018(r29) | 0019d364: 8fbf0018 lw r31,0x0018(r29) | ||
0019d368: 8fb10014 lw r17,0x0014(r29) | 0019d368: 8fb10014 lw r17,0x0014(r29) | ||
Line 30: | Line 36: | ||
0019d374: 03e00008 jr r31 | 0019d374: 03e00008 jr r31 | ||
0019d378: 00000000 nop | 0019d378: 00000000 nop | ||
+ | ===Return locations=== | ||
+ | '''BATTLE.BIN''' | ||
+ | 00196074: [[Set_or_Remove_Charging_(00195f8c)]] | ||
+ | 00196f50: [[Check_if_map_allows_use_and_find_Highest_Target_(00196ef4)]] | ||
+ | 00196f94: [[Check_if_map_allows_use_and_find_Highest_Target_(00196ef4)]] | ||
+ | 0019be60: [[Math_Skill_Targeting]] | ||
+ | 0019d144: [[AI_Target_Unit_for_Direct_vs_Arc_Attack_(0019cd9c)]] |
Revision as of 19:08, 2 June 2024
BATTLE.BIN : - Check against and Set Highest Unit Priority ------------------------------------------------------------------------------------------ Parameter : Nothing Return : r2 = -0x01 if 0019d37c returns -0x01 r2 = 0x00 if 001937c returns 0x00 (all other cases) ------------------------------------------------------------------------------------------ 0019d308: 27bdffe0 addiu r29,r29,-0x0020 | 0019d30c: afbf0018 sw r31,0x0018(r29) | 0019d310: afb10014 sw r17,0x0014(r29) | 0019d314: 0c0674df jal 0x0019d37c |-->AI_End_of_turn,_in_between_turn,_etc. Simulate action and set priority score 0019d318: afb00010 sw r16,0x0010(r29) | 0019d31c: 3c10801a lui r16,0x801a | 0019d320: 2610f3c4 addiu r16,r16,-0x0c3c |0x8019f3c4 0019d324: 00401821 addu r3,r2,r0 | 0019d328: 2402ffff addiu r2,r0,-0x0001 | 0019d32c: 1062000d beq r3,r2,0x0019d364 #If returned Value is -0x0001 Exit Returns -0x01 0019d330: 00000000 nop | 0019d334: 1060000a beq r3,r0,0x0019d360 #If returned Value is 0x00 Exit Returns 0x00 0019d338: 26110014 addiu r17,r16,0x0014 |AI 0x0014 Current action data 0019d33c: 02202021 addu r4,r17,r0 |Send AI 0x14 pointer 0019d340: 26100034 addiu r16,r16,0x0034 |AI 0x0034 Best Action data (so far) 0019d344: 0c065b88 jal 0x00196e20 |-->Check Unit Target Priority vs the highest Priority 0019d348: 02002821 addu r5,r16,r0 |Send AI 0x34 pointer 0019d34c: 10400004 beq r2,r0,0x0019d360 #If returned Value is 0x00 Exit Returns 0x00 Else : returned Value is 0x01 0019d350: 02002021 addu r4,r16,r0 |AI 0x0034 0019d354: 02202821 addu r5,r17,r0 |AI 0x0014 0019d358: 0c066ac2 jal 0x0019ab08 |-->Transfer Halfword Values (Save Current Target Priority as the highest) replace AI 0x34 by AI 0x14 data 0019d35c: 34060020 ori r6,r0,0x0020 | 0019d360: 00001021 addu r2,r0,r0 |Returns 0x00 0019d364: 8fbf0018 lw r31,0x0018(r29) 0019d368: 8fb10014 lw r17,0x0014(r29) 0019d36c: 8fb00010 lw r16,0x0010(r29) 0019d370: 27bd0020 addiu r29,r29,0x0020 0019d374: 03e00008 jr r31 0019d378: 00000000 nop
Return locations
BATTLE.BIN 00196074: Set_or_Remove_Charging_(00195f8c) 00196f50: Check_if_map_allows_use_and_find_Highest_Target_(00196ef4) 00196f94: Check_if_map_allows_use_and_find_Highest_Target_(00196ef4) 0019be60: Math_Skill_Targeting 0019d144: AI_Target_Unit_for_Direct_vs_Arc_Attack_(0019cd9c)