mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-31 04:40:55 +00:00
- Textures now take precedence when on walls and flats take precedence when on floors/ceilings
- Removed an unused action
This commit is contained in:
parent
1c2045e42e
commit
95d3d79d11
3 changed files with 59 additions and 49 deletions
|
@ -573,16 +573,6 @@ togglelowerunpegged
|
|||
allowscroll = true;
|
||||
}
|
||||
|
||||
togglemiddletexture
|
||||
{
|
||||
title = "Toggle Middle Texture";
|
||||
category = "visual";
|
||||
description = "Toggles the middle texture on the selected or targeted double-sided linedef.";
|
||||
allowkeys = true;
|
||||
allowmouse = true;
|
||||
allowscroll = true;
|
||||
}
|
||||
|
||||
togglegravity
|
||||
{
|
||||
title = "Toggle Gravity";
|
||||
|
|
|
@ -204,6 +204,8 @@ namespace CodeImp.DoomBuilder.Data
|
|||
internal void Load(DataLocationList locations)
|
||||
{
|
||||
int texcount, flatcount, spritecount, thingcount;
|
||||
Dictionary<long, ImageData> texturesonly = new Dictionary<long, ImageData>();
|
||||
Dictionary<long, ImageData> flatsonly = new Dictionary<long, ImageData>();
|
||||
DataReader c;
|
||||
|
||||
// Create collections
|
||||
|
@ -282,11 +284,49 @@ namespace CodeImp.DoomBuilder.Data
|
|||
|
||||
// Load stuff
|
||||
LoadPalette();
|
||||
texcount = LoadTextures();
|
||||
flatcount = LoadFlats();
|
||||
texcount = LoadTextures(texturesonly);
|
||||
flatcount = LoadFlats(flatsonly);
|
||||
thingcount = LoadDecorateThings();
|
||||
spritecount = LoadSprites();
|
||||
LoadInternalSprites();
|
||||
|
||||
// Process textures
|
||||
foreach(KeyValuePair<long, ImageData> t in texturesonly)
|
||||
{
|
||||
textures.Add(t.Key, t.Value);
|
||||
texturenames.Add(t.Value.Name);
|
||||
}
|
||||
|
||||
// Process flats
|
||||
foreach(KeyValuePair<long, ImageData> f in flatsonly)
|
||||
{
|
||||
flats.Add(f.Key, f.Value);
|
||||
flatnames.Add(f.Value.Name);
|
||||
}
|
||||
|
||||
// Mixed textures and flats?
|
||||
if(General.Map.Config.MixTexturesFlats)
|
||||
{
|
||||
// Add textures to flats
|
||||
foreach(KeyValuePair<long, ImageData> t in texturesonly)
|
||||
{
|
||||
if(!flats.ContainsKey(t.Key))
|
||||
{
|
||||
flats.Add(t.Key, t.Value);
|
||||
flatnames.Add(t.Value.Name);
|
||||
}
|
||||
}
|
||||
|
||||
// Add flats to textures
|
||||
foreach(KeyValuePair<long, ImageData> f in flatsonly)
|
||||
{
|
||||
if(!textures.ContainsKey(f.Key))
|
||||
{
|
||||
textures.Add(f.Key, f.Value);
|
||||
texturenames.Add(f.Value.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sort names
|
||||
texturenames.Sort();
|
||||
|
@ -586,17 +626,13 @@ namespace CodeImp.DoomBuilder.Data
|
|||
if(i.Value.IsImageLoaded != i.Value.IsReferenced) ProcessImage(i.Value);
|
||||
}
|
||||
|
||||
// Flats are not already included with the textures?
|
||||
if(!General.Map.Config.MixTexturesFlats)
|
||||
// Set used on all flats
|
||||
foreach(KeyValuePair<long, ImageData> i in flats)
|
||||
{
|
||||
// Set used on all flats
|
||||
foreach(KeyValuePair<long, ImageData> i in flats)
|
||||
{
|
||||
i.Value.SetUsedInMap(usedimages.ContainsKey(i.Key));
|
||||
if(i.Value.IsImageLoaded != i.Value.IsReferenced) ProcessImage(i.Value);
|
||||
}
|
||||
i.Value.SetUsedInMap(usedimages.ContainsKey(i.Key));
|
||||
if(i.Value.IsImageLoaded != i.Value.IsReferenced) ProcessImage(i.Value);
|
||||
}
|
||||
|
||||
|
||||
// Done
|
||||
updatedusedtextures = false;
|
||||
}
|
||||
|
@ -630,7 +666,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
#region ================== Textures
|
||||
|
||||
// This loads the textures
|
||||
private int LoadTextures()
|
||||
private int LoadTextures(Dictionary<long, ImageData> list)
|
||||
{
|
||||
ICollection<ImageData> images;
|
||||
PatchNames pnames = new PatchNames();
|
||||
|
@ -656,20 +692,11 @@ namespace CodeImp.DoomBuilder.Data
|
|||
foreach(ImageData img in images)
|
||||
{
|
||||
// Add or replace in textures list
|
||||
if(!textures.ContainsKey(img.LongName)) texturenames.Add(img.Name);
|
||||
textures.Remove(img.LongName);
|
||||
textures.Add(img.LongName, img);
|
||||
list.Remove(img.LongName);
|
||||
list.Add(img.LongName, img);
|
||||
if(firsttexture == 0) firsttexture = img.LongName;
|
||||
counter++;
|
||||
|
||||
// Also add as flat when using mixed resources
|
||||
if(General.Map.Config.MixTexturesFlats)
|
||||
{
|
||||
if(!flats.ContainsKey(img.LongName)) flatnames.Add(img.Name);
|
||||
flats.Remove(img.LongName);
|
||||
flats.Add(img.LongName, img);
|
||||
}
|
||||
|
||||
// Add to preview manager
|
||||
previews.AddImage(img);
|
||||
}
|
||||
|
@ -678,8 +705,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
|
||||
// The first texture cannot be used, because in the game engine it
|
||||
// has index 0 which means "no texture", so remove it from the list.
|
||||
textures.Remove(firsttexture);
|
||||
if(General.Map.Config.MixTexturesFlats) flats.Remove(firsttexture);
|
||||
list.Remove(firsttexture);
|
||||
|
||||
// Output info
|
||||
return counter;
|
||||
|
@ -787,7 +813,7 @@ namespace CodeImp.DoomBuilder.Data
|
|||
#region ================== Flats
|
||||
|
||||
// This loads the flats
|
||||
private int LoadFlats()
|
||||
private int LoadFlats(Dictionary<long, ImageData> list)
|
||||
{
|
||||
ICollection<ImageData> images;
|
||||
int counter = 0;
|
||||
|
@ -803,19 +829,10 @@ namespace CodeImp.DoomBuilder.Data
|
|||
foreach(ImageData img in images)
|
||||
{
|
||||
// Add or replace in flats list
|
||||
if(!flats.ContainsKey(img.LongName)) flatnames.Add(img.Name);
|
||||
flats.Remove(img.LongName);
|
||||
flats.Add(img.LongName, img);
|
||||
list.Remove(img.LongName);
|
||||
list.Add(img.LongName, img);
|
||||
counter++;
|
||||
|
||||
// Also add as texture when using mixed resources
|
||||
if(General.Map.Config.MixTexturesFlats)
|
||||
{
|
||||
if(!textures.ContainsKey(img.LongName)) texturenames.Add(img.Name);
|
||||
textures.Remove(img.LongName);
|
||||
textures.Add(img.LongName, img);
|
||||
}
|
||||
|
||||
// Add to preview manager
|
||||
previews.AddImage(img);
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ using System.IO;
|
|||
using System.Reflection;
|
||||
using System.Drawing;
|
||||
using System.ComponentModel;
|
||||
using CodeImp.DoomBuilder.IO;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using SlimDX.Direct3D9;
|
||||
using SlimDX;
|
||||
|
@ -1127,6 +1128,9 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
targetsurface = surfacetex.GetSurfaceLevel(0);
|
||||
if(graphics.StartRendering(true, General.Colors.Background.WithAlpha(0).ToColorValue(), targetsurface, null))
|
||||
{
|
||||
// Make sure anything we need is loaded
|
||||
General.Map.Data.UnknownTexture3D.CreateTexture();
|
||||
|
||||
// Set transformations
|
||||
UpdateTransformations();
|
||||
|
||||
|
@ -1202,7 +1206,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
private void RenderSectorSurface(Sector s, VertexBuffer buffer, long longimagename)
|
||||
{
|
||||
Texture t = null;
|
||||
|
||||
|
||||
if((buffer != null) && (s.FlatVertices != null) && (s.FlatVertices.Length > 0))
|
||||
{
|
||||
if(longimagename == 0)
|
||||
|
@ -1217,7 +1221,6 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
// Texture unknown?
|
||||
if(img is UnknownImage)
|
||||
{
|
||||
General.Map.Data.UnknownTexture3D.CreateTexture();
|
||||
t = General.Map.Data.UnknownTexture3D.Texture;
|
||||
}
|
||||
// Is the texture loaded?
|
||||
|
|
Loading…
Reference in a new issue