Currently playing around with point in poly (which seems to work), but I am very confused with mouse_x()/y() and mouse_dx()/dy().

Here's a scenario:
Code:
if(col2d_PointInTriangle(mouse_X(),mouse_Y(),p1,p2,p3)) then
begin
   // Visual response
end;

text_Draw( fntMain, 0, 64, 'FPS: ' + u_IntToStr( zgl_Get( SYS_FPS ) ) +' | '+u_inttostr(mouse_x())+','+u_inttostr(mouse_y()));
The mouse coords initialize to where the mouse was when the game was launched, but never update after.

Code:
if(col2d_PointInTriangle(mouse_DX(),mouse_DY(),p1,p2,p3)) then
begin
   // Visual response
end;

text_Draw( fntMain, 0, 64, 'FPS: ' + u_IntToStr( zgl_Get( SYS_FPS ) ) +' | '+u_inttostr(mouse_dx())+','+u_inttostr(mouse_dy()));
Coords output are changing as I move the mouse, but still no collision response.

Code:
if(col2d_PointInTriangle(mouse_X(),mouse_Y(),p1,p2,p3)) then
begin
   // Visual response
end;
No collision response

Code:
if(col2d_PointInTriangle(mouse_X(),mouse_Y(),p1,p2,p3)) then
begin
   // Visual response
end;

text_Draw( fntMain, 0, 64, 'FPS: ' + u_IntToStr( zgl_Get( SYS_FPS ) ) +' | '+u_inttostr(mouse_dx())+','+u_inttostr(mouse_dy()));
For some reason this works the way I want it to.

Anyway, I can't really find docs anywhere so I'm a bit confused about their behaviors, but at least I got it working the way I wanted after some very random guessing.