Commit graph

445 commits

Author SHA1 Message Date
Christoph Oelckers
5aecc8abf5 - Fixed parsing for MustConfirm key in skill parser.
- Converted internal MAPINFOs to new syntax.


SVN r1417 (trunk)
2009-02-08 19:04:07 +00:00
Christoph Oelckers
4b064d9b5d - Added a range parameter to SNDINFO's $limit.
- Restored Dehacked music name replacement.


SVN r1416 (trunk)
2009-02-08 11:28:30 +00:00
Christoph Oelckers
cccdfd6336 - fixed: The compatibility parser applied the last map's settings to all
maps in the compatibility list.
- Added compatibility settings for a few more levels in some classic WADs.
- Added spechit overflow workaround for Strain MAP07. This is highly map
  specific because the original behavior cannot be restored.
- Added a check for Doom's IWAD levels that forces COMPAT_SHORTTEX for them.
  MD5 cannot be used well here because there's many different IWADs with 
  slightly different levels. This is only done for Doom format levels to
  ensure that custom IWADs for ZDoom are not affected.
- fixed: level.flags2 was not reset at level start.
- Fixed: Morph powerups can change the actor picking up the item so 
  AInventory::CallTryPickup must be able to return the new actor.
- Fixed: ACS's GiveInventory may not assume that a PlayerPawn is still
  attached to the player data after an item has been given.
- Added a missing NULL pointer check to DBaseStatusBar::Blendview.


SVN r1405 (trunk)
2009-02-06 00:16:57 +00:00
Randy Heit
4e509728a0 - Added a compatibility lump because I think it's a shame that Void doesn't
work properly on new ZDooms after all the collaboration I had with Cyb on
  that map. (Works with other maps, too.)


SVN r1402 (trunk)
2009-02-05 02:55:28 +00:00
Christoph Oelckers
176608cbf4 - fixed sound origin of the Mage Wand's missile.
SVN r1377 (trunk)
2009-01-30 08:14:28 +00:00
Christoph Oelckers
51391f889c - Added option to specify the amount of ammo to be given by a WeaponGiver.
SVN r1357 (trunk)
2009-01-18 08:20:29 +00:00
Christoph Oelckers
6a321fd8f5 - Changed pickup sounds of local player to unpaused to resolve problems with
the time freezer and make them behave better.
- Fixed: When sounds are paused not all newly started sounds should actually
  be played.
- Fixed: SBARINFO had no means to check if a weapon uses any ammo at all and
  as a result the inventory icon was misplaced if a no-ammo weapon was selected.

SVN r1343 (trunk)
2009-01-01 15:09:49 +00:00
Christoph Oelckers
9098bc1a46 - Added a constant name for Skulltag's 128 flag for A_SpawnItemEx. For
compatibility ZDoom needs to define this name, too, even though it doesn't 
  use it.
- Fixed: The nodebuilder could hang on badly set up polyobjects. Now it aborts 
  when the loop iterates NumberOfSegs times.

SVN r1338 (trunk)
2008-12-31 12:02:08 +00:00
Randy Heit
835ed26370 - Decal changes as per Xaser's suggestions: Smaller decal for PhoenixFX2,
CrossbowFX2 and MaceFX4 were missing decals, and HornRodFX2 gets a whole
  new decal.
- Fixed: bfgscrc2.png had some holes in the middle that did not look so good.
  (From previously being handled through WinTex, maybe?)


SVN r1325 (trunk)
2008-12-19 03:57:24 +00:00
Christoph Oelckers
bd9e318863 - Added a SECF_NORESPAWN flag for sectors that prevents players from being respawned
in such a sector. As a workaround for current map formats a new actor
  (DoomEdNum 9041) was added that can set the extended sector flags without the
  use of ACS and sector tags. The new flag can also be set with Sector_ChangeFlags.
- Fixed: Players ignored MF2_TELESTOMP and always telefragged what was in the way.
- Fixed: Actors with MF5_NOINTERACTION were not affected by the time freezer.


SVN r1315 (trunk)
2008-12-14 19:12:41 +00:00
Christoph Oelckers
081658d3d5 - Fixed: The save percentage for Doom's green armor was slightly too low
which caused roundoff errors that made it less than 1/3 effective.
- Added support for "RRGGBB" strings to V_GetColor.
- Fixed: Desaturation maps for the TEXTURES lump were calculated incorrectly.
- Changed GetSpriteIndex to cache the last used sprite name so that the code
  using this function doesn't have to do it itself.
- Moved some more code for the state parser into p_states.cpp.
- Fixed: TDeletingArray should not try to delete NULL pointers.

SVN r1312 (trunk)
2008-12-07 12:11:59 +00:00
Christoph Oelckers
a23fa3dbe3 - forgot to add the new Doom stausbar definition.
SVN r1305 (trunk)
2008-12-06 12:04:51 +00:00
Christoph Oelckers
153a2a4c2c - Fixed: G_DoPlayDemo did not free the demobuffer or the CVAR backups when it
failed to start the demo.
- Added a MF5_BRIGHT flag to always render an actor fullbright.
- Fixed: Calling Door_Animated with a non-zero tag created a new thinker
  for each two-sided line of the sector.
- Added Karate Chris's submission for making 'spray' a cheat.
- Added CO2's default parameter additions for several Doom code pointers
  submission.
- Added CO2's A_RemoveMaster/A_RemoveChildren submission.
- Added Blzut3's SBARINFO replacement for the Doom statusbar.
- Fixed: SBarInfo still displayed the wrong bar for height 0
- Added A_KillSiblings and A_DamageSiblings code pointers.
- added MaxAbsorb and MaxFullAbsorb properties for Armor.


SVN r1304 (trunk)
2008-12-06 10:22:37 +00:00
Christoph Oelckers
3f2d5db348 - Changed: Textures without a name no longer get added to the texture manager's
hash chains.
- Fixed: specifying texture patches or font characters by full lump name instead
  of texture name didn't work. To do this properly the texture manager needs
  an option to look for a texture by lump number so that such textures can
  be maintained without interfering with regular operation.
- added 'skystretch' and 'autosequences' keywords for MAPINFO so that the effects
  of 'noautosequences' and 'forcenoskystretch' can be cancelled.
- Added a 'gamedefaults' section to MAPINFO after discovering that 'defaultmap'
  gets reset for each MAPINFO. A global section is needed to define a game's
  default setting in zdoom.pk3. The gamedefaults should normally not be changed 
  by PWADs but it can be done if some mod intends to change gameplay settings 
  but wants to allow custom add-ons on its own.


SVN r1300 (trunk)
2008-11-30 12:49:27 +00:00
Randy Heit
927c9532bf - It is now possible to replace the game's SmallFont with a single lump font
called SMALLFNT.
- Reduced the width of the second column in wi_percents false mode from 3 to
  2 characters.
- Added a WISLASH graphic for Doom's intermission screen when wi_percents is
  false.


SVN r1298 (trunk)
2008-11-30 01:37:11 +00:00
Randy Heit
6e83d231fe - The co-op summary screen now has a totals row at the bottom (if it fits).
- Changed WI_drawPercent() when wi_percents is false so that the total
  display is optional, and it formats it like Heretic's intermission, with
  a slash and a fixed-width right column.
- Font is no longer a property of the screen object. Pass the font to
  DrawText and DrawChar directly instead.
- Doom's intermission characters are now collected together as a font
  so they can be colorized.


SVN r1294 (trunk)
2008-11-27 17:43:36 +00:00
Christoph Oelckers
4d991de92d - moved common code of Raven's fast projectiles into a base class
called FastProjectile. This base class doesn't have any effects attached
  so that it can be used for user defined fast projectiles.


SVN r1290 (trunk)
2008-11-15 09:57:18 +00:00
Christoph Oelckers
d753d41752 - Added NULL checks to all places where class names are passed as DECORATE
parameters.
- All DECORATE parameters are passed as expressions now. This change allows
  for compile time checks of all class names being used in DECORATE so many
  incorrect definitions may output warnings now.
- Changed DECORATE sound and color parameters to use expressions.
- Changed: S_StopChannel now resets the actor's sound flags. The previous bug
  made me think that delaying this until FMod calls the end of sound callback 
  may simply be too late.


SVN r1276 (trunk)
2008-10-25 17:38:00 +00:00
Christoph Oelckers
b9afb78523 - Added native variables to expression evaluator and replaced the previous
handling of actor variables in expressions with it.
- Added support for floating point constants to DECORATE expression evaluator.

SVN r1271 (trunk)
2008-10-19 21:43:36 +00:00
Christoph Oelckers
2221ab5668 - Finally has the right idea how to restore Doom's original clipping of projectiles
against decorations without breaking anything newer:
  Added a new 'projectilepassheight' property that defines an alternative height
  that is only used when checking a projectile's movement against this actor.
  If the value is positive it is used regardless of other settings, if it is
  negative, its absolute will be used if a new compatibility option is enabled
  and if it is 0 the normal height will be used.


SVN r1253 (trunk)
2008-10-05 11:23:41 +00:00
Christoph Oelckers
d9ab611db2 - Fixed: Powerup.Color's handler contained an unnecessary 'else' which resulted
in opaque powerup blends.

SVN r1252 (trunk)
2008-10-05 08:50:47 +00:00
Christoph Oelckers
dd49574325 SVN r1248 (trunk) 2008-09-27 07:11:38 +00:00
Christoph Oelckers
954955c5a5 - Used the one unused byte in the state structure as a flag to tell what type
the NextState parameter is. The code did some rather unsafe checks with it
  to determine its type.
- moved all state related code into a new file: p_states.cpp.
- merged all FindState functions. All the different variations are now inlined
  and call the same function to do the real work.


SVN r1243 (trunk)
2008-09-22 18:55:29 +00:00
Christoph Oelckers
6227906072 - Fixed: SNDINFO must be loaded before the textures. However, this required
some changes to the MAPINFO parser which tried to access the texture manager
  to check if the level name patches exist. That check had to be moved to
  where the intermission screen is set up.
- Fixed: 'bloodcolor' ignored the first parameter value when given a list
  of integers.
  Please note that this creates an incompatibility between old and new 
  versions so if you want to create something that works with both 2.2.0
  and current versions better use the string format version for the color
  parameter!
- Rewrote the DECORATE property parser so that the parser is completely
  separated from the property handlers. This should allow reuse of all 
  the handler code for a new format if Doomscript requires one.
- Fixed: PClass::InitializeActorInfo copied too many bytes if a subclass's
  defaults were larger than the parent's.
- Moved A_ChangeFlag to thingdef_codeptr.cpp.
- Moved translation related code from thingdef_properties.cpp to r_translate.cpp
  and rewrote the translation parser to use FScanner instead of strtol.
