- Unlimited the monster pain sounds in Hexen after playing as the Cleric a

while and killing centaurs with the flechette.
- Fixed: Moving to an old level in a hub caused the old player's inventory to
  spawn owned by the current player (but still hanging off the old player), so
  the game would hang when trying to delete it.
- Modified re2c so that it doesn't add a date to the file it generates. Thus,
  if it regenerates a file during a full rebuild, SVN won't see it as a change.
  Also updated it to 0.10.5.
- Fixed: SC_GetString() did not properly terminate sc_String when the last
  token in the file had no white space after it. Since I could not actually
  find the problem (it works fine in debug mode and I saw no logic errors),
  I decided to take this opportunity to reimplement it using an re2c-generated
  scanner. Now it's 1.6x faster than before and correctness is easier to
  verify.
- Fixed: FMODSoundRenderer::Shutdown() also needs to reset NumChannels.
- Added back the Manifest to zdoom.rc for non-VC8 Windows compilers.
- Fixed MinGW compilation again. Now it uses the same method as Makefile.linux
  to find all the source files so that it doesn't need to be manually updated
  each time source files are added or removed.
- Added the SVN revision number to the version string. A new tool is used to
  obtain this information from the svnversion command and write it into a
  header file. If you don't have the svn command line tools installed or didn't
  check it out from the repository, you can still build. I added some rules for
  this to Makefile.linux, and I assume they work because they do for
  Makefile.mingw.
- Fixed: MIDISong2 did not delete MusHeader in its destructor.


SVN r200 (trunk)
This commit is contained in:
Randy Heit 2006-06-20 20:30:39 +00:00
parent cf7d8ab43b
commit c54f2f66fc
32 changed files with 3198 additions and 2619 deletions

View file

@ -62,7 +62,7 @@ OBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
all: $(ZDOOMBIN) toolsandpk3 zdoom.pk3 all: $(ZDOOMBIN) toolsandpk3 zdoom.pk3
$(ZDOOMBIN): ccdv $(OBJDIR) $(OBJS) $(ZDOOMBIN): ccdv updaterev $(OBJDIR) $(OBJS)
$(CCDV) $(CXX) $(LDFLAGS) $(OBJDIR)/autostart.o \ $(CCDV) $(CXX) $(LDFLAGS) $(OBJDIR)/autostart.o \
$(filter-out %/autostart.o %/autozend.o,$(OBJS)) \ $(filter-out %/autostart.o %/autozend.o,$(OBJS)) \
$(OBJDIR)/autozend.o -o $(ZDOOMBIN) $(OBJDIR)/autozend.o -o $(ZDOOMBIN)
@ -84,21 +84,28 @@ $(OBJDIR):
mkdir $(OBJDIR) mkdir $(OBJDIR)
toolsandpk3: ccdv tools/makewad/makewad tools/dehsupp/dehsupp tools/xlatcc/xlatcc toolsandpk3: ccdv tools/makewad/makewad tools/dehsupp/dehsupp tools/xlatcc/xlatcc
make -C wadsrc/ $(MAKE) -C wadsrc/
zdoom.pk3: toolsandpk3 zdoom.pk3: toolsandpk3
ln -sf wadsrc/zdoom.pk3 ./ ln -sf wadsrc/zdoom.pk3 ./
tools/makewad/makewad: tools/makewad/makewad:
make -C tools/makewad/ $(MAKE) -C tools/makewad/
tools/dehsupp/dehsupp: tools/dehsupp/dehsupp:
make -C tools/dehsupp/ $(MAKE) -C tools/dehsupp/
tools/xlatcc/xlatcc: tools/xlatcc/xlatcc:
make -C tools/xlatcc/ $(MAKE) -C tools/xlatcc/
.PHONY : clean cleandeps cleanobjs distclean toolsandpk3 cleantools
updaterev: tools/updaterevision/updaterevision
@tools/updaterevision/updaterevision . src/svnrevision.h
tools/updaterevision/updaterevision:
$(MAKE) -C tools/updaterevision
.PHONY : clean cleandeps cleanobjs distclean toolsandpk3 cleantools updaterev
clean: cleanobjs clean: cleanobjs
rm -f $(ZDOOMDEBUG) $(ZDOOM) $(ZDOOM).map rm -f $(ZDOOMDEBUG) $(ZDOOM) $(ZDOOM).map
@ -130,6 +137,6 @@ cleanobjs:
ccdv: ccdv-posix.c ccdv: ccdv-posix.c
@gcc -Os -s ccdv-posix.c -o ccdv @gcc -Os -s ccdv-posix.c -o ccdv
ifneq ($(MAKECMDGOALS),clean) ifeq (,$(findstring $(MAKECMDGOALS),clean cleandeps cleanobjs distclean toolsandpk3 cleantools updaterev))
-include $(DEPS) -include $(DEPS)
endif endif

View file

