diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 81eade6f2a55ab1d42b15ba88d88cc92570d7961..bb112696f83a22627358153f194e37ab0719d729 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
implementation
uses
-{$IFDEF USE_NANOGL}
- nanoGL,
-{$ELSE}
- GL, GLExt,
+{$INCLUDE ../nogl/noGLuses.inc}
+{$IFDEF ENABLE_HOLMES}
+ g_holmes,
{$ENDIF}
e_texture, g_textures, g_main, g_window, g_menu,
e_input, e_log, g_console, g_items, g_map, g_panel,
g_triggers, g_monsters, e_sound, CONFIG,
g_language, g_net,
ENet, e_msg, g_netmsg, g_netmaster,
- sfs, wadreader, g_holmes;
+ sfs, wadreader;
var
gMusic.SetByName('MUSIC_INTERMUS');
gMusic.Play();
gState := STATE_INTERSINGLE;
+ e_UnpressAllKeys();
g_Game_ExecuteEvent('oninter');
end
gMusic.Play();
gState := STATE_INTERCUSTOM;
+ e_UnpressAllKeys();
end
else // Çàêîí÷èëàñü ïîñëåäíÿÿ êàðòà â Îäèíî÷íîé èãðå
begin
gMusic.SetByName('MUSIC_INTERMUS');
gMusic.Play();
gState := STATE_INTERSINGLE;
+ e_UnpressAllKeys();
end;
g_Game_ExecuteEvent('oninter');
end
tagmask: Integer;
pan: TPanel;
begin
- profileFrameDraw.sectionBegin(profname);
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionBegin(profname);
if gdbg_map_use_accel_render then
begin
tagmask := panelTypeToTag(panType);
begin
if doDraw then g_Map_DrawPanels(panType, hasAmbient, ambColor);
end;
- profileFrameDraw.sectionEnd();
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionEnd();
end;
procedure drawOther (profname: AnsiString; cb: TDrawCB);
begin
- profileFrameDraw.sectionBegin(profname);
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionBegin(profname);
if assigned(cb) then cb();
- profileFrameDraw.sectionEnd();
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionEnd();
end;
begin
- profileFrameDraw.sectionBegin('total');
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionBegin('total');
// our accelerated renderer will collect all panels to gDrawPanelList
// we can use panel tag to render level parts (see GridTagXXX in g_map.pas)
- profileFrameDraw.sectionBegin('collect');
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionBegin('collect');
if gdbg_map_use_accel_render then
begin
g_Map_CollectDrawPanels(sX, sY, sWidth, sHeight);
end;
- profileFrameDraw.sectionEnd();
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionEnd();
- profileFrameDraw.sectionBegin('skyback');
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionBegin('skyback');
g_Map_DrawBack(backXOfs, backYOfs);
- profileFrameDraw.sectionEnd();
+ if (profileFrameDraw <> nil) then profileFrameDraw.sectionEnd();
if setTransMatrix then
begin
g_Player_DrawHealth();
end;
- profileFrameDraw.mainEnd(); // map rendering
+ if (profileFrameDraw <> nil) then profileFrameDraw.mainEnd(); // map rendering
end;
end;
if (profileFrameDraw = nil) then profileFrameDraw := TProfiler.Create('RENDER', g_profile_history_size);
- profileFrameDraw.mainBegin(g_profile_frame_draw);
+ if (profileFrameDraw <> nil) then profileFrameDraw.mainBegin(g_profile_frame_draw);
gPlayerDrawn := p;
p.viewPortW := sWidth;
p.viewPortH := sHeight;
+{$IFDEF ENABLE_HOLMES}
if (p = gPlayer1) then
begin
g_Holmes_plrViewPos(sX, sY);
g_Holmes_plrViewSize(sWidth, sHeight);
end;
+{$ENDIF}
renderMapInternal(-c, -d, true);
px: Integer = -1;
py: Integer = -1;
begin
- if g_profile_frame_draw then px := px-drawProfiles(px, py, profileFrameDraw);
- if g_profile_collision then begin px := px-drawProfiles(px, py, profMapCollision); py -= calcProfilesHeight(profMonsLOS); end;
- if g_profile_los then begin px := px-drawProfiles(px, py, profMonsLOS); py -= calcProfilesHeight(profMonsLOS); end;
+ if g_profile_frame_draw and (profileFrameDraw <> nil) then px := px-drawProfiles(px, py, profileFrameDraw);
+ if g_profile_collision and (profMapCollision <> nil) then begin px := px-drawProfiles(px, py, profMapCollision); py -= calcProfilesHeight(profMonsLOS); end;
+ if g_profile_los and (profMonsLOS <> nil) then begin px := px-drawProfiles(px, py, profMonsLOS); py -= calcProfilesHeight(profMonsLOS); end;
end;
procedure g_Game_Draw();
e_DrawLine(2, 0, gScreenHeight div 2, gScreenWidth, gScreenHeight div 2, 0, 0, 0);
end;
+{$IFDEF ENABLE_HOLMES}
// draw inspector
if (g_holmes_enabled) then g_Holmes_Draw();
+{$ENDIF}
if MessageText <> '' then
begin
if gGameOn then drawProfilers();
+{$IFDEF ENABLE_HOLMES}
g_Holmes_DrawUI();
+{$ENDIF}
g_Touch_Draw;
end;
conRegVar('los_enabled', @gmon_dbg_los_enabled, 'enable/disable monster LOS calculations', 'monster LOS', true);
conRegVar('mon_think', @gmon_debug_think, 'enable/disable monster thinking', 'monster thinking', true);
+{$IFDEF ENABLE_HOLMES}
conRegVar('dbg_holmes', @g_holmes_enabled, 'enable/disable Holmes', 'Holmes', true);
+{$ENDIF}
conRegVar('dbg_ignore_level_bounds', @g_dbg_ignore_bounds, 'ignore level bounds', '', false);