- replaced DECORATE's 'alpha default' by 'defaultalpha' for consistency.
  Since this was never used outside zdoom.pk3 it's not critical.
- Removed support for game specific pickup messages because the only thing
  this was ever used for - Raven's invulnerability item - has already been
  split up into a Heretic and Hexen version.

SVN r1240 (trunk)
2008-09-21 18:02:38 +00:00
Christoph Oelckers
d8dad009e1 - Fixed a CQ pickup message.
SVN r1222 (trunk)
2008-09-14 06:44:22 +00:00
Christoph Oelckers
2c74e287a9 - Prefixed all names of CQ decorations with Chex after seeing some conflicts
with PWADs.
- Removed Chex Quest actors that were just unaltered duplicates of Doom's.
- Added detection for Chex Quest 3 IWAD.
- Cleaned up M_QuitGame because the code was almost incomprehensible and I
  wanted to add CQ3's new quit messages.
- Added Chex Quest obituaries and a few other messages from CQ3.
- Fixed: drawbar improperly clipped images when not in the top left quadrant.



SVN r1219 (trunk)
2008-09-13 19:19:53 +00:00
Randy Heit
4ffa924929 - Fixed: Hexen's fourth weapon pieces did not play the correct pickup sound,
and when they were fully assembled, they did not play the sound across the
  entire level.


SVN r1213 (trunk)
2008-09-12 01:12:40 +00:00
Christoph Oelckers
33c7d5c8d3 - Fixed: Chex Quest's Super Bootspork was missing the pickup message.
SVN r1205 (trunk)
2008-09-07 22:43:40 +00:00
Christoph Oelckers
bcbd2162b7 - Changed sound interface so that all references to game data like actors
and sectors are done in s_sound.cpp and not in fmodsound.cpp. Also removed
  several 'sector' parameters because they were never used inside the sound code.


SVN r1200 (trunk)
2008-09-06 11:07:27 +00:00
Randy Heit
535f7d92ba - Added the "extended" keyword for episode definitions to define episodes
that are only available in the extended version of Heretic.


SVN r1199 (trunk)
2008-09-06 04:03:53 +00:00
Christoph Oelckers
f84ededfba - fixed last commit.
- added more spawn filters.


SVN r1192 (trunk)
2008-09-01 19:56:32 +00:00
Christoph Oelckers
9df27c7afd - Added an 'allcheats' CVAR. This will enable all cheats from all
supported games in any game being played.
- Changed Chex Quest DoomEdNum initilization so that all empty slots 
  are filled with Doom actors if they exist.
- Added missing spawn filters to Chex Quest items.


SVN r1191 (trunk)
2008-09-01 19:45:17 +00:00
Christoph Oelckers
8832b66ce4 - Gave the PlayerPawn base class a default damage fade color instead of
hacking it into the actor when actually used.
- Fixed: The DamageFade color was not saved in savegames.


SVN r1190 (trunk)
2008-09-01 18:16:53 +00:00
Christoph Oelckers
388f87a737 - deleted chex.deh.
SVN r1189 (trunk)
2008-08-30 21:37:19 +00:00
Christoph Oelckers
dbcc246cf3 - Added Blzut3's patch for a real Chex Quest game mode.
SVN r1188 (trunk)
2008-08-30 19:44:19 +00:00
Christoph Oelckers
62a9958a9a - updated French texts.
SVN r1187 (trunk)
2008-08-30 08:03:26 +00:00
Christoph Oelckers
3801b9431a - Fixed: SKIP_SUPER doesn't work for inventory items so it must be
disabled for them
- Fixed: Chex Quest doesn't have a HELP2 screen so it must not be used
  in the gameinfo.
- Fixed: Default blood color is no longer red so P_DrawSplash2 must
  get it from the gameinfo instead.
- Added new French language texts by DoomKn1ght_.


SVN r1186 (trunk)
2008-08-29 08:48:51 +00:00
Christoph Oelckers
6a3b4a6c4d - Blood default color is set in the gameinfo now so that Chex Quest
can default to green instead of red.
- Fixed: The version of CheckNumForFullName that checks for a specific
  WAD did not work.
- Moved MAPINFO names into gameinfo structure.
- Added Chex Quest support. Credits go to fraggle for creating a 
  Dehacked patch that does most of the work. The rest includes a new
  MAPINFO and removal of the drop items from the monsters being used.



SVN r1185 (trunk)
2008-08-26 18:32:17 +00:00
Christoph Oelckers
76cb09d546 - Replaced WALLF_AUTOCONTRAST with WALLF_NOFAKECONTRAST so that the
default setting for the flags is 0.
- Added: doom2day's smoothlighting
- Added: dontincrement argument to A_CheckForReload.


SVN r1179 (trunk)
2008-08-21 08:04:21 +00:00
Christoph Oelckers
f64862fe75 - Fixed: The UDMF parser wrote class filter bits into SkillFilter.
- Fixed: (SBARINFO patch) DrawInventoryBar has a missing argument in 
  one of its drawgraphic calls.
- Added Gez's patch for Heretic's GIMME cheat.
- Externalized some cheat strings.


SVN r1178 (trunk)
2008-08-21 07:08:55 +00:00
Christoph Oelckers
30685c3a74 - Added Gez's patch for removing MF4_FIRERESIST.
SVN r1177 (trunk)
2008-08-19 19:38:39 +00:00
Christoph Oelckers
fcdef6a0de - Fixed: A_Explode wants the distance parameter as an int, not a fixed_t.
- some minor DECORATE fixes.


SVN r1173 (trunk)
2008-08-16 08:11:39 +00:00
Christoph Oelckers
909656c7c5 - DECORATE fixes.
SVN r1172 (trunk)
2008-08-15 23:11:04 +00:00
Christoph Oelckers
f3922ec6a1 - Added a few more macros so that the action function code doesn't have
to reference its arguments directly, except 'self'. This may be helpful if it 
  becomes necessary to restructure this code once DoomScript becomes real.
- Removed the last remaining global variable related to action functions:
  pStateCall. Everything is passed properly as function arguments now.
- fixed: PlayerChunk was missing the NOSKIN flag.


SVN r1169 (trunk)
2008-08-14 08:52:55 +00:00
Christoph Oelckers
db5a6e3d24 - fixed: A_CallSpecial must be declared in DECORATE so that a symbol table
entry can be generated for it.


SVN r1167 (trunk)
2008-08-13 14:51:28 +00:00
Christoph Oelckers
4fd717046e - fixed: Dehacked replaced pickups multiple times for changing its states.
- fixed: Dehacked must copy AInventory's state to any item it hacks to be a 
  pickup.
- fixed a few more DECORATE bugs.


SVN r1166 (trunk)
2008-08-13 09:11:19 +00:00
Christoph Oelckers
3cb073a3a0 - Fixed: The chat sound for Strife was misnamed in the gameinfo structure.
- fixed a few DECORATE bugs.


SVN r1165 (trunk)
2008-08-12 23:00:48 +00:00
Christoph Oelckers
65a19e4be7 - Changed the action function declaration parser so that optional parameters
can be given a default value. The 'optional' keyword is no longer needed
  and was removed, as well as 'evalnot'.


SVN r1164 (trunk)
2008-08-12 20:19:47 +00:00
Christoph Oelckers
1957659b1b - Restructured the action function interface to remove the dependence on
the global CallingState variable.


SVN r1163 (trunk)
2008-08-12 14:30:07 +00:00
Christoph Oelckers
c02253eef2 - Removed 'eval' modifier from DECORATE. All int, float and bool parameters are
'eval' now by default.


SVN r1155 (trunk)
2008-08-11 22:28:14 +00:00
Christoph Oelckers
8655d027da - DECORATE fixes for Strife.
SVN r1154 (trunk)
2008-08-11 21:05:43 +00:00
Christoph Oelckers
81132c809f - DECORATE related Hexen fixes.
SVN r1153 (trunk)
2008-08-11 19:18:48 +00:00
Christoph Oelckers
d533f839dd - fixed statejump bug in Minotaur.
SVN r1152 (trunk)
2008-08-11 10:02:24 +00:00
Christoph Oelckers
7fc5cd27fd - Added missing raise state for ScriptedMarine.
SVN r1151 (trunk)
2008-08-11 09:08:11 +00:00
Christoph Oelckers
1521f2faf3 - Heretic DECORATE fixes.
SVN r1150 (trunk)
2008-08-11 08:58:55 +00:00
Christoph Oelckers
f4c07c45ec - Removed DECORATE's ParseClass because it was only used to add data to fully
internal actor classes which no longer exist.
- Changed the state structure so that the Tics value doesn't need to be hacked
  into misc1 with SF_BIGTIC anymore. 
- Changed sprite processing so that sprite names are converted to indices 
  during parsing so that an additional postprocessing step is no longer needed.
- Fixed: Sprite names in DECORATE were case sensitive.
- Exported AActor's defaults to DECORATE and removed all code for the 
  internal property parser which is no longer needed.


SVN r1146 (trunk)
2008-08-10 14:19:47 +00:00
Christoph Oelckers
9b58c5ebbd - Converted the Heresiarch to DECORATE.
SVN r1145 (trunk)
2008-08-10 12:06:18 +00:00
Christoph Oelckers
5ea4b37373 - Added an Active and Inactive state for monsters.
- Made the speed a parameter to A_RaiseMobj and A_SinkMobj and deleted
  GetRaiseSpeed and GetSinkSpeed.
- Added some remaining DECORATE conversions for Hexen by Karate Chris.


SVN r1144 (trunk)
2008-08-10 11:29:19 +00:00
Christoph Oelckers
023b21a142 - Converted the last of Hexen's inventory items to DECORATE so that I could
export AInventory.
- Added some DECORATE fixes by Gez.

SVN r1138 (trunk)
2008-08-09 17:43:14 +00:00
Christoph Oelckers
ae54e13428 IMPORTANT NOTE: I uncommented some code depending on the missing x86.cpp file to allow this to compile, These changes must be reverted as soon as this file is added (see v_palette.cpp and win32/i_system.cpp.)
- Removed AT_GAME_SET because it's no longer used anywhere.
- Converted the last remaining global classes to DECORATE.
- Fixed: Inventory.PickupFlash requires an class name as parameter not an
  integer. Some Hexen definitions got it wrong.
- Converted Hexen's Pig to DECORATE.
- Replaced the ActorInfo definitions of all internal inventory classes with 
  DECORATE definitions.
- Added option to specify a powerup's duration in second by using a negative
  number.


