001b0460 - 001b04d8

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
returns a value of r2 based on the current arctan angle mod. 
001b0460: 3c02801c lui r2,0x801c
001b0464: 84428b70 lh r2,-0x7490(r2)			arctan angle mod
001b0468: 00000000 nop
001b046c: 00401821 addu r3,r2,r0			r3 = arctan angle mod
001b0470: 28420801 slti r2,r2,0x0801			set true if <= 800
001b0474: 14400004 bne r2,r0,0x001b0488		branch if so
001b0478: 27bdfff0 addiu r29,r29,0xfff0
001b047c: 2462f000 addiu r2,r3,0xf000			angle - 0x1000
001b0480: 3c01801c lui r1,0x801c
001b0484: a4228b70 sh r2,-0x7490(r1)			Save angle to new angle mod
001b0488: 3c02801c lui r2,0x801c
001b048c: 84428b70 lh r2,-0x7490(r2)			load arctan angle mod again
001b0490: 00000000 nop
001b0494: 00401821 addu r3,r2,r0			put that shit in r3
001b0498: 2842f800 slti r2,r2,-0x0800			set if less than -800
001b049c: 10400003 beq r2,r0,0x001b04ac		branch if not the case
001b04a0: 24621000 addiu r2,r3,0x1000			arctan angle + 0x1000
001b04a4: 3c01801c lui r1,0x801c
001b04a8: a4228b70 sh r2,-0x7490(r1)			Save new angle
001b04ac: 3c03801c lui r3,0x801c
001b04b0: 84638b70 lh r3,-0x7490(r3)			load arctan angle mod
001b04b4: 00000000 nop
001b04b8: 286202ab slti r2,r3,0x02ab			set if less than 0x2ab
001b04bc: 14400003 bne r2,r0,0x001b04cc		branch if so
001b04c0: 2862fd56 slti r2,r3,-0x02aa			set if less than -0x2aa
001b04c4: 0806c134 j 0x001b04d0			jump to end
001b04c8: 34020002 ori r2,r0,0x0002			r2 = 2 if !< 0x2ab
001b04cc: 38420001 xori r2,r2,0x0001			r2 = 1 if > -0x2aa, r2 = 0 if < -0x2aa
001b04d0: 27bd0010 addiu r29,r29,0x0010
001b04d4: 03e00008 jr r31
001b04d8: 00000000 nop