@ -4,39 +4,20 @@
# Where did you install the FMOD API to? Change this line so that the build process can find it. # Where did you install the FMOD API to? Change this line so that the build process can find it.
FMODDIR = "c:/program files/fmodapi375win" FMODDIR = "c:/program files/fmodapi375win"
ifndef CC CC ?= gcc
CC=gcc CXX ?= g++
endif
ifndef CXX
CC=g++
endif
ifndef CONFIG CONFIG ?= Release
CONFIG=Release OPTLEVEL ?= 2
endif ARCH_TYPE ?= pentium
TUNE_TYPE ?= i686
ifndef OPTLEVEL RELEASETARGET ?= zdoomgcc.exe
OPTLEVEL=2 DEBUGTARGET ?= zdoomgccd.exe
endif DEBUGOBJDIR ?= debugobj
RELEASEOBJDIR ?= releaseobj
ifndef ARCH_TYPE
ARCH_TYPE=pentium
endif
ifndef TUNE_TYPE
TUNE_TYPE=athlon-xp
endif
ifndef RELEASETARGET
RELEASETARGET = zdoomgcc.exe
endif
ifndef DEBUGTARGET
DEBUGTARGET = zdoomgccd.exe
endif
DEBUGOBJDIR = debugobj
RELEASEOBJDIR = releaseobj
CCDV = @ccdv CCDV = @ccdv
RE2C = tools/re2c/re2c
CPPFLAGS = -DWIN32 -D_WIN32 -D_WINDOWS -DHAVE_STRUPR -DHAVE_FILELENGTH -DI_DO_NOT_LIKE_BIG_DOWNLOADS -D__forceinline=inline -MMD -Izlib -IFLAC -Isrc -Isrc/win32 -Isrc/g_doom -Isrc/g_heretic -I src/g_hexen -Isrc/g_raven -Isrc/g_strife -Isrc/g_shared -Isrc/oplsynth -Isrc/sound CPPFLAGS = -DWIN32 -D_WIN32 -D_WINDOWS -DHAVE_STRUPR -DHAVE_FILELENGTH -DI_DO_NOT_LIKE_BIG_DOWNLOADS -D__forceinline=inline -MMD -Izlib -IFLAC -Isrc -Isrc/win32 -Isrc/g_doom -Isrc/g_heretic -I src/g_hexen -Isrc/g_raven -Isrc/g_strife -Isrc/g_shared -Isrc/oplsynth -Isrc/sound
LDFLAGS += flac/libflac.a zlib/libz.a -lfmod -lwsock32 -lwinmm -lddraw -ldsound -ldxguid -ldinput8 -lole32 -luser32 -lgdi32 -lcomctl32 -lcomdlg32 -lsetupapi -lws2_32 -Wl,--subsystem,windows LDFLAGS += flac/libflac.a zlib/libz.a -lfmod -lwsock32 -lwinmm -lddraw -ldsound -ldxguid -ldinput8 -lole32 -luser32 -lgdi32 -lcomctl32 -lcomdlg32 -lsetupapi -lws2_32 -Wl,--subsystem,windows
@ -65,340 +46,42 @@ ifeq ($(CONFIG),Release)
TARGET = $(RELEASETARGET) TARGET = $(RELEASETARGET)
endif endif
# This must be first. SRCDIRS = src/ $(addprefix src/,g_doom/ g_heretic/ g_hexen/ g_raven/ g_shared/ g_strife/ oplsynth/ sound/ win32/)
OBJECTS = $(OBJDIR)/autostart.o VPATH = $(SRCDIRS)
OBJECTS += \ CPPSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
$(OBJDIR)/am_map.o \ CSRCS = $(wildcard $(addsuffix *.c,$(SRCDIRS)))
$(OBJDIR)/b_bot.o \ RCSRCS = $(wildcard $(addsuffix *.rc,$(SRCDIRS)))
$(OBJDIR)/b_func.o \ ifdef NOASM
$(OBJDIR)/b_game.o \ CFLAGS += -DNOASM
$(OBJDIR)/b_move.o \
$(OBJDIR)/b_think.o \
$(OBJDIR)/bbannouncer.o \
$(OBJDIR)/c_bind.o \
$(OBJDIR)/c_cmds.o \
$(OBJDIR)/c_console.o \
$(OBJDIR)/c_cvars.o \
$(OBJDIR)/c_dispatch.o \
$(OBJDIR)/c_expr.o \
$(OBJDIR)/cmdlib.o \
$(OBJDIR)/colormatcher.o \
$(OBJDIR)/configfile.o \
$(OBJDIR)/ct_chat.o \
$(OBJDIR)/d_dehacked.o \
$(OBJDIR)/d_main.o \
$(OBJDIR)/d_net.o \
$(OBJDIR)/d_netinfo.o \
$(OBJDIR)/d_protocol.o \
$(OBJDIR)/decallib.o \
$(OBJDIR)/decorations.o \
$(OBJDIR)/dobject.o \
$(OBJDIR)/dobjtype.o \
$(OBJDIR)/doomdef.o \
$(OBJDIR)/doomstat.o \
$(OBJDIR)/dsectoreffect.o \
$(OBJDIR)/dthinker.o \
$(OBJDIR)/f_finale.o \
$(OBJDIR)/f_wipe.o \
$(OBJDIR)/farchive.o \
$(OBJDIR)/files.o \
$(OBJDIR)/g_game.o \
$(OBJDIR)/g_hub.o \
$(OBJDIR)/g_level.o \
$(OBJDIR)/gameconfigfile.o \
$(OBJDIR)/gi.o \
$(OBJDIR)/hu_scores.o \
$(OBJDIR)/info.o \
$(OBJDIR)/infodefaults.o \
$(OBJDIR)/lumpconfigfile.o \
$(OBJDIR)/m_alloc.o \
$(OBJDIR)/m_argv.o \
$(OBJDIR)/m_bbox.o \
$(OBJDIR)/m_cheat.o \
$(OBJDIR)/m_fixed.o \
$(OBJDIR)/m_menu.o \
$(OBJDIR)/m_misc.o \
$(OBJDIR)/m_options.o \
$(OBJDIR)/m_png.o \
$(OBJDIR)/m_random.o \
$(OBJDIR)/mus2midi.o \
$(OBJDIR)/nodebuild.o \
$(OBJDIR)/nodebuild_classify_nosse2.o \
$(OBJDIR)/nodebuild_classify_sse2.o \
$(OBJDIR)/nodebuild_events.o \
$(OBJDIR)/nodebuild_extract.o \
$(OBJDIR)/nodebuild_gl.o \
$(OBJDIR)/nodebuild_utility.o \
$(OBJDIR)/p_acs.o \
$(OBJDIR)/p_buildmap.o \
$(OBJDIR)/p_ceiling.o \
$(OBJDIR)/p_conversation.o \
$(OBJDIR)/p_doors.o \
$(OBJDIR)/p_effect.o \
$(OBJDIR)/p_enemy.o \
$(OBJDIR)/p_floor.o \
$(OBJDIR)/p_interaction.o \
$(OBJDIR)/p_lights.o \
$(OBJDIR)/p_lnspec.o \
$(OBJDIR)/p_map.o \
$(OBJDIR)/p_maputl.o \
$(OBJDIR)/p_mobj.o \
$(OBJDIR)/p_pillar.o \
$(OBJDIR)/p_plats.o \
$(OBJDIR)/p_pspr.o \
$(OBJDIR)/p_saveg.o \
$(OBJDIR)/p_sectors.o \
$(OBJDIR)/p_setup.o \
$(OBJDIR)/p_sight.o \
$(OBJDIR)/p_spec.o \
$(OBJDIR)/p_switch.o \
$(OBJDIR)/p_teleport.o \
$(OBJDIR)/p_terrain.o \
$(OBJDIR)/p_things.o \
$(OBJDIR)/p_tick.o \
$(OBJDIR)/p_trace.o \
$(OBJDIR)/p_user.o \
$(OBJDIR)/p_writemap.o \
$(OBJDIR)/p_xlat.o \
$(OBJDIR)/po_man.o \
$(OBJDIR)/r_anim.o \
$(OBJDIR)/r_bsp.o \
$(OBJDIR)/r_data.o \
$(OBJDIR)/r_draw.o \
$(OBJDIR)/r_drawt.o \
$(OBJDIR)/r_main.o \
$(OBJDIR)/r_plane.o \
$(OBJDIR)/r_segs.o \
$(OBJDIR)/r_sky.o \
$(OBJDIR)/r_things.o \
$(OBJDIR)/r_polymost.o \
$(OBJDIR)/s_advsound.o \
$(OBJDIR)/s_environment.o \
$(OBJDIR)/s_playlist.o \
$(OBJDIR)/s_sndseq.o \
$(OBJDIR)/s_sound.o \
$(OBJDIR)/sc_man.o \
$(OBJDIR)/skins.o \
$(OBJDIR)/st_stuff.o \
$(OBJDIR)/stats.o \
$(OBJDIR)/stringtable.o \
$(OBJDIR)/tables.o \
$(OBJDIR)/tempfiles.o \
$(OBJDIR)/thingdef.o \
$(OBJDIR)/thingdef_codeptr.o \
$(OBJDIR)/thingdef_exp.o \
$(OBJDIR)/v_collection.o \
$(OBJDIR)/v_draw.o \
$(OBJDIR)/v_font.o \
$(OBJDIR)/v_palette.o \
$(OBJDIR)/v_pfx.o \
$(OBJDIR)/v_text.o \
$(OBJDIR)/v_video.o \
$(OBJDIR)/vectors.o \
$(OBJDIR)/name.o \
$(OBJDIR)/zstring.o \
$(OBJDIR)/zstrformat.o \
$(OBJDIR)/w_wad.o \
$(OBJDIR)/wi_stuff.o \
$(OBJDIR)/a_arachnotron.o \
$(OBJDIR)/a_archvile.o \
$(OBJDIR)/a_bossbrain.o \
$(OBJDIR)/a_bruiser.o \
$(OBJDIR)/a_cacodemon.o \
$(OBJDIR)/a_cyberdemon.o \
$(OBJDIR)/a_demon.o \
$(OBJDIR)/a_doomhealth.o \
$(OBJDIR)/a_doomimp.o \
$(OBJDIR)/a_doommisc.o \
$(OBJDIR)/a_doomplayer.o \
$(OBJDIR)/a_doomweaps.o \
$(OBJDIR)/a_fatso.o \
$(OBJDIR)/a_keen.o \
$(OBJDIR)/a_lostsoul.o \
$(OBJDIR)/a_painelemental.o \
$(OBJDIR)/a_possessed.o \
$(OBJDIR)/a_revenant.o \
$(OBJDIR)/a_scriptedmarine.o \
$(OBJDIR)/a_spidermaster.o \
$(OBJDIR)/doom_sbar.o \
$(OBJDIR)/a_beast.o \
$(OBJDIR)/a_chicken.o \
$(OBJDIR)/a_clink.o \
$(OBJDIR)/a_dsparil.o \
$(OBJDIR)/a_hereticartifacts.o \
$(OBJDIR)/a_hereticimp.o \
$(OBJDIR)/a_heretickeys.o \
$(OBJDIR)/a_hereticmisc.o \
$(OBJDIR)/a_hereticplayer.o \
$(OBJDIR)/a_hereticweaps.o \
$(OBJDIR)/a_ironlich.o \
$(OBJDIR)/a_knight.o \
$(OBJDIR)/a_mummy.o \
$(OBJDIR)/a_snake.o \
$(OBJDIR)/a_wizard.o \
$(OBJDIR)/heretic_sbar.o \
$(OBJDIR)/a_bats.o \
$(OBJDIR)/a_bishop.o \
$(OBJDIR)/a_blastradius.o \
$(OBJDIR)/a_boostarmor.o \
$(OBJDIR)/a_centaur.o \
$(OBJDIR)/a_clericboss.o \
$(OBJDIR)/a_clericflame.o \
$(OBJDIR)/a_clericholy.o \
$(OBJDIR)/a_clericmace.o \
$(OBJDIR)/a_clericplayer.o \
$(OBJDIR)/a_clericstaff.o \
$(OBJDIR)/a_demons.o \
$(OBJDIR)/a_dragon.o \
$(OBJDIR)/a_ettin.o \
$(OBJDIR)/a_fighteraxe.o \
$(OBJDIR)/a_fighterboss.o \
$(OBJDIR)/a_fighterhammer.o \
$(OBJDIR)/a_fighterplayer.o \
$(OBJDIR)/a_fighterquietus.o \
$(OBJDIR)/a_firedemon.o \
$(OBJDIR)/a_flechette.o \
$(OBJDIR)/a_fog.o \
$(OBJDIR)/a_healingradius.o \
$(OBJDIR)/a_heresiarch.o \
$(OBJDIR)/a_hexenspecialdecs.o \
$(OBJDIR)/a_iceguy.o \
$(OBJDIR)/a_korax.o \
$(OBJDIR)/a_mageboss.o \
$(OBJDIR)/a_magecone.o \
$(OBJDIR)/a_magelightning.o \
$(OBJDIR)/a_mageplayer.o \
$(OBJDIR)/a_magestaff.o \
$(OBJDIR)/a_magewand.o \
$(OBJDIR)/a_mana.o \
$(OBJDIR)/a_pig.o \
$(OBJDIR)/a_puzzleitems.o \
$(OBJDIR)/a_serpent.o \
$(OBJDIR)/a_spike.o \
$(OBJDIR)/a_summon.o \
$(OBJDIR)/a_teleportother.o \
$(OBJDIR)/a_weaponpiece.o \
$(OBJDIR)/a_weaponpieces.o \
$(OBJDIR)/a_wraith.o \
$(OBJDIR)/hexen_sbar.o \
$(OBJDIR)/a_artiegg.o \
$(OBJDIR)/a_artitele.o \
$(OBJDIR)/a_minotaur.o \
$(OBJDIR)/a_ravenambient.o \
$(OBJDIR)/a_acolyte.o \
$(OBJDIR)/a_alienspectres.o \
$(OBJDIR)/a_coin.o \
$(OBJDIR)/a_crusader.o \
$(OBJDIR)/a_entityboss.o \
$(OBJDIR)/a_inquisitor.o \
$(OBJDIR)/a_loremaster.o \
$(OBJDIR)/a_macil.o \
$(OBJDIR)/a_oracle.o \
$(OBJDIR)/a_programmer.o \
$(OBJDIR)/a_reaver.o \
$(OBJDIR)/a_rebels.o \
$(OBJDIR)/a_sentinel.o \
$(OBJDIR)/a_spectral.o \
$(OBJDIR)/a_stalker.o \
$(OBJDIR)/a_strifeammo.o \
$(OBJDIR)/a_strifebishop.o \
$(OBJDIR)/a_strifeitems.o \
$(OBJDIR)/a_strifeplayer.o \
$(OBJDIR)/a_strifestuff.o \
$(OBJDIR)/a_strifeweapons.o \
$(OBJDIR)/a_templar.o \
$(OBJDIR)/a_thingstoblowup.o \
$(OBJDIR)/strife_sbar.o \
$(OBJDIR)/a_action.o \
$(OBJDIR)/a_artifacts.o \
$(OBJDIR)/a_bridge.o \
$(OBJDIR)/a_camera.o \
$(OBJDIR)/a_debris.o \
$(OBJDIR)/a_decals.o \
$(OBJDIR)/a_flashfader.o \
$(OBJDIR)/a_fountain.o \
$(OBJDIR)/a_hatetarget.o \
$(OBJDIR)/a_keys.o \
$(OBJDIR)/a_lightning.o \
$(OBJDIR)/a_movingcamera.o \
$(OBJDIR)/a_pickups.o \
$(OBJDIR)/a_quake.o \
$(OBJDIR)/a_secrettrigger.o \
$(OBJDIR)/a_sectoraction.o \
$(OBJDIR)/a_sharedmisc.o \
$(OBJDIR)/a_skies.o \
$(OBJDIR)/a_soundenvironment.o \
$(OBJDIR)/a_soundsequence.o \
$(OBJDIR)/a_spark.o \
$(OBJDIR)/a_waterzone.o \
$(OBJDIR)/a_weapons.o \
$(OBJDIR)/hudmessages.o \
$(OBJDIR)/shared_sbar.o \
$(OBJDIR)/fmopl.o \
$(OBJDIR)/mlkernel.o \
$(OBJDIR)/mlopl.o \
$(OBJDIR)/mlopl_io.o \
$(OBJDIR)/opl_mus_player.o \
$(OBJDIR)/altsound.o \
$(OBJDIR)/altsoundmixer.o \
$(OBJDIR)/fmodsound.o \
$(OBJDIR)/i_music.o \
$(OBJDIR)/i_sound.o \
$(OBJDIR)/music_cd.o \
$(OBJDIR)/music_flac.o \
$(OBJDIR)/music_midi_midiout.o \
$(OBJDIR)/music_midi_stream.o \
$(OBJDIR)/music_midi_timidity.o \
$(OBJDIR)/music_mod.o \
$(OBJDIR)/music_mus_midiout.o \
$(OBJDIR)/music_mus_opl.o \
$(OBJDIR)/music_spc.o \
$(OBJDIR)/music_stream.o \
$(OBJDIR)/sample_flac.o \
$(OBJDIR)/helperthread.o \
$(OBJDIR)/i_input.o \
$(OBJDIR)/i_net.o \
$(OBJDIR)/eaxedit.o \
$(OBJDIR)/i_cd.o \
$(OBJDIR)/i_main.o \
$(OBJDIR)/i_system.o \
$(OBJDIR)/hardware.o \
$(OBJDIR)/i_crash.o \
$(OBJDIR)/i_movie.o \
$(OBJDIR)/win32video.o \
$(OBJDIR)/zdoom.o
ifndef NOASM
OBJECTS += \
$(OBJDIR)/a.o \
$(OBJDIR)/misc.o \
$(OBJDIR)/tmap.o \
$(OBJDIR)/tmap2.o \
$(OBJDIR)/tmap3.o
CPPFLAGS := -DUSEASM=1 $(CPPFLAGS)
else else
CPPFLAGS := -DNOASM $(CPPFLAGS) ASRCS = $(wildcard src/*.nas)
CFLAGS += -DUSEASM=1
endif endif
SRCS = $(CSRCS) $(CPPSRCS) $(ASRCS)
CPPOBJFILES = $(notdir $(CPPSRCS:%.cpp=%.o))
COBJFILES = $(notdir $(CSRCS:%.c=%.o))
AOBJFILES = $(notdir $(ASRCS:%.nas=%.o))
RCOBJFILES = $(notdir $(RCSRCS:%.rc=%.o))
# This must be last COBJS = $(addprefix $(OBJDIR)/,$(CPPOBJFILES) $(COBJFILES) $(RCOBJFILES))
OBJECTS += $(OBJDIR)/autozend.o DEPS = $(patsubst %.o,%.d,$(COBJS))
UNORDEREDOBJS = $(addprefix $(OBJDIR)/,$(AOBJFILES)) $(COBJS)
VPATH = src src/g_doom src/g_heretic src/g_hexen src/g_raven src/g_strife src/g_shared src/oplsynth src/sound src/win32 OBJS = $(OBJDIR)/autostart.o $(filter-out %/autostart.o %/autozend.o,$(UNORDEREDOBJS)) $(OBJDIR)/autozend.o
.PHONY: clean all
all: $(TARGET) all: $(TARGET)
# This file needs special handling so that it actually gets compiled with SSE2 support.
$(OBJDIR)/nodebuild_classify_sse2.o: src/nodebuild_classify_sse2.cpp
$(CCDV) $(CXX) $(CXXFLAGS) -msse2 -mfpmath=sse -c -o $@ $<
src/sc_man_scanner.h: src/sc_man_scanner.re
$(CCDV) $(RE2C) -s -o $@ $<
$(OBJDIR)/%.o : %.cpp $(OBJDIR)/%.o : %.cpp
$(CCDV) $(CXX) $(CXXFLAGS) -o $@ -c $< $(CCDV) $(CXX) $(CXXFLAGS) -o $@ -c $<
# This file needs special handling so that it actually gets compiled with SSE2 support.
$(OBJDIR)/nodebuild_classify_sse2.o: nodebuild_classify_sse2.cpp
$(CCDV) $(CXX) $(CXXFLAGS) -msse2 -mfpmath=sse -c -o $@ $<
$(OBJDIR)/%.o : %.nas $(OBJDIR)/%.o : %.nas
$(CCDV) nasmw -o $@ -f win32 $< $(CCDV) nasmw -o $@ -f win32 $<
@ -406,8 +89,8 @@ $(OBJDIR)/%.o : %.rc
$(CCDV) windres --include-dir=src/win32 -o $@ -i $< $(CCDV) windres --include-dir=src/win32 -o $@ -i $<
$(TARGET): testobjdir $(OBJECTS) $(TARGET): testobjdir updaterev $(OBJS)
$(CCDV) $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(CCDV) $(CXX) -o $@ $(OBJS) $(LDFLAGS)
clean: clean:
-del /q /f $(RELEASETARGET) 2>nul -del /q /f $(RELEASETARGET) 2>nul
@ -415,9 +98,22 @@ clean:
-del /q /f $(DEBUGOBJDIR) 2>nul -del /q /f $(DEBUGOBJDIR) 2>nul
-del /q /f $(RELEASEOBJDIR) 2>nul -del /q /f $(RELEASEOBJDIR) 2>nul
cleandep:
-del /q /f $(DEBUGOBJDIR)\*.d 2>nul
-del /q /f $(RELEASEOBJDIR)\*.d 2>nul
testobjdir: testobjdir:
-@if not exist $(OBJDIR) mkdir $(OBJDIR) -@if not exist $(OBJDIR) mkdir $(OBJDIR)
ifneq ($(MAKECMDGOALS),clean) updaterev: tools/updaterevision/updaterevision.exe
-include $(OBJECTS:%.o=%.d) @tools/updaterevision/updaterevision . src/svnrevision.h
tools/updaterevision/updaterevision.exe:
$(MAKE) -C tools/updaterevision
ifeq (,$(findstring $(MAKECMDGOALS),clean cleandep updaterev))
-include $(DEPS)
endif endif
.PHONY: clean all updaterev testobjdir cleandep

View file

@ -473,7 +473,8 @@ void mainCRTStartup(void)
lstrcmpi(gAction+8, "ld") == 0)) || lstrcmpi(gAction+8, "ld") == 0)) ||
(extlen == 3 && (extlen == 3 &&
(lstrcmpi(gAction+8, "gcc") == 0 || (lstrcmpi(gAction+8, "gcc") == 0 ||
lstrcmpi(gAction+8, "g++") == 0))) lstrcmpi(gAction+8, "g++") == 0)) ||
(extlen == 7 && lstrcmpi(gAction+8, "windres") == 0))
{ {
gcc = 1; gcc = 1;
} }

View file

@ -1,3 +1,33 @@
June 20, 2006
- Unlimited the monster pain sounds in Hexen after playing as the Cleric a
while and killing centaurs with the flechette.
- Fixed: Moving to an old level in a hub caused the old player's inventory to
spawn owned by the current player (but still hanging off the old player), so
the game would hang when trying to delete it.
- Modified re2c so that it doesn't add a date to the file it generates. Thus,
if it regenerates a file during a full rebuild, SVN won't see it as a change.
Also updated it to 0.10.5.
- Fixed: SC_GetString() did not properly terminate sc_String when the last
token in the file had no white space after it. Since I could not actually
find the problem (it works fine in debug mode and I saw no logic errors),
I decided to take this opportunity to reimplement it using an re2c-generated
scanner. Now it's 1.6x faster than before and correctness is easier to
verify.
June 19, 2006
- Fixed: FMODSoundRenderer::Shutdown() also needs to reset NumChannels.
- Added back the Manifest to zdoom.rc for non-VC8 Windows compilers.
- Fixed MinGW compilation again. Now it uses the same method as Makefile.linux
to find all the source files so that it doesn't need to be manually updated
each time source files are added or removed.
- Added the SVN revision number to the version string. A new tool is used to
obtain this information from the svnversion command and write it into a
header file. If you don't have the svn command line tools installed or didn't
check it out from the repository, you can still build. I added some rules for
this to Makefile.linux, and I assume they work because they do for
Makefile.mingw.
- Fixed: MIDISong2 did not delete MusHeader in its destructor.
June 19, 2006 (Changes by Graf Zahl) June 19, 2006 (Changes by Graf Zahl)
- Removed the unused sfx_ variables for the chainsaw sounds. - Removed the unused sfx_ variables for the chainsaw sounds.
- Fixed map name checks in idclev, hxvisit, for +map and the titlemap. - Fixed map name checks in idclev, hxvisit, for +map and the titlemap.

View file

@ -1138,7 +1138,7 @@ FArchive &FArchive::ReadObject (DObject* &obj, PClass *wanttype)
// But also create a new one so that we can get past the one // But also create a new one so that we can get past the one
// stored in the archive. // stored in the archive.
DObject *tempobj = type->CreateNew (); AActor *tempobj = static_cast<AActor *>(type->CreateNew ());
MapObject (obj != NULL ? obj : tempobj); MapObject (obj != NULL ? obj : tempobj);
tempobj->Serialize (*this); tempobj->Serialize (*this);
tempobj->CheckIfSerialized (); tempobj->CheckIfSerialized ();
@ -1146,6 +1146,13 @@ FArchive &FArchive::ReadObject (DObject* &obj, PClass *wanttype)
// around just so that the load will succeed. // around just so that the load will succeed.
if (obj != NULL) if (obj != NULL)
{ {
// When the temporary player's inventory items were loaded,
// they became owned by the real player. Undo that now.
for (AInventory *item = tempobj->Inventory;
item != NULL; item = item->Inventory)
{
item->Owner = tempobj;
}
tempobj->Destroy (); tempobj->Destroy ();
} }
else else
@ -1173,12 +1180,17 @@ FArchive &FArchive::ReadObject (DObject* &obj, PClass *wanttype)
// Printf ("Use player class: %s (%u)\n", type->Name, m_File->Tell()); // Printf ("Use player class: %s (%u)\n", type->Name, m_File->Tell());
obj = players[playerNum].mo; obj = players[playerNum].mo;
DObject *tempobj = type->CreateNew (); AActor *tempobj = static_cast<AActor *>(type->CreateNew ());
MapObject (obj != NULL ? obj : tempobj); MapObject (obj != NULL ? obj : tempobj);
tempobj->Serialize (*this); tempobj->Serialize (*this);
tempobj->CheckIfSerialized (); tempobj->CheckIfSerialized ();
if (obj != NULL) if (obj != NULL)
{ {
for (AInventory *item = tempobj->Inventory;
item != NULL; item = item->Inventory)
{
item->Owner = tempobj;
}
tempobj->Destroy (); tempobj->Destroy ();
} }
else else

View file

@ -687,7 +687,9 @@ void AActor::DestroyAllInventory ()
{ {
while (Inventory != NULL) while (Inventory != NULL)
{ {
Inventory->Destroy (); AInventory *item = Inventory;
item->Destroy ();
assert (item != Inventory);
} }
} }

View file

@ -20,6 +20,7 @@
#include "w_wad.h" #include "w_wad.h"
#include "cmdlib.h" #include "cmdlib.h"
#include "m_misc.h" #include "m_misc.h"
#include "templates.h"
// MACROS ------------------------------------------------------------------ // MACROS ------------------------------------------------------------------
@ -263,8 +264,7 @@ void SC_SetEscape (bool esc)
BOOL SC_GetString () BOOL SC_GetString ()
{ {
char *text; char *marker, *tok;
BOOL foundToken;
CheckOpen(); CheckOpen();
if (AlreadyGot) if (AlreadyGot)
@ -272,154 +272,16 @@ BOOL SC_GetString ()
AlreadyGot = false; AlreadyGot = false;
return true; return true;
} }
foundToken = false;
sc_Crossed = false; sc_Crossed = false;
if (ScriptPtr >= ScriptEndPtr) if (ScriptPtr >= ScriptEndPtr)
{ {
sc_End = true; sc_End = true;
return false; return false;
} }
while (foundToken == false)
{
while (ScriptPtr < ScriptEndPtr && *ScriptPtr <= ' ')
{
if (*ScriptPtr++ == '\n')
{
sc_Line++;
sc_Crossed = true;
}
}
if (ScriptPtr >= ScriptEndPtr)
{
sc_End = true;
return false;
}
if ((CMode || *ScriptPtr != ASCII_COMMENT) &&
!(ScriptPtr[0] == CPP_COMMENT && ScriptPtr < ScriptEndPtr - 1 &&
(ScriptPtr[1] == CPP_COMMENT || ScriptPtr[1] == C_COMMENT)))
{ // Found a token
foundToken = true;
}
else
{ // Skip comment
if (ScriptPtr[0] == CPP_COMMENT && ScriptPtr[1] == C_COMMENT)
{ // C comment
while (ScriptPtr[0] != C_COMMENT || ScriptPtr[1] != CPP_COMMENT)
{
if (ScriptPtr[0] == '\n')
{
sc_Line++;
sc_Crossed = true;
}
ScriptPtr++;
if (ScriptPtr >= ScriptEndPtr - 1)
{
sc_End = true;
return false;
}
}
ScriptPtr += 2;
}
else
{ // C++ comment
while (*ScriptPtr++ != '\n')
{
if (ScriptPtr >= ScriptEndPtr)
{
sc_End = true;
return false;
}
}
sc_Line++;
sc_Crossed = true;
}
}
}
text = sc_String;
if (*ScriptPtr == ASCII_QUOTE)
{ // Quoted string
ScriptPtr++;
while (*ScriptPtr != ASCII_QUOTE)
{
// Hack alert: Do not allow escaped quotation marks when parsing DECORATE!
if (*ScriptPtr=='\\' && ScriptPtr[1]=='"' && Escape)
{
*text++ = '"';
ScriptPtr+=2;
}
else
{
*text++ = *ScriptPtr++;
}
if (ScriptPtr == ScriptEndPtr
|| text == &sc_String[MAX_STRING_SIZE-1])
{
break;
}
}
ScriptPtr++;
}
else
{ // Normal string
static const char *stopchars;
if (CMode) // In case the generated scanner does not use marker, avoid compiler warnings.
{ marker;
stopchars = CMODE_STOPCHARS; #include "sc_man_scanner.h"
// '-' can be its own token, or it can be part of a negative number
if (*ScriptPtr == '-')
{
*text++ = '-';
ScriptPtr++;
if (ScriptPtr < ScriptEndPtr && *ScriptPtr >= '0' && *ScriptPtr <= '9')
{
stopchars = CMODE_STOPCHARS_NODECIMAL;
goto grabtoken;
}
goto gottoken;
}
else if (*ScriptPtr >= '0' && *ScriptPtr <= '9')
{
stopchars = CMODE_STOPCHARS_NODECIMAL;
}
else if (*ScriptPtr == '.' && ScriptPtr[1] >= '0' && ScriptPtr[1] <= '9')
{
stopchars = CMODE_STOPCHARS_NODECIMAL;
}
}
else
{
stopchars = NORMAL_STOPCHARS;
}
if (strchr (stopchars, *ScriptPtr))
{
*text++ = *ScriptPtr++;
// [GRB] Allow 2-char operators
if (CMode && strchr ("&=|<>", *ScriptPtr))
*text++ = *ScriptPtr++;
}
else
{
grabtoken:
while ((*ScriptPtr > ' ') && (strchr (stopchars, *ScriptPtr) == NULL)
&& (CMode || *ScriptPtr != ASCII_COMMENT)
&& !(ScriptPtr[0] == CPP_COMMENT && (ScriptPtr < ScriptEndPtr - 1) &&
(ScriptPtr[1] == CPP_COMMENT || ScriptPtr[1] == C_COMMENT)))
{
*text++ = *ScriptPtr++;
if (ScriptPtr == ScriptEndPtr
|| text == &sc_String[MAX_STRING_SIZE-1])
{
break;
}
}
}
}
gottoken:
*text = 0;
sc_StringLen = text - sc_String;
return true;
} }
//========================================================================== //==========================================================================

540
src/sc_man_scanner.h Normal file
View file

@ -0,0 +1,540 @@
/* Generated by re2c 0.10.5 */
#line 1 "src/sc_man_scanner.re"
#define YYCTYPE char
#define YYCURSOR cursor
#define YYLIMIT limit
#define YYMARKER marker
// This buffer must be as large as the largest YYFILL call
YYCTYPE eofbuf[2];
#define YYFILL(n) { if(n == 2) { eofbuf[0] = *cursor; } eofbuf[n-1] = '\n'; cursor = eofbuf; limit = eofbuf + n - 1; sc_End = true; }
//#define YYDEBUG(s,c) { Printf ("%d: %02x\n", s, c); }
#define YYDEBUG(s,c)
char *cursor = ScriptPtr;
char *limit = ScriptEndPtr;
std:
tok = YYCURSOR;
#line 32 "src/sc_man_scanner.re"
if (!CMode)
{
#line 26 "src/sc_man_scanner.h"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= '/') {
if(yych <= ' ') {
if(yych == 0x0A) goto yy8;
goto yy6;
} else {
if(yych == '"') goto yy10;
if(yych <= '.') goto yy14;
goto yy3;
}
} else {
if(yych <= '<') {
if(yych == ';') goto yy4;
goto yy14;
} else {
if(yych <= '=') goto yy12;
if(yych <= 'z') goto yy14;
if(yych <= '}') goto yy12;
goto yy14;
}
}
yy2:
#line 46 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 55 "src/sc_man_scanner.h"
yy3:
yych = *++YYCURSOR;
if(yych == '*') goto yy28;
if(yych == '/') goto yy24;
goto yy19;
yy4:
yych = *++YYCURSOR;
goto yy25;
#line 48 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 66 "src/sc_man_scanner.h"
yy6:
++YYCURSOR;
yych = *YYCURSOR;
goto yy23;
yy7:
#line 39 "src/sc_man_scanner.re"
{ goto std; }
#line 74 "src/sc_man_scanner.h"
yy8:
++YYCURSOR;
#line 40 "src/sc_man_scanner.re"
{ goto newline; }
#line 79 "src/sc_man_scanner.h"
yy10:
++YYCURSOR;
#line 41 "src/sc_man_scanner.re"
{ goto string; }
#line 84 "src/sc_man_scanner.h"
yy12:
++YYCURSOR;
#line 43 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 89 "src/sc_man_scanner.h"
yy14:
yych = *++YYCURSOR;
goto yy17;
yy15:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '/') {
if(yych <= '"') {
if(yych == '!') goto yy18;
goto yy2;
} else {
if(yych == '*') goto yy2;
if(yych <= '.') goto yy18;
goto yy2;
}
} else {
if(yych <= '<') {
if(yych == ';') goto yy2;
goto yy18;
} else {
if(yych <= '=') goto yy2;
if(yych <= 'z') goto yy18;
if(yych <= '}') goto yy2;
goto yy18;
}
}
yy16:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy17:
if(yych <= ':') {
if(yych <= '"') {
if(yych == '!') goto yy16;
goto yy2;
} else {
if(yych == '/') goto yy15;
goto yy16;
}
} else {
if(yych <= '=') {
if(yych == '<') goto yy16;
goto yy2;
} else {
if(yych <= 'z') goto yy16;
if(yych <= '}') goto yy2;
goto yy16;
}
}
yy18:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy19:
if(yych <= '/') {
if(yych <= '"') {
if(yych == '!') goto yy18;
goto yy2;
} else {
if(yych == '*') goto yy20;
if(yych <= '.') goto yy18;
goto yy15;
}
} else {
if(yych <= '<') {
if(yych == ';') goto yy2;
goto yy18;
} else {
if(yych <= '=') goto yy2;
if(yych <= 'z') goto yy18;
if(yych <= '}') goto yy2;
goto yy18;
}
}
yy20:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych == '*') goto yy20;
if(yych == '/') goto yy15;
goto yy2;
yy22:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy23:
if(yych == 0x0A) goto yy7;
if(yych <= ' ') goto yy22;
goto yy7;
yy24:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy25:
if(yych != 0x0A) goto yy24;
++YYCURSOR;
#line 37 "src/sc_man_scanner.re"
{ goto newline; }
#line 189 "src/sc_man_scanner.h"
yy28:
++YYCURSOR;
#line 36 "src/sc_man_scanner.re"
{ goto comment; }
#line 194 "src/sc_man_scanner.h"
}
#line 49 "src/sc_man_scanner.re"
}
else
{
#line 202 "src/sc_man_scanner.h"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= '9') {
if(yych <= '%') {
if(yych <= ' ') {
if(yych == 0x0A) goto yy36;
goto yy34;
} else {
if(yych == '"') goto yy38;
goto yy48;
}
} else {
if(yych <= ',') {
if(yych <= '&') goto yy43;
if(yych <= '\'') goto yy49;
goto yy48;
} else {
if(yych <= '-') goto yy40;
if(yych <= '.') goto yy48;
if(yych >= '0') goto yy41;
}
}
} else {
if(yych <= '^') {
if(yych <= '=') {
if(yych <= ';') goto yy48;
if(yych <= '<') goto yy46;
goto yy44;
} else {
if(yych <= '>') goto yy47;
if(yych <= '@') goto yy48;
if(yych <= 'Z') goto yy49;
goto yy48;
}
} else {
if(yych <= 'z') {
if(yych == '`') goto yy48;
goto yy49;
} else {
if(yych == '|') goto yy45;
if(yych <= '~') goto yy48;
goto yy49;
}
}
}
yych = *++YYCURSOR;
if(yych == '*') goto yy73;
if(yych == '/') goto yy71;
yy33:
#line 67 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 256 "src/sc_man_scanner.h"
yy34:
++YYCURSOR;
yych = *YYCURSOR;
goto yy70;
yy35:
#line 57 "src/sc_man_scanner.re"
{ goto std; }
#line 264 "src/sc_man_scanner.h"
yy36:
++YYCURSOR;
#line 58 "src/sc_man_scanner.re"
{ goto newline; }
#line 269 "src/sc_man_scanner.h"
yy38:
++YYCURSOR;
#line 59 "src/sc_man_scanner.re"
{ goto string; }
#line 274 "src/sc_man_scanner.h"
yy40:
yych = *++YYCURSOR;
if(yych <= '/') goto yy33;
if(yych <= '9') goto yy67;
goto yy33;
yy41:
++YYCURSOR;
if((yych = *YYCURSOR) <= '@') {
if(yych <= '-') {
if(yych == '\'') goto yy51;
} else {
if(yych <= '.') goto yy65;
if(yych <= '/') goto yy42;
if(yych <= '9') goto yy63;
}
} else {
if(yych <= '_') {
if(yych <= 'Z') goto yy51;
if(yych >= '_') goto yy51;
} else {
if(yych <= '`') goto yy42;
if(yych <= 'z') goto yy51;
if(yych >= 0x7F) goto yy51;
}
}
yy42:
#line 61 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 303 "src/sc_man_scanner.h"
yy43:
yych = *++YYCURSOR;
if(yych == '&') goto yy61;
goto yy33;
yy44:
yych = *++YYCURSOR;
if(yych == '=') goto yy59;
goto yy33;
yy45:
yych = *++YYCURSOR;
if(yych == '|') goto yy57;
goto yy33;
yy46:
yych = *++YYCURSOR;
if(yych == '<') goto yy55;
goto yy33;
yy47:
yych = *++YYCURSOR;
if(yych == '>') goto yy53;
goto yy33;
yy48:
yych = *++YYCURSOR;
goto yy33;
yy49:
++YYCURSOR;
yych = *YYCURSOR;
goto yy52;
yy50:
#line 68 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 334 "src/sc_man_scanner.h"
yy51:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy52:
if(yych <= 'Z') {
if(yych <= '/') {
if(yych == '\'') goto yy51;
goto yy50;
} else {
if(yych <= '9') goto yy51;
if(yych <= '@') goto yy50;
goto yy51;
}
} else {
if(yych <= '`') {
if(yych == '_') goto yy51;
goto yy50;
} else {
if(yych <= 'z') goto yy51;
if(yych <= '~') goto yy50;
goto yy51;
}
}
yy53:
++YYCURSOR;
#line 66 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 363 "src/sc_man_scanner.h"
yy55:
++YYCURSOR;
#line 65 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 368 "src/sc_man_scanner.h"
yy57:
++YYCURSOR;
#line 64 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 373 "src/sc_man_scanner.h"
yy59:
++YYCURSOR;
#line 63 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 378 "src/sc_man_scanner.h"
yy61:
++YYCURSOR;
#line 62 "src/sc_man_scanner.re"
{ goto normal_token; }
#line 383 "src/sc_man_scanner.h"
yy63:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '@') {
if(yych <= '-') {
if(yych == '\'') goto yy51;
goto yy42;
} else {
if(yych <= '.') goto yy65;
if(yych <= '/') goto yy42;
if(yych <= '9') goto yy63;
goto yy42;
}
} else {
if(yych <= '_') {
if(yych <= 'Z') goto yy51;
if(yych <= '^') goto yy42;
goto yy51;
} else {
if(yych <= '`') goto yy42;
if(yych <= 'z') goto yy51;
if(yych <= '~') goto yy42;
goto yy51;
}
}
yy65:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '/') goto yy42;
if(yych <= '9') goto yy65;
goto yy42;
yy67:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych == '.') goto yy65;
if(yych <= '/') goto yy42;
if(yych <= '9') goto yy67;
goto yy42;
yy69:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy70:
if(yych == 0x0A) goto yy35;
if(yych <= ' ') goto yy69;
goto yy35;
yy71:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych == 0x0A) goto yy75;
goto yy71;
yy73:
++YYCURSOR;
#line 54 "src/sc_man_scanner.re"
{ goto comment; }
#line 443 "src/sc_man_scanner.h"
yy75:
++YYCURSOR;
#line 55 "src/sc_man_scanner.re"
{ goto newline; }
#line 448 "src/sc_man_scanner.h"
}
#line 71 "src/sc_man_scanner.re"
}
comment:
#line 456 "src/sc_man_scanner.h"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych == 0x0A) goto yy81;
if(yych != '*') goto yy83;
++YYCURSOR;
if((yych = *YYCURSOR) == '/') goto yy84;
yy80:
#line 88 "src/sc_man_scanner.re"
{ goto comment; }
#line 468 "src/sc_man_scanner.h"
yy81:
++YYCURSOR;
#line 78 "src/sc_man_scanner.re"
{
if (YYCURSOR >= YYLIMIT)
{
ScriptPtr = ScriptEndPtr;
return false;
}
sc_Line++;
sc_Crossed = true;
goto comment;
}
#line 482 "src/sc_man_scanner.h"
yy83:
yych = *++YYCURSOR;
goto yy80;
yy84:
++YYCURSOR;
#line 76 "src/sc_man_scanner.re"
{ goto std; }
#line 490 "src/sc_man_scanner.h"
}
#line 89 "src/sc_man_scanner.re"
newline:
if (YYCURSOR >= YYLIMIT)
{
ScriptPtr = ScriptEndPtr;
return false;
}
sc_Line++;
sc_Crossed = true;
goto std;
normal_token:
ScriptPtr = (YYCURSOR >= YYLIMIT) ? ScriptEndPtr : cursor;
sc_StringLen = MIN (ScriptPtr - tok, MAX_STRING_SIZE-1);
memcpy (sc_String, tok, sc_StringLen);
sc_String[sc_StringLen] = '\0';
return true;
string:
if (YYLIMIT != ScriptEndPtr)
{
ScriptPtr = ScriptEndPtr;
return false;
}
ScriptPtr = cursor;
for (sc_StringLen = 0; cursor < YYLIMIT; ++cursor)
{
if (Escape && *cursor == '\\' && *(cursor + 1) == '"')
{
cursor++;
}
else if (*cursor == '"')
{
break;
}
if (*cursor == '\n')
{
sc_Line++;
sc_Crossed = true;
}
if (sc_StringLen < MAX_STRING_SIZE-1)
{
sc_String[sc_StringLen++] = *cursor;
}
}
ScriptPtr = cursor + 1;
sc_String[sc_StringLen] = '\0';
return true;