SVN r1137 (trunk)
2008-08-09 11:35:42 +00:00
Christoph Oelckers
14e94b86e2 - Replaced the ActorInfo definitions of several internal classes with DECORATE definitions
SVN r1133 (trunk)
2008-08-08 22:52:04 +00:00
Christoph Oelckers
ef2c9243c5 - Converted teleport fog and destinations to DECORATE.
- AActor::PreExplode is gone now that the last item that was using it has been converted.
- Converted the Sigil and the remaining things in a_strifeitems.cpp to DECORATE.


SVN r1132 (trunk)
2008-08-08 19:47:18 +00:00
Christoph Oelckers
bd50321357 - Exported Point pushers, CustomSprite and AmbientSound to DECORATE.
SVN r1131 (trunk)
2008-08-08 16:16:40 +00:00
Christoph Oelckers
e010561088 - Changed increased lightning damage for Centaurs into a damage factor.
- Changed PoisonCloud and Lightning special treatment in P_DamageMobj to use damage
  types instead to keep dependencies on specific actor types out of the main engine code.
- Added Korax DECORATE conversion by Gez and a few others by Karate Chris.


SVN r1130 (trunk)
2008-08-08 15:18:23 +00:00
Christoph Oelckers
b695330e90 - Removed FourthWeaponClass and based Hexen's fourth weapons on the generic weapon
pieces.
- Added DECORATE conversions for Hexen's Fighter weapons by Karate Chris.
- Added aWeaponGiver class to generalize the standing AssaultGun.
- converted a_Strifeweapons.cpp to DECORATE, except for the Sigil.


SVN r1129 (trunk)
2008-08-08 10:24:08 +00:00
Christoph Oelckers
6ab69165c7 - Added more DECORATE conversions by Karate Chris.
SVN r1128 (trunk)
2008-08-08 07:40:41 +00:00
Christoph Oelckers
6b3325b358 - Converted the rest of a_strifestuff.cpp to DECORATE.
- Fixed: AStalker::CheckMeleeRange did not perform all checks of AActor::CheckMeleeRange.
  I replaced this virtual override with a new flag MF5_NOVERTICALMELEERANGE so that
  this feature can also be used by other actors.
- Converted Strife's Stalker to DECORATE.
- Converted ArtiTeleport to DECORATE.


SVN r1126 (trunk)
2008-08-07 20:16:07 +00:00
Christoph Oelckers
0e009ff18a - Changed: Macil doesn't need the StrifeHumanoid's special death states so he might
as well inherit directly from AActor.
- Converted Strife's Coin, Oracle, Macil and StrifeHumanoid to DECORATE. Also moved
  the burning hand states to StrifePlayer where they really belong.


SVN r1125 (trunk)
2008-08-07 17:45:35 +00:00
Christoph Oelckers
269a54a258 - Added more DECORATE conversions by Karate Chris.
SVN r1124 (trunk)
2008-08-07 15:46:52 +00:00
Christoph Oelckers
344f1072a6 - Fixed. The Firedemon was missing a game filter.
SBARINfO update:
- Added: disablegrin, disableouch, disablepain, and disablerampage flags to
  drawmugshot.
- Fixed: LowerHealthCap did not work properly.
- Fixed: Various bugs I noticed in the fullscreenoffsets code.

SVN r1122 (trunk)
2008-08-07 07:17:29 +00:00
Christoph Oelckers
535f209560 - Converted Strife's Programmer, Loremaster and Thingstoblowup to DECORATE.
- Fixed: Attacking a merchant in Strife didn't alert the enemies.


SVN r1121 (trunk)
2008-08-06 22:59:24 +00:00
Christoph Oelckers
bf281a4372 - Removed AT_GAME_SET(PowerInvulnerable) due to the problems it caused. The two
occurences in the code that depended on it were changed accordingly.
  Invulnerability colormaps are now being set by the items exclusively.
- Changed many checks for the friendly Minotaur to a new flag MF5_SUMMONEDMONSTER
  so that it can hopefully be generalized to be usable elsewhere later.
- Added Gez's submission for converting the Minotaur to DECORATE.


SVN r1120 (trunk)
2008-08-06 19:25:59 +00:00
Christoph Oelckers
c8538efda9 - Fixed a few minor DECORATE bugs.
- Changed coordinate storage for EntityBoss so that it works properly even
  when the pod is not used to spawn it.
- Converted Strife's Spectres and Entity to DECORATE.


SVN r1117 (trunk)
2008-08-06 17:49:22 +00:00
Christoph Oelckers
4f0fa50773 - Converted Strife's Crusader, Inquisitor and spectral missiles to
DECORATE.


SVN r1114 (trunk)
2008-08-05 22:51:51 +00:00
Christoph Oelckers
fe2e64aa40 - Converted Strife's Acolytes, Rebels, Sentinel, Reaver and Templar to
DECORATE.


SVN r1113 (trunk)
2008-08-05 17:58:38 +00:00
Christoph Oelckers
43715c5249 - Added DECORATE conversions for Hexen's Cleric weapons by Karate Chris.
- Added a check to Zipdir that excludes files with a .orig extension. These
  can be left behind by patch.exe and create problems.
- fixed: Unmorphing from chicken caused a crash when reading non-existent
  meta-data strings.


SVN r1112 (trunk)
2008-08-05 16:04:37 +00:00
Christoph Oelckers
4a9e70f1d2 - Converted the ScriptedMarines to DECORATE.
- Fixed: DLightTransfer and DWallLightTransfer were declared as actors.

SVN r1111 (trunk)
2008-08-05 13:50:57 +00:00
Christoph Oelckers
d5cc9e01d0 - Converted the PhoenixRod and associated classes to DECORATE to make
the Heretic conversion complete.


SVN r1110 (trunk)
2008-08-04 22:30:45 +00:00
Christoph Oelckers
b2a6bed19f - Converted the Minotaur's projectiles to DECORATE so that I can get
rid of the AT_SPEED_SET code.
- Converted Heretic's Blaster and SkullRod to DECORATE.


SVN r1109 (trunk)
2008-08-04 19:25:13 +00:00
Christoph Oelckers
cc99d150a3 - Added more DECORATE conversions by Karate Chris.
SVN r1108 (trunk)
2008-08-03 19:42:24 +00:00
Christoph Oelckers
affd0e5034 - Converted the mace and all related actors to DECORATE and generalized
the spawn function that only spawns one mace per level.
- Moved Mace respawning code into AInventory so that it works properly
  for replacement actors.


SVN r1107 (trunk)
2008-08-03 19:10:48 +00:00
Christoph Oelckers
11fbfc5b1f - Added more DECORATE conversions by Karate Chris.
SVN r1106 (trunk)
2008-08-03 16:13:23 +00:00
Christoph Oelckers
bf0ee1342c - Cleaned up the new bridge code and exported all related actors to
DECORATE so that the exported code pointers can be used.
- Separated Heretic's and Hexen's invulnerability items for stability 
  reasons.


SVN r1105 (trunk)
2008-08-03 12:00:36 +00:00
Christoph Oelckers
fddf69e950 - Added DECORATE conversions for Hexen's Cleric Mace, Firedemon and fog by
Karate Chris.
- Added several type checks to the weapon slot code.
- Changed: Players no longer respawn in instant death sectors with 
  the 'Respawn where died' flag on.


SVN r1101 (trunk)
2008-08-02 08:38:07 +00:00
Randy Heit
21a7564c98 - Fixed: Mace SpawnID was assigned to the MacePowered actor instead.
- Fixed: Sorcerer2FX1's SpawnID was not restricted to Heretic.


SVN r1097 (trunk)
2008-07-31 18:08:30 +00:00
Randy Heit
c42bc6af58 - More Heretic DECORATE fixes.
SVN r1094 (trunk)
2008-07-25 02:26:25 +00:00
Randy Heit
de5d4715c2 - Added Linux support for the CMakeLists. This meant downgrading them for
CMake 2.4, since the distros don't seem to consider 2.6 stable yet.
  As a bonus, GTK+ is no longer a required dependency; now it's optional.
- Made dehsupp ignore CR characters, so it doesn't spew warnings on Linux.



SVN r1092 (trunk)
2008-07-25 01:37:44 +00:00
Christoph Oelckers
a65f5c67a3 - fixed Chicken spawn ID
SVN r1089 (trunk)
2008-07-24 07:27:39 +00:00
Christoph Oelckers
c7b4fc6270 - fixed HereticImpLeader's health.
SVN r1087 (trunk)
2008-07-23 23:11:29 +00:00
Randy Heit
48b1514db1 Added missing wadsrc/CMakeLists.txt to repository.
SVN r1084 (trunk)
2008-07-23 19:11:58 +00:00
Christoph Oelckers
61b6c519dd - fixed some incorrect file names in the new WADSRC directory and deleted obsolete makefiles.
SVN r1083 (trunk)
2008-07-23 15:32:18 +00:00
Randy Heit
fb50df2c63 About a week's worth of changes here. As a heads-up, I wouldn't be
surprised if this doesn't build in Linux right now. The CMakeLists.txt
were checked with MinGW and NMake, but how they fair under Linux is an
unknown to me at this time.

- Converted most sprintf (and all wsprintf) calls to either mysnprintf or
  FStrings, depending on the situation.
- Changed the strings in the wbstartstruct to be FStrings.
- Changed myvsnprintf() to output nothing if count is greater than INT_MAX.
  This is so that I can use a series of mysnprintf() calls and advance the
  pointer for each one. Once the pointer goes beyond the end of the buffer,
  the count will go negative, but since it's an unsigned type it will be
  seen as excessively huge instead. This should not be a problem, as there's
  no reason for ZDoom to be using text buffers larger than 2 GB anywhere.
- Ripped out the disabled bit from FGameConfigFile::MigrateOldConfig().
- Changed CalcMapName() to return an FString instead of a pointer to a static
  buffer.
- Changed startmap in d_main.cpp into an FString.
- Changed CheckWarpTransMap() to take an FString& as the first argument.
- Changed d_mapname in g_level.cpp into an FString.
- Changed DoSubstitution() in ct_chat.cpp to place the substitutions in an
  FString.
- Fixed: The MAPINFO parser wrote into the string buffer to construct a map
  name when given a Hexen map number. This was fine with the old scanner
  code, but only a happy coincidence prevents it from crashing with the new
  code
- Added the 'B' conversion specifier to StringFormat::VWorker() for printing
  binary numbers.
