AI Targeting Matrix Analysis (0019b7b8)
Revision as of 01:24, 9 March 2017 by Dokurider (talk | contribs) (Dokurider moved page 0019b7b8 - 0019bb1c to AI Targeting Matrix Analysis (0019b7b8): Renaming and adding new documentation)
0019b7b8: 3c02801a lui r2,0x801a 0019b7bc: 90420d7b lbu r2,0x0d7b(r2) 0019b7c0: 27bdffe0 addiu r29,r29,0xffe0 0019b7c4: afb10014 sw r17,0x0014(r29) 0019b7c8: 3c11801a lui r17,0x801a 0019b7cc: 2631f3c4 addiu r17,r17,0xf3c4 0019b7d0: afbf001c sw r31,0x001c(r29) 0019b7d4: afb20018 sw r18,0x0018(r29) 0019b7d8: 1440009e bne r2,r0,0x0019ba54 0019b7dc: afb00010 sw r16,0x0010(r29) 0019b7e0: 3c04fdff lui r4,0xfdff 0019b7e4: 3484ffff ori r4,r4,0xffff 0019b7e8: 3c03801a lui r3,0x801a 0019b7ec: 8c630078 lw r3,0x0078(r3) load flags 0019b7f0: 34020001 ori r2,r0,0x0001 0019b7f4: 3c01801a lui r1,0x801a 0019b7f8: a022f3d9 sb r2,-0x0c27(r1) 0019b7fc: 3c01801a lui r1,0x801a 0019b800: a020020d sb r0,0x020d(r1) 0019b804: 00641824 and r3,r3,r4 remove 0x02000000 flag 0019b808: 3c01801a lui r1,0x801a 0019b80c: ac230078 sw r3,0x0078(r1) 0019b810: 92250e49 lbu r5,0x0e49(r17) load unit ID 0019b814: 3c048019 lui r4,0x8019 0019b818: 248408cc addiu r4,r4,0x08cc 0019b81c: 000518c0 sll r3,r5,0x03 0019b820: 00651823 subu r3,r3,r5 0019b824: 00031980 sll r3,r3,0x06 0019b828: 00051100 sll r2,r5,0x04 0019b82c: 2442182c addiu r2,r2,0x182c 0019b830: 02228021 addu r16,r17,r2 r16 = ai decision data 0019b834: 92020007 lbu r2,0x0007(r16) 0019b838: 00000000 nop 0019b83c: 30420010 andi r2,r2,0x0010 0019b840: 144000a2 bne r2,r0,0x0019bacc branch if untargetable 0019b844: 00649021 addu r18,r3,r4 0019b848: 92220e2e lbu r2,0x0e2e(r17) load acting unit ID 0019b84c: 00000000 nop 0019b850: 10a2009e beq r5,r2,0x0019bacc branch if not same unit 0019b854: 02402821 addu r5,r18,r0 0019b858: 92240001 lbu r4,0x0001(r17) load CT 0019b85c: 0c067bc9 jal 0x0019ef24 Check if Status Should/Can be Added 0019b860: 34060026 ori r6,r0,0x0026 0019b864: 10400099 beq r2,r0,0x0019bacc branch if not inflicting status (stop?) 0019b868: 00000000 nop 0019b86c: 92240e49 lbu r4,0x0e49(r17) load ?? 0019b870: 0c067c36 jal 0x0019f0d8 See if ability should be used based on CT 0019b874: 00000000 nop 0019b878: 14400094 bne r2,r0,0x0019bacc 0019b87c: 00000000 nop 0019b880: 92020007 lbu r2,0x0007(r16) 0019b884: 00000000 nop 0019b888: 30420020 andi r2,r2,0x0020 0019b88c: 10400007 beq r2,r0,0x0019b8ac branch if not dead unit w/o reraise 0019b890: 26250c74 addiu r5,r17,0x0c74 0019b894: 92300001 lbu r16,0x0001(r17) load CT 0019b898: 0c066722 jal 0x00199c88 00199c88 - 00199d1c 0019b89c: 02402021 addu r4,r18,r0 0019b8a0: 0050102a slt r2,r2,r16 0019b8a4: 14400089 bne r2,r0,0x0019bacc 0019b8a8: 26250c74 addiu r5,r17,0x0c74 0019b8ac: 92240e49 lbu r4,0x0e49(r17) 0019b8b0: 34020005 ori r2,r0,0x0005 0019b8b4: 0c067ca9 jal 0x0019f2a4 Transfer Unit Coordinates to AI 0019b8b8: a2220026 sb r2,0x0026(r17) store ability uses weapon-specific animation? 0019b8bc: 92230026 lbu r3,0x0026(r17) 0019b8c0: 34020006 ori r2,r0,0x0006 0019b8c4: 14620002 bne r3,r2,0x0019b8d0 branch if ability uses target-specific animation? 0019b8c8: 34040001 ori r4,r0,0x0001 0019b8cc: 34040003 ori r4,r0,0x0003 0019b8d0: 0c06723b jal 0x0019c8ec 0019c8ec - 0019cb90 0019b8d4: 00002821 addu r5,r0,r0 0019b8d8: 26240bdc addiu r4,r17,0x0bdc 0019b8dc: 26250b4c addiu r5,r17,0x0b4c 0019b8e0: 0c066ac2 jal 0x0019ab08 Transfer Halfword Values 0019b8e4: 34060048 ori r6,r0,0x0048 0019b8e8: a2200e4a sb r0,0x0e4a(r17) 0019b8ec: 92240e4a lbu r4,0x0e4a(r17) load unit ID 0019b8f0: 00000000 nop 0019b8f4: 02241021 addu r2,r17,r4 0019b8f8: 90420c8d lbu r2,0x0c8d(r2) load targetable unit list 0019b8fc: 00000000 nop 0019b900: 10400069 beq r2,r0,0x0019baa8 branch if not targetable 0019b904: 00000000 nop 0019b908: 92220e49 lbu r2,0x0e49(r17) 0019b90c: 00000000 nop 0019b910: 10820065 beq r4,r2,0x0019baa8 0019b914: 00000000 nop 0019b918: 92220e2e lbu r2,0x0e2e(r17) load acting unit 0019b91c: 00000000 nop 0019b920: 10820061 beq r4,r2,0x0019baa8 branch if unit is acting unit 0019b924: 00000000 nop 0019b928: 0c067c36 jal 0x0019f0d8 See if ability should be used based on CT 0019b92c: 00000000 nop 0019b930: 1440005d bne r2,r0,0x0019baa8 0019b934: 00000000 nop 0019b938: 92240e4a lbu r4,0x0e4a(r17) load unit id 0019b93c: 0c067976 jal 0x0019e5d8 AI Abiltiy Use Decisions 0019b940: 00002821 addu r5,r0,r0 0019b944: 34030001 ori r3,r0,0x0001 0019b948: 14430057 bne r2,r3,0x0019baa8 0019b94c: 00000000 nop 0019b950: 92230e4a lbu r3,0x0e4a(r17) 0019b954: 92250e3a lbu r5,0x0e3a(r17) load map max X 0019b958: 000310c0 sll r2,r3,0x03 0019b95c: 00431023 subu r2,r2,r3 0019b960: 00021180 sll r2,r2,0x06 0019b964: 92430047 lbu r3,0x0047(r18) load X coordinate 0019b968: 3c018019 lui r1,0x8019 0019b96c: 00220821 addu r1,r1,r2 0019b970: 90220913 lbu r2,0x0913(r1) load X coordinate 0019b974: 00031840 sll r3,r3,0x01 X coordinate*2 0019b978: 00621823 subu r3,r3,r2 X coordinate 0019b97c: a2230018 sb r3,0x0018(r17) store acting unit's X Coordinate 0019b980: 92440048 lbu r4,0x0048(r18) load Y coordinate 0019b984: 92230e4a lbu r3,0x0e4a(r17) load Y coordinate 0019b988: 00042040 sll r4,r4,0x01 0019b98c: 000310c0 sll r2,r3,0x03 0019b990: 00431023 subu r2,r2,r3 0019b994: 00021180 sll r2,r2,0x06 0019b998: 3c018019 lui r1,0x8019 0019b99c: 00220821 addu r1,r1,r2 0019b9a0: 90230914 lbu r3,0x0914(r1) 0019b9a4: 92220018 lbu r2,0x0018(r17) 0019b9a8: 00832023 subu r4,r4,r3 0019b9ac: 0045102b sltu r2,r2,r5 0019b9b0: 1040003d beq r2,r0,0x0019baa8 0019b9b4: a224001a sb r4,0x001a(r17) store Y coordinate 0019b9b8: 9222001a lbu r2,0x001a(r17) 0019b9bc: 92230e3b lbu r3,0x0e3b(r17) 0019b9c0: 00000000 nop 0019b9c4: 0043102b sltu r2,r2,r3 0019b9c8: 10400037 beq r2,r0,0x0019baa8 0019b9cc: 00000000 nop 0019b9d0: a2200e4b sb r0,0x0e4b(r17) 0019b9d4: 92230e2d lbu r3,0x0e2d(r17) 0019b9d8: 92220e4b lbu r2,0x0e4b(r17) 0019b9dc: 000320c0 sll r4,r3,0x03 0019b9e0: 00832021 addu r4,r4,r3 0019b9e4: 000420c0 sll r4,r4,0x03 0019b9e8: 00912021 addu r4,r4,r17 0019b9ec: 92230e4b lbu r3,0x0e4b(r17) 0019b9f0: 24840a74 addiu r4,r4,0x0a74 0019b9f4: a2220019 sb r2,0x0019(r17) store map level 0019b9f8: 000310c0 sll r2,r3,0x03 0019b9fc: 00431021 addu r2,r2,r3 0019ba00: 00021080 sll r2,r2,0x02 0019ba04: 9223001a lbu r3,0x001a(r17) 0019ba08: 00441021 addu r2,r2,r4 0019ba0c: 00031840 sll r3,r3,0x01 0019ba10: 00621821 addu r3,r3,r2 0019ba14: 94620000 lhu r2,0x0000(r3) 0019ba18: 92230018 lbu r3,0x0018(r17) X coordinate 0019ba1c: 00000000 nop 0019ba20: 00621004 sllv r2,r2,r3 0019ba24: 30428000 andi r2,r2,0x8000 0019ba28: 10400016 beq r2,r0,0x0019ba84 0019ba2c: 00000000 nop 0019ba30: 0c066ec8 jal 0x0019bb20 0019bb20 - 0019bbb8 0019ba34: 00000000 nop 0019ba38: 34020001 ori r2,r0,0x0001 0019ba3c: a2220014 sb r2,0x0014(r17) 0019ba40: a2200ed8 sb r0,0x0ed8(r17) 0019ba44: 0c066d3d jal 0x0019b4f4 0019b4f4 - 0019b6ac 0019ba48: 26240e30 addiu r4,r17,0x0e30 0019ba4c: 10400006 beq r2,r0,0x0019ba68 0019ba50: 00000000 nop 0019ba54: 0c067367 jal 0x0019cd9c 0019cd9c - 0019d214 0019ba58: 00000000 nop 0019ba5c: 2403ffff addiu r3,r0,0xffff 0019ba60: 10430028 beq r2,r3,0x0019bb04 0019ba64: 2402ffff addiu r2,r0,0xffff 0019ba68: 92220ed8 lbu r2,0x0ed8(r17) 0019ba6c: 00000000 nop 0019ba70: 14400004 bne r2,r0,0x0019ba84 0019ba74: 34020001 ori r2,r0,0x0001 0019ba78: a2220ed8 sb r2,0x0ed8(r17) 0019ba7c: 08066e91 j 0x0019ba44 0019ba80: a2200014 sb r0,0x0014(r17) 0019ba84: 92220e4b lbu r2,0x0e4b(r17) 0019ba88: 00000000 nop 0019ba8c: 24420001 addiu r2,r2,0x0001 0019ba90: a2220e4b sb r2,0x0e4b(r17) 0019ba94: 92220e4b lbu r2,0x0e4b(r17) 0019ba98: 00000000 nop 0019ba9c: 2c420002 sltiu r2,r2,0x0002 0019baa0: 1440ffcc bne r2,r0,0x0019b9d4 0019baa4: 00000000 nop 0019baa8: 92220e4a lbu r2,0x0e4a(r17) 0019baac: 00000000 nop 0019bab0: 24420001 addiu r2,r2,0x0001 0019bab4: a2220e4a sb r2,0x0e4a(r17) 0019bab8: 92220e4a lbu r2,0x0e4a(r17) 0019babc: 00000000 nop 0019bac0: 2c420015 sltiu r2,r2,0x0015 0019bac4: 1440ff89 bne r2,r0,0x0019b8ec 0019bac8: 00000000 nop
0019bacc: 92220e49 lbu r2,0x0e49(r17) 0019bad0: 00000000 nop 0019bad4: 24420001 addiu r2,r2,0x0001 0019bad8: a2220e49 sb r2,0x0e49(r17) 0019badc: 92220e49 lbu r2,0x0e49(r17) 0019bae0: 00000000 nop 0019bae4: 2c420015 sltiu r2,r2,0x0015 0019bae8: 1440ff49 bne r2,r0,0x0019b810 0019baec: 00000000 nop 0019baf0: 0c067c96 jal 0x0019f258 Store units coordinates 0019baf4: 26240e30 addiu r4,r17,0x0e30 0019baf8: 0c065bf1 jal 0x00196fc4 00196fc4 - 001970b8 0019bafc: a2200015 sb r0,0x0015(r17) 0019bb00: 00001021 addu r2,r0,r0 0019bb04: 8fbf001c lw r31,0x001c(r29) 0019bb08: 8fb20018 lw r18,0x0018(r29) 0019bb0c: 8fb10014 lw r17,0x0014(r29) 0019bb10: 8fb00010 lw r16,0x0010(r29) 0019bb14: 27bd0020 addiu r29,r29,0x0020 0019bb18: 03e00008 jr r31 0019bb1c: 00000000 nop