mirror of
https://github.com/freedoom/freedoom.git
synced 2025-09-01 22:25:46 -04:00
textures: Rewrite Freedoom's texture build system.
Stop using deutex's built-in texture builder and generate our own texture lumps. This is essential for compatibility reasons: the entries in the texture/pnames lumps must match the order of those in the original IWADs. Failure to match ordering means that some well-known WADs (eg. DTWID) would not work with Freedoom. This fixes #1, and also means that Freedoom can now be built in parallel using make's '-j' option.
This commit is contained in:
parent
1325800e86
commit
82d90f8e8a
22 changed files with 2006 additions and 81 deletions
8
.gitignore
vendored
8
.gitignore
vendored
|
@ -7,15 +7,9 @@ lumps/cph/misc-lumps/playpal.lmp
|
||||||
lumps/freedoom.lmp
|
lumps/freedoom.lmp
|
||||||
lumps/freedm.lmp
|
lumps/freedm.lmp
|
||||||
sprites/jond/placeholder/*.gif
|
sprites/jond/placeholder/*.gif
|
||||||
textures/phase1/pnames.txt
|
|
||||||
textures/phase1/texture1.txt
|
|
||||||
textures/phase2/pnames.txt
|
|
||||||
textures/phase2/texture1.txt
|
|
||||||
textures/freedm/pnames.txt
|
|
||||||
textures/freedm/texture1.txt
|
|
||||||
textures/texture1.txt
|
|
||||||
wads/*.wad
|
wads/*.wad
|
||||||
wads/*.zip
|
wads/*.zip
|
||||||
|
pnames.txt
|
||||||
wad*.txt
|
wad*.txt
|
||||||
*.bak
|
*.bak
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
43
Makefile
43
Makefile
|
@ -51,34 +51,18 @@ subdirs:
|
||||||
|
|
||||||
force:
|
force:
|
||||||
|
|
||||||
# build texture1.txt for different builds
|
pnames.txt:
|
||||||
|
|
||||||
textures/phase1/texture1.txt: textures/combined.txt
|
|
||||||
@mkdir -p textures/phase1
|
|
||||||
$(CPP) -DDOOM1 -DULTDOOM < $< > $@
|
|
||||||
textures/phase2/texture1.txt: textures/combined.txt
|
|
||||||
@mkdir -p textures/phase2
|
|
||||||
$(CPP) -DDOOM1 -DDOOM2 < $< > $@
|
|
||||||
textures/freedm/texture1.txt: textures/combined.txt
|
|
||||||
@mkdir -p textures/freedm
|
|
||||||
$(CPP) -DFREEDM < $< > $@
|
|
||||||
|
|
||||||
textures/phase1/pnames.txt: textures/phase1/texture1.txt
|
|
||||||
scripts/extract-pnames.py -a > $@
|
|
||||||
textures/phase2/pnames.txt: textures/phase2/texture1.txt
|
|
||||||
scripts/extract-pnames.py -a > $@
|
|
||||||
textures/freedm/pnames.txt: textures/freedm/texture1.txt
|
|
||||||
scripts/extract-pnames.py -a > $@
|
scripts/extract-pnames.py -a > $@
|
||||||
|
|
||||||
# update wadinfo.txt
|
# update wadinfo.txt
|
||||||
|
|
||||||
wadinfo.txt: buildcfg.txt force textures/phase2/pnames.txt
|
wadinfo.txt: buildcfg.txt force pnames.txt
|
||||||
$(CPP) -P -DDOOM2 < $< | scripts/wadinfo-builder.py > $@
|
$(CPP) -P -DDOOM2 < $< | scripts/wadinfo-builder.py > $@
|
||||||
wadinfo_phase1.txt: buildcfg.txt force textures/phase1/pnames.txt
|
wadinfo_phase1.txt: buildcfg.txt force pnames.txt
|
||||||
$(CPP) -P -DDOOM1 -DULTDOOM < $< | scripts/wadinfo-builder.py -dummy > $@
|
$(CPP) -P -DDOOM1 -DULTDOOM < $< | scripts/wadinfo-builder.py -dummy > $@
|
||||||
wadinfo_phase2.txt: buildcfg.txt force textures/phase2/pnames.txt
|
wadinfo_phase2.txt: buildcfg.txt force pnames.txt
|
||||||
$(CPP) -P -DDOOM2 < $< | scripts/wadinfo-builder.py -dummy > $@
|
$(CPP) -P -DDOOM2 < $< | scripts/wadinfo-builder.py -dummy > $@
|
||||||
wadinfo_freedm.txt : buildcfg.txt force textures/freedm/pnames.txt
|
wadinfo_freedm.txt : buildcfg.txt force pnames.txt
|
||||||
$(CPP) -P -DFREEDM < $< | scripts/wadinfo-builder.py -dummy > $@
|
$(CPP) -P -DFREEDM < $< | scripts/wadinfo-builder.py -dummy > $@
|
||||||
|
|
||||||
%.wad.gz: %.wad
|
%.wad.gz: %.wad
|
||||||
|
@ -96,7 +80,6 @@ wadinfo_freedm.txt : buildcfg.txt force textures/freedm/pnames.txt
|
||||||
|
|
||||||
$(FREEDM): wadinfo_freedm.txt subdirs force
|
$(FREEDM): wadinfo_freedm.txt subdirs force
|
||||||
@mkdir -p $(WADS)
|
@mkdir -p $(WADS)
|
||||||
ln -sf freedm/texture1.txt textures/texture1.txt
|
|
||||||
rm -f $@
|
rm -f $@
|
||||||
$(DEUTEX) $(DEUTEX_ARGS) -iwad -build wadinfo_freedm.txt $@
|
$(DEUTEX) $(DEUTEX_ARGS) -iwad -build wadinfo_freedm.txt $@
|
||||||
|
|
||||||
|
@ -105,18 +88,16 @@ $(FREEDM): wadinfo_freedm.txt subdirs force
|
||||||
|
|
||||||
$(FREEDOOM1): wadinfo_phase1.txt subdirs force
|
$(FREEDOOM1): wadinfo_phase1.txt subdirs force
|
||||||
@mkdir -p $(WADS)
|
@mkdir -p $(WADS)
|
||||||
ln -sf phase1/texture1.txt textures/texture1.txt
|
|
||||||
rm -f $@
|
rm -f $@
|
||||||
$(DEUTEX) $(DEUTEX_ARGS) -iwad -textures -lumps -patch -flats -sounds -musics -graphics -sprites -levels -build wadinfo_phase1.txt $@
|
$(DEUTEX) $(DEUTEX_ARGS) -iwad -lumps -patch -flats -sounds -musics -graphics -sprites -levels -build wadinfo_phase1.txt $@
|
||||||
|
|
||||||
#---------------------------------------------------------
|
#---------------------------------------------------------
|
||||||
# phase 2 (doom2) iwad
|
# phase 2 (doom2) iwad
|
||||||
|
|
||||||
$(FREEDOOM2): wadinfo_phase2.txt subdirs force
|
$(FREEDOOM2): wadinfo_phase2.txt subdirs force
|
||||||
@mkdir -p $(WADS)
|
@mkdir -p $(WADS)
|
||||||
ln -sf phase2/texture1.txt textures/texture1.txt
|
|
||||||
rm -f $@
|
rm -f $@
|
||||||
$(DEUTEX) $(DEUTEX_ARGS) -iwad -textures -lumps -patch -flats -sounds -musics -graphics -sprites -levels -build wadinfo_phase2.txt $@
|
$(DEUTEX) $(DEUTEX_ARGS) -iwad -lumps -patch -flats -sounds -musics -graphics -sprites -levels -build wadinfo_phase2.txt $@
|
||||||
|
|
||||||
doc: BUILD-SYSTEM.asc README.asc
|
doc: BUILD-SYSTEM.asc README.asc
|
||||||
asciidoc BUILD-SYSTEM.asc
|
asciidoc BUILD-SYSTEM.asc
|
||||||
|
@ -135,14 +116,8 @@ clean:
|
||||||
./wadinfo_phase2.txt ./wadinfo_freedm.txt \
|
./wadinfo_phase2.txt ./wadinfo_freedm.txt \
|
||||||
./lumps/freedoom.lmp \
|
./lumps/freedoom.lmp \
|
||||||
./lumps/freedm.lmp \
|
./lumps/freedm.lmp \
|
||||||
./textures/phase1/pnames.txt \
|
pnames.txt
|
||||||
./textures/phase1/texture1.txt \
|
-rmdir $(WADS)
|
||||||
./textures/phase2/pnames.txt \
|
|
||||||
./textures/phase2/texture1.txt \
|
|
||||||
./textures/freedm/pnames.txt \
|
|
||||||
./textures/freedm/texture1.txt \
|
|
||||||
./textures/texture1.txt
|
|
||||||
-rmdir $(WADS) textures/phase1 textures/phase2 textures/freedm
|
|
||||||
|
|
||||||
make -C lumps clean
|
make -C lumps clean
|
||||||
make -C graphics/text clean
|
make -C graphics/text clean
|
||||||
|
|
39
buildcfg.txt
39
buildcfg.txt
|
@ -219,9 +219,28 @@ FOGMAP
|
||||||
MFADEMAP
|
MFADEMAP
|
||||||
C_END
|
C_END
|
||||||
|
|
||||||
; List of definitions for TEXTURE1
|
; Textures:
|
||||||
[texture1]
|
|
||||||
TEXTURE1
|
#ifndef DOOM2
|
||||||
|
|
||||||
|
TEXTURE1 = fd1txtr1
|
||||||
|
TEXTURE2 = fd1txtr2
|
||||||
|
PNAMES = fd1pname
|
||||||
|
|
||||||
|
#else
|
||||||
|
#ifdef FREEDM
|
||||||
|
|
||||||
|
TEXTURE1 = fdmtxtr1
|
||||||
|
PNAMES = fdmpname
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
TEXTURE1 = fd2txtr1
|
||||||
|
PNAMES = fd2pname
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
; List of Sounds
|
; List of Sounds
|
||||||
[sounds]
|
[sounds]
|
||||||
|
@ -2538,19 +2557,7 @@ YSKUB0 7 18
|
||||||
|
|
||||||
[patches]
|
[patches]
|
||||||
|
|
||||||
#ifdef ULTDOOM
|
#include "pnames.txt"
|
||||||
#include "textures/phase1/pnames.txt"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DOOM2
|
|
||||||
|
|
||||||
#ifdef FREEDM
|
|
||||||
#include "textures/freedm/pnames.txt"
|
|
||||||
#else
|
|
||||||
#include "textures/phase2/pnames.txt"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
[flats]
|
[flats]
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
|
|
||||||
all : freedoom.lmp freedm.lmp misc-lumps genmidi-lump dmxgus.lmp
|
all : freedoom.lmp freedm.lmp misc-lumps genmidi-lump dmxgus.lmp \
|
||||||
|
fd1txtr1.lmp fd2txtr1.lmp fdmtxtr1.lmp
|
||||||
|
|
||||||
misc-lumps:
|
misc-lumps:
|
||||||
make -C cph/misc-lumps
|
make -C cph/misc-lumps
|
||||||
|
@ -10,6 +11,9 @@ genmidi-lump:
|
||||||
dmxgus.lmp:
|
dmxgus.lmp:
|
||||||
make -C dmxgus
|
make -C dmxgus
|
||||||
|
|
||||||
|
fd1txtr1.lmp fd2txtr1.lmp fdmtxtr1.lmp:
|
||||||
|
make -C textures
|
||||||
|
|
||||||
freedoom.lmp: force
|
freedoom.lmp: force
|
||||||
echo $(VERSION) > freedoom.lmp
|
echo $(VERSION) > freedoom.lmp
|
||||||
|
|
||||||
|
@ -22,4 +26,5 @@ clean:
|
||||||
make -C cph/misc-lumps clean
|
make -C cph/misc-lumps clean
|
||||||
make -C genmidi clean
|
make -C genmidi clean
|
||||||
make -C dmxgus clean
|
make -C dmxgus clean
|
||||||
|
make -C textures clean
|
||||||
|
|
||||||
|
|
1
lumps/fd1pname.lmp
Symbolic link
1
lumps/fd1pname.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/phase1/pnames.lmp
|
1
lumps/fd1txtr1.lmp
Symbolic link
1
lumps/fd1txtr1.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/phase1/texture1.lmp
|
1
lumps/fd1txtr2.lmp
Symbolic link
1
lumps/fd1txtr2.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/phase1/texture2.lmp
|
1
lumps/fd2pname.lmp
Symbolic link
1
lumps/fd2pname.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/phase2/pnames.lmp
|
1
lumps/fd2txtr1.lmp
Symbolic link
1
lumps/fd2txtr1.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/phase2/texture1.lmp
|
1
lumps/fdmpname.lmp
Symbolic link
1
lumps/fdmpname.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/freedm/pnames.lmp
|
1
lumps/fdmtxtr1.lmp
Symbolic link
1
lumps/fdmtxtr1.lmp
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
textures/freedm/texture1.lmp
|
36
lumps/textures/Makefile
Normal file
36
lumps/textures/Makefile
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
CPP=../../scripts/simplecpp
|
||||||
|
PHASE1_OUTPUTS = phase1/texture1.lmp phase1/texture2.lmp \
|
||||||
|
phase1/pnames.lmp
|
||||||
|
PHASE2_OUTPUTS = phase2/texture1.lmp phase2/pnames.lmp
|
||||||
|
FREEDM_OUTPUTS = freedm/texture1.lmp freedm/pnames.lmp
|
||||||
|
|
||||||
|
all: $(PHASE1_OUTPUTS) $(PHASE2_OUTPUTS) $(FREEDM_OUTPUTS)
|
||||||
|
|
||||||
|
$(PHASE1_OUTPUTS): textures.cfg
|
||||||
|
$(CPP) -DDOOM1 -DULTDOOM < textures.cfg | \
|
||||||
|
./build-textures -compat_texture1=doom1/texture1.txt \
|
||||||
|
-compat_texture2=doom1/texture2.txt \
|
||||||
|
-compat_pnames=doom1/pnames.txt \
|
||||||
|
-output_texture1=phase1/texture1.lmp \
|
||||||
|
-output_texture2=phase1/texture2.lmp \
|
||||||
|
-output_pnames=phase1/pnames.lmp
|
||||||
|
|
||||||
|
$(PHASE2_OUTPUTS): textures.cfg
|
||||||
|
$(CPP) -DDOOM1 -DDOOM2 < textures.cfg | \
|
||||||
|
./build-textures -compat_texture1=doom2/texture1.txt \
|
||||||
|
-compat_pnames=doom2/pnames.txt \
|
||||||
|
-output_texture1=phase2/texture1.lmp \
|
||||||
|
-output_pnames=phase2/pnames.lmp
|
||||||
|
|
||||||
|
$(FREEDM_OUTPUTS): textures.cfg
|
||||||
|
$(CPP) -DDOOM1 -DDOOM2 -DFREEDM < textures.cfg | \
|
||||||
|
./build-textures -compat_texture1=doom2/texture1.txt \
|
||||||
|
-compat_pnames=doom2/pnames.txt \
|
||||||
|
-output_texture1=freedm/texture1.lmp \
|
||||||
|
-output_pnames=freedm/pnames.lmp
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(PHASE1_OUTPUTS) $(PHASE2_OUTPUTS) $(FREEDM_OUTPUTS)
|
||||||
|
|
352
lumps/textures/build-textures
Executable file
352
lumps/textures/build-textures
Executable file
|
@ -0,0 +1,352 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014
|
||||||
|
# Contributors to the Freedoom project. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * 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.
|
||||||
|
# * Neither the name of the freedoom project nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived from
|
||||||
|
# this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER
|
||||||
|
# OR CONTRIBUTORS 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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Texture lump builder for Freedoom
|
||||||
|
#
|
||||||
|
# This script builds the TEXTURE1, TEXTURE2 and PNAMES lumps for
|
||||||
|
# Freedoom - the lumps containing the texture definitions.
|
||||||
|
#
|
||||||
|
# Freedoom does not use deutex's built-in texture builder for several
|
||||||
|
# reasons:
|
||||||
|
#
|
||||||
|
# Firstly, Freedoom's texture lumps need to be compatible with those
|
||||||
|
# of the original Doom WADs. There are several examples of PWADs that
|
||||||
|
# replace only PNAMES, or only TEXTURE1. Because the TEXTURE1 format
|
||||||
|
# is tightly coupled to the ordering of the PNAMES lump, this means
|
||||||
|
# that these WADs will fail in Freedoom unless the ordering is
|
||||||
|
# strictly maintained. For example, if entry #3 in PNAMES is DOOR2_4,
|
||||||
|
# it must also be the same in Freedoom's version of PNAMES.
|
||||||
|
#
|
||||||
|
# Freedoom has a single configuration file where all its textures are
|
||||||
|
# defined, but doom.wad contains two separate lumps: TEXTURE1/TEXTURE2.
|
||||||
|
# Similarly to the first problem, it's important that the compatible
|
||||||
|
# lumps are built with the same textures in each: some WADs replace
|
||||||
|
# TEXTURE1 but not TEXTURE2, with the result that many textures end
|
||||||
|
# up missing.
|
||||||
|
#
|
||||||
|
# Finally, deutex does not allow a filename to be specified for
|
||||||
|
# TEXTURE entries. That is to say, you can't do this:
|
||||||
|
#
|
||||||
|
# [textures]
|
||||||
|
# TEXTURE1 = fdtxtr1.txt
|
||||||
|
#
|
||||||
|
# This is an annoying limitation that means that the different
|
||||||
|
# Freedoom IWADs cannot be built in parallel by make.
|
||||||
|
|
||||||
|
import collections
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import struct
|
||||||
|
|
||||||
|
COMMENT_RE = re.compile(r"\s*;.*")
|
||||||
|
TEXTURE_NAME_RE = re.compile(r"\s*([\w-]+)\s+(-?\d+)\s+(-?\d+)")
|
||||||
|
PATCH_NAME_RE = re.compile(r"\s*\*\s+([\w-]+)\s+(-?\d+)\s+(-?\d+)")
|
||||||
|
|
||||||
|
Texture = collections.namedtuple("Texture", ["w", "h", "patches"])
|
||||||
|
TexturePatch = collections.namedtuple("TexturePatch", ["pname", "x", "y"])
|
||||||
|
|
||||||
|
class TextureSet(collections.OrderedDict):
|
||||||
|
def __init__(self, pnames):
|
||||||
|
"""Initialize a new set of textures.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
pnames: List of PNAMES to use for the textures. New
|
||||||
|
patches will be added to this list as the texture
|
||||||
|
set is extended.
|
||||||
|
"""
|
||||||
|
super(TextureSet, self).__init__()
|
||||||
|
self.pnames = pnames
|
||||||
|
|
||||||
|
def pname_index(self, pname):
|
||||||
|
"""Get the index into the PNAMES list for the given patch.
|
||||||
|
|
||||||
|
If the patch is not in the list, it will be added to the
|
||||||
|
list.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
pname: Name of the patch to look up.
|
||||||
|
Returns:
|
||||||
|
Index into the PNAMES list where this patch can be found.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return self.pnames.index(pname)
|
||||||
|
except ValueError:
|
||||||
|
self.pnames.append(pname.upper())
|
||||||
|
return len(self.pnames) - 1
|
||||||
|
|
||||||
|
def add_texture(self, name, width=0, height=0):
|
||||||
|
"""Add a new texture to the set.
|
||||||
|
|
||||||
|
If a texture is already defined with the given name, the
|
||||||
|
current definition is erased (though the ordering of
|
||||||
|
textures is maintained).
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: Name of the texture.
|
||||||
|
width: Width of the texture in pixels.
|
||||||
|
height: Height of the texture in pixels.
|
||||||
|
"""
|
||||||
|
self[name] = Texture(width, height, [])
|
||||||
|
|
||||||
|
def add_texture_patch(self, txname, patch, x, y):
|
||||||
|
"""Add a patch to the given texture.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
txname: Name of the texture.
|
||||||
|
patch: Name of the patch to add.
|
||||||
|
x: X offset for the patch in pixels.
|
||||||
|
y: Y offset for the patch in pixels.
|
||||||
|
"""
|
||||||
|
texture = self[txname]
|
||||||
|
tp = TexturePatch(self.pname_index(patch), x, y)
|
||||||
|
texture.patches.append(tp)
|
||||||
|
|
||||||
|
def write_texture_lump(self, filename):
|
||||||
|
"""Build the texture lump and output to a file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
filename: Path to file in which to store the resulting
|
||||||
|
lump.
|
||||||
|
"""
|
||||||
|
with open(filename, "w") as out:
|
||||||
|
# Header indicating number of textures:
|
||||||
|
out.write(struct.pack("<l", len(self)))
|
||||||
|
|
||||||
|
# Offsets:
|
||||||
|
offset = 4 + 4 * len(self)
|
||||||
|
for _, texture in self.items():
|
||||||
|
out.write(struct.pack("<l", offset))
|
||||||
|
offset += 22 + 10 * len(texture.patches)
|
||||||
|
|
||||||
|
# Write actual texture data:
|
||||||
|
for name, texture in self.items():
|
||||||
|
maptexture = struct.pack("<8slhhlh",
|
||||||
|
name, 0, texture.w, texture.h,
|
||||||
|
0, len(texture.patches))
|
||||||
|
out.write(maptexture)
|
||||||
|
|
||||||
|
# Patches:
|
||||||
|
for patch in texture.patches:
|
||||||
|
mappatch = struct.pack("<hhhhh",
|
||||||
|
patch.x, patch.y, patch.pname,
|
||||||
|
0, 0)
|
||||||
|
out.write(mappatch)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class NamesFileError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def read_names_file(filename):
|
||||||
|
"""Read a list of names from a text file.
|
||||||
|
|
||||||
|
The names are a maximum of 8 characters long.
|
||||||
|
Args:
|
||||||
|
filename: Name of the file from which to read names.
|
||||||
|
Returns:
|
||||||
|
List of name strings, all in upper case.
|
||||||
|
"""
|
||||||
|
with open(filename) as f:
|
||||||
|
result = []
|
||||||
|
for line in f:
|
||||||
|
line = COMMENT_RE.sub('', line).strip()
|
||||||
|
if len(line) > 8:
|
||||||
|
raise NamesFileError(
|
||||||
|
'Invalid name in %s: %s' % (filename, line))
|
||||||
|
if line != '':
|
||||||
|
result.append(line.upper())
|
||||||
|
return result
|
||||||
|
|
||||||
|
def load_compat_textures(textures, compat_file):
|
||||||
|
"""Pre-populate a texture set from a compatibility file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
textures: TextureSet to populate.
|
||||||
|
compat_file: Path to text file containing list of textures. If
|
||||||
|
None, do not do anything.
|
||||||
|
"""
|
||||||
|
if compat_file is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
for texture in read_names_file(compat_file):
|
||||||
|
textures.add_texture(texture)
|
||||||
|
|
||||||
|
class TextureConfigError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def parse_textures(stream):
|
||||||
|
"""Parse texture config from the given input stream.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
stream: Input stream from which to read lines of input.
|
||||||
|
Yields:
|
||||||
|
A tuple for each parsed texture, containing:
|
||||||
|
Texture name
|
||||||
|
Width
|
||||||
|
Height
|
||||||
|
List of tuples representing each patch, where each contains:
|
||||||
|
Patch name
|
||||||
|
X offset
|
||||||
|
Y offset
|
||||||
|
"""
|
||||||
|
current_texture = None
|
||||||
|
current_patches = []
|
||||||
|
linenum = 0
|
||||||
|
for line in sys.stdin:
|
||||||
|
line = COMMENT_RE.sub('', line).strip()
|
||||||
|
linenum += 1
|
||||||
|
|
||||||
|
match = TEXTURE_NAME_RE.match(line)
|
||||||
|
if match:
|
||||||
|
if current_texture is not None:
|
||||||
|
yield current_texture
|
||||||
|
|
||||||
|
current_patches = []
|
||||||
|
current_texture = (
|
||||||
|
match.group(1), # Texture name
|
||||||
|
int(match.group(2)), # Width
|
||||||
|
int(match.group(3)), # Height
|
||||||
|
current_patches, # List of patches
|
||||||
|
)
|
||||||
|
continue
|
||||||
|
|
||||||
|
match = PATCH_NAME_RE.match(line)
|
||||||
|
if match and current_texture:
|
||||||
|
current_patches.append((
|
||||||
|
match.group(1), # Patch name
|
||||||
|
int(match.group(2)), # X offset
|
||||||
|
int(match.group(3)), # Y offset
|
||||||
|
))
|
||||||
|
continue
|
||||||
|
|
||||||
|
if line != '':
|
||||||
|
raise TextureConfigError(
|
||||||
|
'input:%i:Invalid config line: %s' %
|
||||||
|
(linenum, line))
|
||||||
|
|
||||||
|
# Last texture:
|
||||||
|
if current_texture is not None:
|
||||||
|
yield current_texture
|
||||||
|
|
||||||
|
def write_pnames_lump(pnames, filename):
|
||||||
|
"""Write a PNAMES list to a file.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
pnames: List of strings containing patch names.
|
||||||
|
filename: Output filename.
|
||||||
|
"""
|
||||||
|
with open(filename, "w") as out:
|
||||||
|
out.write(struct.pack("<l", len(pnames)))
|
||||||
|
for pname in pnames:
|
||||||
|
out.write(struct.pack("8s", pname))
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
print """
|
||||||
|
Usage: %s -output_texture1=texture1.lmp -output_pnames=pnames.lmp < config.txt
|
||||||
|
|
||||||
|
Full list of arguments:
|
||||||
|
-output_texture1: Path to the TEXTURE1 lump to generate (required).
|
||||||
|
-output_texture2: Path to the TEXTURE2 lump to generate.
|
||||||
|
-output_pnames: Path to the PNAMES lump to generate (required).
|
||||||
|
-compat_texture1: File containing compatibility list of TEXTURE1 textures
|
||||||
|
-compat_texture2: File containing compatibility list of TEXTURE2 textures
|
||||||
|
-compat_pnames: File containing compatibility list of PNAMES
|
||||||
|
"""
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def parse_command_line(args):
|
||||||
|
"""Parse command line arguments.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
args: List of command line arguments to parse.
|
||||||
|
Returns:
|
||||||
|
Dictionary mapping from arg name to value.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Parse command line:
|
||||||
|
valid_args = ("compat_texture1", "compat_texture2", "compat_pnames",
|
||||||
|
"output_texture1", "output_texture2", "output_pnames")
|
||||||
|
result = {arg: None for arg in valid_args}
|
||||||
|
|
||||||
|
for arg in args:
|
||||||
|
if not arg.startswith("-") or "=" not in arg:
|
||||||
|
usage()
|
||||||
|
name, value = arg[1:].split("=", 2)
|
||||||
|
if name not in valid_args:
|
||||||
|
usage()
|
||||||
|
result[name] = value
|
||||||
|
|
||||||
|
# Required args:
|
||||||
|
if not result["output_texture1"] or not result["output_pnames"]:
|
||||||
|
usage()
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
args = parse_command_line(sys.argv[1:])
|
||||||
|
|
||||||
|
# If we have a compatibility PNAMES list, populate it. Otherwise PNAMES
|
||||||
|
# just starts from an empty list.
|
||||||
|
if args["compat_pnames"]:
|
||||||
|
pnames = read_names_file(args["compat_pnames"])
|
||||||
|
else:
|
||||||
|
pnames = []
|
||||||
|
|
||||||
|
# Generate basic data structures. The two texture lumps share a list
|
||||||
|
# of PNAMES.
|
||||||
|
texture1 = TextureSet(pnames)
|
||||||
|
texture2 = TextureSet(pnames)
|
||||||
|
|
||||||
|
# If we have compatibility lists for TEXTURE1/TEXTURE2, we need to
|
||||||
|
# populate the texture sets with them before we start parsing any real
|
||||||
|
# configuration.
|
||||||
|
load_compat_textures(texture1, args["compat_texture1"])
|
||||||
|
load_compat_textures(texture2, args["compat_texture2"])
|
||||||
|
|
||||||
|
# Parse the config file and store the texture data.
|
||||||
|
for texture, width, height, patches in parse_textures(sys.stdin):
|
||||||
|
|
||||||
|
# If this texture was predefined for TEXTURE2, put it in that lump;
|
||||||
|
# otherwise, one way or another it's going in TEXTURE1:
|
||||||
|
if texture in texture2:
|
||||||
|
textures = texture2
|
||||||
|
else:
|
||||||
|
textures = texture1
|
||||||
|
|
||||||
|
textures.add_texture(texture, width, height)
|
||||||
|
for patch, x, y in patches:
|
||||||
|
textures.add_texture_patch(texture, patch, x, y)
|
||||||
|
|
||||||
|
# Write lumps to output files:
|
||||||
|
texture1.write_texture_lump(args["output_texture1"])
|
||||||
|
if args["output_texture2"]:
|
||||||
|
texture2.write_texture_lump(args["output_texture2"])
|
||||||
|
write_pnames_lump(pnames, args["output_pnames"])
|
||||||
|
|
354
lumps/textures/doom1/pnames.txt
Normal file
354
lumps/textures/doom1/pnames.txt
Normal file
|
@ -0,0 +1,354 @@
|
||||||
|
; List of patch names from doom.wad (Ultimate Doom).
|
||||||
|
; This is included as fair use for purposes of compatibility
|
||||||
|
; and interoperability.
|
||||||
|
WALL00_3
|
||||||
|
W13_1
|
||||||
|
DOOR2_1
|
||||||
|
DOOR2_4
|
||||||
|
DOOR9_1
|
||||||
|
W113_1
|
||||||
|
W113_2
|
||||||
|
W113_3
|
||||||
|
WALL62_2
|
||||||
|
PS20A0
|
||||||
|
WALL62_1
|
||||||
|
W111_2
|
||||||
|
W111_3
|
||||||
|
W112_1
|
||||||
|
W112_3
|
||||||
|
W112_2
|
||||||
|
WALL02_2
|
||||||
|
WALL02_3
|
||||||
|
WALL02_1
|
||||||
|
WALL00_5
|
||||||
|
WALL00_6
|
||||||
|
WALL00_7
|
||||||
|
WALL00_8
|
||||||
|
WALL03_4
|
||||||
|
TP2_1
|
||||||
|
STEP07
|
||||||
|
WALL05_2
|
||||||
|
COMP02_1
|
||||||
|
COMP02_2
|
||||||
|
COMP02_4
|
||||||
|
COMP02_3
|
||||||
|
COMP02_6
|
||||||
|
COMP02_8
|
||||||
|
COMP02_7
|
||||||
|
COMP02_5
|
||||||
|
STEP08
|
||||||
|
COMP03_4
|
||||||
|
TOMW2_1
|
||||||
|
AG128_2
|
||||||
|
TOMW2_2
|
||||||
|
COMP04_5
|
||||||
|
COMP04_8
|
||||||
|
COMP03_8
|
||||||
|
COMP04_6
|
||||||
|
COMP04_7
|
||||||
|
COMP04_2
|
||||||
|
COMP03_5
|
||||||
|
COMP04_1
|
||||||
|
COMP03_7
|
||||||
|
COMP03_1
|
||||||
|
COMP03_6
|
||||||
|
COMP01_5
|
||||||
|
COMP01_1
|
||||||
|
W33_8
|
||||||
|
COMP1C_6
|
||||||
|
COMP01_6
|
||||||
|
COMP1B_4
|
||||||
|
SW11_4
|
||||||
|
SW11_5
|
||||||
|
WALL03_1
|
||||||
|
DOOR2_5
|
||||||
|
W46_37
|
||||||
|
W46_38
|
||||||
|
TTALL1_2
|
||||||
|
DOORTRAK
|
||||||
|
W46_39
|
||||||
|
DOOR3_6
|
||||||
|
DOOR3_4
|
||||||
|
DOOR3_5
|
||||||
|
T14_5
|
||||||
|
EXIT1
|
||||||
|
EXIT2
|
||||||
|
W33_5
|
||||||
|
W33_7
|
||||||
|
W32_4
|
||||||
|
W32_1
|
||||||
|
WALL00_1
|
||||||
|
WALL00_2
|
||||||
|
FLAMP
|
||||||
|
WLITA0
|
||||||
|
WLITB0
|
||||||
|
WLITC0
|
||||||
|
AGB128_1
|
||||||
|
W13_A
|
||||||
|
W13_8
|
||||||
|
BLITA0
|
||||||
|
BLITB0
|
||||||
|
BLITC0
|
||||||
|
WALL03_7
|
||||||
|
NUKEDGE
|
||||||
|
WALL04_3
|
||||||
|
WALL04_4
|
||||||
|
WALL04_5
|
||||||
|
WALL04_2
|
||||||
|
WALL04_7
|
||||||
|
WALL57_1
|
||||||
|
TP2_2
|
||||||
|
AG128_1
|
||||||
|
TSCRN2
|
||||||
|
TSCRN3
|
||||||
|
TSCRN4
|
||||||
|
TSCRN5
|
||||||
|
TSCRN6
|
||||||
|
TSCRN8
|
||||||
|
PLAT2_1
|
||||||
|
W15_4
|
||||||
|
W15_5
|
||||||
|
SKY1
|
||||||
|
WLA128_1
|
||||||
|
WALL57_2
|
||||||
|
WALL57_3
|
||||||
|
WALL57_4
|
||||||
|
SW12_1
|
||||||
|
SW12_2
|
||||||
|
SW19_3
|
||||||
|
SW19_4
|
||||||
|
SW11_1
|
||||||
|
SW11_2
|
||||||
|
SW12_4
|
||||||
|
SW12_5
|
||||||
|
SW17_4
|
||||||
|
SW17_5
|
||||||
|
SW17_6
|
||||||
|
SW18_7
|
||||||
|
SW19_1
|
||||||
|
SW19_2
|
||||||
|
STEP04
|
||||||
|
STEP03
|
||||||
|
STEP05
|
||||||
|
STEP06
|
||||||
|
STEP09
|
||||||
|
STEP10
|
||||||
|
WALL01_1
|
||||||
|
WALL01_2
|
||||||
|
WALL01_3
|
||||||
|
WALL01_4
|
||||||
|
WALL01_5
|
||||||
|
WALL01_6
|
||||||
|
WALL01_7
|
||||||
|
WALL01_8
|
||||||
|
WALL01_9
|
||||||
|
WALL01_A
|
||||||
|
WALL01_B
|
||||||
|
WALL01_C
|
||||||
|
W28_8
|
||||||
|
W28_5
|
||||||
|
W28_7
|
||||||
|
W28_6
|
||||||
|
SUPPORT2
|
||||||
|
SW1S0
|
||||||
|
SW3S0
|
||||||
|
SW4S0
|
||||||
|
SW3S1
|
||||||
|
SW2S0
|
||||||
|
W31_1
|
||||||
|
WARNB0
|
||||||
|
SW1S1
|
||||||
|
SW4S1
|
||||||
|
SW2S1
|
||||||
|
WARNA0
|
||||||
|
W17_1
|
||||||
|
WALL24_1
|
||||||
|
w94_1
|
||||||
|
W104_1
|
||||||
|
DOOR9_2
|
||||||
|
WALL40_1
|
||||||
|
WALL42_3
|
||||||
|
DOOR11_1
|
||||||
|
W105_1
|
||||||
|
TP5_1
|
||||||
|
TP5_2
|
||||||
|
TP5_3
|
||||||
|
TP5_4
|
||||||
|
RP2_1
|
||||||
|
RP2_2
|
||||||
|
RP2_3
|
||||||
|
RP2_4
|
||||||
|
W107_1
|
||||||
|
W106_1
|
||||||
|
WALL03_3
|
||||||
|
WALL52_1
|
||||||
|
WALL53_1
|
||||||
|
WALL54_1
|
||||||
|
WALL55_1
|
||||||
|
WALL52_2
|
||||||
|
WALL54_2
|
||||||
|
COMP03_2
|
||||||
|
WALL21_1
|
||||||
|
WALL21_5
|
||||||
|
WALL21_3
|
||||||
|
BCRATEL1
|
||||||
|
BCRATER1
|
||||||
|
GCRATEL1
|
||||||
|
GCRATER1
|
||||||
|
SGCRATE2
|
||||||
|
VGCRATE1
|
||||||
|
BCRATEM1
|
||||||
|
GCRATEM1
|
||||||
|
W108_2
|
||||||
|
DOOR2_3
|
||||||
|
W108_3
|
||||||
|
W108_4
|
||||||
|
W65B_1
|
||||||
|
W65B_2
|
||||||
|
W73A_2
|
||||||
|
W73B_1
|
||||||
|
W73A_1
|
||||||
|
W74A_1
|
||||||
|
W74A_2
|
||||||
|
W74B_1
|
||||||
|
WALL23_1
|
||||||
|
WALL23_2
|
||||||
|
WALL22_1
|
||||||
|
DUCT1
|
||||||
|
PS15A0
|
||||||
|
WALL04_9
|
||||||
|
WALL04_A
|
||||||
|
WALL04_B
|
||||||
|
WALL04_C
|
||||||
|
PS18A0
|
||||||
|
WALL58_1
|
||||||
|
WALL58_2
|
||||||
|
WALL58_3
|
||||||
|
WALL30_2
|
||||||
|
WALL30_4
|
||||||
|
WALL48_1
|
||||||
|
WALL48_2
|
||||||
|
WALL48_3
|
||||||
|
WALL48_4
|
||||||
|
WALL59_1
|
||||||
|
WALL59_2
|
||||||
|
WALL59_3
|
||||||
|
WALL59_4
|
||||||
|
WALL30_3
|
||||||
|
WALL69_4
|
||||||
|
WALL70_3
|
||||||
|
WALL71_5
|
||||||
|
WALL72_7
|
||||||
|
WALL69_9
|
||||||
|
W67_2
|
||||||
|
WALL72_5
|
||||||
|
WALL72_3
|
||||||
|
WALL70_4
|
||||||
|
WALL70_2
|
||||||
|
W67_1
|
||||||
|
WALL70_9
|
||||||
|
W15_6
|
||||||
|
MWALL4_2
|
||||||
|
MWALL5_1
|
||||||
|
MWALL4_1
|
||||||
|
MWALL1_1
|
||||||
|
MWALL2_1
|
||||||
|
MWALL3_1
|
||||||
|
MWALL1_2
|
||||||
|
WALL47_1
|
||||||
|
DOOR12_1
|
||||||
|
M1_1
|
||||||
|
RP1_1
|
||||||
|
RP1_2
|
||||||
|
TP7_1
|
||||||
|
TP7_2
|
||||||
|
TP3_1
|
||||||
|
TP3_2
|
||||||
|
WALL78_1
|
||||||
|
WALL64_2
|
||||||
|
W64B_1
|
||||||
|
W64B_2
|
||||||
|
CYL1_1
|
||||||
|
T14_3
|
||||||
|
HELL8_2
|
||||||
|
HELL8_4
|
||||||
|
HELL6_1
|
||||||
|
HELL8_3
|
||||||
|
W102_1
|
||||||
|
W102_2
|
||||||
|
HELL6_2
|
||||||
|
HELL8_1
|
||||||
|
HELL5_1
|
||||||
|
HELL5_2
|
||||||
|
W92_1
|
||||||
|
W92_2
|
||||||
|
W98_1
|
||||||
|
W98_2
|
||||||
|
W99_1
|
||||||
|
W99_2
|
||||||
|
W101_1
|
||||||
|
W101_2
|
||||||
|
W103_1
|
||||||
|
W103_2
|
||||||
|
W109_1
|
||||||
|
W109_2
|
||||||
|
W110_1
|
||||||
|
SNAK7_1
|
||||||
|
SNAK8_1
|
||||||
|
SPINE4_1
|
||||||
|
SPINE3_1
|
||||||
|
SPINE3_2
|
||||||
|
WALL76_1
|
||||||
|
WALL79_1
|
||||||
|
SKY2
|
||||||
|
SKY3
|
||||||
|
SKY4
|
||||||
|
SW2_2
|
||||||
|
WALL50_1
|
||||||
|
WALL50_2
|
||||||
|
WALL51_1
|
||||||
|
WALL51_2
|
||||||
|
WALL51_3
|
||||||
|
W108_1
|
||||||
|
WALL25_1
|
||||||
|
WALL49_1
|
||||||
|
WALL49_2
|
||||||
|
WALL49_3
|
||||||
|
WALL49_4
|
||||||
|
WALL63_1
|
||||||
|
WALL63_2
|
||||||
|
SW15_4
|
||||||
|
SW16_4
|
||||||
|
SW15_6
|
||||||
|
SW16_6
|
||||||
|
SW17_1
|
||||||
|
SW17_2
|
||||||
|
SW17_3
|
||||||
|
SW18_5
|
||||||
|
SW15_1
|
||||||
|
SW15_3
|
||||||
|
SW16_1
|
||||||
|
SW16_2
|
||||||
|
LADDER16
|
||||||
|
RIPW15
|
||||||
|
SW2_3
|
||||||
|
SW2_7
|
||||||
|
WALL47_2
|
||||||
|
WALL42_6
|
||||||
|
WALL42_5
|
||||||
|
WALL42_1
|
||||||
|
HELL6_3
|
||||||
|
SW2_5
|
||||||
|
WALL40_2
|
||||||
|
SW2_8
|
||||||
|
WALL47_5
|
||||||
|
WALL47_4
|
||||||
|
WALL47_3
|
||||||
|
SW2_6
|
||||||
|
WALL97_1
|
||||||
|
WALL97_2
|
||||||
|
WALL97_3
|
||||||
|
SW2_1
|
||||||
|
W96_1
|
||||||
|
W96_2
|
||||||
|
SW2_4
|
128
lumps/textures/doom1/texture1.txt
Normal file
128
lumps/textures/doom1/texture1.txt
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
; List of textures in the TEXTURE1 lump from doom.wad (Ultimate Doom).
|
||||||
|
; This is included as fair use for purposes of compatibility
|
||||||
|
; and interoperability.
|
||||||
|
AASTINKY
|
||||||
|
BIGDOOR1
|
||||||
|
BIGDOOR2
|
||||||
|
BIGDOOR4
|
||||||
|
BRNBIGC
|
||||||
|
BRNBIGL
|
||||||
|
BRNBIGR
|
||||||
|
BRNPOIS
|
||||||
|
BRNPOIS2
|
||||||
|
BRNSMAL1
|
||||||
|
BRNSMAL2
|
||||||
|
BRNSMALC
|
||||||
|
BRNSMALL
|
||||||
|
BRNSMALR
|
||||||
|
BROWN1
|
||||||
|
BROWN144
|
||||||
|
BROWN96
|
||||||
|
BROWNGRN
|
||||||
|
BROWNHUG
|
||||||
|
BROWNPIP
|
||||||
|
COMP2
|
||||||
|
COMPSPAN
|
||||||
|
COMPSTA1
|
||||||
|
COMPSTA2
|
||||||
|
COMPTALL
|
||||||
|
COMPTILE
|
||||||
|
COMPUTE1
|
||||||
|
COMPUTE2
|
||||||
|
COMPUTE3
|
||||||
|
DOOR1
|
||||||
|
DOOR3
|
||||||
|
DOORBLU
|
||||||
|
DOORRED
|
||||||
|
DOORSTOP
|
||||||
|
DOORTRAK
|
||||||
|
DOORYEL
|
||||||
|
EXITDOOR
|
||||||
|
EXITSIGN
|
||||||
|
GRAY4
|
||||||
|
GRAY5
|
||||||
|
GRAY7
|
||||||
|
GRAYTALL
|
||||||
|
LITE2
|
||||||
|
LITE3
|
||||||
|
LITE4
|
||||||
|
LITE5
|
||||||
|
LITEBLU1
|
||||||
|
LITEBLU2
|
||||||
|
LITEBLU3
|
||||||
|
LITEBLU4
|
||||||
|
METAL1
|
||||||
|
NUKE24
|
||||||
|
NUKEDGE1
|
||||||
|
NUKESLAD
|
||||||
|
PIPE2
|
||||||
|
PLANET1
|
||||||
|
PLAT1
|
||||||
|
REDWALL1
|
||||||
|
SHAWN2
|
||||||
|
SKY1
|
||||||
|
SLADPOIS
|
||||||
|
SLADRIP1
|
||||||
|
SLADRIP2
|
||||||
|
SLADRIP3
|
||||||
|
SLADWALL
|
||||||
|
STARG1
|
||||||
|
STARG3
|
||||||
|
STARGR1
|
||||||
|
STARTAN1
|
||||||
|
STARTAN2
|
||||||
|
STARTAN3
|
||||||
|
STEP1
|
||||||
|
STEP2
|
||||||
|
STEP3
|
||||||
|
STEP4
|
||||||
|
STEP5
|
||||||
|
STEP6
|
||||||
|
STONE
|
||||||
|
STONE2
|
||||||
|
STONE3
|
||||||
|
STONPOIS
|
||||||
|
SUPPORT2
|
||||||
|
SW1BRCOM
|
||||||
|
SW1BRN1
|
||||||
|
SW1BRN2
|
||||||
|
SW1BRNGN
|
||||||
|
SW1BROWN
|
||||||
|
SW1COMM
|
||||||
|
SW1COMP
|
||||||
|
SW1DIRT
|
||||||
|
SW1EXIT
|
||||||
|
SW1GRAY
|
||||||
|
SW1GRAY1
|
||||||
|
SW1METAL
|
||||||
|
SW1PIPE
|
||||||
|
SW1SLAD
|
||||||
|
SW1STARG
|
||||||
|
SW1STON1
|
||||||
|
SW1STON2
|
||||||
|
SW1STONE
|
||||||
|
SW1STRTN
|
||||||
|
SW2BRCOM
|
||||||
|
SW2BRN1
|
||||||
|
SW2BRN2
|
||||||
|
SW2BRNGN
|
||||||
|
SW2BROWN
|
||||||
|
SW2COMM
|
||||||
|
SW2COMP
|
||||||
|
SW2DIRT
|
||||||
|
SW2EXIT
|
||||||
|
SW2GRAY
|
||||||
|
SW2GRAY1
|
||||||
|
SW2METAL
|
||||||
|
SW2PIPE
|
||||||
|
SW2SLAD
|
||||||
|
SW2STARG
|
||||||
|
SW2STON1
|
||||||
|
SW2STON2
|
||||||
|
SW2STONE
|
||||||
|
SW2STRTN
|
||||||
|
TEKWALL1
|
||||||
|
TEKWALL2
|
||||||
|
TEKWALL3
|
||||||
|
TEKWALL4
|
||||||
|
TEKWALL5
|
165
lumps/textures/doom1/texture2.txt
Normal file
165
lumps/textures/doom1/texture2.txt
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
; List of textures in the TEXTURE2 lump from doom.wad (Ultimate Doom).
|
||||||
|
; This is included as fair use for purposes of compatibility
|
||||||
|
; and interoperability.
|
||||||
|
ASHWALL
|
||||||
|
BIGDOOR3
|
||||||
|
BIGDOOR5
|
||||||
|
BIGDOOR6
|
||||||
|
BIGDOOR7
|
||||||
|
BLODGR1
|
||||||
|
BLODGR2
|
||||||
|
BLODGR3
|
||||||
|
BLODGR4
|
||||||
|
BLODRIP1
|
||||||
|
BLODRIP2
|
||||||
|
BLODRIP3
|
||||||
|
BLODRIP4
|
||||||
|
BROVINE
|
||||||
|
BROVINE2
|
||||||
|
BROWNWEL
|
||||||
|
CEMENT1
|
||||||
|
CEMENT2
|
||||||
|
CEMENT3
|
||||||
|
CEMENT4
|
||||||
|
CEMENT5
|
||||||
|
CEMENT6
|
||||||
|
CEMPOIS
|
||||||
|
COMPBLUE
|
||||||
|
COMPOHSO
|
||||||
|
COMPWERD
|
||||||
|
CRATE1
|
||||||
|
CRATE2
|
||||||
|
CRATELIT
|
||||||
|
CRATINY
|
||||||
|
CRATWIDE
|
||||||
|
DOORBLU2
|
||||||
|
DOORHI
|
||||||
|
DOORRED2
|
||||||
|
DOORYEL2
|
||||||
|
EXITSTON
|
||||||
|
FIREBLU1
|
||||||
|
FIREBLU2
|
||||||
|
FIRELAV2
|
||||||
|
FIRELAV3
|
||||||
|
FIRELAVA
|
||||||
|
FIREMAG1
|
||||||
|
FIREMAG2
|
||||||
|
FIREMAG3
|
||||||
|
FIREWALA
|
||||||
|
FIREWALB
|
||||||
|
FIREWALL
|
||||||
|
GRAY1
|
||||||
|
GRAY2
|
||||||
|
GRAYBIG
|
||||||
|
GRAYDANG
|
||||||
|
GRAYPOIS
|
||||||
|
GRAYVINE
|
||||||
|
GSTFONT1
|
||||||
|
GSTFONT2
|
||||||
|
GSTFONT3
|
||||||
|
GSTGARG
|
||||||
|
GSTLION
|
||||||
|
GSTONE1
|
||||||
|
GSTONE2
|
||||||
|
GSTSATYR
|
||||||
|
GSTVINE1
|
||||||
|
GSTVINE2
|
||||||
|
ICKDOOR1
|
||||||
|
ICKWALL1
|
||||||
|
ICKWALL2
|
||||||
|
ICKWALL3
|
||||||
|
ICKWALL4
|
||||||
|
ICKWALL5
|
||||||
|
ICKWALL6
|
||||||
|
ICKWALL7
|
||||||
|
LITE96
|
||||||
|
LITEMET
|
||||||
|
LITERED
|
||||||
|
LITESTON
|
||||||
|
MARBFAC2
|
||||||
|
MARBFAC3
|
||||||
|
MARBFACE
|
||||||
|
MARBLE1
|
||||||
|
MARBLE2
|
||||||
|
MARBLE3
|
||||||
|
MARBLOD1
|
||||||
|
METAL
|
||||||
|
MIDBRN1
|
||||||
|
MIDGRATE
|
||||||
|
MIDVINE1
|
||||||
|
MIDVINE2
|
||||||
|
NUKEPOIS
|
||||||
|
PIPE1
|
||||||
|
PIPE4
|
||||||
|
PIPE6
|
||||||
|
REDWALL
|
||||||
|
ROCKRED1
|
||||||
|
ROCKRED2
|
||||||
|
ROCKRED3
|
||||||
|
SHAWN1
|
||||||
|
SHAWN3
|
||||||
|
SKIN2
|
||||||
|
SKINBORD
|
||||||
|
SKINCUT
|
||||||
|
SKINEDGE
|
||||||
|
SKINFACE
|
||||||
|
SKINLOW
|
||||||
|
SKINMET1
|
||||||
|
SKINMET2
|
||||||
|
SKINSCAB
|
||||||
|
SKINSYMB
|
||||||
|
SKINTEK1
|
||||||
|
SKINTEK2
|
||||||
|
SKSNAKE1
|
||||||
|
SKSNAKE2
|
||||||
|
SKSPINE1
|
||||||
|
SKSPINE2
|
||||||
|
SKULWAL3
|
||||||
|
SKULWALL
|
||||||
|
SKY2
|
||||||
|
SKY3
|
||||||
|
SKY4
|
||||||
|
SLADSKUL
|
||||||
|
SP_DUDE1
|
||||||
|
SP_DUDE2
|
||||||
|
SP_DUDE3
|
||||||
|
SP_DUDE4
|
||||||
|
SP_DUDE5
|
||||||
|
SP_DUDE6
|
||||||
|
SP_FACE1
|
||||||
|
SP_HOT1
|
||||||
|
SP_ROCK1
|
||||||
|
SP_ROCK2
|
||||||
|
STARBR2
|
||||||
|
STARG2
|
||||||
|
STARGR2
|
||||||
|
STEPLAD1
|
||||||
|
STEPTOP
|
||||||
|
STONGARG
|
||||||
|
SUPPORT3
|
||||||
|
SW1BLUE
|
||||||
|
SW1CMT
|
||||||
|
SW1GARG
|
||||||
|
SW1GSTON
|
||||||
|
SW1HOT
|
||||||
|
SW1LION
|
||||||
|
SW1SATYR
|
||||||
|
SW1SKIN
|
||||||
|
SW1VINE
|
||||||
|
SW1WOOD
|
||||||
|
SW2BLUE
|
||||||
|
SW2CMT
|
||||||
|
SW2GARG
|
||||||
|
SW2GSTON
|
||||||
|
SW2HOT
|
||||||
|
SW2LION
|
||||||
|
SW2SATYR
|
||||||
|
SW2SKIN
|
||||||
|
SW2VINE
|
||||||
|
SW2WOOD
|
||||||
|
WOOD1
|
||||||
|
WOOD3
|
||||||
|
WOOD4
|
||||||
|
WOOD5
|
||||||
|
WOODGARG
|
||||||
|
WOODSKUL
|
472
lumps/textures/doom2/pnames.txt
Normal file
472
lumps/textures/doom2/pnames.txt
Normal file
|
@ -0,0 +1,472 @@
|
||||||
|
; List of patch names from doom2.wad.
|
||||||
|
; This is included as fair use for purposes of compatibility
|
||||||
|
; and interoperability.
|
||||||
|
BODIES
|
||||||
|
RW22_1
|
||||||
|
RW22_2
|
||||||
|
RW22_3
|
||||||
|
RW27_2
|
||||||
|
RW27_3
|
||||||
|
BFALL1
|
||||||
|
BFALL2
|
||||||
|
BFALL3
|
||||||
|
BFALL4
|
||||||
|
RW23_3
|
||||||
|
RW23_4
|
||||||
|
RW38_4
|
||||||
|
W13_1
|
||||||
|
DOOR2_1
|
||||||
|
DOOR2_4
|
||||||
|
DOOR9_2
|
||||||
|
DOOR9_1
|
||||||
|
WALL40_1
|
||||||
|
WALL42_3
|
||||||
|
DOOR11_1
|
||||||
|
W105_1
|
||||||
|
RW34_1
|
||||||
|
RW34_2
|
||||||
|
RP2_1
|
||||||
|
RP2_2
|
||||||
|
RP2_3
|
||||||
|
RP2_4
|
||||||
|
RW1_3
|
||||||
|
RW41_1
|
||||||
|
RW41_3
|
||||||
|
RW41_4
|
||||||
|
RW1_4
|
||||||
|
RW5_1
|
||||||
|
RW5_2
|
||||||
|
RW5_3
|
||||||
|
RW5_4
|
||||||
|
RW24_1
|
||||||
|
RW24_2
|
||||||
|
RW24_3
|
||||||
|
RW24_4
|
||||||
|
RW12_3
|
||||||
|
WALL62_2
|
||||||
|
PS20A0
|
||||||
|
W111_2
|
||||||
|
W111_3
|
||||||
|
W112_1
|
||||||
|
W112_3
|
||||||
|
W112_2
|
||||||
|
RW10_1
|
||||||
|
RW10_2
|
||||||
|
RW10_3
|
||||||
|
RW38_3
|
||||||
|
W106_1
|
||||||
|
WALL02_2
|
||||||
|
WALL02_3
|
||||||
|
WALL02_1
|
||||||
|
WALL00_5
|
||||||
|
WALL00_6
|
||||||
|
WALL00_7
|
||||||
|
WALL00_8
|
||||||
|
WALL62_1
|
||||||
|
WALL03_4
|
||||||
|
TP2_1
|
||||||
|
STEP07
|
||||||
|
WALL05_2
|
||||||
|
RW6_1
|
||||||
|
RW1_1
|
||||||
|
RW1_2
|
||||||
|
RW12_2
|
||||||
|
WALL52_1
|
||||||
|
WALL53_1
|
||||||
|
WALL54_1
|
||||||
|
WALL55_1
|
||||||
|
WALL52_2
|
||||||
|
WALL54_2
|
||||||
|
RW7_1
|
||||||
|
RW11_3
|
||||||
|
RW28_1
|
||||||
|
COMP03_1
|
||||||
|
COMP03_2
|
||||||
|
COMP03_4
|
||||||
|
TOMW2_1
|
||||||
|
AG128_2
|
||||||
|
TOMW2_2
|
||||||
|
COMP04_5
|
||||||
|
COMP04_8
|
||||||
|
COMP03_8
|
||||||
|
COMP04_6
|
||||||
|
COMP04_7
|
||||||
|
COMP04_2
|
||||||
|
COMP03_5
|
||||||
|
COMP04_1
|
||||||
|
RW44_2
|
||||||
|
RW44_4
|
||||||
|
BCRATEL1
|
||||||
|
BCRATER1
|
||||||
|
GCRATEL1
|
||||||
|
GCRATER1
|
||||||
|
SGCRATE2
|
||||||
|
VGCRATE1
|
||||||
|
BCRATEM1
|
||||||
|
GCRATEM1
|
||||||
|
RWDM11A
|
||||||
|
RWDM11B
|
||||||
|
RWDM11C
|
||||||
|
RWDM11D
|
||||||
|
WALL03_1
|
||||||
|
DOOR2_5
|
||||||
|
W46_37
|
||||||
|
W108_2
|
||||||
|
W46_38
|
||||||
|
W108_3
|
||||||
|
TTALL1_2
|
||||||
|
DOORTRAK
|
||||||
|
W46_39
|
||||||
|
W108_4
|
||||||
|
DOOR3_6
|
||||||
|
DOOR3_4
|
||||||
|
DOOR3_5
|
||||||
|
T14_5
|
||||||
|
EXIT1
|
||||||
|
EXIT2
|
||||||
|
W28_8
|
||||||
|
W65B_1
|
||||||
|
W65B_2
|
||||||
|
W73A_2
|
||||||
|
W73B_1
|
||||||
|
W73A_1
|
||||||
|
W74A_1
|
||||||
|
W74A_2
|
||||||
|
W74B_1
|
||||||
|
WALL23_1
|
||||||
|
WALL23_2
|
||||||
|
WALL22_1
|
||||||
|
W31_1
|
||||||
|
W33_7
|
||||||
|
DUCT1
|
||||||
|
W33_5
|
||||||
|
W33_8
|
||||||
|
W32_4
|
||||||
|
W32_1
|
||||||
|
WALL00_1
|
||||||
|
WALL00_2
|
||||||
|
WALL04_9
|
||||||
|
WALL04_A
|
||||||
|
WALL04_B
|
||||||
|
WALL04_C
|
||||||
|
PS18A0
|
||||||
|
WALL00_3
|
||||||
|
WALL58_1
|
||||||
|
WALL58_2
|
||||||
|
WALL58_3
|
||||||
|
WALL30_2
|
||||||
|
WALL30_4
|
||||||
|
WALL48_1
|
||||||
|
WALL48_2
|
||||||
|
WALL48_3
|
||||||
|
WALL48_4
|
||||||
|
WALL59_1
|
||||||
|
WALL59_2
|
||||||
|
WALL59_3
|
||||||
|
WALL59_4
|
||||||
|
WALL30_3
|
||||||
|
W107_1
|
||||||
|
WALL69_4
|
||||||
|
WALL71_5
|
||||||
|
WALL72_7
|
||||||
|
WALL69_9
|
||||||
|
W67_2
|
||||||
|
WALL72_5
|
||||||
|
WALL72_3
|
||||||
|
WALL70_4
|
||||||
|
W67_1
|
||||||
|
WALL70_9
|
||||||
|
WLITA0
|
||||||
|
WLITB0
|
||||||
|
WLITC0
|
||||||
|
AGB128_1
|
||||||
|
BLITA0
|
||||||
|
BLITB0
|
||||||
|
BLITC0
|
||||||
|
MWALL4_2
|
||||||
|
MWALL5_1
|
||||||
|
RW7_3
|
||||||
|
MWALL4_1
|
||||||
|
RW7_2
|
||||||
|
MWALL1_1
|
||||||
|
MWALL2_1
|
||||||
|
MWALL3_1
|
||||||
|
MWALL1_2
|
||||||
|
WALL47_1
|
||||||
|
WALL03_7
|
||||||
|
RW33_1
|
||||||
|
RW33_2
|
||||||
|
RW33_3
|
||||||
|
RW33_4
|
||||||
|
RW38_1
|
||||||
|
RW38_2
|
||||||
|
RW43_1
|
||||||
|
RW45_1
|
||||||
|
DOOR12_1
|
||||||
|
RW10_4
|
||||||
|
M1_1
|
||||||
|
RW47_1
|
||||||
|
RW31_1
|
||||||
|
RW31_2
|
||||||
|
RW31_3
|
||||||
|
RW31_4
|
||||||
|
NUKEDGE
|
||||||
|
WALL04_3
|
||||||
|
WALL04_4
|
||||||
|
WALL04_5
|
||||||
|
WALL04_2
|
||||||
|
WALL04_7
|
||||||
|
RW16_1
|
||||||
|
RW16_3
|
||||||
|
RW21_5
|
||||||
|
RW21_1
|
||||||
|
RW21_2
|
||||||
|
RW21_3
|
||||||
|
RW21_4
|
||||||
|
RW15_1
|
||||||
|
RW15_2
|
||||||
|
RW15_3
|
||||||
|
RW15_4
|
||||||
|
RW16_4
|
||||||
|
RW19_1
|
||||||
|
RW19_2
|
||||||
|
RW19_3
|
||||||
|
RW19_4
|
||||||
|
RW16_2
|
||||||
|
RP1_1
|
||||||
|
RP1_2
|
||||||
|
TP2_2
|
||||||
|
TP7_1
|
||||||
|
TP7_2
|
||||||
|
TP3_1
|
||||||
|
TP3_2
|
||||||
|
RW28_4
|
||||||
|
RW28_2
|
||||||
|
RW36_2
|
||||||
|
PLAT2_1
|
||||||
|
WALL78_1
|
||||||
|
RW30_1
|
||||||
|
RW30_2
|
||||||
|
RW30_3
|
||||||
|
RW35_1
|
||||||
|
RW35_2
|
||||||
|
WALL64_2
|
||||||
|
W64B_1
|
||||||
|
W64B_2
|
||||||
|
SFALL1
|
||||||
|
SFALL2
|
||||||
|
SFALL3
|
||||||
|
SFALL4
|
||||||
|
CYL1_1
|
||||||
|
AG128_1
|
||||||
|
T14_3
|
||||||
|
RW32_1
|
||||||
|
RW32_2
|
||||||
|
RW32_3
|
||||||
|
RW48_1
|
||||||
|
RW48_3
|
||||||
|
HELL8_2
|
||||||
|
HELL8_4
|
||||||
|
W102_1
|
||||||
|
W102_2
|
||||||
|
HELL6_2
|
||||||
|
HELL8_1
|
||||||
|
HELL5_1
|
||||||
|
HELL5_2
|
||||||
|
W92_1
|
||||||
|
W92_2
|
||||||
|
W98_1
|
||||||
|
W98_2
|
||||||
|
W99_1
|
||||||
|
W99_2
|
||||||
|
W101_1
|
||||||
|
W101_2
|
||||||
|
W103_1
|
||||||
|
W103_2
|
||||||
|
SNAK7_1
|
||||||
|
SNAK8_1
|
||||||
|
SPINE4_1
|
||||||
|
SPINE3_1
|
||||||
|
SPINE3_2
|
||||||
|
RSKY1
|
||||||
|
RSKY2
|
||||||
|
RSKY3
|
||||||
|
WLA128_1
|
||||||
|
SW2_2
|
||||||
|
RW47_3
|
||||||
|
RW47_4
|
||||||
|
WALL50_1
|
||||||
|
WALL50_2
|
||||||
|
WALL51_2
|
||||||
|
WALL51_3
|
||||||
|
BODY_1
|
||||||
|
BODY_2
|
||||||
|
WALL25_1
|
||||||
|
WALL49_1
|
||||||
|
WALL49_2
|
||||||
|
WALL49_3
|
||||||
|
WALL49_4
|
||||||
|
WALL63_1
|
||||||
|
RW46_2
|
||||||
|
RW46_3
|
||||||
|
RW46_4
|
||||||
|
DOOR15_1
|
||||||
|
DOOR15_2
|
||||||
|
DOOR15_3
|
||||||
|
DOOR15_4
|
||||||
|
SW15_4
|
||||||
|
SW16_4
|
||||||
|
SW15_6
|
||||||
|
SW16_6
|
||||||
|
SW12_1
|
||||||
|
SW12_2
|
||||||
|
SW17_1
|
||||||
|
SW17_2
|
||||||
|
SW17_3
|
||||||
|
SW18_5
|
||||||
|
SW19_3
|
||||||
|
SW19_4
|
||||||
|
SW11_1
|
||||||
|
SW11_2
|
||||||
|
SW15_1
|
||||||
|
SW15_3
|
||||||
|
SW16_1
|
||||||
|
SW16_2
|
||||||
|
SW17_4
|
||||||
|
SW17_5
|
||||||
|
SW17_6
|
||||||
|
SW18_7
|
||||||
|
SW19_1
|
||||||
|
SW19_2
|
||||||
|
STEP05
|
||||||
|
STEP04
|
||||||
|
SW11_4
|
||||||
|
STEP03
|
||||||
|
STEP06
|
||||||
|
STEP09
|
||||||
|
STEP08
|
||||||
|
STEP10
|
||||||
|
LADDER16
|
||||||
|
RIPW15
|
||||||
|
WALL01_1
|
||||||
|
WALL01_2
|
||||||
|
WALL01_3
|
||||||
|
WALL01_4
|
||||||
|
WALL01_5
|
||||||
|
WALL01_6
|
||||||
|
WALL01_7
|
||||||
|
WALL01_8
|
||||||
|
WALL01_9
|
||||||
|
WALL01_A
|
||||||
|
WALL01_B
|
||||||
|
WALL01_C
|
||||||
|
W28_5
|
||||||
|
W28_7
|
||||||
|
W28_6
|
||||||
|
RW18_1
|
||||||
|
RW18_2
|
||||||
|
RW18_3
|
||||||
|
RW18_4
|
||||||
|
RW8_1
|
||||||
|
RW8_2
|
||||||
|
RW8_3
|
||||||
|
RW8_4
|
||||||
|
SUPPORT2
|
||||||
|
SW2_7
|
||||||
|
SW1S0
|
||||||
|
SW4S0
|
||||||
|
SW3S1
|
||||||
|
SW2S0
|
||||||
|
WALL47_2
|
||||||
|
WALL42_6
|
||||||
|
WALL42_5
|
||||||
|
SW3S0
|
||||||
|
WALL42_1
|
||||||
|
HELL6_3
|
||||||
|
SW2_5
|
||||||
|
RW48_4
|
||||||
|
WARNB0
|
||||||
|
SW12_4
|
||||||
|
SW12_5
|
||||||
|
RW37_2
|
||||||
|
RW26_1
|
||||||
|
WALL40_2
|
||||||
|
RW20_1
|
||||||
|
SW2_8
|
||||||
|
SW1S1
|
||||||
|
SW4S1
|
||||||
|
SW2S1
|
||||||
|
WALL47_5
|
||||||
|
WALL47_4
|
||||||
|
WALL47_3
|
||||||
|
SW2_6
|
||||||
|
RW48_2
|
||||||
|
WARNA0
|
||||||
|
RW11_2
|
||||||
|
RW12_1
|
||||||
|
RW12_4
|
||||||
|
RW14_1
|
||||||
|
RW23_2
|
||||||
|
RW28_3
|
||||||
|
RW36_1
|
||||||
|
RW36_3
|
||||||
|
RW39_2
|
||||||
|
RW37_1
|
||||||
|
RW37_3
|
||||||
|
RW37_4
|
||||||
|
RW39_1
|
||||||
|
RW43_3
|
||||||
|
RW43_4
|
||||||
|
W17_1
|
||||||
|
w94_1
|
||||||
|
RW25_1
|
||||||
|
RW25_2
|
||||||
|
RW25_3
|
||||||
|
RW25_4
|
||||||
|
RW13_1
|
||||||
|
RW41_2
|
||||||
|
WALL97_1
|
||||||
|
WALL97_2
|
||||||
|
WALL97_3
|
||||||
|
SW2_1
|
||||||
|
W96_1
|
||||||
|
W96_2
|
||||||
|
RW9_1
|
||||||
|
RW9_2
|
||||||
|
RW9_3
|
||||||
|
RW9_4
|
||||||
|
SW2_4
|
||||||
|
RW26_2
|
||||||
|
RW26_3
|
||||||
|
RW26_4
|
||||||
|
RW23_1
|
||||||
|
WOLF18
|
||||||
|
WOLF10
|
||||||
|
WOLF11
|
||||||
|
RW20_2
|
||||||
|
RW20_3
|
||||||
|
RW20_4
|
||||||
|
RW42_1
|
||||||
|
RW42_3
|
||||||
|
RW42_4
|
||||||
|
WOLF1
|
||||||
|
WOLF12
|
||||||
|
WOLF13
|
||||||
|
WOLF14
|
||||||
|
WOLF17
|
||||||
|
WOLF2
|
||||||
|
WOLF3
|
||||||
|
WOLF4
|
||||||
|
WOLF5
|
||||||
|
WOLF6
|
||||||
|
WOLF7
|
||||||
|
WOLF9
|
||||||
|
RWDMON4
|
||||||
|
RWDMON5
|
||||||
|
RWDMON3
|
||||||
|
RWDMON2
|
||||||
|
RWDMON1
|
||||||
|
RWDMON7
|
||||||
|
RWDMON8
|
||||||
|
RWDMON9
|
||||||
|
RWDMON10
|
431
lumps/textures/doom2/texture1.txt
Normal file
431
lumps/textures/doom2/texture1.txt
Normal file
|
@ -0,0 +1,431 @@
|
||||||
|
; List of textures in the TEXTURE1 lump from doom2.wad.
|
||||||
|
; This is included as fair use for purposes of compatibility
|
||||||
|
; and interoperability.
|
||||||
|
AASHITTY
|
||||||
|
ASHWALL2
|
||||||
|
ASHWALL3
|
||||||
|
ASHWALL4
|
||||||
|
ASHWALL6
|
||||||
|
ASHWALL7
|
||||||
|
BFALL1
|
||||||
|
BFALL2
|
||||||
|
BFALL3
|
||||||
|
BFALL4
|
||||||
|
BIGBRIK1
|
||||||
|
BIGBRIK2
|
||||||
|
BIGBRIK3
|
||||||
|
BIGDOOR1
|
||||||
|
BIGDOOR2
|
||||||
|
BIGDOOR3
|
||||||
|
BIGDOOR4
|
||||||
|
BIGDOOR5
|
||||||
|
BIGDOOR6
|
||||||
|
BIGDOOR7
|
||||||
|
BLAKWAL1
|
||||||
|
BLAKWAL2
|
||||||
|
BLODRIP1
|
||||||
|
BLODRIP2
|
||||||
|
BLODRIP3
|
||||||
|
BLODRIP4
|
||||||
|
BRICK1
|
||||||
|
BRICK10
|
||||||
|
BRICK11
|
||||||
|
BRICK12
|
||||||
|
BRICK2
|
||||||
|
BRICK3
|
||||||
|
BRICK4
|
||||||
|
BRICK5
|
||||||
|
BRICK6
|
||||||
|
BRICK7
|
||||||
|
BRICK8
|
||||||
|
BRICK9
|
||||||
|
BRICKLIT
|
||||||
|
BRNPOIS
|
||||||
|
BRNSMAL1
|
||||||
|
BRNSMAL2
|
||||||
|
BRNSMALC
|
||||||
|
BRNSMALL
|
||||||
|
BRNSMALR
|
||||||
|
BRONZE1
|
||||||
|
BRONZE2
|
||||||
|
BRONZE3
|
||||||
|
BRONZE4
|
||||||
|
BROVINE2
|
||||||
|
BROWN1
|
||||||
|
BROWN144
|
||||||
|
BROWN96
|
||||||
|
BROWNGRN
|
||||||
|
BROWNHUG
|
||||||
|
BROWNPIP
|
||||||
|
BRWINDOW
|
||||||
|
BSTONE1
|
||||||
|
BSTONE2
|
||||||
|
BSTONE3
|
||||||
|
CEMENT1
|
||||||
|
CEMENT2
|
||||||
|
CEMENT3
|
||||||
|
CEMENT4
|
||||||
|
CEMENT5
|
||||||
|
CEMENT6
|
||||||
|
CEMENT7
|
||||||
|
CEMENT8
|
||||||
|
CEMENT9
|
||||||
|
COMPBLUE
|
||||||
|
COMPSPAN
|
||||||
|
COMPSTA1
|
||||||
|
COMPSTA2
|
||||||
|
COMPTALL
|
||||||
|
COMPWERD
|
||||||
|
CRACKLE2
|
||||||
|
CRACKLE4
|
||||||
|
CRATE1
|
||||||
|
CRATE2
|
||||||
|
CRATE3
|
||||||
|
CRATELIT
|
||||||
|
CRATINY
|
||||||
|
CRATWIDE
|
||||||
|
DBRAIN1
|
||||||
|
DBRAIN2
|
||||||
|
DBRAIN3
|
||||||
|
DBRAIN4
|
||||||
|
DOOR1
|
||||||
|
DOOR3
|
||||||
|
DOORBLU
|
||||||
|
DOORBLU2
|
||||||
|
DOORRED
|
||||||
|
DOORRED2
|
||||||
|
DOORSTOP
|
||||||
|
DOORTRAK
|
||||||
|
DOORYEL
|
||||||
|
DOORYEL2
|
||||||
|
EXITDOOR
|
||||||
|
EXITSIGN
|
||||||
|
EXITSTON
|
||||||
|
FIREBLU1
|
||||||
|
FIREBLU2
|
||||||
|
FIRELAV2
|
||||||
|
FIRELAV3
|
||||||
|
FIRELAVA
|
||||||
|
FIREMAG1
|
||||||
|
FIREMAG2
|
||||||
|
FIREMAG3
|
||||||
|
FIREWALA
|
||||||
|
FIREWALB
|
||||||
|
FIREWALL
|
||||||
|
GRAY1
|
||||||
|
GRAY2
|
||||||
|
GRAY4
|
||||||
|
GRAY5
|
||||||
|
GRAY7
|
||||||
|
GRAYBIG
|
||||||
|
GRAYPOIS
|
||||||
|
GRAYTALL
|
||||||
|
GRAYVINE
|
||||||
|
GSTFONT1
|
||||||
|
GSTFONT2
|
||||||
|
GSTFONT3
|
||||||
|
GSTGARG
|
||||||
|
GSTLION
|
||||||
|
GSTONE1
|
||||||
|
GSTONE2
|
||||||
|
GSTSATYR
|
||||||
|
GSTVINE1
|
||||||
|
GSTVINE2
|
||||||
|
ICKWALL1
|
||||||
|
ICKWALL2
|
||||||
|
ICKWALL3
|
||||||
|
ICKWALL4
|
||||||
|
ICKWALL5
|
||||||
|
ICKWALL7
|
||||||
|
LITE3
|
||||||
|
LITE5
|
||||||
|
LITEBLU1
|
||||||
|
LITEBLU4
|
||||||
|
MARBFAC2
|
||||||
|
MARBFAC3
|
||||||
|
MARBFAC4
|
||||||
|
MARBFACE
|
||||||
|
MARBGRAY
|
||||||
|
MARBLE1
|
||||||
|
MARBLE2
|
||||||
|
MARBLE3
|
||||||
|
MARBLOD1
|
||||||
|
METAL
|
||||||
|
METAL1
|
||||||
|
METAL2
|
||||||
|
METAL3
|
||||||
|
METAL4
|
||||||
|
METAL5
|
||||||
|
METAL6
|
||||||
|
METAL7
|
||||||
|
MIDBARS1
|
||||||
|
MIDBARS3
|
||||||
|
MIDBRN1
|
||||||
|
MIDBRONZ
|
||||||
|
MIDGRATE
|
||||||
|
MIDSPACE
|
||||||
|
MODWALL1
|
||||||
|
MODWALL2
|
||||||
|
MODWALL3
|
||||||
|
MODWALL4
|
||||||
|
NUKE24
|
||||||
|
NUKEDGE1
|
||||||
|
NUKEPOIS
|
||||||
|
PANBLACK
|
||||||
|
PANBLUE
|
||||||
|
PANBOOK
|
||||||
|
PANBORD1
|
||||||
|
PANBORD2
|
||||||
|
PANCASE1
|
||||||
|
PANCASE2
|
||||||
|
PANEL1
|
||||||
|
PANEL2
|
||||||
|
PANEL3
|
||||||
|
PANEL4
|
||||||
|
PANEL5
|
||||||
|
PANEL6
|
||||||
|
PANEL7
|
||||||
|
PANEL8
|
||||||
|
PANEL9
|
||||||
|
PANRED
|
||||||
|
PIPE1
|
||||||
|
PIPE2
|
||||||
|
PIPE4
|
||||||
|
PIPE6
|
||||||
|
PIPES
|
||||||
|
PIPEWAL1
|
||||||
|
PIPEWAL2
|
||||||
|
PLAT1
|
||||||
|
REDWALL
|
||||||
|
ROCK1
|
||||||
|
ROCK2
|
||||||
|
ROCK3
|
||||||
|
ROCK4
|
||||||
|
ROCK5
|
||||||
|
ROCKRED1
|
||||||
|
ROCKRED2
|
||||||
|
ROCKRED3
|
||||||
|
SFALL1
|
||||||
|
SFALL2
|
||||||
|
SFALL3
|
||||||
|
SFALL4
|
||||||
|
SHAWN1
|
||||||
|
SHAWN2
|
||||||
|
SHAWN3
|
||||||
|
SILVER1
|
||||||
|
SILVER2
|
||||||
|
SILVER3
|
||||||
|
SK_LEFT
|
||||||
|
SK_RIGHT
|
||||||
|
SKIN2
|
||||||
|
SKINCUT
|
||||||
|
SKINEDGE
|
||||||
|
SKINFACE
|
||||||
|
SKINLOW
|
||||||
|
SKINMET1
|
||||||
|
SKINMET2
|
||||||
|
SKINSCAB
|
||||||
|
SKINSYMB
|
||||||
|
SKSNAKE1
|
||||||
|
SKSNAKE2
|
||||||
|
SKSPINE1
|
||||||
|
SKSPINE2
|
||||||
|
SKY1
|
||||||
|
SKY2
|
||||||
|
SKY3
|
||||||
|
SLADPOIS
|
||||||
|
SLADSKUL
|
||||||
|
SLADWALL
|
||||||
|
SLOPPY1
|
||||||
|
SLOPPY2
|
||||||
|
SP_DUDE1
|
||||||
|
SP_DUDE2
|
||||||
|
SP_DUDE4
|
||||||
|
SP_DUDE5
|
||||||
|
SP_DUDE7
|
||||||
|
SP_DUDE8
|
||||||
|
SP_FACE1
|
||||||
|
SP_FACE2
|
||||||
|
SP_HOT1
|
||||||
|
SP_ROCK1
|
||||||
|
SPACEW2
|
||||||
|
SPACEW3
|
||||||
|
SPACEW4
|
||||||
|
SPCDOOR1
|
||||||
|
SPCDOOR2
|
||||||
|
SPCDOOR3
|
||||||
|
SPCDOOR4
|
||||||
|
STARBR2
|
||||||
|
STARG1
|
||||||
|
STARG2
|
||||||
|
STARG3
|
||||||
|
STARGR1
|
||||||
|
STARGR2
|
||||||
|
STARTAN2
|
||||||
|
STARTAN3
|
||||||
|
STEP1
|
||||||
|
STEP2
|
||||||
|
STEP3
|
||||||
|
STEP4
|
||||||
|
STEP5
|
||||||
|
STEP6
|
||||||
|
STEPLAD1
|
||||||
|
STEPTOP
|
||||||
|
STONE
|
||||||
|
STONE2
|
||||||
|
STONE3
|
||||||
|
STONE4
|
||||||
|
STONE5
|
||||||
|
STONE6
|
||||||
|
STONE7
|
||||||
|
STUCCO
|
||||||
|
STUCCO1
|
||||||
|
STUCCO2
|
||||||
|
STUCCO3
|
||||||
|
SUPPORT2
|
||||||
|
SUPPORT3
|
||||||
|
SW1BLUE
|
||||||
|
SW1BRCOM
|
||||||
|
SW1BRIK
|
||||||
|
SW1BRN1
|
||||||
|
SW1BRN2
|
||||||
|
SW1BRNGN
|
||||||
|
SW1BROWN
|
||||||
|
SW1CMT
|
||||||
|
SW1COMM
|
||||||
|
SW1COMP
|
||||||
|
SW1DIRT
|
||||||
|
SW1EXIT
|
||||||
|
SW1GARG
|
||||||
|
SW1GRAY
|
||||||
|
SW1GRAY1
|
||||||
|
SW1GSTON
|
||||||
|
SW1HOT
|
||||||
|
SW1LION
|
||||||
|
SW1MARB
|
||||||
|
SW1MET2
|
||||||
|
SW1METAL
|
||||||
|
SW1MOD1
|
||||||
|
SW1PANEL
|
||||||
|
SW1PIPE
|
||||||
|
SW1ROCK
|
||||||
|
SW1SATYR
|
||||||
|
SW1SKIN
|
||||||
|
SW1SKULL
|
||||||
|
SW1SLAD
|
||||||
|
SW1STARG
|
||||||
|
SW1STON1
|
||||||
|
SW1STON2
|
||||||
|
SW1STON6
|
||||||
|
SW1STONE
|
||||||
|
SW1STRTN
|
||||||
|
SW1TEK
|
||||||
|
SW1VINE
|
||||||
|
SW1WDMET
|
||||||
|
SW1WOOD
|
||||||
|
SW1ZIM
|
||||||
|
SW2BLUE
|
||||||
|
SW2BRCOM
|
||||||
|
SW2BRIK
|
||||||
|
SW2BRN1
|
||||||
|
SW2BRN2
|
||||||
|
SW2BRNGN
|
||||||
|
SW2BROWN
|
||||||
|
SW2CMT
|
||||||
|
SW2COMM
|
||||||
|
SW2COMP
|
||||||
|
SW2DIRT
|
||||||
|
SW2EXIT
|
||||||
|
SW2GARG
|
||||||
|
SW2GRAY
|
||||||
|
SW2GRAY1
|
||||||
|
SW2GSTON
|
||||||
|
SW2HOT
|
||||||
|
SW2LION
|
||||||
|
SW2MARB
|
||||||
|
SW2MET2
|
||||||
|
SW2METAL
|
||||||
|
SW2MOD1
|
||||||
|
SW2PANEL
|
||||||
|
SW2PIPE
|
||||||
|
SW2ROCK
|
||||||
|
SW2SATYR
|
||||||
|
SW2SKIN
|
||||||
|
SW2SKULL
|
||||||
|
SW2SLAD
|
||||||
|
SW2STARG
|
||||||
|
SW2STON1
|
||||||
|
SW2STON2
|
||||||
|
SW2STON6
|
||||||
|
SW2STONE
|
||||||
|
SW2STRTN
|
||||||
|
SW2TEK
|
||||||
|
SW2VINE
|
||||||
|
SW2WDMET
|
||||||
|
SW2WOOD
|
||||||
|
SW2ZIM
|
||||||
|
TANROCK2
|
||||||
|
TANROCK3
|
||||||
|
TANROCK4
|
||||||
|
TANROCK5
|
||||||
|
TANROCK7
|
||||||
|
TANROCK8
|
||||||
|
TEKBRON1
|
||||||
|
TEKBRON2
|
||||||
|
TEKGREN1
|
||||||
|
TEKGREN2
|
||||||
|
TEKGREN3
|
||||||
|
TEKGREN4
|
||||||
|
TEKGREN5
|
||||||
|
TEKLITE
|
||||||
|
TEKLITE2
|
||||||
|
TEKWALL1
|
||||||
|
TEKWALL4
|
||||||
|
TEKWALL6
|
||||||
|
WOOD1
|
||||||
|
WOOD10
|
||||||
|
WOOD12
|
||||||
|
WOOD3
|
||||||
|
WOOD4
|
||||||
|
WOOD5
|
||||||
|
WOOD6
|
||||||
|
WOOD7
|
||||||
|
WOOD8
|
||||||
|
WOOD9
|
||||||
|
WOODGARG
|
||||||
|
WOODMET1
|
||||||
|
WOODMET2
|
||||||
|
WOODMET3
|
||||||
|
WOODMET4
|
||||||
|
WOODVERT
|
||||||
|
ZDOORB1
|
||||||
|
ZDOORF1
|
||||||
|
ZELDOOR
|
||||||
|
ZIMMER1
|
||||||
|
ZIMMER2
|
||||||
|
ZIMMER3
|
||||||
|
ZIMMER4
|
||||||
|
ZIMMER5
|
||||||
|
ZIMMER7
|
||||||
|
ZIMMER8
|
||||||
|
ZZWOLF1
|
||||||
|
ZZWOLF10
|
||||||
|
ZZWOLF11
|
||||||
|
ZZWOLF12
|
||||||
|
ZZWOLF13
|
||||||
|
ZZWOLF2
|
||||||
|
ZZWOLF3
|
||||||
|
ZZWOLF4
|
||||||
|
ZZWOLF5
|
||||||
|
ZZWOLF6
|
||||||
|
ZZWOLF7
|
||||||
|
ZZWOLF9
|
||||||
|
ZZZFACE1
|
||||||
|
ZZZFACE2
|
||||||
|
ZZZFACE3
|
||||||
|
ZZZFACE4
|
||||||
|
ZZZFACE5
|
||||||
|
ZZZFACE6
|
||||||
|
ZZZFACE7
|
||||||
|
ZZZFACE8
|
||||||
|
ZZZFACE9
|
3
lumps/textures/freedm/.gitignore
vendored
Normal file
3
lumps/textures/freedm/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
texture1.lmp
|
||||||
|
texture2.lmp
|
||||||
|
pnames.lmp
|
3
lumps/textures/phase1/.gitignore
vendored
Normal file
3
lumps/textures/phase1/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
texture1.lmp
|
||||||
|
texture2.lmp
|
||||||
|
pnames.lmp
|
2
lumps/textures/phase2/.gitignore
vendored
Normal file
2
lumps/textures/phase2/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
texture1.lmp
|
||||||
|
pnames.lmp
|
|
@ -1,27 +1,22 @@
|
||||||
|
; Freedoom combined texture configuration file.
|
||||||
;
|
;
|
||||||
; Combined texture1 definition
|
; Format of textures:
|
||||||
; This is based on a doom2 texture1 def file
|
; TextureName Width Height
|
||||||
; All the textures which are in doom 1 and not doom 2
|
; * PatchName Xoffset Yoffset
|
||||||
; have been added, so essentially this should have all
|
|
||||||
; textures across both games and be able to play levels
|
|
||||||
; from both
|
|
||||||
;
|
;
|
||||||
; By Simon Howard
|
; This file is passed through the simplecpp script before processing,
|
||||||
|
; to allow specific sets of textures to be turned on or off.
|
||||||
|
; The following #defines are understood:
|
||||||
;
|
;
|
||||||
; Note: some of the textures, despite existing with the
|
; DOOM1 - Include textures that were available in doom.wad
|
||||||
; same name in both Doom1 and Doom2, are nonetheless
|
; DOOM2 - Include textures that were available in doom2.wad
|
||||||
; different textures. Where they differ, the Doom2
|
; ULTDOOM - Include doom.wad textures added in the Ultimate Doom
|
||||||
; version is used. Here is a partial list of some of the
|
; FREEDM - Include extra textures used in FreeDM
|
||||||
; textures affected:
|
|
||||||
;
|
;
|
||||||
; sw[12]brcom
|
; Usually we always build with -DDOOM1 -DDOOM2 regardless of the IWAD
|
||||||
; sw[12]brn1
|
; being built: there's no reason not to include the full set of textures
|
||||||
; sw[12]exit
|
; from both original WADs.
|
||||||
; sw[12]starg
|
|
||||||
; sw[12]ston2
|
|
||||||
; sw[12]stone
|
|
||||||
;
|
;
|
||||||
; 10/3/2003: modified build to use a single file with #defines
|
|
||||||
|
|
||||||
#ifdef FREEDM
|
#ifdef FREEDM
|
||||||
#define DOOM1
|
#define DOOM1
|
||||||
|
@ -32,10 +27,6 @@
|
||||||
#undef ULTDOOM
|
#undef ULTDOOM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
;Format of textures:
|
|
||||||
;TextureName Width Height
|
|
||||||
;* PatchName Xoffset Yoffset
|
|
||||||
|
|
||||||
; the AA* textures have to be first, some ports (glboom) rely
|
; the AA* textures have to be first, some ports (glboom) rely
|
||||||
; on it
|
; on it
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue