- 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
$(ZDOOMBIN): ccdv $(OBJDIR) $(OBJS)
$(ZDOOMBIN): ccdv updaterev $(OBJDIR) $(OBJS)
$(CCDV) $(CXX) $(LDFLAGS) $(OBJDIR)/autostart.o \
$(filter-out %/autostart.o %/autozend.o,$(OBJS)) \
$(OBJDIR)/autozend.o -o $(ZDOOMBIN)
@ -84,21 +84,28 @@ $(OBJDIR):
mkdir $(OBJDIR)
toolsandpk3: ccdv tools/makewad/makewad tools/dehsupp/dehsupp tools/xlatcc/xlatcc
make -C wadsrc/
$(MAKE) -C wadsrc/
zdoom.pk3: toolsandpk3
ln -sf wadsrc/zdoom.pk3 ./
tools/makewad/makewad:
make -C tools/makewad/
$(MAKE) -C tools/makewad/
tools/dehsupp/dehsupp:
make -C tools/dehsupp/
$(MAKE) -C tools/dehsupp/
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
rm -f $(ZDOOMDEBUG) $(ZDOOM) $(ZDOOM).map
@ -130,6 +137,6 @@ cleanobjs:
ccdv: ccdv-posix.c
@gcc -Os -s ccdv-posix.c -o ccdv
ifneq ($(MAKECMDGOALS),clean)
ifeq (,$(findstring $(MAKECMDGOALS),clean cleandeps cleanobjs distclean toolsandpk3 cleantools updaterev))
-include $(DEPS)
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.
FMODDIR = "c:/program files/fmodapi375win"
ifndef CC
CC=gcc
endif
ifndef CXX
CC=g++
endif
CC ?= gcc
CXX ?= g++
ifndef CONFIG
CONFIG=Release
endif
ifndef OPTLEVEL
OPTLEVEL=2
endif
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
CONFIG ?= Release
OPTLEVEL ?= 2
ARCH_TYPE ?= pentium
TUNE_TYPE ?= i686
RELEASETARGET ?= zdoomgcc.exe
DEBUGTARGET ?= zdoomgccd.exe
DEBUGOBJDIR ?= debugobj
RELEASEOBJDIR ?= releaseobj
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
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)
endif
# This must be first.
OBJECTS = $(OBJDIR)/autostart.o
SRCDIRS = src/ $(addprefix src/,g_doom/ g_heretic/ g_hexen/ g_raven/ g_shared/ g_strife/ oplsynth/ sound/ win32/)
VPATH = $(SRCDIRS)
OBJECTS += \
$(OBJDIR)/am_map.o \
$(OBJDIR)/b_bot.o \
$(OBJDIR)/b_func.o \
$(OBJDIR)/b_game.o \
$(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)
CPPSRCS = $(wildcard $(addsuffix *.cpp,$(SRCDIRS)))
CSRCS = $(wildcard $(addsuffix *.c,$(SRCDIRS)))
RCSRCS = $(wildcard $(addsuffix *.rc,$(SRCDIRS)))
ifdef NOASM
CFLAGS += -DNOASM
else
CPPFLAGS := -DNOASM $(CPPFLAGS)
ASRCS = $(wildcard src/*.nas)
CFLAGS += -DUSEASM=1
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
OBJECTS += $(OBJDIR)/autozend.o
COBJS = $(addprefix $(OBJDIR)/,$(CPPOBJFILES) $(COBJFILES) $(RCOBJFILES))
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
.PHONY: clean all
OBJS = $(OBJDIR)/autostart.o $(filter-out %/autostart.o %/autozend.o,$(UNORDEREDOBJS)) $(OBJDIR)/autozend.o
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
$(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
$(CCDV) nasmw -o $@ -f win32 $<
@ -406,8 +89,8 @@ $(OBJDIR)/%.o : %.rc
$(CCDV) windres --include-dir=src/win32 -o $@ -i $<
$(TARGET): testobjdir $(OBJECTS)
$(CCDV) $(CXX) -o $@ $(OBJECTS) $(LDFLAGS)
$(TARGET): testobjdir updaterev $(OBJS)
$(CCDV) $(CXX) -o $@ $(OBJS) $(LDFLAGS)
clean:
-del /q /f $(RELEASETARGET) 2>nul
@ -415,9 +98,22 @@ clean:
-del /q /f $(DEBUGOBJDIR) 2>nul
-del /q /f $(RELEASEOBJDIR) 2>nul
cleandep:
-del /q /f $(DEBUGOBJDIR)\*.d 2>nul
-del /q /f $(RELEASEOBJDIR)\*.d 2>nul
testobjdir:
-@if not exist $(OBJDIR) mkdir $(OBJDIR)
ifneq ($(MAKECMDGOALS),clean)
-include $(OBJECTS:%.o=%.d)
updaterev: tools/updaterevision/updaterevision.exe
@tools/updaterevision/updaterevision . src/svnrevision.h
tools/updaterevision/updaterevision.exe:
$(MAKE) -C tools/updaterevision
ifeq (,$(findstring $(MAKECMDGOALS),clean cleandep updaterev))
-include $(DEPS)
endif
.PHONY: clean all updaterev testobjdir cleandep

View file

@ -473,7 +473,8 @@ void mainCRTStartup(void)
lstrcmpi(gAction+8, "ld") == 0)) ||
(extlen == 3 &&
(lstrcmpi(gAction+8, "gcc") == 0 ||
lstrcmpi(gAction+8, "g++") == 0)))
lstrcmpi(gAction+8, "g++") == 0)) ||
(extlen == 7 && lstrcmpi(gAction+8, "windres") == 0))
{
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)
- Removed the unused sfx_ variables for the chainsaw sounds.
- 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
// stored in the archive.
DObject *tempobj = type->CreateNew ();
AActor *tempobj = static_cast<AActor *>(type->CreateNew ());
MapObject (obj != NULL ? obj : tempobj);
tempobj->Serialize (*this);
tempobj->CheckIfSerialized ();
@ -1146,6 +1146,13 @@ FArchive &FArchive::ReadObject (DObject* &obj, PClass *wanttype)
// around just so that the load will succeed.
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 ();
}
else
@ -1173,12 +1180,17 @@ FArchive &FArchive::ReadObject (DObject* &obj, PClass *wanttype)
// Printf ("Use player class: %s (%u)\n", type->Name, m_File->Tell());
obj = players[playerNum].mo;
DObject *tempobj = type->CreateNew ();
AActor *tempobj = static_cast<AActor *>(type->CreateNew ());
MapObject (obj != NULL ? obj : tempobj);
tempobj->Serialize (*this);
tempobj->CheckIfSerialized ();
if (obj != NULL)
{
for (AInventory *item = tempobj->Inventory;
item != NULL; item = item->Inventory)
{
item->Owner = tempobj;
}
tempobj->Destroy ();
}
else

View file

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

View file

@ -20,6 +20,7 @@
#include "w_wad.h"
#include "cmdlib.h"
#include "m_misc.h"
#include "templates.h"
// MACROS ------------------------------------------------------------------
@ -263,8 +264,7 @@ void SC_SetEscape (bool esc)
BOOL SC_GetString ()
{
char *text;
BOOL foundToken;
char *marker, *tok;
CheckOpen();
if (AlreadyGot)
@ -272,154 +272,16 @@ BOOL SC_GetString ()
AlreadyGot = false;
return true;
}
foundToken = false;
sc_Crossed = false;
if (ScriptPtr >= ScriptEndPtr)
{
sc_End = true;
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)
{
stopchars = CMODE_STOPCHARS;
// '-' 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;
// In case the generated scanner does not use marker, avoid compiler warnings.
marker;
#include "sc_man_scanner.h"
}
//==========================================================================

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

View file

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

View file

@ -34,10 +34,22 @@
#ifndef __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 **/
#define DOTVERSIONSTR_NOREV "2.1.0"
// 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.
// 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)
{
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);
for (i = 0; i < NumWads; i++)
{
char work[256];
FString work;
const char *filepart = strrchr (WadList[i].Path, '/');
if (filepart == NULL)
filepart = WadList[i].Path;
else
filepart++;
sprintf (work, "%s (%s)", IWADTypeNames[WadList[i].Type], filepart);
SendMessage (list, LB_ADDSTRING, 0, (LPARAM)work);
work.Format ("%s (%s)", IWADTypeNames[WadList[i].Type], filepart);
SendMessage (list, LB_ADDSTRING, 0, (LPARAM)work.GetChars());
SendMessage (list, LB_SETITEMDATA, i, (LPARAM)i);
}
SendMessage (list, LB_SETCURSEL, 0, 0);

View file

@ -8,7 +8,7 @@
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
#include "../version.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
@ -35,12 +35,14 @@ END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
"#include ""../version.h""\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"#ifndef NO_MANIFEST\r\n"
" CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST ""zdoom.exe.manifest""\r\n"
"#endif\r\n"
END
#endif // APSTUDIO_INVOKED
@ -167,7 +169,7 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,0,99,0
FILEVERSION 2,1,0,199
PRODUCTVERSION 2,1,0,0
FILEFLAGSMASK 0x3fL
#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 "CompanyName", " "
VALUE "FileDescription", "ZDoom"
VALUE "FileVersion", "2.0.99 does not exist"
VALUE "FileVersion", "2.1.0 (r199M)"
VALUE "InternalName", "ZDoom"
VALUE "LegalCopyright", "Copyright © 1993-1996, id Software & 1998-2006, Randy Heit"
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.
//
#ifndef NO_MANIFEST
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "zdoom.exe.manifest"
#endif
/////////////////////////////////////////////////////////////////////////////
#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"
#include <string.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)
---------------------------
- 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)
@ -12,9 +12,18 @@ The re2c distribution can be found at:
http://sourceforge.net/projects/re2c/
re2c has been developed and tested with gcc 3.3 to 4.0.2, Microsoft and Intel
compilers on various platforms. Building re2c requires autoconf 2.57 and bison
(tested with 1.875 and later). Under windows you don't need autoconf or bison
re2c has been developed and tested with the following compilers on various
platforms in 32 bit and 64 bit mode:
- 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.
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:
./configure
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
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
./configure
./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
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)
{
vUsedLabels.insert(start_label);
o << indent(ind) << "switch(YYGETSTATE())\n";
o << indent(ind) << "{\n";
o << indent(ind) << "switch(YYGETSTATE()) {\n";
if (bUseStateAbort)
{
o << indent(ind) << "default: abort();\n";

View file

@ -63,13 +63,13 @@
#define PACKAGE_NAME "re2c"
/* 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 PACKAGE_TARNAME "re2c"
/* 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. */
#define SIZEOF_CHAR 1
@ -87,7 +87,7 @@
#define STDC_HEADERS 1
/* 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. */
/* #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, "vernum"),
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 */
};

View file

@ -1621,10 +1621,7 @@ void parse(Scanner& i, std::ostream& o)
{
in = &i;
o << "/* Generated by re2c " PACKAGE_VERSION " on ";
time_t now = time(&now);
o.write(ctime(&now), 24);
o << " */\n";
o << "/* Generated by re2c " PACKAGE_VERSION " */\n";
o << sourceFileInfo;
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 le \fBlex\fP
.ds rx regular expression
@ -511,6 +511,6 @@ Emmanuel Mogenet <mgix@mgix.com> added storable state
.PD 1
.SH VERSION INFORMATION
This manpage describes \fBre2c\fP, version 0.10.3.
This manpage describes \fBre2c\fP, version 0.10.5.
.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)
, out(o)
, bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL)
, top(NULL), eof(NULL), tchar(0), tline(0), cline(1), iscfg(0)
, filename(fn)
, top(NULL), eof(NULL), tchar(0), tline(0), cline(1), iscfg(0), 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 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
//===========================================================================

View file

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

View file

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

File diff suppressed because it is too large Load diff