Difference between revisions of "See if any units are on target panel"
Jump to navigation
Jump to search
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | '''BATTLE.BIN''' : - See_if_any_units_are_on_target_panel | |
− | + | ------------------------------------------------------------------------------------------ | |
− | + | Parameter : Nothing | |
− | + | Return : r2 = Unit ID if on Considered Tile (AI 0x28) | |
− | + | r2 = 0x15 if No units found (end of loop) | |
− | + | ------------------------------------------------------------------------------------------ | |
− | + | 0019d218: 3c06801a lui r6,0x801a | | |
− | + | 0019d21c: 24c6f3c4 addiu r6,r6,-0x0c3c |{{f/adr|0x8019f3c4}} | |
− | + | 0019d220: 00002821 addu r5,r0,r0 | | |
− | + | 0019d224: 340700ff ori r7,r0,0x00ff | | |
− | + | 0019d228: 3c048019 lui r4,0x8019 | | |
− | + | 0019d22c: 248408cc addiu r4,r4,0x08cc |{{f/adr|Prepare dynamic pointer to Battle data}} | |
− | + | {{f/bloop|LOOP - All Units}} | |
− | + | 0019d230: 90820001 lbu r2,0x0001(r4) |{{f/load|This Unit ID}} | |
− | + | 0019d234: 00000000 nop | | |
− | + | 0019d238: 10470010 beq r2,r7,0x0019d27c {{f/Cond|If This unit doesn't exist : branch to}} {{f/loc|Next Unit}} | |
− | + | 0019d23c: 00000000 nop | | |
− | + | 0019d240: 90830047 lbu r3,0x0047(r4) |{{f/load|This Unit X}} | |
− | + | 0019d244: 94c20028 lhu r2,0x0028(r6) |{{f/load|Considered Tile X}} | |
− | + | 0019d248: 00000000 nop | | |
− | + | 0019d24c: 1462000b bne r3,r2,0x0019d27c {{f/Cond|If Note same X : branch to }} {{f/loc|Next Unit}} | |
− | + | 0019d250: 00000000 nop | | |
− | + | 0019d254: 90830048 lbu r3,0x0048(r4) |{{f/load|Unit Y}} | |
− | + | 0019d258: 94c2002c lhu r2,0x002c(r6) |{{f/load|Considered Tile Y}} | |
− | + | 0019d25c: 00000000 nop | | |
− | + | 0019d260: 14620006 bne r3,r2,0x0019d27c {{f/Cond|If Note same Y : branch to }} {{f/loc|Next Unit}} | |
− | + | 0019d264: 00000000 nop | | |
− | + | 0019d268: 94820048 lhu r2,0x0048(r4) |{{f/load|Unit Elevation}} | |
− | + | 0019d26c: 94c3002a lhu r3,0x002a(r6) |{{f/load|Considred Tile elevation}} | |
− | + | 0019d270: 000213c2 srl r2,r2,0x0f | | |
− | + | 0019d274: 10430005 beq r2,r3,0x0019d28c {{f/Cond|If Same Elevation : }} {{f/loc|Exit Routine}} {{f/Returns|Returns Unit ID}} | |
− | + | 0019d278: 00000000 nop | | |
− | + | 0019d27c: 24a50001 addiu r5,r5,0x0001 |{{f/std|Unit counter + 1}} | |
− | + | 0019d280: 28a20015 slti r2,r5,0x0015 | | |
− | + | 0019d284: 1440ffea bne r2,r0,0x0019d230 {{f/eloop|Loop}} | |
+ | 0019d288: 248401c0 addiu r4,r4,0x01c0 |{{f/std|Battle data offset}} | ||
+ | 0019d28c: 03e00008 jr r31 | ||
+ | 0019d290: 00a01021 addu r2,r5,r0 | ||
+ | ===Return locations=== | ||
+ | '''BATTLE.BIN''' | ||
+ | 0019d06c: [[AI_Target_Unit_for_Direct_vs_Arc_Attack_(0019cd9c)]] |
Latest revision as of 19:49, 19 May 2024
BATTLE.BIN : - See_if_any_units_are_on_target_panel ------------------------------------------------------------------------------------------ Parameter : Nothing Return : r2 = Unit ID if on Considered Tile (AI 0x28) r2 = 0x15 if No units found (end of loop) ------------------------------------------------------------------------------------------ 0019d218: 3c06801a lui r6,0x801a | 0019d21c: 24c6f3c4 addiu r6,r6,-0x0c3c |0x8019f3c4 0019d220: 00002821 addu r5,r0,r0 | 0019d224: 340700ff ori r7,r0,0x00ff | 0019d228: 3c048019 lui r4,0x8019 | 0019d22c: 248408cc addiu r4,r4,0x08cc |Prepare dynamic pointer to Battle data @LOOP - All Units 0019d230: 90820001 lbu r2,0x0001(r4) |This Unit ID 0019d234: 00000000 nop | 0019d238: 10470010 beq r2,r7,0x0019d27c #If This unit doesn't exist : branch to Next Unit 0019d23c: 00000000 nop | 0019d240: 90830047 lbu r3,0x0047(r4) |This Unit X 0019d244: 94c20028 lhu r2,0x0028(r6) |Considered Tile X 0019d248: 00000000 nop | 0019d24c: 1462000b bne r3,r2,0x0019d27c #If Note same X : branch to Next Unit 0019d250: 00000000 nop | 0019d254: 90830048 lbu r3,0x0048(r4) |Unit Y 0019d258: 94c2002c lhu r2,0x002c(r6) |Considered Tile Y 0019d25c: 00000000 nop | 0019d260: 14620006 bne r3,r2,0x0019d27c #If Note same Y : branch to Next Unit 0019d264: 00000000 nop | 0019d268: 94820048 lhu r2,0x0048(r4) |Unit Elevation 0019d26c: 94c3002a lhu r3,0x002a(r6) |Considred Tile elevation 0019d270: 000213c2 srl r2,r2,0x0f | 0019d274: 10430005 beq r2,r3,0x0019d28c #If Same Elevation : Exit Routine Returns Unit ID 0019d278: 00000000 nop | 0019d27c: 24a50001 addiu r5,r5,0x0001 |Unit counter + 1 0019d280: 28a20015 slti r2,r5,0x0015 | 0019d284: 1440ffea bne r2,r0,0x0019d230 Λ Loop 0019d288: 248401c0 addiu r4,r4,0x01c0 |Battle data offset 0019d28c: 03e00008 jr r31 0019d290: 00a01021 addu r2,r5,r0
Return locations
BATTLE.BIN 0019d06c: AI_Target_Unit_for_Direct_vs_Arc_Attack_(0019cd9c)