mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 12:11:25 +00:00
- Fixed: Completely empty patches (8 0-bytes) could not be handled by the
texture manager. They now get assigned a new FEmptyTexture object that is just a 1x1 pixel transparent texture. - Fixed: Multiple namespace markers of the same type were no longer detected. - Fixed sprite renaming. SVN r1566 (trunk)
This commit is contained in:
parent
28e9693b79
commit
b37d0ba2ea
7 changed files with 267 additions and 93 deletions
|
@ -1,4 +1,11 @@
|
||||||
April 29, 2009
|
April 30, 2009 (Changes by Graf Zahl)
|
||||||
|
- Fixed: Completely empty patches (8 0-bytes) could not be handled by the
|
||||||
|
texture manager. They now get assigned a new FEmptyTexture object
|
||||||
|
that is just a 1x1 pixel transparent texture.
|
||||||
|
- Fixed: Multiple namespace markers of the same type were no longer detected.
|
||||||
|
- Fixed sprite renaming.
|
||||||
|
|
||||||
|
April 29, 2009
|
||||||
- Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
|
- Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
|
||||||
order.
|
order.
|
||||||
- Fixed: FWadCollection::CheckNumForName() read the lump each iteration before
|
- Fixed: FWadCollection::CheckNumForName() read the lump each iteration before
|
||||||
|
|
|
@ -147,78 +147,109 @@ inline bool FWadFile::IsMarker(int lump, const char *marker)
|
||||||
|
|
||||||
void FWadFile::SetNamespace(const char *startmarker, const char *endmarker, namespace_t space, bool flathack)
|
void FWadFile::SetNamespace(const char *startmarker, const char *endmarker, namespace_t space, bool flathack)
|
||||||
{
|
{
|
||||||
int start=-1, end=-1;
|
|
||||||
bool warned = false;
|
bool warned = false;
|
||||||
|
int numstartmarkers = 0, numendmarkers = 0;
|
||||||
int i;
|
int i;
|
||||||
|
struct Marker
|
||||||
|
{
|
||||||
|
int markertype;
|
||||||
|
int index;
|
||||||
|
};
|
||||||
|
TArray<Marker> markers;
|
||||||
|
|
||||||
for(i = 0; i < (int)NumLumps; i++)
|
for(i = 0; i < (int)NumLumps; i++)
|
||||||
{
|
{
|
||||||
if (IsMarker(i, startmarker))
|
if (IsMarker(i, startmarker))
|
||||||
{
|
{
|
||||||
start = i;
|
Marker m = {0, i };
|
||||||
break;
|
markers.Push(m);
|
||||||
|
numstartmarkers++;
|
||||||
}
|
}
|
||||||
}
|
else if (IsMarker(i, endmarker))
|
||||||
if (!flathack && start == -1) return;
|
|
||||||
|
|
||||||
for(i = NumLumps-1; i > start; i--)
|
|
||||||
{
|
|
||||||
if (IsMarker(i, endmarker))
|
|
||||||
{
|
{
|
||||||
end = i;
|
Marker m = {1, i };
|
||||||
break;
|
markers.Push(m);
|
||||||
|
numendmarkers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (end == -1)
|
|
||||||
{
|
|
||||||
if (start != -1)
|
|
||||||
{
|
|
||||||
Printf(TEXTCOLOR_YELLOW"WARNING: %s marker without corresponding %s found.\n", startmarker, endmarker);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start != -1)
|
if (numstartmarkers == 0)
|
||||||
{
|
|
||||||
for(int i = start+1; i < end; i++)
|
|
||||||
{
|
|
||||||
if (Lumps[i].Namespace != ns_global)
|
|
||||||
{
|
|
||||||
if (!warned)
|
|
||||||
{
|
|
||||||
Printf(TEXTCOLOR_YELLOW"WARNING: Overlapping namespaces found.\n");
|
|
||||||
}
|
|
||||||
warned = true;
|
|
||||||
}
|
|
||||||
else if (IsMarker(i, startmarker))
|
|
||||||
{
|
|
||||||
Printf(TEXTCOLOR_YELLOW"WARNING: Multiple %s markers found.\n", startmarker);
|
|
||||||
}
|
|
||||||
else if (IsMarker(i, endmarker))
|
|
||||||
{
|
|
||||||
Printf(TEXTCOLOR_YELLOW"WARNING: Multiple %s markers found.\n", endmarker);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Lumps[i].Namespace = space;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
if (numendmarkers == 0) return; // no markers found
|
||||||
|
|
||||||
Printf(TEXTCOLOR_YELLOW"WARNING: %s marker without corresponding %s found.\n", endmarker, startmarker);
|
Printf(TEXTCOLOR_YELLOW"WARNING: %s marker without corresponding %s found.\n", endmarker, startmarker);
|
||||||
|
|
||||||
|
|
||||||
if (flathack)
|
if (flathack)
|
||||||
{
|
{
|
||||||
|
// We have found no F_START but one or more F_END markers.
|
||||||
|
// mark all lumps before the last F_END marker as potential flats.
|
||||||
|
int end = markers[markers.Size()-1].index;
|
||||||
for(int i = 0; i < end; i++)
|
for(int i = 0; i < end; i++)
|
||||||
{
|
{
|
||||||
if (Lumps[i].LumpSize == 4096)
|
if (Lumps[i].LumpSize == 4096)
|
||||||
{
|
{
|
||||||
// We can't add this to the flats namespace but
|
// We can't add this to the flats namespace but
|
||||||
// it needs to be flagged for the texture manager.
|
// it needs to be flagged for the texture manager.
|
||||||
|
DPrintf("Marking %s as potential flat\n", Lumps[i].Name);
|
||||||
Lumps[i].Flags |= LUMPF_MAYBEFLAT;
|
Lumps[i].Flags |= LUMPF_MAYBEFLAT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
while (i < markers.Size())
|
||||||
|
{
|
||||||
|
int start, end;
|
||||||
|
if (markers[i].markertype != 0)
|
||||||
|
{
|
||||||
|
Printf(TEXTCOLOR_YELLOW"WARNING: %s marker without corresponding %s found.\n", endmarker, startmarker);
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
start = i++;
|
||||||
|
|
||||||
|
// skip over subsequent x_START markers
|
||||||
|
while (i < markers.Size() && markers[i].markertype == 0)
|
||||||
|
{
|
||||||
|
Printf(TEXTCOLOR_YELLOW"WARNING: duplicate %s marker found.\n", startmarker);
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// same for x_START markers
|
||||||
|
while (i < markers.Size()-1 && (markers[i].markertype == 1 && markers[i+1].markertype == 1))
|
||||||
|
{
|
||||||
|
Printf(TEXTCOLOR_YELLOW"WARNING: duplicate %s marker found.\n", endmarker);
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// We found a starting marker but no end marker. Ignore this block.
|
||||||
|
if (i >= markers.Size())
|
||||||
|
{
|
||||||
|
Printf(TEXTCOLOR_YELLOW"WARNING: %s marker without corresponding %s found.\n", startmarker, endmarker);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
end = i++;
|
||||||
|
|
||||||
|
// we found a marked block
|
||||||
|
DPrintf("Found %s block at (%d-%d)\n", startmarker, markers[start].index, markers[end].index);
|
||||||
|
for(int j = markers[start].index+1; j < markers[end].index; j++)
|
||||||
|
{
|
||||||
|
if (Lumps[j].Namespace != ns_global)
|
||||||
|
{
|
||||||
|
if (!warned)
|
||||||
|
{
|
||||||
|
Printf(TEXTCOLOR_YELLOW"WARNING: Overlapping namespaces found (lump %d.)\n", j);
|
||||||
|
}
|
||||||
|
warned = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Lumps[j].Namespace = space;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
125
src/textures/emptytexture.cpp
Normal file
125
src/textures/emptytexture.cpp
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
/*
|
||||||
|
** flattexture.cpp
|
||||||
|
** Texture class for empty placeholder textures
|
||||||
|
** (essentially patches with dimensions and offsets of (0,0) )
|
||||||
|
**
|
||||||
|
**---------------------------------------------------------------------------
|
||||||
|
** Copyright 2009 Christoph Oelckers
|
||||||
|
** All rights reserved.
|
||||||
|
**
|
||||||
|
** Redistribution and use in source and binary forms, with or without
|
||||||
|
** modification, are permitted provided that the following conditions
|
||||||
|
** are met:
|
||||||
|
**
|
||||||
|
** 1. Redistributions of source code must retain the above copyright
|
||||||
|
** notice, this list of conditions and the following disclaimer.
|
||||||
|
** 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
** notice, this list of conditions and the following disclaimer in the
|
||||||
|
** documentation and/or other materials provided with the distribution.
|
||||||
|
** 3. The name of the author may not be used to endorse or promote products
|
||||||
|
** derived from this software without specific prior written permission.
|
||||||
|
**
|
||||||
|
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||||
|
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
**---------------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
#include "files.h"
|
||||||
|
#include "r_data.h"
|
||||||
|
#include "w_wad.h"
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// A texture defined between F_START and F_END markers
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
class FEmptyTexture : public FTexture
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FEmptyTexture (int lumpnum);
|
||||||
|
|
||||||
|
const BYTE *GetColumn (unsigned int column, const Span **spans_out);
|
||||||
|
const BYTE *GetPixels ();
|
||||||
|
void Unload() {}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
BYTE Pixels[1];
|
||||||
|
Span DummySpans[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// Since there is no way to detect the validity of a flat
|
||||||
|
// they can't be used anywhere else but between F_START and F_END
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
FTexture *EmptyTexture_TryCreate(FileReader & file, int lumpnum)
|
||||||
|
{
|
||||||
|
char check[8];
|
||||||
|
if (file.GetLength() != 8) return false;
|
||||||
|
file.Seek(0, SEEK_SET);
|
||||||
|
if (file.Read(check, 8) != 8) return false;
|
||||||
|
if (memcmp(check, "\0\0\0\0\0\0\0\0", 8)) return false;
|
||||||
|
|
||||||
|
return new FEmptyTexture(lumpnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
FEmptyTexture::FEmptyTexture (int lumpnum)
|
||||||
|
: FTexture(NULL, lumpnum)
|
||||||
|
{
|
||||||
|
bMasked = true;
|
||||||
|
WidthBits = HeightBits = 1;
|
||||||
|
Width = Height = 1;
|
||||||
|
WidthMask = 0;
|
||||||
|
DummySpans[0].TopOffset = 0;
|
||||||
|
DummySpans[0].Length = 0;
|
||||||
|
Pixels[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
const BYTE *FEmptyTexture::GetColumn (unsigned int column, const Span **spans_out)
|
||||||
|
{
|
||||||
|
if (spans_out != NULL)
|
||||||
|
{
|
||||||
|
*spans_out = DummySpans;
|
||||||
|
}
|
||||||
|
return Pixels;
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
const BYTE *FEmptyTexture::GetPixels ()
|
||||||
|
{
|
||||||
|
return Pixels;
|
||||||
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@ FTexture *TGATexture_TryCreate(FileReader &, int lumpnum);
|
||||||
FTexture *RawPageTexture_TryCreate(FileReader &, int lumpnum);
|
FTexture *RawPageTexture_TryCreate(FileReader &, int lumpnum);
|
||||||
FTexture *FlatTexture_TryCreate(FileReader &, int lumpnum);
|
FTexture *FlatTexture_TryCreate(FileReader &, int lumpnum);
|
||||||
FTexture *PatchTexture_TryCreate(FileReader &, int lumpnum);
|
FTexture *PatchTexture_TryCreate(FileReader &, int lumpnum);
|
||||||
|
FTexture *EmptyTexture_TryCreate(FileReader &, int lumpnum);
|
||||||
FTexture *AutomapTexture_TryCreate(FileReader &, int lumpnum);
|
FTexture *AutomapTexture_TryCreate(FileReader &, int lumpnum);
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +89,7 @@ FTexture * FTexture::CreateTexture (int lumpnum, int usetype)
|
||||||
{ RawPageTexture_TryCreate, TEX_MiscPatch },
|
{ RawPageTexture_TryCreate, TEX_MiscPatch },
|
||||||
{ FlatTexture_TryCreate, TEX_Flat },
|
{ FlatTexture_TryCreate, TEX_Flat },
|
||||||
{ PatchTexture_TryCreate, TEX_Any },
|
{ PatchTexture_TryCreate, TEX_Any },
|
||||||
|
{ EmptyTexture_TryCreate, TEX_Any },
|
||||||
{ AutomapTexture_TryCreate, TEX_MiscPatch },
|
{ AutomapTexture_TryCreate, TEX_MiscPatch },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -189,6 +189,7 @@ void FWadCollection::InitMultipleFiles (wadlist_t **filenames)
|
||||||
{
|
{
|
||||||
I_FatalError ("W_InitMultipleFiles: no files found");
|
I_FatalError ("W_InitMultipleFiles: no files found");
|
||||||
}
|
}
|
||||||
|
RenameSprites();
|
||||||
|
|
||||||
// [RH] Set up hash table
|
// [RH] Set up hash table
|
||||||
FirstLumpIndex = new DWORD[NumLumps];
|
FirstLumpIndex = new DWORD[NumLumps];
|
||||||
|
@ -196,6 +197,8 @@ void FWadCollection::InitMultipleFiles (wadlist_t **filenames)
|
||||||
FirstLumpIndex_FullName = new DWORD[NumLumps];
|
FirstLumpIndex_FullName = new DWORD[NumLumps];
|
||||||
NextLumpIndex_FullName = new DWORD[NumLumps];
|
NextLumpIndex_FullName = new DWORD[NumLumps];
|
||||||
InitHashChains ();
|
InitHashChains ();
|
||||||
|
LumpInfo.ShrinkToFit();
|
||||||
|
Files.ShrinkToFit();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
|
@ -667,7 +670,7 @@ void FWadCollection::InitHashChains (void)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
void FWadCollection::RenameSprites (int startlump)
|
void FWadCollection::RenameSprites ()
|
||||||
{
|
{
|
||||||
bool renameAll;
|
bool renameAll;
|
||||||
bool MNTRZfound = false;
|
bool MNTRZfound = false;
|
||||||
|
@ -739,64 +742,66 @@ void FWadCollection::RenameSprites (int startlump)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
renameAll = !!Args->CheckParm ("-oldsprites");
|
|
||||||
|
|
||||||
for (DWORD i = startlump + 1;
|
for (DWORD i=0; i< LumpInfo.Size(); i++)
|
||||||
i < NumLumps &&
|
|
||||||
*(DWORD *)LumpInfo[i].lump->Name != MAKE_ID('S','_','E','N') &&
|
|
||||||
*(((DWORD *)LumpInfo[i].lump->Name) + 1) != MAKE_ID('D',0,0,0);
|
|
||||||
++i)
|
|
||||||
{
|
{
|
||||||
if (!strncmp(LumpInfo[i].lump->Name, "MNTRZ", 5))
|
// check for full Minotaur animations. If this is not found
|
||||||
|
// some frames need to be renamed.
|
||||||
|
if (LumpInfo[i].lump->Namespace == ns_sprites)
|
||||||
{
|
{
|
||||||
MNTRZfound = true;
|
if (*(DWORD *)LumpInfo[i].lump->Name == MAKE_ID('M', 'N', 'T', 'R') && LumpInfo[i].lump->Name[4] == 'Z' )
|
||||||
break;
|
{
|
||||||
|
MNTRZfound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (DWORD i = startlump + 1;
|
renameAll = !!Args->CheckParm ("-oldsprites");
|
||||||
i < NumLumps &&
|
|
||||||
*(DWORD *)LumpInfo[i].lump->Name != MAKE_ID('S','_','E','N') &&
|
for (DWORD i = 0; i < LumpInfo.Size(); i++)
|
||||||
*(((DWORD *)LumpInfo[i].lump->Name) + 1) != MAKE_ID('D',0,0,0);
|
|
||||||
++i)
|
|
||||||
{
|
{
|
||||||
// Only sprites in the IWAD normally get renamed
|
if (LumpInfo[i].lump->Namespace == ns_sprites)
|
||||||
if (renameAll || LumpInfo[i].wadnum == IWAD_FILENUM)
|
|
||||||
{
|
{
|
||||||
for (int j = 0; j < numrenames; ++j)
|
// Only sprites in the IWAD normally get renamed
|
||||||
|
if (renameAll || LumpInfo[i].wadnum == IWAD_FILENUM)
|
||||||
{
|
{
|
||||||
if (*(DWORD *)LumpInfo[i].lump->Name == renames[j*2])
|
for (int j = 0; j < numrenames; ++j)
|
||||||
{
|
{
|
||||||
*(DWORD *)LumpInfo[i].lump->Name = renames[j*2+1];
|
if (*(DWORD *)LumpInfo[i].lump->Name == renames[j*2])
|
||||||
|
{
|
||||||
|
*(DWORD *)LumpInfo[i].lump->Name = renames[j*2+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gameinfo.gametype == GAME_Hexen)
|
||||||
|
{
|
||||||
|
if (CheckLumpName (i, "ARTIINVU"))
|
||||||
|
{
|
||||||
|
LumpInfo[i].lump->Name[4]='D'; LumpInfo[i].lump->Name[5]='E';
|
||||||
|
LumpInfo[i].lump->Name[6]='F'; LumpInfo[i].lump->Name[7]='N';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gameinfo.gametype == GAME_Hexen)
|
|
||||||
{
|
|
||||||
if (CheckLumpName (i, "ARTIINVU"))
|
|
||||||
{
|
|
||||||
LumpInfo[i].lump->Name[4]='D'; LumpInfo[i].lump->Name[5]='E';
|
|
||||||
LumpInfo[i].lump->Name[6]='F'; LumpInfo[i].lump->Name[7]='N';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!MNTRZfound) //gameinfo.gametype == GAME_Hexen && LumpInfo[i].wadnum == IWAD_FILENUM)
|
|
||||||
{
|
|
||||||
if (*(DWORD *)LumpInfo[i].lump->Name == MAKE_ID('M', 'N', 'T', 'R'))
|
|
||||||
{
|
|
||||||
if (LumpInfo[i].lump->Name[4] >= 'F' && LumpInfo[i].lump->Name[4] <= 'K')
|
|
||||||
{
|
|
||||||
LumpInfo[i].lump->Name[4] += 'U' - 'F';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// When not playing Doom rename all BLOD sprites to BLUD so that
|
if (!MNTRZfound)
|
||||||
// the same blood states can be used everywhere
|
|
||||||
if (!(gameinfo.gametype & GAME_DoomChex))
|
|
||||||
{
|
|
||||||
if (*(DWORD *)LumpInfo[i].lump->Name == MAKE_ID('B', 'L', 'O', 'D'))
|
|
||||||
{
|
{
|
||||||
*(DWORD *)LumpInfo[i].lump->Name = MAKE_ID('B', 'L', 'U', 'D');
|
if (*(DWORD *)LumpInfo[i].lump->Name == MAKE_ID('M', 'N', 'T', 'R'))
|
||||||
|
{
|
||||||
|
if (LumpInfo[i].lump->Name[4] >= 'F' && LumpInfo[i].lump->Name[4] <= 'K')
|
||||||
|
{
|
||||||
|
LumpInfo[i].lump->Name[4] += 'U' - 'F';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// When not playing Doom rename all BLOD sprites to BLUD so that
|
||||||
|
// the same blood states can be used everywhere
|
||||||
|
if (!(gameinfo.gametype & GAME_DoomChex))
|
||||||
|
{
|
||||||
|
if (*(DWORD *)LumpInfo[i].lump->Name == MAKE_ID('B', 'L', 'O', 'D'))
|
||||||
|
{
|
||||||
|
*(DWORD *)LumpInfo[i].lump->Name = MAKE_ID('B', 'L', 'U', 'D');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -232,7 +232,7 @@ protected:
|
||||||
void InitHashChains (); // [RH] Set up the lumpinfo hashing
|
void InitHashChains (); // [RH] Set up the lumpinfo hashing
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RenameSprites (int startlump);
|
void RenameSprites ();
|
||||||
void DeleteAll();
|
void DeleteAll();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5213,6 +5213,10 @@
|
||||||
RelativePath=".\src\textures\ddstexture.cpp"
|
RelativePath=".\src\textures\ddstexture.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\textures\emptytexture.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\src\textures\flattexture.cpp"
|
RelativePath=".\src\textures\flattexture.cpp"
|
||||||
>
|
>
|
||||||
|
|
Loading…
Reference in a new issue