137
src/sc_man_scanner.re Normal file
View file

@ -0,0 +1,137 @@
#define YYCTYPE char
#define YYCURSOR cursor
#define YYLIMIT limit
#define YYMARKER marker
// This buffer must be as large as the largest YYFILL call
YYCTYPE eofbuf[2];
#define YYFILL(n) { if(n == 2) { eofbuf[0] = *cursor; } eofbuf[n-1] = '\n'; cursor = eofbuf; limit = eofbuf + n - 1; sc_End = true; }
//#define YYDEBUG(s,c) { Printf ("%d: %02x\n", s, c); }
#define YYDEBUG(s,c)
char *cursor = ScriptPtr;
char *limit = ScriptEndPtr;
std:
tok = YYCURSOR;
/*!re2c
any = [\000-\377];
WSP = ([\000- ]\[\n]);
NWS = (any\[\000- ]);
D = [0-9];
TOK1 = [{}|=];
TOKC = [{}|=/`~!@#$%^&*()\[\]\\?\-=+;:<>,.];
STOP1 = (TOK1|["/;]);
STOPC = (TOKC|["]);
TOK2 = (NWS\STOP1);
TOKC2 = (NWS\STOPC);
*/
if (!CMode)
{
/*!re2c
"/*" { goto comment; } /* C comment */
("//"|";") (any\"\n")* "\n" { goto newline; } /* C++/Hexen comment */
WSP+ { goto std; } /* whitespace */
"\n" { goto newline; }
"\"" { goto string; }
TOK1 { goto normal_token; }
/* Regular tokens may contain /, but they must not contain comment starts */
TOK2* ([/] (TOK2\[*])+ [*]*)* [/]? { goto normal_token; }
any { goto normal_token; } /* unknown character */
*/
}
else
{
/*!re2c
"/*" { goto comment; } /* C comment */
"//" (any\"\n")* "\n" { goto newline; } /* C++ comment */
WSP+ { goto std; } /* whitespace */
"\n" { goto newline; }
"\"" { goto string; }
[-]? D+ ([.]D*)? { goto normal_token; } /* number */
"&&" { goto normal_token; }
"==" { goto normal_token; }
"||" { goto normal_token; }
"<<" { goto normal_token; }
">>" { goto normal_token; }
TOKC { goto normal_token; }
TOKC2+ { goto normal_token; }
any { goto normal_token; } /* unknown character */
*/
}
comment:
/*!re2c
"*/" { goto std; }
"\n"
{
if (YYCURSOR >= YYLIMIT)
{
ScriptPtr = ScriptEndPtr;
return false;
}
sc_Line++;
sc_Crossed = true;
goto comment;
}
any { goto comment; }
*/
newline:
if (YYCURSOR >= YYLIMIT)
{
ScriptPtr = ScriptEndPtr;
return false;
}
sc_Line++;
sc_Crossed = true;
goto std;
normal_token:
ScriptPtr = (YYCURSOR >= YYLIMIT) ? ScriptEndPtr : cursor;
sc_StringLen = MIN (ScriptPtr - tok, MAX_STRING_SIZE-1);
memcpy (sc_String, tok, sc_StringLen);
sc_String[sc_StringLen] = '\0';
return true;
string:
if (YYLIMIT != ScriptEndPtr)
{
ScriptPtr = ScriptEndPtr;
return false;
}
ScriptPtr = cursor;
for (sc_StringLen = 0; cursor < YYLIMIT; ++cursor)
{
if (Escape && *cursor == '\\' && *(cursor + 1) == '"')
{
cursor++;
}
else if (*cursor == '"')
{
break;
}
if (*cursor == '\n')
{
sc_Line++;
sc_Crossed = true;
}
if (sc_StringLen < MAX_STRING_SIZE-1)
{
sc_String[sc_StringLen++] = *cursor;
}
}
ScriptPtr = cursor + 1;
sc_String[sc_StringLen] = '\0';
return true;

