X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_map.pas;h=97c56d0c399f8682f3122caa345d79ac9a28aa05;hb=b2a3a1d36f49c0bfe00eb3ead99abc98b388431b;hp=1ddbffdd052253d446f2163e1f4597294dd445ff;hpb=52046a296d5acd6588c2dde5918cdb6cbd26fc52;p=d2df-sdl.git diff --git a/src/game/g_map.pas b/src/game/g_map.pas index 1ddbffd..97c56d0 100644 --- a/src/game/g_map.pas +++ b/src/game/g_map.pas @@ -252,8 +252,9 @@ var implementation uses + {$INCLUDE ../nogl/noGLuses.inc} e_input, g_main, e_log, e_texture, g_items, g_gfx, g_console, - GL, GLExt, g_weapons, g_game, g_sound, e_sound, CONFIG, + g_weapons, g_game, g_sound, e_sound, CONFIG, g_options, g_triggers, g_player, Math, g_monsters, g_saveload, g_language, g_netmsg, sfs, xstreams, hashtable, wadreader, @@ -540,9 +541,9 @@ var procedure g_Map_ProfilersBegin (); begin if (profMapCollision = nil) then profMapCollision := TProfiler.Create('COLSOLID', g_profile_history_size); - profMapCollision.mainBegin(g_profile_collision); + if (profMapCollision <> nil) then profMapCollision.mainBegin(g_profile_collision); // create sections - if g_profile_collision then + if g_profile_collision and (profMapCollision <> nil) then begin profMapCollision.sectionBegin('*solids'); profMapCollision.sectionEnd(); @@ -1338,6 +1339,7 @@ end; function CreateTrigger (amapIdx: Integer; Trigger: TDynRecord; atpanid, atrigpanid: Integer): Integer; var _trigger: TTrigger; + tp: TPanel; begin result := -1; if g_Game_IsClient and not (Trigger.TriggerType in [TRIGGER_SOUND, TRIGGER_MUSIC]) then Exit; @@ -1356,6 +1358,12 @@ begin ActivateType := Trigger.ActivateType; Keys := Trigger.Keys; trigPanelGUID := atrigpanid; + // HACK: used in TPanel.CanChangeTexture. maybe there's a better way? + if TexturePanelGUID <> -1 then + begin + tp := g_Map_PanelByGUID(TexturePanelGUID); + if (tp <> nil) then tp.hasTexTrigger := True; + end; end; result := Integer(g_Triggers_Create(_trigger, Trigger));