using duplicate DoomEdNums and will affect all attempts to spawn the
replaced actor. However, because this happens for all spawns and not just
at map load, the replacing actor must be compatible with the replaced
actor, which means that an actor can only serve as a replacement for one
of its baseclasses. For example, if you want to use a modified imp, you can
use this DECORATE:
actor MyImp : DoomImp replaces DoompImp
{
// Put changed properties here
}
- New: The IWAD dialog now remembers the last IWAD you picked and
automatically highlights it the next time you run the game. This also
applies if you check "Don't ask me this again": The IWAD selected will be
the one that gets automatically loaded, not the one located first. (Using
the -iwad parameter will not change the default IWAD.) In addition, you
can now bring the dialog up even if you disable it by holding down SHIFT
during startup.
- Changed ExtractFilePath() and ExtractFileBase() to return FStrings instead
of writing to a provided output buffer. ExtractFileBase() can also
optionally keep the file's extension in the result.
- Removed the -heapsize parameter entirely. The informational message should
no longer be needed.
- Removed -maxdemo parameter. There's no point to having it around since
the demo buffer grows automatically.
SVN r238 (trunk)
- Fixed map name checks in idclev, hxvisit, for +map and the titlemap.
- Changed handling of Zips so that the patches/, graphics/, sounds/ and
music/ subdirectories no longer are placed in the global namespace. Instead
new namespaces are defined. These namespaces aren't merged, however and
searching in them either returns a lump inside it or one from the global
namespace when it doesn't come from a Zip file. Proper order of files is
still observed though. As a result proper use of the directories inside Zips
is strictly enforced now so that for example anything used as a patch must be
in the patches/ directory and won't be found anywhere else.
SVN r199 (trunk)
- Fixed: The Zip loader loaded all WADs inside a Zip into the lump directory.
This is only supposed to be done for WADs in the root directory.
- Complete restructuring of the map loading code. Previously the only way
to put maps into Zips was to load them as embedded WADs which caused
some problems, most importantly that the map's file name was irrelevant
and the internal map label was used instead. With the new code there
is now a properly defined way to add maps to Zips:
* Maps are placed in a subdirectory called 'maps'.
* Maps are stored as WADs that contain all map related lumps.
* The first lump in the map's WAD directory must be the map label.
* All lumps not belonging to the first map are ignored.
* The map's file name determines the name the map is identified with.
For maps stored this way the internal map label is ignored so with this
method renaming maps is as easy as renaming a file and it is no longer
necessary to manipulate the map label.
With the new code it is also possible to load external maps without
adding them to the WAD list. Type 'open mapfile.wad' in the console
to start such a map.
The new code also performs stricter lump name checks to prevent accidental
loading of non-map data.
SVN r188 (trunk)
- Fixed: A classic decorate FakeInventory's PickupText was never freed.
- Fixed: Colored lights were never freed.
- Fixed: When a dehacked patch was applied, the dehacked StateMap was never
freed.
- Removed termdone checks around atterm(S_ClearSoundData) and
atterm(S_Shutdown) because atterm() already checks for duplicates.
- Fixed: S_ClearSoundData() should unload all sounds before it clears S_sfx.
- Fixed: AltSoundRenderer::LoadSound() didn't check if the sound had already
been loaded and lost the old sound data if it had been.
- Fixed: FinishDehPatch() needlessly duplicated the new DehackedPickup's name.
- Fixed: PatchStrings() allocated a private string and never freed it.
SVN r183 (trunk)
- Changed f_finale.cpp/atkstates[] into a static variable, since its
anonymous type prevents it from being accessed from other files anyway.
- Fixed: The behavior of the eventtail advancement in d_net.cpp/CheckAbort()
was compiler-dependant.
- Fixed warnings GCC 4 threw up while compiling re2c and lemon.
- Removed __cdecl from makewad.c again. This is already defined as a builtin
for MinGW, and redefining it produces a warning. (Why is main explicitly
declared __cdecl anyway?)
- Fixed building ccdv-win32 with GCC 4. GCC 4 creates a memcpy call, which
won't work because it doesn't get linked with the standard C library.
SVN r135 (trunk)
* Animations are now millisecond-accurate, so delays in ANIMDEFS can have
fractional parts.
* Cleaned up the animation code and moved it into r_anim.cpp.
* Blood's oscillating texture animations are now available for use by actual
supported games by adding the word "oscillate" after a "range" definition
in ANIMDEFS.
* Not exactly texture animation, but it's handled in the same function as
texture animations: Scrolling skies also have millisecond precision.
SVN r125 (trunk)
its tiles are loaded from the same directory.
- RFF files now load their entire directories into the lumplist.
- Added char * and const char * type coversions for FString, so FStrings can be
freely passed to functions expecting C strings. (Except varargs functions,
which still require manually fetching the C string out of it.)
- Renamed the name class to FName.
- Renamed the string class to FString to emphasize that it is not std::string.
SVN r74 (trunk)
- Removed doom.x, heretic.x and strife.x from the SVN repository. These
are generated files.
- Fixed: A_PainDie has to check whether a valid target exists before
calling IsFriend.
- Fixed: FDecalLib::FindAnimator needs a signed counter to work properly.
May 1, 2006 (Changes by Graf Zahl)
- Added support for game specific pickup messages, if only to be able
to define Raven's invulnerability item in DECORATE.
- Removed A_TreeDeath because it is no longer used.
- Fixed: When picking up a PowerupGiver for an active powerup the
blend color and the duration were transferred to a temorary item
and never took effect. They have to be trnasferred to the newly created
powerup item before trying to give it to the player, not afterward.
- Made the colormap of the InvulnerabilitySphere item specific.
The base power class still needs to have its color adjusted
per game though and since Raven's invulnerability item is used in both
Hexen and Heretic it can't define its own colormap/blend.
- Separated the invulnerability colormaps from the game being played
and made them item specific. They can also be specified as regular
blend colors in DECORATE now.
- Converted a_hereticarmor.cpp and most of a_doomartifacts.cpp,
a_hereticartifacts.cpp and a_heretickeys.cpp to DECORATE.
- Changed the Soulsphere to be a real health item with the Dehacked
modifications made in d_dehacked.cpp as for most other items which
need to be adjusted.
- Added IF_BIGPOWERUP flag to AInventory to expose the RESPAWN_SUPER
dmflag to DECORATE. Also removed the now obsolete ShouldRespawn methods
from AInvulnerabilitySphere and ABlurSphere.
- Converted a_splashes.cpp to DECORATE.
- Converted most of a_debris.cpp to DECORATE.
SVN r73 (trunk)
your head has popped off your body.
- Fixed: When item respawning is on and you play on skill 1 or 5, picking
up ammo would permanently double the amount of ammo received from that
item the next time it gets picked up.
- Added a check to PlayerIsGone() for players who have already had their
actors destroyed before calling it.
- Fixed: G_CheckDemoStatus() only restored your name, autoaim, and color
settings after playing back a demo.
- Added DEM_SPRAY net command so that sprayed decals work in multiplayer
and demos.
- Changed DEM_GIVECHEAT to use a word for specifying the item quantity.
This is useful mainly for giving yourself more than 255 health at a time.
- Fixed: DEM_SUMMONFRIEND was not handled by Net_SkipCommand().
SVN r58 (trunk)