View file

@ -285,6 +285,7 @@ bool FMODSoundRenderer::Init ()
bool nosound = false; bool nosound = false;
ChannelMap = NULL; ChannelMap = NULL;
NumChannels = 0;
PrevEnvironment = DefaultEnvironments[0]; PrevEnvironment = DefaultEnvironments[0];
#ifdef _WIN32 #ifdef _WIN32
@ -483,6 +484,7 @@ void FMODSoundRenderer::Shutdown ()
delete[] ChannelMap; delete[] ChannelMap;
ChannelMap = NULL; ChannelMap = NULL;
} }
NumChannels = 0;
// Free all loaded samples // Free all loaded samples
for (i = 0; i < S_sfx.Size (); i++) for (i = 0; i < S_sfx.Size (); i++)

View file

@ -150,6 +150,10 @@ MIDISong2::~MIDISong2 ()
{ {
delete[] Tracks; delete[] Tracks;
} }
if (MusHeader != NULL)
{
delete[] MusHeader;
}
} }
bool MIDISong2::IsMIDI () const bool MIDISong2::IsMIDI () const

View file

@ -34,10 +34,22 @@
#ifndef __VERSION_H__ #ifndef __VERSION_H__
#define __VERSION_H__ #define __VERSION_H__
// The svnrevision.h is automatically updated to grab the revision of
// of the current source tree so that it can be included with version numbers.
#include "svnrevision.h"
/** Lots of different version numbers **/ /** Lots of different version numbers **/
#define DOTVERSIONSTR_NOREV "2.1.0"
// The version string the user actually sees. // The version string the user actually sees.
#define DOTVERSIONSTR "2.0.99" #define DOTVERSIONSTR DOTVERSIONSTR_NOREV " (r" SVN_REVISION_STRING ")"
// The version as seen in the Windows resource
#define RC_FILEVERSION 2,1,0,SVN_REVISION_NUMBER
#define RC_PRODUCTVERSION 2,1,0,0
#define RC_FILEVERSION2 DOTVERSIONSTR
#define RC_PRODUCTVERSION2 "2.1"
// Version identifier for network games. // Version identifier for network games.
// Bump it every time you do a release unless you're certain you // Bump it every time you do a release unless you're certain you

