Initialize temp effect data?

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

001a20e8: 27bdffd8 addiu r29,r29,0xffd8
001a20ec: afb20018 sw r18,0x0018(r29)
001a20f0: 00809021 addu r18,r4,r0		code-script address
001a20f4: afb3001c sw r19,0x001c(r29)
001a20f8: 00a09821 addu r19,r5,r0		new code script counter
001a20fc: afb10014 sw r17,0x0014(r29)
001a2100: 00c08821 addu r17,r6,r0		
001a2104: afbf0024 sw r31,0x0024(r29)
001a2108: afb40020 sw r20,0x0020(r29)
001a210c: 0c06874a jal 0x001a1d28		increment phase
001a2110: afb00010 sw r16,0x0010(r29)
001a2114: 0040a021 addu r20,r2,r0		phase ID?
001a2118: 00141400 sll r2,r20,0x10
001a211c: 00021c03 sra r3,r2,0x10
001a2120: 14600003 bne r3,r0,0x001a2130		Branch if effect phase != 0
001a2124: 00002821 addu r5,r0,r0
001a2128: 0806887c j 0x001a21f0			jump to end if effect phase is 0
001a212c: 00001021 addu r2,r0,r0
Effect phase != 0
001a2130: 00031140 sll r2,r3,0x05
001a2134: 00431023 subu r2,r2,r3
001a2138: 000210c0 sll r2,r2,0x03
001a213c: 3c03801c lui r3,0x801c
001a2140: 2463f02c addiu r3,r3,0xf02c			Temp effect data
001a2144: 00438021 addu r16,r2,r3
001a2148: a6110004 sh r17,0x0004(r16)			
001a214c: ae120008 sw r18,0x0008(r16)			store code script pointer in temp. effect data
001a2150: a6130006 sh r19,0x0006(r16)			Store argument 1 in current code script counter (to execute from on next code-script)
001a2154: 00051c00 sll r3,r5,0x10
001a2158: 24a20001 addiu r2,r5,0x0001
001a215c: 00402821 addu r5,r2,r0			counter ++
001a2160: 00031bc3 sra r3,r3,0x0f
001a2164: 00701821 addu r3,r3,r16
001a2168: 00021400 sll r2,r2,0x10
001a216c: 00021403 sra r2,r2,0x10
001a2170: 28420004 slti r2,r2,0x0004
001a2174: a4600014 sh r0,0x0014(r3)			clear 0x14, 0x16, 0x18, 0x1a
001a2178: 1440fff6 bne r2,r0,0x001a2154		loop 4 times
001a217c: a460000c sh r0,0x000c(r3)			clear 0x0c, 0xe, 0x10, 0x12
001a2180: 00002821 addu r5,r0,r0
001a2184: 00051400 sll r2,r5,0x10
001a2188: 24a30001 addiu r3,r5,0x0001
001a218c: 00602821 addu r5,r3,r0			counter ++
001a2190: 00021403 sra r2,r2,0x10
001a2194: 00022080 sll r4,r2,0x02
001a2198: 00902021 addu r4,r4,r16			temp data + counter * 4
001a219c: 02021021 addu r2,r16,r2			temp data + counter
001a21a0: 00031c00 sll r3,r3,0x10
001a21a4: 00031c03 sra r3,r3,0x10
001a21a8: 28630004 slti r3,r3,0x0004
001a21ac: ac8000d4 sw r0,0x00d4(r4)			clear 0xd4, 0xd8, 0xdc, 0xc0 (clears 0xd4 code pointer)
001a21b0: a0400022 sb r0,0x0022(r2)			clear 0x22, 0x23, 0x24, 0x25
001a21b4: 1460fff3 bne r3,r0,0x001a2184
001a21b8: ac8000e4 sw r0,0x00e4(r4)			clear 0xe4, 0xe8, 0xec, 0xf0
001a21bc: 02002021 addu r4,r16,r0
001a21c0: 34020001 ori r2,r0,0x0001
001a21c4: a602001e sh r2,0x001e(r16)			already set when phase increment step was called?
001a21c8: 2402ffff addiu r2,r0,0xffff			... 0?
001a21cc: 00002821 addu r5,r0,r0
001a21d0: ae0000d0 sw r0,0x00d0(r16)
001a21d4: a600001c sh r0,0x001c(r16)
001a21d8: 0c068821 jal 0x001a2084			
001a21dc: a6020020 sh r2,0x0020(r16)			
001a21e0: 0c06882d jal 0x001a20b4			clears a bunch of effect temp data, in the most aneurysm inducing manner possible
001a21e4: 02002021 addu r4,r16,r0
001a21e8: 00141400 sll r2,r20,0x10
001a21ec: 00021403 sra r2,r2,0x10			return phase ID of initialised phase
001a21f0: 8fbf0024 lw r31,0x0024(r29)
001a21f4: 8fb40020 lw r20,0x0020(r29)
001a21f8: 8fb3001c lw r19,0x001c(r29)
001a21fc: 8fb20018 lw r18,0x0018(r29)
001a2200: 8fb10014 lw r17,0x0014(r29)
001a2204: 8fb00010 lw r16,0x0010(r29)
001a2208: 27bd0028 addiu r29,r29,0x0028
001a220c: 03e00008 jr r31
001a2210: 00000000 nop