- Added CMake support for building with MinGW, MSYS, and NMake. Linux support
  is probably broken until I get around to booting into Linux again. Niceties
  provided over the existing Makefiles they're replacing:
  * All command-line builds can use the same build system, rather than having
    a separate one for MinGW and another for Linux.
  * Microsoft's NMake tool is supported as a target.
  * Progress meters.
  * Parallel makes work from a fresh checkout without needing to be primed
    first with a single-threaded make.
  * Porting to other architectures should be simplified, whenever that day
    comes.
- Replaced the makewad tool with zipdir. This handles the dependency tracking
  itself instead of generating an external makefile to do it, since I couldn't
  figure out how to generate a makefile with an external tool and include it
  with a CMake-generated makefile. Where makewad used a master list of files
  to generate the package file, zipdir just zips the entire contents of one or
  more directories.
- Added the gdtoa package from netlib's fp library so that ZDoom's printf-style
  formatting can be entirely independant of the CRT.

SVN r1082 (trunk)
2008-07-23 04:57:26 +00:00
Christoph Oelckers
d167989c51 - Added MF4_BOSSDEATH to the Baron.
SVN r1081 (trunk)
2008-07-21 19:54:30 +00:00
Christoph Oelckers
c5e62a577f - Added MF4_BOSSDEATH to the Minotaur.
- Fixed: The boss brain looped to the wrong state.


SVN r1080 (trunk)
2008-07-21 19:52:38 +00:00
Christoph Oelckers
ae0ad31842 - Converted Heretic's Staff, GoldWand, Crossbow and Gauntlets to DECORATE.
SVN r1079 (trunk)
2008-07-21 18:01:06 +00:00
Christoph Oelckers
a8c283dacd - fixed: Morphing to a class without a face definition crashed.
- Converted all of Heretic's actors except the weapons to DECORATE.
- Added the option to define the ActorInfos for native classes in DECORATE.


SVN r1078 (trunk)
2008-07-21 17:03:30 +00:00
Christoph Oelckers
5cc1b4991c - converted the boss brain to DECORATE.
- added an abstract base class for special map spots that are maintained in 
  lists and rewrote the boss brain, the mace and DSparil to use it.
- fixed: RandomSpawners didn't destroy themselves after finishing their work.


SVN r1076 (trunk)
2008-07-20 14:42:54 +00:00
Christoph Oelckers
6d9b897681 - fixed: Textures marked as complex must not redirect to the base patch.
- fixed: Alpha for composite textures was not applied.
- fixed: The CentaurMash didn't inherit from the Centaur.
- added some NULL pointer checks to the sound code.


SVN r1075 (trunk)
2008-07-20 08:34:24 +00:00
Christoph Oelckers
5dc42121b7 - Fixed: When Heretic's Mace was replaced by a non-child class A_SpawnMace still
treated it as a mace and wrote into some undefined memory.
- Fixed: A_BishopMissileWeave didn't initialize special2 for proper movement.
- Added a speed parameter to A_SkullAttack.
- Fixed: Black as first or only blood color didn't work.
- Fixed: Sounds played in wi_stuff.cpp and f_finale.cpp need the CHAN_UI flag.
- Fixed: Spawning a player could play the *gasp sound.
- Fixed: SBARINFO's health display didn't scale to the proper maximum.
- Added Skulltag's Teleport_NoStop action special.


SVN r1074 (trunk)
2008-07-19 12:40:10 +00:00
Christoph Oelckers
ac32bd72bb - Added A_ClearReFire code pointer for weapons. Preferably A_WeaponReady should
reset this counter but that can't be done due to unwanted side effects with
  existing weapons.
- Changed the 'scale' variable in CVAR(turbo) to double because the calculations
  depended on the current floating point precision setting and only worked properly
  when set to 'precise' in VC++.


SVN r1057 (trunk)
2008-06-30 23:30:06 +00:00
Christoph Oelckers
095b482624 - Added ISMONSTER flag for Commander Keen so he can be killed by 'kill monsters'.
SVN r1054 (trunk)
2008-06-28 23:23:33 +00:00
Christoph Oelckers
4ff07b68ee - Added support for ST's QUARTERGRAVITY flag.
- Added a generalized version of Skulltag's A_CheckRailReload function.
- Fixed: DrawImage didn't take 0 as a valid image index.
- Added Gez's RandomSpawner submission with significant changes.
- Added optional blocks for MAPINFO map definitions. ZDoom doesn't use
  this feature itself but it allows other ports based on ZDoom
  to implement their own sets of options without making such a MAPINFO 
  unreadable by ZDoom.


SVN r1044 (trunk)
2008-06-22 09:13:19 +00:00
Randy Heit
2ca601eed1 - Dehacked fix discovered by entryway: Dehacked only changes the blue armor's
armortype. It does not touch the armor given by the megasphere.
- Changed forcewater handling so that only control sectors created by one-
  sided lines become swimmable, since there's a good chance that a two-sided
  line is creating the control sector out of a normal, accessible portion of
  the map. (See e.g. linedef 29242 of zdoomcmp1.)