View file

@ -630,17 +630,27 @@ BOOL CALLBACK IWADBoxCallback (HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
switch (message) switch (message)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
// Add our program name to the window title
{
TCHAR label[256];
FString newlabel;
GetWindowText (hDlg, label, countof(label));
newlabel.Format (GAMESIG " " DOTVERSIONSTR_NOREV ": %s", label);
SetWindowText (hDlg, newlabel.GetChars());
}
// Populate the list with all the IWADs found
list = GetDlgItem (hDlg, IDC_IWADLIST); list = GetDlgItem (hDlg, IDC_IWADLIST);
for (i = 0; i < NumWads; i++) for (i = 0; i < NumWads; i++)
{ {
char work[256]; FString work;
const char *filepart = strrchr (WadList[i].Path, '/'); const char *filepart = strrchr (WadList[i].Path, '/');
if (filepart == NULL) if (filepart == NULL)
filepart = WadList[i].Path; filepart = WadList[i].Path;
else else
filepart++; filepart++;
sprintf (work, "%s (%s)", IWADTypeNames[WadList[i].Type], filepart); work.Format ("%s (%s)", IWADTypeNames[WadList[i].Type], filepart);
SendMessage (list, LB_ADDSTRING, 0, (LPARAM)work); SendMessage (list, LB_ADDSTRING, 0, (LPARAM)work.GetChars());
SendMessage (list, LB_SETITEMDATA, i, (LPARAM)i); SendMessage (list, LB_SETITEMDATA, i, (LPARAM)i);
} }
SendMessage (list, LB_SETCURSEL, 0, 0); SendMessage (list, LB_SETCURSEL, 0, 0);

View file

@ -8,7 +8,7 @@
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#include "afxres.h" #include "afxres.h"
#include "../version.h"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
@ -35,12 +35,14 @@ END
2 TEXTINCLUDE 2 TEXTINCLUDE
BEGIN BEGIN
"#include ""afxres.h""\r\n" "#include ""afxres.h""\r\n"
"\0" "#include ""../version.h""\0"
END END
3 TEXTINCLUDE 3 TEXTINCLUDE
BEGIN BEGIN
"\r\n" "#ifndef NO_MANIFEST\r\n"
" CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST ""zdoom.exe.manifest""\r\n"
"#endif\r\n"
END END
#endif // APSTUDIO_INVOKED #endif // APSTUDIO_INVOKED
@ -167,7 +169,7 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,0,99,0 FILEVERSION 2,1,0,199
PRODUCTVERSION 2,1,0,0 PRODUCTVERSION 2,1,0,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
@ -186,7 +188,7 @@ BEGIN
VALUE "Comments", "Thanks to id Software for creating DOOM and then releasing the source code. Thanks also to TeamTNT for creating BOOM, which ZDoom is partially based on. Includes code based on the Cajun Bot 0.97 by Martin Collberg." VALUE "Comments", "Thanks to id Software for creating DOOM and then releasing the source code. Thanks also to TeamTNT for creating BOOM, which ZDoom is partially based on. Includes code based on the Cajun Bot 0.97 by Martin Collberg."
VALUE "CompanyName", " " VALUE "CompanyName", " "
VALUE "FileDescription", "ZDoom" VALUE "FileDescription", "ZDoom"
VALUE "FileVersion", "2.0.99 does not exist" VALUE "FileVersion", "2.1.0 (r199M)"
VALUE "InternalName", "ZDoom" VALUE "InternalName", "ZDoom"
VALUE "LegalCopyright", "Copyright © 1993-1996, id Software & 1998-2006, Randy Heit" VALUE "LegalCopyright", "Copyright © 1993-1996, id Software & 1998-2006, Randy Heit"
VALUE "LegalTrademarks", "Doom® is a Registered Trademark of id Software, Inc." VALUE "LegalTrademarks", "Doom® is a Registered Trademark of id Software, Inc."
@ -451,7 +453,9 @@ IDB_DEADGUY BITMAP "deadguy.bmp"
// //
// Generated from the TEXTINCLUDE 3 resource. // Generated from the TEXTINCLUDE 3 resource.
// //
#ifndef NO_MANIFEST
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "zdoom.exe.manifest"
#endif
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED #endif // not APSTUDIO_INVOKED

View file

@ -1,4 +1,4 @@
/* Generated by re2c 0.10.3 on Wed Jun 14 22:02:31 2006 */ /* Generated by re2c 0.10.5 */
#line 1 "scanner.re" #line 1 "scanner.re"
#include <string.h> #include <string.h>
#include <malloc.h> #include <malloc.h>

View file

@ -1,3 +1,12 @@
Version 0.10.5 (2006-06-11)
---------------------------
- Fixed long form of -1 switch to --single-pass as noted in man page and help.
- Added MSVC 2003 project files and renamed old 2002 ones.
Version 0.10.4 (2006-06-01)
---------------------------
- Fix whitespace in generated code.
Version 0.10.3 (2006-05-14) Version 0.10.3 (2006-05-14)
--------------------------- ---------------------------
- Fixed issue with -wb and -ws. - Fixed issue with -wb and -ws.

View file

@ -1,4 +1,4 @@
re2c Version 0.10.3 re2c Version 0.10.5
------------------ ------------------
Originally written by Peter Bumbulis (peter@csg.uwaterloo.ca) Originally written by Peter Bumbulis (peter@csg.uwaterloo.ca)
@ -12,9 +12,18 @@ The re2c distribution can be found at:
http://sourceforge.net/projects/re2c/ http://sourceforge.net/projects/re2c/
re2c has been developed and tested with gcc 3.3 to 4.0.2, Microsoft and Intel re2c has been developed and tested with the following compilers on various
compilers on various platforms. Building re2c requires autoconf 2.57 and bison platforms in 32 bit and 64 bit mode:
(tested with 1.875 and later). Under windows you don't need autoconf or bison - GCC 3.3 ... 4.1
- Microsoft VC 7, 7.1, 8
- Intel 9.0
- Sun C++ 5.8 (CXXFLAGS='-compat5 -library=stlport4')
- MIPSpro Compilers: Version 7.4.4m
GCC 2.x and Microsoft VC 6 are not capable of compiling re2c.
Building re2c on unix like platforms requires autoconf 2.57 and bison (tested
with 1.875 and later). Under windows you don't need autoconf or bison
and can use the pregenerated files. and can use the pregenerated files.
You can build this software by simply typing the following commands: You can build this software by simply typing the following commands:
@ -32,7 +41,7 @@ re2c) you need the following steps:
Or you can create a rpm package and install it by the following commands: Or you can create a rpm package and install it by the following commands:
./configure ./configure
make rpm make rpm
rpm -Uhv <packagedir>/re2c-0.10.3-1.rpm rpm -Uhv <packagedir>/re2c-0.10.5-1.rpm
If you want to build from CVS then the first thing you should do is If you want to build from CVS then the first thing you should do is
regenerating all build files using the following command: regenerating all build files using the following command:
@ -42,7 +51,7 @@ need to generate RPM packages for cvs builds use these commands:
./autogen.sh ./autogen.sh
./configure ./configure
./makerpm <release> ./makerpm <release>
rpm -Uhv <packagedir>/re2c-0.10.3-<release>.rpm rpm -Uhv <packagedir>/re2c-0.10.5-<release>.rpm
Here <realease> should be a number like 1. And <packagedir> must equal Here <realease> should be a number like 1. And <packagedir> must equal
the directory where the makerpm step has written the generated rpm to. the directory where the makerpm step has written the generated rpm to.

