AI Depth Elemental Monster Skill Use Check (0019b4f4)

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
0019b4f4: 3c02801a lui r2,0x801a
0019b4f8: 90420d7d lbu r2,0x0d7d(r2)
0019b4fc: 27bdffd8 addiu r29,r29,0xffd8
0019b500: afb10014 sw r17,0x0014(r29)
0019b504: 00808821 addu r17,r4,r0
0019b508: afb40020 sw r20,0x0020(r29)
0019b50c: 3c14801a lui r20,0x801a
0019b510: 2694f3c4 addiu r20,r20,0xf3c4
0019b514: afbf0024 sw r31,0x0024(r29)
0019b518: afb3001c sw r19,0x001c(r29)
0019b51c: afb20018 sw r18,0x0018(r29)
0019b520: 10400015 beq r2,r0,0x0019b578
0019b524: afb00010 sw r16,0x0010(r29)
0019b528: 92230002 lbu r3,0x0002(r17)
0019b52c: 3c02801a lui r2,0x801a
0019b530: 904201fe lbu r2,0x01fe(r2)          max x
0019b534: 00000000 nop
0019b538: 00620018 mult r3,r2
0019b53c: 92230001 lbu r3,0x0001(r17)
0019b540: 92240000 lbu r4,0x0000(r17)
0019b544: 00031a00 sll r3,r3,0x08
0019b548: 00001012 mflo r2
0019b54c: 00441021 addu r2,r2,r4
0019b550: 00431021 addu r2,r2,r3
0019b554: 000210c0 sll r2,r2,0x03
0019b558: 3c018019 lui r1,0x8019
0019b55c: 00220821 addu r1,r1,r2
0019b560: 9022f8cf lbu r2,-0x0731(r1)				Load Tile Depth	
0019b564: 00000000 nop
0019b568: 00021142 srl r2,r2,0x05					Depth / 20
0019b56c: 28420002 slti r2,r2,0x0002
0019b570: 10400046 beq r2,r0,0x0019b68c				Exit if Tile is Water Depth 2 or greater (Can't act)
0019b574: 00001021 addu r2,r0,r0
0019b578: 92820000 lbu r2,0x0000(r20)
0019b57c: 3c018006 lui r1,0x8006
0019b580: 00220821 addu r1,r1,r2
0019b584: 90235cb4 lbu r3,0x5cb4(r1)        		 load action menu
0019b588: 34020004 ori r2,r0,0x0004
0019b58c: 14620005 bne r3,r2,0x0019b5a4      		 branch if elemental
0019b590: 3c030800 lui r3,0x0800
0019b594: 0c066dd5 jal 0x0019b754					Check if Elemental can be used
0019b598: 02202021 addu r4,r17,r0
0019b59c: 08066da3 j 0x0019b68c
0019b5a0: 00000000 nop
0019b5a4: 8e82000c lw r2,0x000c(r20)          			load usage type
0019b5a8: 00000000 nop
0019b5ac: 00431024 and r2,r2,r3
0019b5b0: 10400035 beq r2,r0,0x0019b688       			Exit and return success if skill does not require Monster Skill
0019b5b4: 00009821 addu r19,r0,r0
0019b5b8: 00009021 addu r18,r0,r0
0019b5bc: 3c028019 lui r2,0x8019
0019b5c0: 244208cc addiu r2,r2,0x08cc
0019b5c4: 02428021 addu r16,r18,r2
0019b5c8: 92030001 lbu r3,0x0001(r16)					Load Unit ID
0019b5cc: 340200ff ori r2,r0,0x00ff
0019b5d0: 10620027 beq r3,r2,0x0019b670					Branch if Unit doesn't exist
0019b5d4: 00000000 nop
0019b5d8: 92020092 lbu r2,0x0092(r16)					Load Support 4
0019b5dc: 00000000 nop
0019b5e0: 30420080 andi r2,r2,0x0080
0019b5e4: 10400022 beq r2,r0,0x0019b670          		branch if not monster skill
0019b5e8: 00000000 nop
0019b5ec: 920201ba lbu r2,0x01ba(r16)            		load modified ENTD flags
0019b5f0: 92830e39 lbu r3,0x0e39(r20)
0019b5f4: 30420030 andi r2,r2,0x0030
0019b5f8: 1443001d bne r2,r3,0x0019b670         		branch if enemy
0019b5fc: 02002021 addu r4,r16,r0
0019b600: 0c01786c jal 0x0005e1b0                 		status checks
0019b604: 34050004 ori r5,r0,0x0004						Check if unit can react
0019b608: 14400019 bne r2,r0,0x0019b670
0019b60c: 00000000 nop
0019b610: 92030047 lbu r3,0x0047(r16)            		Target X
0019b614: 92220000 lbu r2,0x0000(r17)					Caster Y
0019b618: 00000000 nop
0019b61c: 00622023 subu r4,r3,r2
0019b620: 04810002 bgez r4,0x0019b62c					Get X Distance
0019b624: 00000000 nop
0019b628: 00042023 subu r4,r0,r4
0019b62c: 92030048 lbu r3,0x0048(r16)             		Target Y
0019b630: 92220002 lbu r2,0x0002(r17)					Caster Y
0019b634: 00000000 nop
0019b638: 00621823 subu r3,r3,r2
0019b63c: 04610003 bgez r3,0x0019b64c					Get Y Distance
0019b640: 00831021 addu r2,r4,r3						Get Absolute Distance
0019b644: 00031823 subu r3,r0,r3
0019b648: 00831021 addu r2,r4,r3						Get Absolute Distance
0019b64c: 28420002 slti r2,r2,0x0002
0019b650: 10400007 beq r2,r0,0x0019b670					Branch if out of range of Monster Skill Aura (1 range)
0019b654: 02202021 addu r4,r17,r0
0019b658: 0c066dac jal 0x0019b6b0						Calculate Height difference as well
0019b65c: 02002821 addu r5,r16,r0
0019b660: 24420002 addiu r2,r2,0x0002
0019b664: 2c420005 sltiu r2,r2,0x0005
0019b668: 14400008 bne r2,r0,0x0019b68c					Select this unit if Height > 4
0019b66c: 34020001 ori r2,r0,0x0001
0019b670: 26730001 addiu r19,r19,0x0001
0019b674: 2a620015 slti r2,r19,0x0015
0019b678: 1440ffd0 bne r2,r0,0x0019b5bc                 check if any unit with monster skill is nearby
0019b67c: 265201c0 addiu r18,r18,0x01c0
0019b680: 08066da3 j 0x0019b68c
0019b684: 00001021 addu r2,r0,r0
0019b688: 34020001 ori r2,r0,0x0001
0019b68c: 8fbf0024 lw r31,0x0024(r29)
0019b690: 8fb40020 lw r20,0x0020(r29)
0019b694: 8fb3001c lw r19,0x001c(r29)
0019b698: 8fb20018 lw r18,0x0018(r29)
0019b69c: 8fb10014 lw r17,0x0014(r29)
0019b6a0: 8fb00010 lw r16,0x0010(r29)
0019b6a4: 27bd0028 addiu r29,r29,0x0028
0019b6a8: 03e00008 jr r31
0019b6ac: 00000000 nop