Remove Close Range Routine

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
Remove Close Range Routine
r4 = Caster X
r5 = Caster Y
r6 = 2
00179424: 27bdfff0 addiu r29,r29,0xfff0
00179428: 3c02800e lui r2,0x800e
0017942c: 90424ea0 lbu r2,0x4ea0(r2)		r2 = Max Map Y
00179430: 00000000 nop
00179434: 18400035 blez r2,0x0017950c		End if Y is negative
00179438: 00004021 addu r8,r0,r0		r8 = Y counter
0017943c: 00a8102a slt r2,r5,r8			If Caster Y < Y Counter
00179440: 14400002 bne r2,r0,0x0017944c		Branch if true
00179444: 01054823 subu r9,r8,r5		Y Counter - Caster Y = r9
00179448: 00a84823 subu r9,r5,r8		Caster Y - Y Counter = r9
0017944c: 3c02800e lui r2,0x800e
00179450: 90424e9c lbu r2,0x4e9c(r2)		r2 = Max Map X
00179454: 00000000 nop
00179458: 18400026 blez r2,0x001794f4		go to Y counter++ if negative
0017945c: 00003821 addu r7,r0,r0		r7 = X Counter
00179460: 0087102a slt r2,r4,r7			If Caster X < X Counter
00179464: 14400002 bne r2,r0,0x00179470		Branch if true
00179468: 00e41023 subu r2,r7,r4		r2 = X Counter - Caster X
0017946c: 00871023 subu r2,r4,r7		r2 = Caster X - X Counter
00179470: 01221021 addu r2,r9,r2		Caster Y- + Caster X- = r2
00179474: 00c2102a slt r2,r6,r2			if Caster-Counter Sum > 2
00179478: 14400018 bne r2,r0,0x001794dc		skip AoE blanking if true
0017947c: 00000000 nop
00179480: 3c02800e lui r2,0x800e		
00179484: 90424e9c lbu r2,0x4e9c(r2)		r2 = Max Map X
00179488: 00000000 nop
0017948c: 01020018 mult r8,r2			Y Counter * Max X
00179490: 00001812 mflo r3
00179494: 00671821 addu r3,r3,r7		Y Counter * Max X + X Counter
00179498: 00031080 sll r2,r3,0x02
0017949c: 00431021 addu r2,r2,r3
001794a0: 3c018019 lui r1,0x8019
001794a4: 00220821 addu r1,r1,r2
001794a8: a0202dd8 sb r0,0x2dd8(r1)		Blank Counter Low Tile's AoE data
001794ac: 3c02800e lui r2,0x800e
001794b0: 90424e9c lbu r2,0x4e9c(r2)		r2 = Max Map X
001794b4: 00000000 nop
001794b8: 01020018 mult r8,r2			Y Counter * Max X
001794bc: 24e20100 addiu r2,r7,0x0100		r2 = X Counter + 0x0100
001794c0: 00001812 mflo r3
001794c4: 00621821 addu r3,r3,r2
001794c8: 00031080 sll r2,r3,0x02
001794cc: 00431021 addu r2,r2,r3
001794d0: 3c018019 lui r1,0x8019
001794d4: 00220821 addu r1,r1,r2
001794d8: a0202dd8 sb r0,0x2dd8(r1)		Blank Counter High Tile's AoE data
001794dc: 3c02800e lui r2,0x800e
001794e0: 90424e9c lbu r2,0x4e9c(r2)		r2 = Max Map X
001794e4: 24e70001 addiu r7,r7,0x0001		X Counter ++
001794e8: 00e2102a slt r2,r7,r2			If X Counter < Max X
001794ec: 1440ffdd bne r2,r0,0x00179464		Branch back if True
001794f0: 0087102a slt r2,r4,r7			If Caster X < X Counter
001794f4: 3c02800e lui r2,0x800e
001794f8: 90424ea0 lbu r2,0x4ea0(r2)		r2 = Max Map Y
001794fc: 25080001 addiu r8,r8,0x0001		Y Counter++
00179500: 0102102a slt r2,r8,r2			If Y Counter < Max Y
00179504: 1440ffce bne r2,r0,0x00179440		Branch Back if true
00179508: 00a8102a slt r2,r5,r8			If Caster Y < Y Counter
0017950c: 27bd0010 addiu r29,r29,0x0010
00179510: 03e00008 jr r31
00179514: 00000000 nop