View file

@ -1602,8 +1602,7 @@ void genGetState(std::ostream &o, uint& ind, uint start_label)
if (fFlag && !bWroteGetState) if (fFlag && !bWroteGetState)
{ {
vUsedLabels.insert(start_label); vUsedLabels.insert(start_label);
o << indent(ind) << "switch(YYGETSTATE())\n"; o << indent(ind) << "switch(YYGETSTATE()) {\n";
o << indent(ind) << "{\n";
if (bUseStateAbort) if (bUseStateAbort)
{ {
o << indent(ind) << "default: abort();\n"; o << indent(ind) << "default: abort();\n";

View file

@ -63,13 +63,13 @@
#define PACKAGE_NAME "re2c" #define PACKAGE_NAME "re2c"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "re2c 0.10.3" #define PACKAGE_STRING "re2c 0.10.5"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "re2c" #define PACKAGE_TARNAME "re2c"
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "0.10.3" #define PACKAGE_VERSION "0.10.5"
/* The size of a `char', as computed by sizeof. */ /* The size of a `char', as computed by sizeof. */
#define SIZEOF_CHAR 1 #define SIZEOF_CHAR 1
@ -87,7 +87,7 @@
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Version number of package */ /* Version number of package */
#define VERSION "0.10.3" #define VERSION "0.10.5"
/* Define to empty if `const' does not conform to ANSI C. */ /* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */ /* #undef const */

View file

@ -78,7 +78,7 @@ static const mbo_opt_struct OPTIONS[] =
mbo_opt_struct('v', 0, "version"), mbo_opt_struct('v', 0, "version"),
mbo_opt_struct('V', 0, "vernum"), mbo_opt_struct('V', 0, "vernum"),
mbo_opt_struct('w', 0, "wide-chars"), mbo_opt_struct('w', 0, "wide-chars"),
mbo_opt_struct('1', 0, "two-pass"), mbo_opt_struct('1', 0, "single-pass"),
mbo_opt_struct('-', 0, NULL) /* end of args */ mbo_opt_struct('-', 0, NULL) /* end of args */
}; };

View file

@ -1621,10 +1621,7 @@ void parse(Scanner& i, std::ostream& o)
{ {
in = &i; in = &i;
o << "/* Generated by re2c " PACKAGE_VERSION " on "; o << "/* Generated by re2c " PACKAGE_VERSION " */\n";
time_t now = time(&now);
o.write(ctime(&now), 24);
o << " */\n";
o << sourceFileInfo; o << sourceFileInfo;
while(i.echo()) while(i.echo())

View file

@ -1,7 +1,7 @@
./" ./"
./" $Id: re2c.1.in,v 1.60 2006/05/14 13:39:16 helly Exp $ ./" $Id: re2c.1.in 523 2006-05-25 13:32:09Z helly $
./" ./"
.TH RE2C 1 "22 April 2005" "Version 0.10.3" .TH RE2C 1 "22 April 2005" "Version 0.10.5"
.ds re \fBre2c\fP .ds re \fBre2c\fP
.ds le \fBlex\fP .ds le \fBlex\fP
.ds rx regular expression .ds rx regular expression
@ -511,6 +511,6 @@ Emmanuel Mogenet <mgix@mgix.com> added storable state
.PD 1 .PD 1
.SH VERSION INFORMATION .SH VERSION INFORMATION
This manpage describes \fBre2c\fP, version 0.10.3. This manpage describes \fBre2c\fP, version 0.10.5.
.fi .fi

File diff suppressed because it is too large Load diff

View file

@ -32,8 +32,7 @@ Scanner::Scanner(const char *fn, std::istream& i, std::ostream& o)
: in(i) : in(i)
, out(o) , out(o)
, bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL) , bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL)
, top(NULL), eof(NULL), tchar(0), tline(0), cline(1), iscfg(0) , top(NULL), eof(NULL), tchar(0), tline(0), cline(1), iscfg(0), filename(fn)
, filename(fn)
{ {
; ;
} }

View file

@ -0,0 +1,30 @@
CC = gcc
CFLAGS = -Os -Wall -fomit-frame-pointer
LDFLAGS = -s
ifeq (Windows_NT,$(OS))
EXE = updaterevision.exe
CCDV = @../../ccdv
else
EXE = updaterevision
CCDV = @../../ccdv
CFLAGS = -Os -Wall -fomit-frame-pointer
endif
OBJS = updaterevision.o
all: $(EXE)
$(EXE): $(OBJS)
$(CCDV) $(CC) -o $(EXE) $(OBJS) $(CFLAGS) $(LDFLAGS)
.PHONY: clean
clean:
ifeq (Windows_NT,$(OS))
-del /q /f $(EXE) 2>nul
-del /q /f *.o 2>nul
else
-rm -f $(EXE)
-rm -f *.o
endif

View file

@ -0,0 +1,117 @@
/* updaterevision.c
*
* Public domain. This program uses the svnversion command to get the
* repository revision for a particular directory and writes it into
* a header file so that it can be used as a project's build number.
*/
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char **argv)
{
char *name;
char currev[64], lastrev[64], run[256], *rev;
unsigned long urev;
FILE *stream = NULL;
int gotrev = 0, needupdate = 1;
if (argc != 3)
{
fprintf (stderr, "Usage: %s <repository directory> <path to svnrevision.h>\n", argv[0]);
return 1;
}
// Use svnversion to get the revision number. If that fails, pretend it's
// revision 0. Note that this requires you have the command-line svn tools installed.
sprintf (run, "svnversion -cn %s", argv[1]);
if ((name = tmpnam(NULL)) != NULL &&
(stream = freopen(name, "w+b", stdout)) != NULL &&
system(run) == 0 &&
errno == 0 &&
fseek(stream, 0, SEEK_SET) == 0 &&
fgets(currev, sizeof currev, stream) == currev &&
(isdigit(currev[0]) || (currev[0] == '-' && currev[1] == '1')))
{
gotrev = 1;
}
if (stream != NULL)
{
fclose (stream);
remove (name);
}
if (!gotrev)
{
strcpy (currev, "0");
rev = currev;
}
else
{
rev = strchr (currev, ':');
if (rev == NULL)
{
rev = currev;
}
else
{
rev += 1;
}
}
stream = fopen (argv[2], "r");
if (stream != NULL)
{
if (!gotrev)
{ // If we didn't get a revision but the file does exist, leave it alone.
fclose (stream);
return 0;
}
// Read the revision that's in this file already. If it's the same as
// what we've got, then we don't need to modify it and can avoid rebuilding
// dependant files.
if (fgets(lastrev, sizeof lastrev, stream) == lastrev)
{
if (lastrev[0] != '\0')
{ // Strip trailing \n
lastrev[strlen(lastrev) - 1] = '\0';
}
if (strcmp(rev, lastrev + 3) == 0)
{
needupdate = 0;
}
}
fclose (stream);
}
if (needupdate)
{
stream = fopen (argv[2], "w");
if (stream == NULL)
{
return 1;
}
urev = strtoul(rev, NULL, 10);
fprintf (stream,
"// %s\n"
"//\n"
"// This file was automatically generated by the\n"
"// updaterevision tool. Do not edit by hand.\n"
"\n"
"#define SVN_REVISION_STRING \"%s\"\n"
"#define SVN_REVISION_NUMBER %lu\n",
rev, rev, urev);
fclose (stream);
fprintf (stderr, "%s updated to revision %s.\n", argv[2], rev);
}
else
{
fprintf (stderr, "%s is up to date at revision %s.\n", argv[2], rev);
}
return 0;
}

View file

@ -0,0 +1,356 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="updaterevision"
ProjectGUID="{6077B7D6-349F-4077-B552-3BC302EF5859}"
RootNamespace="updaterevision"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\updaterevision.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<File
RelativePath=".\Makefile"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -947,6 +947,18 @@ $alias menu/clear PlatformStop
$limit DoorCloseLight 4 $limit DoorCloseLight 4
$limit PuppyBeat 0
$limit CeantaurPain 0
$limit BishopPain 0
$limit SerpentPain 0
$limit DemonPain 0
$limit WraithPain 0
$limit MaulatorPain 0
$limit EttinPain 0
$limit FireDemonPain 0
$limit SorcererPain 0
$limit DragonPain 0
$endif // ifhexen $endif // ifhexen
//=========================================================================== //===========================================================================

View file

@ -4,6 +4,7 @@
Version="8.00" Version="8.00"
Name="wadsrc" Name="wadsrc"
ProjectGUID="{1D179D4B-F008-431B-8C72-111F8372584F}" ProjectGUID="{1D179D4B-F008-431B-8C72-111F8372584F}"
RootNamespace="wadsrc"
Keyword="MakeFileProj" Keyword="MakeFileProj"
> >
<Platforms> <Platforms>
@ -39,15 +40,15 @@
/> />
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Debug|x64"
OutputDirectory="Release" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="Release" IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="0" ConfigurationType="0"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
> >
<Tool <Tool
Name="VCNMakeTool" Name="VCNMakeTool"
BuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp NOLOGO=/nologo" BuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp NOLOGO=/nologo andcopy"
ReBuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad NOLOGO=/nologo XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp nrebuild" ReBuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad NOLOGO=/nologo XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp nrebuild"
CleanCommandLine="del wadmake zdoom.pk3" CleanCommandLine="del wadmake zdoom.pk3"
Output="zdoom.pk3" Output="zdoom.pk3"
@ -60,15 +61,15 @@
/> />
</Configuration> </Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Release|Win32"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="Release"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" IntermediateDirectory="Release"
ConfigurationType="0" ConfigurationType="0"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
> >
<Tool <Tool
Name="VCNMakeTool" Name="VCNMakeTool"
BuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp NOLOGO=/nologo andcopy" BuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp NOLOGO=/nologo"
ReBuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad NOLOGO=/nologo XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp nrebuild" ReBuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad NOLOGO=/nologo XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp nrebuild"
CleanCommandLine="del wadmake zdoom.pk3" CleanCommandLine="del wadmake zdoom.pk3"
Output="zdoom.pk3" Output="zdoom.pk3"
@ -366,6 +367,10 @@
RelativePath=".\decorate\doom\deadthings.txt" RelativePath=".\decorate\doom\deadthings.txt"
> >
</File> </File>
<File
RelativePath=".\decorate\doom\doomammo.txt"
>
</File>
<File <File
RelativePath=".\decorate\doom\doomarmor.txt" RelativePath=".\decorate\doom\doomarmor.txt"
> >
@ -378,6 +383,10 @@
RelativePath=".\decorate\doom\doomdecorations.txt" RelativePath=".\decorate\doom\doomdecorations.txt"
> >
</File> </File>
<File
RelativePath=".\decorate\doom\doomhealth.txt"
>
</File>
<File <File
RelativePath=".\decorate\doom\doomkeys.txt" RelativePath=".\decorate\doom\doomkeys.txt"
> >
@ -390,6 +399,10 @@
<Filter <Filter
Name="Heretic" Name="Heretic"
> >
<File
RelativePath=".\decorate\heretic\hereticammo.txt"
>
</File>
<File <File
RelativePath=".\decorate\heretic\hereticarmor.txt" RelativePath=".\decorate\heretic\hereticarmor.txt"
> >
@ -430,6 +443,10 @@
RelativePath=".\decorate\hexen\hexenspecialdecs.txt" RelativePath=".\decorate\hexen\hexenspecialdecs.txt"
> >
</File> </File>
<File
RelativePath=".\decorate\hexen\mana.txt"
>
</File>
<File <File
RelativePath=".\decorate\hexen\puzzleitems.txt" RelativePath=".\decorate\hexen\puzzleitems.txt"
> >
@ -467,7 +484,7 @@
> >
</File> </File>
<File <File
RelativePath=".\decorate\strife\rebels.txt" RelativePath=".\decorate\strife\strifeammo.txt"
> >
</File> </File>
<File <File

View file

@ -1,10 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 9.00 Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005 # Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = " zdoom", "zdoom.vcproj", "{8049475B-5C87-46F9-9358-635218A4EF18}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zdoom", "zdoom.vcproj", "{8049475B-5C87-46F9-9358-635218A4EF18}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{873F2EEA-24DF-454C-B245-CB9738BA993E} = {873F2EEA-24DF-454C-B245-CB9738BA993E}
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63} = {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}
{1D179D4B-F008-431B-8C72-111F8372584F} = {1D179D4B-F008-431B-8C72-111F8372584F} {1D179D4B-F008-431B-8C72-111F8372584F} = {1D179D4B-F008-431B-8C72-111F8372584F}
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63} = {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}
{6077B7D6-349F-4077-B552-3BC302EF5859} = {6077B7D6-349F-4077-B552-3BC302EF5859}
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E} = {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}
{873F2EEA-24DF-454C-B245-CB9738BA993E} = {873F2EEA-24DF-454C-B245-CB9738BA993E}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcproj", "{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcproj", "{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}"
@ -17,9 +19,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "re2c", "tools\re2c\re2c.vcp
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wadsrc", "wadsrc\wadsrc.vcproj", "{1D179D4B-F008-431B-8C72-111F8372584F}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wadsrc", "wadsrc\wadsrc.vcproj", "{1D179D4B-F008-431B-8C72-111F8372584F}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{3FFA68B3-9449-4B03-ADEE-194C3638623B} = {3FFA68B3-9449-4B03-ADEE-194C3638623B}
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8} = {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3} = {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3} {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3} = {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8} = {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}
{3FFA68B3-9449-4B03-ADEE-194C3638623B} = {3FFA68B3-9449-4B03-ADEE-194C3638623B}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makewad", "tools\makewad\makewad.vcproj", "{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makewad", "tools\makewad\makewad.vcproj", "{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}"
@ -35,6 +37,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dehsupp", "tools\dehsupp\de
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E} = {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E} {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E} = {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "updaterevision", "tools\updaterevision\updaterevision.vcproj", "{6077B7D6-349F-4077-B552-3BC302EF5859}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
@ -45,76 +49,84 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8049475B-5C87-46F9-9358-635218A4EF18}.Debug|Win32.ActiveCfg = Debug|Win32 {8049475B-5C87-46F9-9358-635218A4EF18}.Debug|Win32.ActiveCfg = Debug|Win32
{8049475B-5C87-46F9-9358-635218A4EF18}.Debug|Win32.Build.0 = Debug|Win32 {8049475B-5C87-46F9-9358-635218A4EF18}.Debug|Win32.Build.0 = Debug|Win32
{8049475B-5C87-46F9-9358-635218A4EF18}.Debug|x64.ActiveCfg = Debug|x64 {8049475B-5C87-46F9-9358-635218A4EF18}.Debug|x64.ActiveCfg = Release|x64
{8049475B-5C87-46F9-9358-635218A4EF18}.Debug|x64.Build.0 = Debug|x64 {8049475B-5C87-46F9-9358-635218A4EF18}.Debug|x64.Build.0 = Release|x64
{8049475B-5C87-46F9-9358-635218A4EF18}.Release|Win32.ActiveCfg = Release|Win32 {8049475B-5C87-46F9-9358-635218A4EF18}.Release|Win32.ActiveCfg = Release|Win32
{8049475B-5C87-46F9-9358-635218A4EF18}.Release|Win32.Build.0 = Release|Win32 {8049475B-5C87-46F9-9358-635218A4EF18}.Release|Win32.Build.0 = Release|Win32
{8049475B-5C87-46F9-9358-635218A4EF18}.Release|x64.ActiveCfg = Release|x64 {8049475B-5C87-46F9-9358-635218A4EF18}.Release|x64.ActiveCfg = Release|x64
{8049475B-5C87-46F9-9358-635218A4EF18}.Release|x64.Build.0 = Release|x64 {8049475B-5C87-46F9-9358-635218A4EF18}.Release|x64.Build.0 = Release|x64
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|Win32.ActiveCfg = Debug|Win32 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|Win32.ActiveCfg = Debug|Win32
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|Win32.Build.0 = Debug|Win32 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|Win32.Build.0 = Debug|Win32
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|x64.ActiveCfg = Debug|x64 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|x64.ActiveCfg = Release|x64
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|x64.Build.0 = Debug|x64 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Debug|x64.Build.0 = Release|x64
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|Win32.ActiveCfg = Release|Win32 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|Win32.ActiveCfg = Release|Win32
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|Win32.Build.0 = Release|Win32 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|Win32.Build.0 = Release|Win32
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|x64.ActiveCfg = Release|x64 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|x64.ActiveCfg = Release|x64
{F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|x64.Build.0 = Release|x64 {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}.Release|x64.Build.0 = Release|x64
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|Win32.ActiveCfg = Debug|Win32 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|Win32.ActiveCfg = Debug|Win32
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|Win32.Build.0 = Debug|Win32 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|Win32.Build.0 = Debug|Win32
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|x64.ActiveCfg = Debug|x64 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|x64.ActiveCfg = Release|x64
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|x64.Build.0 = Debug|x64 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Debug|x64.Build.0 = Release|x64
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|Win32.ActiveCfg = Release|Win32 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|Win32.ActiveCfg = Release|Win32
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|Win32.Build.0 = Release|Win32 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|Win32.Build.0 = Release|Win32
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|x64.ActiveCfg = Release|x64 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|x64.ActiveCfg = Release|x64
{873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|x64.Build.0 = Release|x64 {873F2EEA-24DF-454C-B245-CB9738BA993E}.Release|x64.Build.0 = Release|x64
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|Win32.ActiveCfg = Debug|Win32 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|Win32.ActiveCfg = Debug|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|Win32.Build.0 = Debug|Win32 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|Win32.Build.0 = Debug|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|x64.ActiveCfg = Debug|x64 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|x64.ActiveCfg = Release|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|x64.Build.0 = Debug|x64 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Debug|x64.Build.0 = Release|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|Win32.ActiveCfg = Release|Win32 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|Win32.ActiveCfg = Release|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|Win32.Build.0 = Release|Win32 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|Win32.Build.0 = Release|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|x64.ActiveCfg = Release|Win32 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|x64.ActiveCfg = Release|Win32
{0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|x64.Build.0 = Release|Win32 {0F80ACBF-460E-44F0-B28E-B3272D1774A7}.Release|x64.Build.0 = Release|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|Win32.ActiveCfg = Debug|Win32 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|Win32.ActiveCfg = Debug|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|Win32.Build.0 = Debug|Win32 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|Win32.Build.0 = Debug|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|x64.ActiveCfg = Debug|x64 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|x64.ActiveCfg = Release|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|x64.Build.0 = Debug|x64 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Debug|x64.Build.0 = Release|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|Win32.ActiveCfg = Release|Win32 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|Win32.ActiveCfg = Release|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|Win32.Build.0 = Release|Win32 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|Win32.Build.0 = Release|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|x64.ActiveCfg = Release|Win32 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|x64.ActiveCfg = Release|Win32
{667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|x64.Build.0 = Release|Win32 {667D2EE7-C357-49E2-9BAB-0A4A45F0F76E}.Release|x64.Build.0 = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Debug|Win32.ActiveCfg = Debug|Win32 {1D179D4B-F008-431B-8C72-111F8372584F}.Debug|Win32.ActiveCfg = Debug|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Debug|Win32.Build.0 = Debug|Win32 {1D179D4B-F008-431B-8C72-111F8372584F}.Debug|Win32.Build.0 = Debug|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Debug|x64.ActiveCfg = Debug|x64 {1D179D4B-F008-431B-8C72-111F8372584F}.Debug|x64.ActiveCfg = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Debug|x64.Build.0 = Debug|x64 {1D179D4B-F008-431B-8C72-111F8372584F}.Debug|x64.Build.0 = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|Win32.ActiveCfg = Release|Win32 {1D179D4B-F008-431B-8C72-111F8372584F}.Release|Win32.ActiveCfg = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|Win32.Build.0 = Release|Win32 {1D179D4B-F008-431B-8C72-111F8372584F}.Release|Win32.Build.0 = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|x64.ActiveCfg = Release|Win32 {1D179D4B-F008-431B-8C72-111F8372584F}.Release|x64.ActiveCfg = Release|Win32
{1D179D4B-F008-431B-8C72-111F8372584F}.Release|x64.Build.0 = Release|Win32 {1D179D4B-F008-431B-8C72-111F8372584F}.Release|x64.Build.0 = Release|Win32
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|Win32.ActiveCfg = Debug|Win32 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|Win32.ActiveCfg = Debug|Win32
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|Win32.Build.0 = Debug|Win32 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|Win32.Build.0 = Debug|Win32
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|x64.ActiveCfg = Debug|x64 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|x64.ActiveCfg = Release|x64
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|x64.Build.0 = Debug|x64 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Debug|x64.Build.0 = Release|x64
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|Win32.ActiveCfg = Release|Win32 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|Win32.ActiveCfg = Release|Win32
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|Win32.Build.0 = Release|Win32 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|Win32.Build.0 = Release|Win32
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|x64.ActiveCfg = Release|x64 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|x64.ActiveCfg = Release|x64
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|x64.Build.0 = Release|x64 {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}.Release|x64.Build.0 = Release|x64
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|Win32.ActiveCfg = Debug|Win32 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|Win32.ActiveCfg = Debug|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|Win32.Build.0 = Debug|Win32 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|Win32.Build.0 = Debug|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|x64.ActiveCfg = Debug|x64 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|x64.ActiveCfg = Release|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|x64.Build.0 = Debug|x64 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Debug|x64.Build.0 = Release|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|Win32.ActiveCfg = Release|Win32 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|Win32.ActiveCfg = Release|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|Win32.Build.0 = Release|Win32 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|Win32.Build.0 = Release|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|x64.ActiveCfg = Release|Win32 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|x64.ActiveCfg = Release|Win32
{3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|x64.Build.0 = Release|Win32 {3FFA68B3-9449-4B03-ADEE-194C3638623B}.Release|x64.Build.0 = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|Win32.ActiveCfg = Debug|Win32 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|Win32.ActiveCfg = Debug|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|Win32.Build.0 = Debug|Win32 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|Win32.Build.0 = Debug|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|x64.ActiveCfg = Debug|x64 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|x64.ActiveCfg = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|x64.Build.0 = Debug|x64 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Debug|x64.Build.0 = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|Win32.ActiveCfg = Release|Win32 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|Win32.ActiveCfg = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|Win32.Build.0 = Release|Win32 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|Win32.Build.0 = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|x64.ActiveCfg = Release|Win32 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|x64.ActiveCfg = Release|Win32
{AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|x64.Build.0 = Release|Win32 {AC64EE8F-F019-4A3E-BCAF-BD1FD072B9C8}.Release|x64.Build.0 = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|Win32.ActiveCfg = Debug|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|Win32.Build.0 = Debug|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|x64.ActiveCfg = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Debug|x64.Build.0 = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Release|Win32.ActiveCfg = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Release|Win32.Build.0 = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Release|x64.ActiveCfg = Release|Win32
{6077B7D6-349F-4077-B552-3BC302EF5859}.Release|x64.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

File diff suppressed because it is too large Load diff