diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas
index c5821c4fb5608f62e0321fdbe65fa418501d2e69..6f539485d00ed36df55dfb941d84f23b3b93ee36 100644 (file)
--- a/src/editor/f_main.pas
+++ b/src/editor/f_main.pas
DrawPanelSize: Boolean;
BackColor: TColor;
PreviewColor: TColor;
+ UseCheckerboard: Boolean;
Scale: Byte;
RecentCount: Integer;
RecentFiles: TStringList;
else
SectionName := aSection;
+ if aWAD = '' then
+ aWAD := _lc[I_WAD_SPECIAL_MAP];
+
if aWAD = _lc[I_WAD_SPECIAL_MAP] then
begin // Файл карты
g_ProcessResourceStr(OpenedMap, @fn, nil, nil);
begin // Аним. текстура
GetFrame(FullResourceName, Data, FrameLen, Width, Height);
- if g_CreateTextureMemorySize(Data, FrameLen, ResourceName, 0, 0, Width, Height, 1) then
- a := MainForm.lbTextureList.Items.Add(ResourceName);
+ if not g_CreateTextureMemorySize(Data, FrameLen, ResourceName, 0, 0, Width, Height, 1) then
+ ok := False;
+ a := MainForm.lbTextureList.Items.Add(ResourceName);
end
else // Обычная текстура
begin
- if g_CreateTextureWAD(ResourceName, FullResourceName) then
- a := MainForm.lbTextureList.Items.Add(ResourceName);
+ if not g_CreateTextureWAD(ResourceName, FullResourceName) then
+ ok := False;
+ a := MainForm.lbTextureList.Items.Add(ResourceName);
end;
+ if (not ok) and (slInvalidTextures.IndexOf(ResourceName) = -1) then
+ begin
+ slInvalidTextures.Add(ResourceName);
+ ok := True;
+ end;
if (a > -1) and (not silent) then
SelectTexture(a);
end;
DrawPanelSize := config.ReadBool('Editor', 'DrawPanelSize', True);
BackColor := config.ReadInt('Editor', 'BackColor', $7F6040);
PreviewColor := config.ReadInt('Editor', 'PreviewColor', $00FF00);
+ UseCheckerboard := config.ReadBool('Editor', 'UseCheckerboard', True);
gColorEdge := config.ReadInt('Editor', 'EdgeColor', COLOR_EDGE);
gAlphaEdge := config.ReadInt('Editor', 'EdgeAlpha', ALPHA_EDGE);
if gAlphaEdge = 255 then
if not g_GetTexture(SelectedTexture(), ID) then
g_GetTexture('NOTEXTURE', ID);
g_GetTextureSizeByID(ID, Width, Height);
- if g_GetTexture('PREVIEW', PID) then
- e_DrawFill(PID, RenderPanel.Width-Width, RenderPanel.Height-Height, Width div 16 + 1, Height div 16 + 1, 0, True, False);
+ if UseCheckerboard then
+ begin
+ if g_GetTexture('PREVIEW', PID) then
+ e_DrawFill(PID, RenderPanel.Width-Width, RenderPanel.Height-Height, Width div 16 + 1, Height div 16 + 1, 0, True, False);
+ end else
+ e_DrawFillQuad(RenderPanel.Width-Width-2, RenderPanel.Height-Height-2,
+ RenderPanel.Width-1, RenderPanel.Height-1,
+ GetRValue(PreviewColor), GetGValue(PreviewColor), GetBValue(PreviewColor), 0);
e_Draw(ID, RenderPanel.Width-Width, RenderPanel.Height-Height, 0, True, False);
end;
CopyBuffer: TCopyRecArray;
res: Boolean;
swad, ssec, sres: String;
+ NoTextureID: DWORD;
begin
CopyBuffer := nil;
+ NoTextureID := 0;
StringToCopyBuffer(ClipBoard.AsText, CopyBuffer);
g_GetTextureSizeByName(Panel^.TextureName,
Panel^.TextureWidth, Panel^.TextureHeight)
else
- Panel^.TextureName := '';
+ if g_GetTexture('NOTEXTURE', NoTextureID) then
+ begin
+ Panel^.TextureID := TEXTURE_SPECIAL_NOTEXTURE;
+ g_GetTextureSizeByID(NoTextureID, Panel^.TextureWidth, Panel^.TextureHeight);
+ end;
end
else // Спец.текстура:
begin