X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_monsters.pas;h=5824ffe082020edf16f9c29e215005f4e38a789f;hb=d0936017ccb8a078d1b03f55478af284bb015bbc;hp=f858d122dd8e8680a85b0ac52a1bdfba90f8b83e;hpb=c5684c0c980bb96fd4fd0efae4d48cdeb469c8ff;p=d2df-sdl.git diff --git a/src/game/g_monsters.pas b/src/game/g_monsters.pas index f858d12..5824ffe 100644 --- a/src/game/g_monsters.pas +++ b/src/game/g_monsters.pas @@ -488,12 +488,28 @@ var implementation uses - e_log, e_texture, g_main, g_sound, g_gfx, g_player, g_game, + e_log, g_sound, g_gfx, g_player, g_game, g_weapons, g_triggers, g_items, g_options, g_console, g_map, Math, g_menu, wadreader, g_language, g_netmsg, idpool, utils, xstreams; +function g_Look(a, b: PObj; d: TDirection): Boolean; +begin + if not gmon_dbg_los_enabled then begin result := false; exit; end; // always "wall hit" + + if ((b^.X > a^.X) and (d = TDirection.D_LEFT)) or + ((b^.X < a^.X) and (d = TDirection.D_RIGHT)) then + begin + Result := False; + Exit; + end; + + Result := g_TraceVector(a^.X+a^.Rect.X+(a^.Rect.Width div 2), + a^.Y+a^.Rect.Y+(a^.Rect.Height div 2), + b^.X+b^.Rect.X+(b^.Rect.Width div 2), + b^.Y+b^.Rect.Y+(b^.Rect.Height div 2)); +end; // ////////////////////////////////////////////////////////////////////////// // procedure g_Mons_ProfilersBegin ();