mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2024-11-15 16:51:31 +00:00
735e6d72c4
- Changed: Decal scales now use full precision fixed point numbers. - Changed: Keeping impact decals in their own statlist is enough to keep track of them for when one needs to be destroyed. There's no need to maintain a separate list for them. - Fixed: Decal actors did not spread their decals across neighboring walls. - Fixed: Decal groups did not initialize their IDs and could not be reliably used with the decal actor. - Fixed: Decals on moving polyobjects were not interpolated. R_RenderDecal() now uses the decal's LeftDistance to calculate its visible location, so it always stays in sync with the wall's vertices. This also lets me dump some code from the polyobjects that maintained the decals' (x, y) coordinates. Also, the decals' x and y information is redundant and can be removed. Doing this revealed a bug with slider decals and horizontal sliding: That is, it didn't work at all. I have opted to simply remove the horizontal sliding support so that I don't have to worry about what happens when a decal slides across the edge of a wall. - Fixed: DBaseDecal::LeftDistance was calculated as a 30.2 fixed point number. It should be 2.30 fixed point. SVN r35 (trunk)
91 lines
2.4 KiB
Text
91 lines
2.4 KiB
Text
# created on 4/12/2006 by James Bentler
|
|
CXX ?= g++
|
|
CPPFLAGS ?= -Wall -Wno-unused -O2 -fomit-frame-pointer
|
|
CXXFLAGS += -DHAVE_FILELENGTH -D__forceinline=inline -Izlib -IFLAC `sdl-config --cflags`
|
|
CXXFLAGS += -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
|
|
LDFLAGS += -lFLAC++ -lFLAC -lz -lfmod `sdl-config --libs`
|
|
|
|
NASM ?= nasm
|
|
NASMFLAGS += -f elf -DM_TARGET_LINUX
|
|
|
|
SRCDIRS = src/ $(addprefix src/,g_doom/ g_heretic/ g_hexen/ g_raven/ g_shared/ g_strife/ oplsynth/ sound/ sdl/)
|
|
INCLUDES = $(addprefix -I,$(SRCDIRS))
|
|
CXXFLAGS += $(INCLUDES)
|
|
|
|
RELEASEOBJ ?= releaseobj
|
|
DEBUGOBJ ?= debugobj
|
|
|
|
CSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
|
|
ASRCS = $(wildcard src/*.nas)
|
|
SRCS = $(ASRCS) $(CSRCS)
|
|
COBJFILES = $(notdir $(patsubst %.cpp,%.o,$(CSRCS)))
|
|
AOBJFILES = $(notdir $(patsubst %.nas,%.o,$(ASRCS)))
|
|
|
|
ZDOOM = zdoom
|
|
ZDOOMDEBUG = zdoomd
|
|
|
|
ifndef DEBUG
|
|
OBJDIR = $(RELEASEOBJ)
|
|
CXXFLAGS += -DNDEBUG
|
|
ZDOOMBIN = $(ZDOOM)
|
|
else
|
|
OBJDIR = $(DEBUGOBJ)
|
|
CXXFLAGS += -g
|
|
ZDOOMBIN = $(ZDOOMDEBUG)
|
|
endif
|
|
|
|
COBJS = $(addprefix $(OBJDIR)/,$(COBJFILES))
|
|
DEPS = $(patsubst %.o,%.d,$(COBJS))
|
|
OBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
|
|
|
|
# rule pattern for dependencies
|
|
define DEPBUILD_PATTERN
|
|
_dep_: _src_
|
|
echo "_dep_: _src_"
|
|
$(CXX) _src_ -MM $(CXXFLAGS) -MT "$$(patsubst %.d,%.o,_dep_) _dep_" -MF _dep_
|
|
-include _dep_
|
|
|
|
endef
|
|
|
|
# rule pattern for assembly files
|
|
define ASMBUILD_PATTERN
|
|
_obj_: _src_
|
|
echo "_obj_: _src_"
|
|
$(NASM) -o _obj_ $(NASMFLAGS) _src_
|
|
|
|
endef
|
|
|
|
all: $(ZDOOMBIN) zdoom.wad
|
|
|
|
$(ZDOOMBIN): $(DEPS) $(OBJDIR) $(OBJS)
|
|
$(CXX) $(LDFLAGS) $(OBJS) -o $(ZDOOMBIN)
|
|
|
|
# textually substitute in the _obj_ and the _src_ it depends on to create rules
|
|
$(foreach src,$(ASRCS), $(eval $(subst _src_,$(src),$(subst \
|
|
_obj_,$(OBJDIR)/$(patsubst %.nas,%.o,$(notdir $$$(src))),$(ASMBUILD_PATTERN)))))
|
|
|
|
# textually substitute in the _dep_ and the _src_ it depends on to create rules
|
|
$(foreach src,$(CSRCS), $(eval $(subst _src_,$(src),$(subst \
|
|
_dep_,$(OBJDIR)/$(patsubst %.cpp,%.d,$(notdir $$$(src))),$(DEPBUILD_PATTERN)))))
|
|
|
|
$(OBJDIR)/%.o:
|
|
$(CXX) -c $(CXXFLAGS) -o $@ -c $<
|
|
|
|
-include $(DEPS)
|
|
|
|
$(OBJDIR):
|
|
mkdir -p $(OBJDIR)
|
|
|
|
zdoom.wad:
|
|
make -C wadsrc/ -f Makefile
|
|
|
|
.PHONY : clean cleandeps cleanobjs
|
|
|
|
clean:
|
|
rm -f $(RELEASEOBJ)/* $(DEBUGOBJ)/* $(ZDOOMDEBUG) $(ZDOOM)
|
|
|
|
cleandeps:
|
|
rm -f $(RELEASEOBJ)/*.d $(DEBUGOBJ)/*.d
|
|
|
|
cleanobjs:
|
|
rm -f $(RELEASEOBJ)/*.o $(DEBUGOBJ)/*.o
|