X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_player.pas;h=23570cc87a246320d55d04086b925fdeb57ab63c;hb=834fce43a6f96778d815cf0f8f858dfee0de9058;hp=45f9e6b5d80369ca2c9ea62ec458404871947ad1;hpb=b4c47ccb9cb4d0773bd7da3f9614b6395c65db5a;p=d2df-sdl.git diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 45f9e6b..23570cc 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -2303,6 +2303,22 @@ begin end; procedure TPlayer.DrawAim(); + procedure drawCast (sz: Integer; ax0, ay0, ax1, ay1: Integer); + var + ex, ey: Integer; + begin + e_DrawLine(sz, ax0, ay0, ax1, ay1, 255, 0, 0, 96); + if g_Map_traceToNearestWall(ax0, ay0, ax1, ay1, @ex, @ey, true) then + begin + e_DrawLine(sz, ax0, ay0, ex, ey, 0, 255, 0, 96); + e_DrawPoint(4, ex, ey, 255, 127, 0); + end + else + begin + e_DrawLine(sz, ax0, ay0, ex, ey, 0, 0, 255, 96); + end; + end; + var wx, wy, xx, yy: Integer; angle: SmallInt; @@ -2389,7 +2405,11 @@ begin end; xx := Trunc(Cos(-DegToRad(angle)) * len) + wx; yy := Trunc(Sin(-DegToRad(angle)) * len) + wy; + {$IF FALSE} e_DrawLine(sz, wx, wy, xx, yy, 255, 0, 0, 96); + {$ELSE} + drawCast(sz, wx, wy, xx, yy); + {$ENDIF} end; procedure TPlayer.DrawGUI();