SVN r1026 (trunk)
2008-06-10 01:27:24 +00:00
Randy Heit
5b8055bfc7 - Since KDIZD is the only mapset I know of that used reverb, and it didn't
define any new ones of its own, I'm pre-emptively renaming the SNDEAX lump
  to REVERBS to remove any possible misunderstanding that this is something
  that requires EAX hardware support. (Ideally, it would have been REVERBDEF,
  but that's 10 characters long.) The eaxedit console command has also been
  renamed to reverbedit for the same reason.
- Fixed: The Palette part of FRemapTable was not initialized with alpha values
  other than 0. I'm not sure if it would be better to fix this in the game
  palette that it copies from or not, but right now, they get set
  unconditionally to 255.

SVN r983 (trunk)
2008-05-20 04:02:49 +00:00
Christoph Oelckers
35ea94c014 May 18, 2008 (SBarInfo Update #20)
- Added: hasweaponpiece command to check for custom weapon pieces.
- Added: usessecondaryammo command to check if the current weapon has a second
  ammo type.
- Most of SBarInfo's mugshot scripting can be used with the default Doom status
  bar.
- Fixed: By default drawmugshot would never come out of normal god mode state.
  In addition the state change to and from god mode was not quite as responsive
  as the original code.

SVN r980 (trunk)
2008-05-18 15:48:03 +00:00
Christoph Oelckers
4de3741a05 - I finally managed to test the translucency options for composite texture
definitions in HIRESTEX. The feature should be complete now.
- Fixed: A_CheckTargetInLOS used BAM angles instead of degrees which is the
  DECORATE convention.
- Added Snowkate709's A_CheckTargetInLOS addition.
- Added listmaps CCMD.


SVN r974 (trunk)
2008-05-15 17:16:32 +00:00
Christoph Oelckers
0869b51928 - Fixed: Parsing sector special bit masks must be done backwards so that later
definitions take precedence.
- Added base translation tables for UDMF compatibility maps which only should
  handle the native line and sector types of each game.
- Turned the inactive SILENT_INSTANT_FLOORS define into a compatibility option
  so that it can be (un)set in a map definition and the menu. 

SVN r966 (trunk)
2008-05-12 17:14:38 +00:00
Christoph Oelckers
6c21616c85 - Changed: HIRESTEX 'define' textures now replace existing textures
of type MiscPatch with the same name.
- Added UDMF line trigger types MonsterUse and MonsterPush.
- Separated skill and class filter bits from FMapThing::flags so that
  UDMF can define up to 16 of each. Also separated easy/baby and
  hard/nightmare and changed default MAPINFO definitions.
- Changed: Crosshair drawing uses the current player class's default health instead
  of 100 to calculate the color for the crosshair.
- Added SECF_NOFALLINGDAMAGE flag plus Sector_ChangeFlags to set it. Also separated
  all user settable flags from MoreFlags into their own Flags variable.


SVN r964 (trunk)
2008-05-11 21:16:32 +00:00
Christoph Oelckers
9a410f864f - Separated the linedef activation types into a bit mask that allows combination
of all types on the same linedef. Also added a 'first side only' flag. This
  is not usable from Hexen or Doom format maps though but in preparation of
  the UDMF format discussed here:
  http://www.doomworld.com/vb/source-ports/43145-udmf-v0-99-specification-draft-aka-textmap/
- Changed linedef's alpha property from a byte to fixed point after seeing that
  255 wasn't handled to be fully opaque.
- fixed a GCC warning in fmodsound.cpp 

SVN r954 (trunk)
2008-05-02 10:55:48 +00:00
Christoph Oelckers
dbf4677da9 - Added speed factors for texture warp commands.
- Added damage type parameter to A_Die.

SVN r942 (trunk)
2008-04-26 08:46:55 +00:00
Christoph Oelckers
4667bfe46f - Added translucent blending modes to FMultipatchTexture (not tested yet!)
- Also changed all true color texture creation functions to use proper alpha
  values instead of inverted ones.
- Changed FRemapTable so that all palette entries must contain proper alpha
  values. 
- Fixed: The F1 screen check in m_menu.cpp was missing a NULL pointer check.
- Changed: The boss brain's explosions play weapons/rocklx which is an 
  unlimited sound. This can become extremely loud. Replaced with a new
  sound which is just an alias to weapons/rocklx but has a limit of 4.


SVN r932 (trunk)
2008-04-22 18:48:30 +00:00
Christoph Oelckers
5d0dc65044 - Added Martin Howe's fixes for morphing and DECORATE function prototypes.
- Minor fixes in texture code.


SVN r922 (trunk)
2008-04-17 20:34:58 +00:00
Christoph Oelckers
ce5d4dba02 - Changed true color texture creation to use a newly defined Bitmap class
instead of having the copy functions in the frame buffer class.
- Fixed: The WolfSS didn't have its obituary defined.


SVN r915 (trunk)
2008-04-15 18:05:39 +00:00
Christoph Oelckers
4dc1b9579e - Removed the check for Heretic when playing *evillaugh when using the
Chaos Device. This sound is not defined by the other games so it won't
  play by default.
- Added MORPH_UNDOBYTOMEOFPOWER and MORPH_UNDOBYCHAOSDEVICE flags
  for the morph style so that the special behavior of these two items
  can be switched on and off. 

SVN r890 (trunk)
2008-04-08 09:52:50 +00:00
Christoph Oelckers
e105a29e99 - Externalized all default episode definitions. Added an 'optional' keyword
to handle M4 and 5 in Doom and Heretic.
- Added P_CheckMapData functions and replaced all calls to P_OpenMapData that
  only checked for a map's presence with it.
- Added Martin Howe's player statusbar face submission.
- Added an 'adddefaultmap' option for MAPINFO. This is the same as 'defaultmap'
  but keeps all existing information in the default and just adds to it. This
  is needed because Hexen and Strife set some information in their base
  MAPINFO and using 'defaultmap' in a PWAD would override that.
- Fixed: Using MAPINFO's f1 option could cause memory leaks.
- Added option to load lumps by full name to several places:
  * Finale texts loaded from a text lump
  * Demos
  * Local SNDINFOs
  * Local SNDSEQs
  * Image names in FONTDEFS
  * intermission script names
- Changed the STCFN121 handling. The character is not an 'I' but a '|' so
  instead of discarding it it should be inserted at position 124.
- Renamed indexfont.fon to indexfont so that I could remove a special case
  from V_GetFont that was just added for this one font.
- Added a 'dumpspawnedthings' CVAR that enables a listing of all things in 
  the map and the actor type they spawned.


SVN r882 (trunk)
2008-04-05 12:14:33 +00:00
Christoph Oelckers
69002580e6 - Forgot to bump min. savegame version for last revision.
- Increased limit for demon/melee to 4. 

SVN r880 (trunk)
2008-04-04 17:10:15 +00:00
Christoph Oelckers
cb1bd7739e - Fixed: P_CheckSwitchRange accessed invalid memory when testing a one-sided
line.
- Fixed: P_SpawnPuff assumed that all melee attacks have the same range
  (MELEERANGE) and didn't set the puff to its melee state if the range
  was different. Even worse, it checked a global variable for this so
  the behavior was undefined when P_SpawnPuff was called from anywhere
  else but P_LineAttack. To reduce the amount of parameters I combined
  this information with the hitthing and temporary parameters into one
  flags parameter. Also changed P_LineAttack so that it gets passed
  an additional parameter that specifies whether the attack is a melee
  attack or not and set this to true in all calls that are to be considered
  melee attacks. I couldn't use the damage type because A_CustomPunch
  and A_CustomMeleeAttack allow passing any damage type they want.
- Added a sprite option as an alternative of particles for FX_ROCKET 
  and FX_GRENADE.


SVN r879 (trunk)
2008-04-04 14:31:20 +00:00
Christoph Oelckers
d5c3693fd9 - Added SnowKate709's A_DamageMaster/A_DamageChildren patch.
- Added a SFX_TRANSFERAMBUSHFLAG for A_SpawnItemEx.
- Added "Shaded" as a valid parameter for DECORATE's RenderStyle.
- Added Karate Chris's patch for a MAPINFO option making Strife conversations
  not halt the game.
- Extended the $limit fix that $alias and $random definitions can have their
  own $limit now.
- Fixed: When resolving a linked sound the limit of the current sound was
  ignored and the one of the referenced sound being used. This was particularly
  noticable when using the chaingun in a group of Zombiemen.
- Added a namespc parameter to FWadCollection::CheckNumForFullName which is
  used when a normal lump name has to be looked up and changed all
  CheckNumForFullName/CheckNumForName combinations in the source to use
  the extended version of CheckNumForFullName only to have consistent
  behavior for lump name lookup. 

SVN r865 (trunk)
2008-03-29 22:59:41 +00:00
Randy Heit
8d0c48bf81 - The garbage collector is now run one last time just before exiting the game.
- Removed movie volume from the sound menu and renamed some of the other
  options to give the MIDI device name more room to display itself.
- Moved the midi device selection into the main sound menu.
- Added FMOD as MIDI device -1, to replace the MIDI mapper. This is still the
  default device. By default, it uses exactly the same DLS instruments as the
  Microsoft GS Wavetable Synth. If you have another set DLS level 1 patch set
  you want to use, set the snd_midipatchfile cvar to specify where it should
  load the instruments from.
- Changed the ProduceMIDI function to store its output into a TArray<BYTE>.
  An overloaded version wraps around it to continue to supply file-writing
  support for external Timidity++ usage.
- Added an FMOD credits banner to comply with their non-commercial license.
- Reimplemented the snd_buffersize cvar for the FMOD Ex sound system. Rather
  than a time in ms, this is now the length in samples of the DSP buffer.
  Also added the snd_buffercount cvar to offer complete control over the
  call to FMOD::System::setDSPBufferSize(). Note that with any snd_samplerate
  below about 44kHz, you will need to set snd_buffersize to avoid long
  latencies.
- Reimplemented the snd_output cvar for the FMOD Ex sound system.
- Changed snd_samplerate default to 0. This now means to use the default
  sample rate.
- Made snd_output, snd_output_format, snd_speakermode, snd_resampler, and
  snd_hrtf available through the menu.
- Split the HRTF effect selection into its own cvar: snd_hrtf.
- Removed 96000 Hz option from the menu. It's still available through the
  cvar, if desired.
- Fixed: If Windows sound init failed, retry with DirectSound. (Apparently,
  WASAPI doesn't work with more than two speakers and PCM-Float output at the
  same time.)
- Fixed: Area sounds only played from the front speakers once you got within
  the 2D panning area.


SVN r854 (trunk)
2008-03-26 04:27:07 +00:00
Christoph Oelckers
f9b05c2b0c - Increased the limit for 'imp/active' to 6. This sound definitely benefits
from a higher limit.
- Fixed: $limit should not apply to sounds played from the menu.
- Fixed: The SNDSEQ parser tried to set bDoorSound before actually creating
  the sound sequence data.


SVN r852 (trunk)
2008-03-25 12:21:30 +00:00
Christoph Oelckers
14533f867d - Fixed: ANIMATED allowed animations between different texture types.
- Added a debuganimated CCMD that can be used to output some information
  if a WAD shows broken animations.
- Fixed: The handling for enum values in Xlat was incorrect. The rule with 
  value assignment must set the counter one higher than the current value.
- Fixed: The definition of enums in the Xlat grammar was right-recursive
  which could create stack overflows in the parser. Made it left-recursive as
  recommended in Lemon's docs. 


SVN r850 (trunk)
2008-03-25 09:43:50 +00:00
Randy Heit
aef34f9aa5 - Removed xlat_parser.h from the repository. Lemon was always being run on
xlat_parser.y because both files had the same time stamp after an update,
  and Lemon only rewrites the header file if it's changed.
- Added $volume SNDINFO command. This is multiplied with the volume the sound
  is played at to arrive at the final volume (before distance attenuation).
- Added the CHAN_AREA flag to disable 3D panning within the min distance of a
  sound. Sector sound sequences (except doors) use this flag.
- Added the CHAN_LOOP flag to replace the S_Looped* sound functions.
- Restored the sound limiting.


SVN r849 (trunk)
2008-03-25 04:42:26 +00:00
Christoph Oelckers
a6e9accedb - Fixed: The sector translators must clear unused bits because they might
render a sector's special inoperable.


SVN r844 (trunk)
2008-03-23 20:52:34 +00:00
Randy Heit
3237c6b4e8 - Changed MIDI playback to not bother playing super short songs that don't
contain enough music to fill the initial output buffers.
- Removed the read barrier around ADehackedPickup::RealPickup. If the real
  pickup is picked up, it may very well destroy itself before the dehacked
  wrapper's stubs that use it are called.
- Reverted revision 840. For a file we don't want end users to be touching,
  making DEHSUPP plain text sends out mixed messages: "Don't mess with this.
  Oh, by the way, it's plain text now to make it easier for you to edit."
  Is there some reason other than a desire to do away with binary lumps to
  make the distributed lump text?
- Added a new speakermode for Stereo + HRTF: "Headphones". This is the only
  way to get the HRTF low pass filter effect now.
- Fixed: No more than one sector could make noise at once.
- Trying out sound without varying priorities again. 
- Fixed: Need to use setSpeakerMix to let 2D sounds (aka streamed music) use
  their full volume range.


SVN r842 (trunk)
2008-03-23 05:24:40 +00:00
Christoph Oelckers
a665663c15 - Added sector type translation to xlat_parser and removed the old sectorx
lump.


SVN r841 (trunk)
2008-03-23 00:23:47 +00:00
Christoph Oelckers
9c1fa19dd2 - Changed DEHSUPP loader so that it reads the text file directly. As a result
the DEHSUPP compiler is gone now. Unlike XLATCC I'm using FScanner though.
  A fully featured parser seems like overkill for this simple text file.


SVN r840 (trunk)
2008-03-22 21:07:31 +00:00
Christoph Oelckers
e0bfe5fd42 - Added Line_SetTextureOffset special.
- Added 'allowprotection' keyword to terrain definitions to allow damaging
  flats that don't damage players with a radiation suit.
- Fixed: SNDINFO rolloff setting for Strife was missing.


SVN r839 (trunk)
2008-03-22 17:20:54 +00:00
Randy Heit
84d125cf21 - Fixed: Actor-less sounds that aren't played on CHAN_AUTO should still be
subject to channel overriding.
- Re-added priority selection based on sound usage.
- Reduced the number of virtual channels to match the number of real
  channels.
- Added customizable rolloff, including Doom's standard linear gain rolloff.
  SNDINFO commands are:
    $rolloff <sound> <min distance> <max distance>          -- linear gain (like Doom)
    $rolloff <sound> linear <min distance> <max distance>   -- linear volume
    $rolloff <sound> log <min distance> <rolloff factor>    -- logarithmic
    $rolloff <sound> custom <min distance> <max distance>   -- use SNDCURVE lump
  Anything closer than min distance is full volume and anything further than
  max distance is inaudible. Logarithmic rolloff does not have a maximum
  distance; it has a scalar that controls how quickly the volume drops off
  instead.


SVN r834 (trunk)
2008-03-22 03:33:41 +00:00
Christoph Oelckers
d3e34d1edd - Added NULL check to S_StopSound
- Removed XLATCC references from wadsrc/makefile.mgw.


SVN r827 (trunk)
2008-03-21 11:48:25 +00:00
Randy Heit
10920ffe75 - Removed some debug output from SBarInfo::ParseSBarInfo().
- Fixed: Heretic linetype translations included the wrong file.
- Removed all 2D sound positioning code from s_sound.cpp. Everything uses
  FMOD's 3D engine now.
- Removed all the channel selection code from s_sound.cpp. FMOD has code to
  handle this sort of thing, so let's use it.
- Replaced S_StopSoundID() with S_CheckSingular(). There is no longer a limit
  on the number of copies of a particular sound that can be playing at once,
  aside from Strife's special singular sounds. (Sorry, Heretic and Hexen.)
  Consequently, the SNDINFO $limit command is now ignored.
- Removed ATTN_SURROUND, since FMOD Ex doesn't exactly support it, and it
  only worked as intended on stereo speakers anyway.
- Cleaned out ancient crud from i_sound.cpp.


SVN r826 (trunk)
2008-03-21 05:13:59 +00:00
Christoph Oelckers
82f3182e5b - deleted a few remaining references to XLATCC.
- deleted src/xlat/xlat_parser.c from the repository. Its content depend on the directory
  directory structure it is generated in and it gets recreated each time the project is 
  compiled (why?) so it'd be changed with each SVN commit. VC++ doesn't seem to mind if 
  it can't be found so I think it's better this way.


SVN r822 (trunk)
2008-03-20 09:59:53 +00:00
Christoph Oelckers
8ea316e33b - Integrated xlatcc into ZDoom.exe so that the linedef translation files
don't need to be compiled and can be stored as text in zdoom.pk3.


SVN r815 (trunk)
2008-03-19 21:09:53 +00:00
Christoph Oelckers
5b9073add4 - Added copyright/license headers to a few files.
- Fixed: ACS SetMugShotState needs to check the StatusBar pointer for the
  proper object type.
- Move SBarInfo loading code in d_main.cpp into a static method of DSBarInfo.
- Removed dobject.err from the repository. It only contained a list of compiler
  errors for some very old version of dobject.cpp.
- Fixed: A_JumpIfCloser was missing a z-check.
- Added Blzut3's SBARINFO update #13:
- Split sbarinfo.cpp into two files sbarinfo_display.cpp and sbarinfo_parser.cpp
- Rewrote the mug shot system for SBarInfo to allow for scripting and custom
  states for different means of death.
- SBarInfo now loads all SBarInfo lumps instead of just the last one.  Clashing
  status bar definitions will now be cleared before the bar is read.
- Fixed: When using transparency with bars the new drawing method (bg over fg)
  didn't work.  In the case that the border value is set to 0 it will revert to
  the old method (fg over bg).
- Fixed: drawbar lost any high res information it was given.
- Added: ACS command SetMugShotState(str state) which sets the mug shot state
  for the activating player.
- Added: keepoffsets flag to drawbar.  When set the offsets in the fg image will
  also be applied when displaying the bar.


SVN r812 (trunk)
2008-03-19 09:53:23 +00:00
Christoph Oelckers
88068f74c5 - Fixed: Hexen's random player class skill menu was missing the '$' indicating
a string table identifier.


SVN r765 (trunk)
2008-02-22 22:51:10 +00:00
Randy Heit
77040032c5 - Size-optimized invgem PNGs.
SVN r755 (trunk)
2008-02-19 03:07:04 +00:00
Christoph Oelckers
2a77ea0155 - Applied Blzut3's sbarinfo update #12:
* When the drawbar code was optimized border was accidently used as how many
  pixels to reserve from the background instead of the foreground.  I've
  reversed how the code works (bg over fg instead of fg over bg).
* Added armorclass to drawnumber.
* Added an interpolateArmor variable which acts just like interpolateHealth
  except the effect is applied to armor.
* Added armor flag to drawgem since we can interpolate armor now.
* Added a reverse flag to drawgem.
* Fixed drawgem didn't allow for '|' to separate the flags.

- Fixed: Menu texts for skill definitions unconditionally interpreted
  the given text as an index into the string table.


SVN r752 (trunk)
2008-02-18 22:40:39 +00:00
Randy Heit
95180e18e6 - Modified FLAC/share/alloc.h to define SIZE_T_MAX if it isn't defined
already. For some reason, a stock install of MinGW doesn't define it, but
  if you compile your own GCC, it installs headers that do.
- Changed the way that the makefiles detect MSYS to a method that should
  be more foolproof, thanks to changes in MSYS.

SVN r737 (trunk)
2008-02-10 01:21:45 +00:00
Randy Heit
0f3a1cc8b1 - Applied Blzut3's sbarinfo update #11:
* SBarInfo will also accept a '|' between flags for those who are really
    bothered by the indefinite "arguments" in the middle of the statement.
  * Added: completeBorder. When set to true SBarInfo will draw the border where
    the status bar normally goes.
  * Fixed: I forgot to accept TK_None on "base" and "statusbar".
  * Fixed: "base" was apparently broken when the SBarInfo init code was moved to
    d_main.cpp. Also, if "base Strife" was used then it would not use the
    default log message of "find help".


SVN r736 (trunk)
2008-02-09 03:55:41 +00:00
Randy Heit
6af5665575 - Fixed: Morphed pig and chicken players made normal human *usefail sounds.
- G_DoSaveGame() now receives the filename and description from its arguments
  rather than global variables, so autosaves and manual saves can be done
  in close proximity to each other without overwriting the parameters for
  one of them.
- Fixed potential buffer overrun in G_SaveGame() and added a check so that
  you can't interfere with saves that are still pending.
- Fixed: P_LineAttack() creates temporary puffs to get damage types, but this
  had the side effect of creating particles for the puff.
- Fixed: The Heretic status bar tried to use the graphic "SELECTBOX" for the
  inventory selector. The correct name is "SELECTBO".
- Fixed: Using allowrespawn for a single-player map would fire off enter
  scripts instead of respawn script because the player wasn't assigned the
  state PST_REBORN.
- Fixed: P_CheckMissileSpawn() now passes the BlockingMobj to
  P_ExplodeMissile() so that it can select the appropriate death state.
- Added the manifest to MinGW-compiled builds of updaterevision so you can
  build under Vista with MinGW without needing administrative privileges.
  (But I still want to know why Vista thinks it needs elevated privileges
  without a manifest telling it otherwise.)
- Using four 0xFF bytes for the final note of an IMF song should signal the
  end of the song.


SVN r733 (trunk)
2008-02-05 23:32:49 +00:00
Randy Heit
9a785239f2 - Removed support for numeric flags from sbarinfo's drawmugshot command since
it was previously declared unrecommended and deprecated.
- Added Blzut3's sbarinfo update #10:
  * Fixed: drawmugshot now adjust to the player's max health like it should.
  * drawgem can now accept negative paddings.
  * Added: You can now specify a border on drawbar which will reserve x
    amount of pixels on each side of the fg image.
  * Added: weaponammo command which allows for determining what kind of ammo
    the current weapon uses.
  * Added: Drawkeybar to SBarInfo


SVN r730 (trunk)
2008-02-03 05:17:42 +00:00
Christoph Oelckers
5716a08c55 - fixed DEHSUPP values for render styles.
SVN r728 (trunk)
2008-01-31 21:04:21 +00:00
Christoph Oelckers
78164aab40 - Added support for AttackZOffset to P_RailAttack.
- Fixed: ParseDrawTextureTags read DTA_RenderStyle as ERenderStyle, not FRenderStyle.


SVN r726 (trunk)
2008-01-30 18:45:15 +00:00
Christoph Oelckers
5dfc81af36 - Changed license for r_data.cpp because there isn't anything of id's original
code left in that file.
- Cleaned up r_data.cpp.
- Fixed: FTextureManager::FindTexture should not print error messages if it
  doesn't find the texture.
- Added Karate Chris's patch for fixing Strife quit messages.


SVN r718 (trunk)
2008-01-27 09:38:37 +00:00
Christoph Oelckers
58816f5d09 - Added Karate Chris's patch for teamplay MAPINFO option.
- Added Karate Chris's patch for custom damage color per player class.
- Added Karate Chris's patch for respawnlimit skill property.
- Added Karate Chris's patch for Strife quit messages.
- Fixed: P_RailAttack ignored the puff's damage type.


SVN r714 (trunk)
2008-01-26 16:42:16 +00:00
Randy Heit
ec17f5a5b9 - Undid some of the changes from lempar.c v1.30->v1.31, because it broke
error handling.
- Fixed: dehsupp/scanner.re defined "}" as the token RPAREN. dehsupp/parse.y
  also defined action_list_def as needing a RBARCE. I'm surprised it worked
  at all before. I guess Lemon really was too accepting.
- Changed the way that xlatcc handles include statements so that I don't need
  to modify the logic of lempar.c. I also discovered that the grammar was
  improperly defined and only accepted the first statement. It worked before
  because Lemon used to accept multiple times before reaching the EOF token.
  I have also verified that it is still generating the proper lumps.
- Removed some unused wadsrc files from the repository.
- Fixed my re2c upgrade.
- Updated lemon.c to v1.53.

SVN r711 (trunk)
2008-01-26 04:33:34 +00:00
Randy Heit
e5572a1c4e - Updated lempar.c to v1.31.
- Added .txt files to the list of types (wad, zip, and pk3) that can be
  loaded without listing them after -file.
- Fonts that are created by the ACS setfont command to wrap a texture now
  support animated textures.
- FON2 fonts can now use their full palette for CR_UNTRANSLATED when drawn
  with the hardware 2D path instead of being restricted to the game palette.
- Fixed: Toggling vid_vsync would reset the displayed fullscreen gamma to 1
  on a Radeon 9000.
- Added back the off-by-one palette handling, but in a much more limited
  scope than before. The skipped entry is assumed to always be at 248, and
  it is assumed that all Shader Model 1.4 cards suffer from this. That's
  because all SM1.4 cards are based on variants of the ATI R200 core, and the
  RV250 in a Radeon 9000 craps up like this. I see no reason to assume that
  other flavors of the R200 are any different. (Interesting note: With the
  Radeon 9000, D3DTADDRESS_CLAMP is an invalid address mode when using the
  debug Direct3D 9 runtime, but it works perfectly fine with the retail
  Direct3D 9 runtime.) (Insight: The R200 probably uses bytes for all its
  math inside pixel shaders. That would explain perfectly why I can't use
  constants greater than 1 with PS1.4 and why it can't do an exact mapping to
  every entry in the color palette.
- Fixed: The software shaded drawer did not work for 2D, because its selected
  "color"map was replaced with the identitymap before being used.
- Fixed: I cannot use Printf to output messages before the framebuffer was
  completely setup, meaning that Shader Model 1.4 cards could not change
  resolution.
- I have decided to let remap palettes specify variable alpha values for
  their colors. D3DFB no longer forces them to 255.
- Updated re2c to version 0.12.3.
- Fixed: A_Wander used threshold as a timer, when it should have used
  reactiontime.
- Fixed: A_CustomRailgun would not fire at all for actors without a target
  when the aim parameter was disabled.
- Made the warp command work in multiplayer, again courtesy of Karate Chris.
- Fixed: Trying to spawn a bot while not in a game made for a crashing time.
  (Patch courtesy of Karate Chris.)
- Removed some floating point math from hu_scores.cpp that somebody's GCC
  gave warnings for (not mine, though).
- Fixed: The SBarInfo drawbar command crashed if the sprite image was
  unavailable.
- Fixed: FString::operator=(const char *) did not release its old buffer when
  being assigned to the null string.
- The scanner no longer has an upper limit on the length of strings it
  accepts, though short strings will be faster than long ones.
- Moved all the text scanning functions into a class. Mainly, this means that
  multiple script scanner states can be stored without being forced to do so
  recursively. I think I might be taking advantage of that in the near
  future. Possibly. Maybe.
- Removed some potential buffer overflows from the decal parser.
- Applied Blzut3's SBARINFO update #9:
  * Fixed: When using even length values in drawnumber it would cap to a 98
    value instead of a 99 as intended.
  * The SBarInfo parser can now accept negatives for coordinates. This
    doesn't allow much right now, but later I plan to add better fullscreen
    hud support in which the negatives will be more useful. This also cleans
    up the source a bit since all calls for (x, y) coordinates are with the
    function getCoordinates().
- Added support for stencilling actors.
- Added support for non-black colors specified with DTA_ColorOverlay to the
  software renderer.
- Fixed: The inverse, gold, red, and green fixed colormaps each allocated
  space for 32 different colormaps, even though each only used the first one.
- Added two new blending flags to make reverse subtract blending more useful:
  STYLEF_InvertSource and STYLEF_InvertOverlay. These invert the color that
  gets blended with the background, since that seems like a good idea for
  reverse subtraction. They also work with the other two blending operations.
- Added subtract and reverse subtract blending operations to the renderer.
  Since the ERenderStyle enumeration was getting rather unwieldy, I converted
  it into a new FRenderStyle structure that lets each parameter of the
  blending equation be set separately. This simplified the set up for the
  blend quite a bit, and it means a number of new combinations are available
  by setting the parameters properly.


SVN r710 (trunk)
2008-01-25 23:57:44 +00:00
Christoph Oelckers
c15a3a8614 - Moved A_Punch from Inventory to Actor. Apparently there are WADs that use it
for monsters. The function works fine for monsters as it is.


SVN r705 (trunk)
2008-01-13 15:47:55 +00:00
Christoph Oelckers
1788e0a3cd - deleted old invgem** graphics and replaced them with the PNGs from last commit so that they work properly in all games.
SVN r698 (trunk)
2008-01-12 09:31:37 +00:00
Christoph Oelckers
74ab0d7184 - Added inventory arrow graphics for AltHUD.
SVN r697 (trunk)
2008-01-12 09:24:59 +00:00
Randy Heit
ce388163e1 - Moved thingdef_codeptr.cpp into thingdef/ with the other thingdef files.
- Fixed: After loading a savegame, G_UnSnapshotLevel() destroyed the
  unmorphed versions of players because it thought they were extras.


SVN r694 (trunk)
2008-01-12 01:17:37 +00:00
Christoph Oelckers
0b7357b2fc - Added Skulltag's pickup sprite and related information to the pistol. This
will also double as the pistol's icon in the AltHUD.
- Added a generic log display that can show Strife's log messages in all games
  regardless of the current game, active status bar and HUD mode.
- Added GZDoom's alt HUD.

SVN r693 (trunk)
2008-01-11 22:38:10 +00:00
Randy Heit
c694c55afd - Fixed: When starting a teamplay netgame, players who did not specify a team
were not informed about which team they ended up joining.
- Added Skulltag's DF2_SAME_SPAWN_SPOT flags.
- Fixed: DF2_YES_DEGENERATION was pretty much guaranteed to go out of sync
  because it used gametic for timing.
- Added DoubleAmmoFactor as a skill property for the DF2_YES_DOUBLEAMMO flag.
- Renumbered the dmflags2 entries to match Skulltag's again.
- Added Karate Chris's infinite ammo patch.


SVN r683 (trunk)
2008-01-09 02:53:38 +00:00
Randy Heit
0a822bd2da Forgot to add xhairs.txt to the repository.
SVN r680 (trunk)
2008-01-08 04:52:57 +00:00
Randy Heit
761c77d033 - Added support for user-defined crosshairs in the Display Options menu. See
xhairs.txt in zdoom.pk3. It's pretty simple.


SVN r679 (trunk)
2008-01-08 04:00:43 +00:00
Randy Heit
2d4b679fcb - Fixed: P_BounceWall() cannot assume that BlockingLine is the line the actor
should bounce off of. Since the order lines in a blockmap cell are checked
  for collision is essentially undefined, there could be another line closer to
  the actor that it should bounce off of instead.

SVN r678 (trunk)
2008-01-08 03:21:01 +00:00
Christoph Oelckers
f918a43286 - Re-converted icebreak.flac because the old version apparently didn't work.
SVN r673 (trunk)
2008-01-06 20:54:18 +00:00
Christoph Oelckers
1f0fa7c457 - Added SBARINFO update #5 by blzut3:
- Fixed: Playerclass still didn't work due to comparing of improper numbers.
    - Fixed: The arrows on drawinventorybar had a hard coded location instead of
      relative to the specified coordinates.
    - Added noarrows flag to drawinventorybar to remove the blue arrows drawn when
      there are more items to the left or right of the viewable bar.
    - Added forcescaled flag to the statusbar command.  This is ignored on the
      inventory and inventoryfullscreen types.
- Added obituary fix for Strife peasants by Karate Chris.
- Added fix for loading during demo playback by Karate Chris.


SVN r672 (trunk)
2008-01-06 19:10:52 +00:00
Christoph Oelckers
a329efe9a4 - Added a check to Wads.CheckNumForName to return -1 for names longer than
8 characters which contain path separators.
- Fixed: Hires texture replacement must replace all matching textures, not
  just the first one found. This is particularly important for icons based
  on sprites.
- added a con_alpha CVAR to set the console's translucency.
- Added MartinHowe's submission for A_CustomBulletAttack aimfacing parameter.
- Added MartinHowe's submission for A_PlaySoundEx attenuation parameter.
- Fixed: Bots shouldn't target friendly monsters.
- Fixed a typo in sbarinfo.cpp (noatribox instead of noartibox.)

SVN r654 (trunk)
2007-12-28 11:17:52 +00:00
Christoph Oelckers
8a433d6f12 - Fixed a few font related problems.
- Fixed: ASkyViewpoint::Destroy was missing the super call.
- Added SnowKate709's A_LookEx update.
- Moved M_DrawPlayerBackdrop into DCanvas as a virtual function. Since this
  directly accesses the frame buffer it must be overridable for renderers
  that work differently.


SVN r632 (trunk)
2007-12-23 21:56:46 +00:00
Christoph Oelckers
b3d38c0bcf - forgot to commit indexfont.fon.
SVN r630 (trunk)
2007-12-23 20:59:43 +00:00
Christoph Oelckers
9c89381400 - Added Blzut3's third SBARINFO update:
* Added drawshader to draw Heretic style transparency gradients.
 * Added artiflash flag to drawselectedinventory.
 * Fixed: Drawgem used the wrong operator when determining the chain size.
 * Fixed: ZDoom would crash if an undefined font was used.
 * I also started cleaning up the source a little.  I have been informed that
 when checking for flags the "== flagname" is redundant.
- Added indexfont anf hudfont from GZDoom to zdoom.pk3 so that they are always 
  available when defining custom status bars.


SVN r629 (trunk)
2007-12-23 20:59:06 +00:00
Christoph Oelckers
aacb694200 - Fixed: The second flash state of the chaingun called A_Light1 instead of A_Light2.
SVN r620 (trunk)
2007-12-22 14:29:01 +00:00
Christoph Oelckers
16a2eb3b0c - Added SnowKate709's A_LookEx submission.
SVN r611 (trunk)
2007-12-20 20:37:06 +00:00
Christoph Oelckers
b48cc1792b - Added Karate Chris's TEAMINFO submission.
SVN r610 (trunk)
2007-12-20 20:22:31 +00:00
Christoph Oelckers
a7bc9262d9 - Fixed: The StrifePlayer defined the wrong color range for its translations.
SVN r606 (trunk)
2007-12-20 08:44:45 +00:00
Randy Heit
1225071f78 - Fixed: Skill level confirmation only worked with Doom. Also fixed parsing
of MustConfirm: It looked for TK_String when it should have used TK_StringConst.
- Fixed: When travelling to a new non-hub map, any items being carried with
  amounts of 0 would be upped to 1.


SVN r589 (trunk)
2007-12-09 02:27:02 +00:00
Christoph Oelckers
56771aebe1 - Hotfix to allow parsing of current MAPINFOs: Removed empty strings from
base MAPINFOs.


SVN r577 (trunk)
2007-12-06 10:47:38 +00:00
Christoph Oelckers
47dafa3824 - Fixed: A_PainDie and A_DualPainAttack could fail to spawn the correct actor
if the first spawned one died and executed some code in its death state.
- Added Karate Chris's submission for 'allowrespawn' MAPINFO option.
- Added Karate Chris's submission for customizable skill confirmation text.
- Fixed: Doom's statusbar only checked for primary attacks, not secondary ones when
  setting Doomguy's face. (Thanks to Karate Chris for the fix.)
- added Skulltag's FORCEYBILLBOARD and FORCEXYBILLBOARD flags to the DECORATE parser.
  Even though the software renderer has no use for them it is necessary to support them
  so that mods can use these flags without becoming incompatible with ZDoom.


SVN r576 (trunk)
2007-12-06 08:55:17 +00:00
Christoph Oelckers
98bf6accee - added missing spawn ID to the PLasmaBall
SVN r570 (trunk)
2007-11-20 16:55:22 +00:00
Christoph Oelckers
e09629e2b6 - fixed TableShit9 definition
SVN r567 (trunk)
2007-11-18 08:05:33 +00:00
Christoph Oelckers
1d568f155d Fixed Berserk pickup sound.
SVN r566 (trunk)
2007-11-13 17:56:43 +00:00
Christoph Oelckers
912f8666d7 November 11, 2007 (Changes by Graf Zahl)
- Fixed: The FMOD stream player must specify whether it wants to play the
  sound looped or not when playback is started, not when the stream is created.
- Fixed: A_Saw didn't use the puff's damage type.
- Fixed: The AxeBlood's death state was using the wrong sprite frame.
- Fixed: The Mancubus had an attack sound defined even though it shouldn't.


SVN r565 (trunk)
2007-11-11 09:02:04 +00:00
Christoph Oelckers
621fe2ed98 - Changed PowerFlight so that Hexen's infiniteness is not controlled by being
in a hub but by a level flag instead.
- Fixed: Floor and ceiling huggers must set themselves to floor and ceiling each
  time they move.
- Added a LEVEL_NOMONSTERS flag so that G_ChangeLevel doesn't have to mess with
  the dmflags CVAR to start the level without monsters.


SVN r563 (trunk)
2007-11-08 09:22:06 +00:00
Christoph Oelckers
8f5dd5d028 - Fixed: Backpacks didn't increase the ammo capacity to BackpackMaxAmount if
an ammo type's BackpackAmount was 0.
- Fixed some minor bugs in custom skill code.

SVN r562 (trunk)
2007-11-04 08:39:05 +00:00
Christoph Oelckers
c873ae1709 minor fixes in custom skill code
SVN r561 (trunk)
2007-11-03 15:08:06 +00:00
Christoph Oelckers
6d3e239678 - Changed names of skill properties to be the same as for episodes if possible.
SVN r560 (trunk)
2007-11-03 11:56:30 +00:00
Christoph Oelckers
659107cacf - Added text color options to menu code so that the skill definitions can set
the color of the menu's text.
- Externalized skill settings to ZDoom.pk3


SVN r559 (trunk)
2007-11-03 11:41:42 +00:00
Christoph Oelckers
b15767c26f - Fixed: The pointer cleanup code must also check a sector's sky box pointers.
- Fixed: Right after teleporting P_SlideMove could cause player movement.
  Added a check for reactiontime to prevent that.
- Fixed: PainChances and Damagefactors were never freed.
- Added option to A_Chase that prevents the monster from moving.
- Fixed: The stained glass shards were missing the HEXENBOUNCE flag.
- Added some NULL pointer checks to AActor::GiveAmmo.
- Fixed: The FSwordMissile was missing the special damage handling that
  reduces damage when hitting a player.

SVN r555 (trunk)
2007-10-29 20:27:40 +00:00
Christoph Oelckers
3b477d7022 - Fixed: POwered up weapons with a different ready state than their base
weapon didn't change back when the powerup expired.
- Fixed: The powered up version of Heretic's Gauntlets missed the proper
  state assignments for Ready, Lower and Raise.
- Fixed: The Strife player was missing its pain state.
- Fixed: Revenant missiles couldn't home in on targets with a height lower than
  40.
- Fixed: The code which checked for hitscan traces hitting actors from above
  and below must test whether the calculated hit position is actually inside 
  the actor being checked. If it crosses the top/bottom plane outside the
  bounding box there can't be a hit.
- Changed: State labels in code pointer calls must now be enclosed in quotation marks.
  This was done to ensure compatibility with parsers that will parse these as
  identifier-aware script code later.


SVN r554 (trunk)
2007-10-19 08:49:02 +00:00
Christoph Oelckers
90db40c70f - Fixed: Tne Imp's raise state sequence was wrong due to a typo.
- Fixed: The shotgun had spawn ID 21 instead of 27.
- Fixed: All 3 states in the DoomUnusedStates actor need to end with a 'stop'.
- Fixed: The DECORATE TakeInventory functions didn't check the IF_KEEPDEPLETED
  flag.
- Fixed: ClearInventory should leave ammo in the inventory because it might be
  referenced by undroppable weapons.
- Fixed: Several functions in a_artifacts.cpp were missing a check for a valid
  owner.
- Fixed: sc_man counted lines wrong when ungetting strings but getting tokens
  next.



SVN r552 (trunk)
2007-10-05 08:04:38 +00:00
Christoph Oelckers
e8875041ca - fixed: THe Timidity player didn't close its temporary files and left them
behind because it couldn't delete them.
- added a $MidiDevice option to SNDINFO which can either set the preferred
  MIDI device for a song to Timidity or Windows' standard MIDI device.
  The reason for this: About 80% of my MIDI music collection sounds better
  with Timidity and the other 20% with Windows' standard synth and I'd like
  to be able to use each with the one that sounds better. For MUS files you
  can also force the use of OPL playback.
- added telefrag option to A_SpawnItemEx.


SVN r545 (trunk)
2007-09-12 00:20:11 +00:00
Christoph Oelckers
c06bd09ee7 - Fixed: dumpmap crashed when used outside a map.
- Exported A_DeQueueCorpse to DECORATE. It seems I forgot this when exporting
  A_QueueCorpse.



SVN r542 (trunk)
2007-09-02 09:57:08 +00:00
Christoph Oelckers
5e2e389bd1 - fixed: The BFGBall's explosion sequence was missing a state.
- fixed: The brown Chaos Serpent in Hexen had an incorrect sprite for its
  ice death sequence set.
- fixed: Ammo upon game start does not get multiplied when on easy skill.
  Implementing this as an inventory flag IF_IGNORESKILL also allows to create
  ammo/weapon/backpack types that don't multiply the ammo given when on this
  skill.
- moved Doom exit sounds into SNDINFO as $random definitions.
- Fixed: Dying Lost Souls could be reset to their see state if they slammed into
  something.

SVN r540 (trunk)
2007-07-28 12:38:10 +00:00
Christoph Oelckers
8f6fdc1d21 - Split thingdef.cpp into several files so that the state and property code
no longer gets in the way of the main parser.
- Changed A_MissileAttack, A_MeleeAttack and A_ComboAttack so that they use
  metadata. Now all the hack code associated with these functions can be removed.


SVN r538 (trunk)
2007-05-28 22:18:51 +00:00
Christoph Oelckers
50f75b6e8a - Fixed: deadthings.txt contained a superfluous ';' which created parsing errors
with my changed code.
- Cleaned up DECORATE parser a little - moved the old style parsing code into its 
  own file and rearranged a few things.
- Made ProcessStates non-static so that it doesn't need to be passed as an argument
  to all functions in the DECORATE parser.
- Moved DECORATE parser files into their own subdirectory.
- Optimization: SC_GetToken no longer sets sc_name for identifiers. In most cases
  this creates needless overhead by adding a potentially unneeded name to the name
  table and looking up the name. In almost all cases where a name is needed it's as
  easy to assign sc_String to the name variable.
- Added enum definitions to DECORATE.


SVN r537 (trunk)
2007-05-28 14:46:49 +00:00
Christoph Oelckers
2345a1a5f0 - Fixed: The speed definition of PowerSpeed used PROP_SpeedFixed instead of
PROP_SpeedLong.
- Fixed: The Chainsaw's kickback was initialized to the default - not 0.


SVN r535 (trunk)
2007-05-27 12:16:43 +00:00
Christoph Oelckers
f4dcfad331 - Copied railgun sound fix from Skulltag.
- Made infighting a level flag. The old method still exists but the level flags
  will take precedence if set.



SVN r532 (trunk)
2007-05-20 11:08:36 +00:00
Christoph Oelckers
bbb99f1ce6 - fixed confirmation string for deleting savegames.
SVN r526 (trunk)
2007-05-01 10:09:04 +00:00
Christoph Oelckers
f11525f90f - Moved most of the menu strings (except options and player setup menu) into the
string table.


SVN r525 (trunk)
2007-05-01 07:57:08 +00:00
Christoph Oelckers
6fad457592 - Fixed: GetLumpOffset must call SetLumpAddress when being called for uncompressed
Zip entries.
- Fixed: Some of Doom's weapon obituaries didn't have the $-prefix that indicates a 
  reference to the string table.
- Fixed: The check for a valid weapon's spawn state for weapon dropping was incorrect.


SVN r523 (trunk)
2007-04-30 08:09:51 +00:00
Christoph Oelckers
6e5b1f1182 - Added a simple check for abstract weapon classes so that I can properly define
the DoomWeapon base class.
- Fixed: When the Tome of Power runs out it must also set any pending weapon
  back to their regular state.


SVN r521 (trunk)
2007-04-29 08:44:32 +00:00
Christoph Oelckers
ea4f160e35 - Added damage factors that allows to make monsters more or less resistant
to specific damage types.
- Changed Dehacked parser to use the DECORATE symbol tables for code pointers
  instead of creating its own ones.
- Removed the HandleNoSector hack and changed A_Look so that it uses the sector's
  sound target for actors with MF_NOSECTOR regardless of compatibility settings.
- Moved initialization of weapon slots after the actor initialization.
  With default weapons exported to DECORATE it can't be done earlier.
- Converted Doom weapons to DECORATE.
- Changed backpack definition so that Doom's backpack is no longer the base
  class that implements its functionality. Now there is an abstract base class
  all backpack-like items derive from. Also moved the actual definition of Doom's
  backpack to DECORATE.


SVN r519 (trunk)
2007-04-28 09:06:32 +00:00
Christoph Oelckers
9deec29b34 - added a CANUSEWALLS flag which allows a monster to activate 'use' specials
like doors. This flag is on by default for any monster which was the
  previous behavior.
- Optimized the DECORATE flag parser so it can more efficiently handle
  the deprecated flags. As a side effect of this optimization the deprecated
  flags became usable in A_ChangeFlag again.
- Changed LONGMELEERANGE flag into a MeleeThreshold property.
- Changed SHORTMISSILERANGE flag into a MaxTargetRange property.
- Added Thing_Stop action special.


SVN r517 (trunk)
2007-04-22 21:01:35 +00:00
Christoph Oelckers
a00bc159a1 SVN r512 (trunk) 2007-04-10 19:55:37 +00:00
Christoph Oelckers
3a2e9edcc8 SVN r511 (trunk) 2007-04-10 19:53:14 +00:00
Christoph Oelckers
d4ce5844ae Fixed some obituary texts.
SVN r510 (trunk)
2007-04-10 19:51:50 +00:00
Christoph Oelckers
7420b6615d Fixed brightness of Pain Elemental's death sequence.
SVN r509 (trunk)
2007-04-07 07:49:15 +00:00
Randy Heit
802a6f3138 - Increased the limit for the SorcererBallPop to 3 to be inline with the
other Heresiarch ball sounds.


SVN r500 (trunk)
2007-03-08 23:38:45 +00:00
Randy Heit
b361ba05d8 - Reduced the rate at which drowning damage increases.
- Added more player water sounds:
    *dive - Played when your head goes below water.
    *surface - Played when your head goes back above water.
    *gasp - Played when you were drowning and get your air back.
  If your head surfaces and you were drowning, only *gasp plays, not both.
- Added damage-specific player death sounds, in the same fashion as the
  damage-specific player pain sounds. It looks for a sound with a name like
  "*death-damagetype" first and then "*death" if the first sound didn't exist.
- Removed the constraint that player sounds must be reserved before they can
  be assigned. Hence, the $playerreserve command has been eliminated, because
  it is no longer needed and it was never accessible from user wads, so I
  don't need to worry about breaking anything by removing it.


SVN r474 (trunk)
2007-02-04 00:22:56 +00:00
Randy Heit
095b11bc36 - Added an operator += for FString that takes an FName as input, since GCC
is unable to synthesize one.
- Converted xlatcc to use lemon during its build process. Now you don't need
  bison to rebuild everything anymore.


SVN r470 (trunk)
2007-01-31 00:30:42 +00:00