diff --git a/src/game/g_panel.pas b/src/game/g_panel.pas
index 8a2265af842d9a546aa5eea28bd1c384875b43b1..c3db76ef1ae418d5c9f90ef0e7fbf42b78f22298 100644 (file)
--- a/src/game/g_panel.pas
+++ b/src/game/g_panel.pas
implementation
uses
- g_basic, g_map, MAPDEF, g_game, e_graphics,
- g_console, g_language;
+ SysUtils, g_basic, g_map, MAPDEF, g_game, e_graphics,
+ g_console, g_language, e_log;
const
PANEL_SIGNATURE = $4C4E4150; // 'PANL'
SaveIt := True;
// Åñëè íå ñïåöòåêñòóðà, òî çàäàåì ðàçìåðû:
- if not g_Map_IsSpecialTexture(Textures[PanelRec.TextureNum].TextureName) then
+ if PanelRec.TextureNum > High(Textures) then
+ begin
+ e_WriteLog(Format('WTF?! PanelRec.TextureNum is out of limits! (%d : %d)', [PanelRec.TextureNum, High(Textures)]), MSG_FATALERROR);
+ FTextureWidth := 2;
+ FTextureHeight := 2;
+ FAlpha := 0;
+ FBlending := ByteBool(0);
+ end
+ else if not g_Map_IsSpecialTexture(Textures[PanelRec.TextureNum].TextureName) then
begin
FTextureWidth := Textures[PanelRec.TextureNum].Width;
FTextureHeight := Textures[PanelRec.TextureNum].Height;