Set target for mounted unit, move find item/trap

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
0017ffc0: 27bdffe0 addiu r29,r29,0xffe0
0017ffc4: afb20018 sw r18,0x0018(r29)
0017ffc8: 00809021 addu r18,r4,r0
0017ffcc: 34070041 ori r7,r0,0x0041
0017ffd0: afbf001c sw r31,0x001c(r29)
0017ffd4: afb10014 sw r17,0x0014(r29)
0017ffd8: afb00010 sw r16,0x0010(r29)
0017ffdc: 92440047 lbu r4,0x0047(r18)
0017ffe0: 96460048 lhu r6,0x0048(r18)
0017ffe4: 92450048 lbu r5,0x0048(r18)
0017ffe8: 0c05f72a jal 0x0017dca8			check if another unit is on the same tile
0017ffec: 000633c2 srl r6,r6,0x0f
0017fff0: 00021027 nor r2,r0,r2
0017fff4: 92430182 lbu r3,0x0182(r18)		load mount info
0017fff8: 00028fc2 srl r17,r2,0x1f			r17 = unit ID of unit riding/being ridden by this unit
0017fffc: 30620080 andi r2,r3,0x0080
00180000: 10400026 beq r2,r0,0x0018009c		branch if not riding unit
00180004: 02408021 addu r16,r18,r0
00180008: 3063001f andi r3,r3,0x001f
0018000c: 000310c0 sll r2,r3,0x03
00180010: 00431023 subu r2,r2,r3
00180014: 00021180 sll r2,r2,0x06
00180018: 3c038019 lui r3,0x8019
0018001c: 246308cc addiu r3,r3,0x08cc		get unit data of unit riding this unit
00180020: 00438021 addu r16,r2,r3
00180024: 2604018c addiu r4,r16,0x018c		r4 = riding unit's action data pointer
00180028: 3c018019 lui r1,0x8019
0018002c: ac302d98 sw r16,0x2d98(r1)		store target's stats address
00180030: 3c018019 lui r1,0x8019
00180034: ac242d90 sw r4,0x2d90(r1)			store target's action data address
00180038: 0c062f5d jal 0x0018bd74			current action data nulling
0018003c: 00000000 nop
00180040: 00002021 addu r4,r0,r0
00180044: 3c028019 lui r2,0x8019
00180048: 8c422d90 lw r2,0x2d90(r2)			load target action
0018004c: 3c018006 lui r1,0x8006
00180050: 00240821 addu r1,r1,r4
00180054: 902362fd lbu r3,0x62fd(r1)
00180058: 00441021 addu r2,r2,r4
0018005c: 24840001 addiu r4,r4,0x0001
00180060: a0430020 sb r3,0x0020(r2)
00180064: 28820005 slti r2,r4,0x0005
00180068: 1440fff6 bne r2,r0,0x00180044		status checks?
0018006c: 00000000 nop
00180070: 0c0612c9 jal 0x00184b24			validate status changes
00180074: 00002021 addu r4,r0,r0
00180078: 10400008 beq r2,r0,0x0018009c
0018007c: 00002821 addu r5,r0,r0
00180080: 3c038019 lui r3,0x8019
00180084: 8c632d90 lw r3,0x2d90(r3)
00180088: 34020008 ori r2,r0,0x0008
0018008c: a0620025 sb r2,0x0025(r3)			store attack = status change
00180090: 9204018a lbu r4,0x018a(r16)		load ENTD ID
00180094: 0c06381f jal 0x0018e07c			Store current action status to target + remove control + 
											remove ability CT if not charge/jump/perform
00180098: 36310400 ori r17,r17,0x0400
0018009c: 92440047 lbu r4,0x0047(r18)
001800a0: 92450048 lbu r5,0x0048(r18)
001800a4: 96460048 lhu r6,0x0048(r18)
001800a8: 92100095 lbu r16,0x0095(r16)		load movement supports
001800ac: 000633c2 srl r6,r6,0x0f
001800b0: 0c0600b2 jal 0x001802c8			Move find item determination routines
001800b4: 32100001 andi r16,r16,0x0001		r16 = Move-Find item check
001800b8: 12000008 beq r16,r0,0x001800dc	branch if move find item not active
001800bc: 00401821 addu r3,r2,r0
001800c0: 90620000 lbu r2,0x0000(r3)		load Move find item/trap found flag
001800c4: 00000000 nop
001800c8: 30420001 andi r2,r2,0x0001
001800cc: 10400003 beq r2,r0,0x001800dc		branch if item not found
001800d0: 00000000 nop
001800d4: 0806003d j 0x001800f4
001800d8: 36310004 ori r17,r17,0x0004		return r17 + 4
001800dc: 90620000 lbu r2,0x0000(r3)		load trap found flag
001800e0: 00000000 nop
001800e4: 30420002 andi r2,r2,0x0002
001800e8: 10400003 beq r2,r0,0x001800f8		branch if trap not found
001800ec: 02402021 addu r4,r18,r0
001800f0: 36310008 ori r17,r17,0x0008		return r17 + 8
001800f4: 02402021 addu r4,r18,r0			r4 = unit data
001800f8: 0c06005e jal 0x00180178			remove charging status
001800fc: 00002821 addu r5,r0,r0
00180100: 10400002 beq r2,r0,0x0018010c		branch if status not removed?
00180104: 00000000 nop
00180108: 36310010 ori r17,r17,0x0010		return r17 + 10
0018010c: 0c06004d jal 0x00180134			get move-Stat up supports
00180110: 02402021 addu r4,r18,r0
00180114: 02221025 or r2,r17,r2				r2 = movement supports + status removal flags
00180118: 8fbf001c lw r31,0x001c(r29)
0018011c: 8fb20018 lw r18,0x0018(r29)
00180120: 8fb10014 lw r17,0x0014(r29)
00180124: 8fb00010 lw r16,0x0010(r29)
00180128: 27bd0020 addiu r29,r29,0x0020
0018012c: 03e00008 jr r31
00180130: 00000000 nop