X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_panel.pas;h=226515a5dc6a6381ba1d080f0e1f3bf3ac58e775;hb=d48835ed248033dcbc23b465a0d7408aa5c2ae3b;hp=2ff9af5648006d2650a0b4e5e101e781e03f3003;hpb=d7d166dc3cd287276202e862746208892c4cc89f;p=d2df-sdl.git diff --git a/src/game/g_panel.pas b/src/game/g_panel.pas index 2ff9af5..226515a 100644 --- a/src/game/g_panel.pas +++ b/src/game/g_panel.pas @@ -210,7 +210,7 @@ implementation uses e_texture, g_basic, g_map, g_game, g_gfx, e_graphics, g_weapons, g_triggers, - g_console, g_language, g_monsters, g_player, g_grid, e_log, GL, utils, xstreams; + g_console, g_language, g_monsters, g_player, g_grid, e_log, GL, geom, utils, xstreams; const PANEL_SIGNATURE = $4C4E4150; // 'PANL' @@ -223,6 +223,7 @@ constructor TPanel.Create(PanelRec: TDynRecord; var Textures: TLevelTextureArray; aguid: Integer); var i: Integer; + tnum: Integer; begin X := PanelRec.X; Y := PanelRec.Y; @@ -337,19 +338,22 @@ begin // Òåêñòóð íåñêîëüêî - íóæíî ñîõðàíÿòü òåêóùóþ: //if Length(FTextureIDs) > 1 then SaveIt := True; + if (PanelRec.TextureRec = nil) then tnum := -1 else tnum := PanelRec.tagInt; + if (tnum < 0) then tnum := Length(Textures); + // Åñëè íå ñïåöòåêñòóðà, òî çàäàåì ðàçìåðû: - if PanelRec.TextureNum > High(Textures) then + if ({PanelRec.TextureNum}tnum > High(Textures)) then begin - e_WriteLog(Format('WTF?! PanelRec.TextureNum is out of limits! (%d : %d)', [PanelRec.TextureNum, High(Textures)]), TMsgType.Fatal); + e_WriteLog(Format('WTF?! tnum is out of limits! (%d : %d)', [tnum, High(Textures)]), TMsgType.Warning); FTextureWidth := 2; FTextureHeight := 2; FAlpha := 0; FBlending := ByteBool(0); end - else if not g_Map_IsSpecialTexture(Textures[PanelRec.TextureNum].TextureName) then + else if not g_Map_IsSpecialTexture(Textures[{PanelRec.TextureNum}tnum].TextureName) then begin - FTextureWidth := Textures[PanelRec.TextureNum].Width; - FTextureHeight := Textures[PanelRec.TextureNum].Height; + FTextureWidth := Textures[{PanelRec.TextureNum}tnum].Width; + FTextureHeight := Textures[{PanelRec.TextureNum}tnum].Height; FAlpha := PanelRec.Alpha; FBlending := ByteBool(PanelRec.Flags and PANEL_FLAG_BLENDING); end;