Commit Graph

177 Commits

Author SHA1 Message Date
Christoph Oelckers a4afe79f3d - Fixed GCC autoseg stuff for DECORATE variable initialization.
SVN r1273 (trunk)
2008-10-21 13:17:55 +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 fff3d9c228 - Fixed: FxRandom didn't properly initialize.
SVN r1267 (trunk)
2008-10-18 23:22:26 +00:00
Christoph Oelckers 8d5b595adc - GCC fixes for real this time
SVN r1266 (trunk)
2008-10-18 21:45:51 +00:00
Christoph Oelckers 2aac1bf053 - GCC fixes
SVN r1265 (trunk)
2008-10-18 20:41:51 +00:00
Christoph Oelckers 7312e6a621 - Added a global symbol table and changed DECORATE parser to put its global
symbols there instead of into AActor.
- Changed the expression evaluator's floating point precision to double.
- Started rewriting the DECORATE expression evaluator to allow more flexibility.
  All the operators use the new functionality but functions, variables and
  constants are yet to be redone.
  While doing this rewrite I noticed that random2 was always evaluated as const.
  This got fixed automatically.


SVN r1264 (trunk)
2008-10-18 17:17:44 +00:00
Randy Heit 738e8ca7ad - GCC warning removal.
* This may or may not be a problem, but GCC warned that FStateDefinitions::
    AddStateDefines() does not initialize def.FStateDefine::DefineFlags, so
    I fixed that.


SVN r1262 (trunk)
2008-10-14 03:21:53 +00:00
Christoph Oelckers 402d0e5fa1 - Fixed: Cheats in demos must not access the weapon slots.
- Fixed: S_ChannelEnded didn't check for a NULL SfxInfo.
- Fixed: R_InitTables did a typecast to angle_t instead of fixed_t.
- Fixed: PowerProtection and PowerDamage applied their defaults incorrectly.
- Fixed: The damage type property didn't properly read its factor.


SVN r1257 (trunk)
2008-10-07 18:21:03 +00:00
Christoph Oelckers 0b120116ab - State parser fixes.
SVN r1255 (trunk)
2008-10-05 18:45:05 +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 52ad2800d1 - Fixed: Dropitem gave incorrect amounts to the item if a probability was set.
SVN r1250 (trunk)
2008-09-28 07:23:15 +00:00
Christoph Oelckers 07e74419d5 - Fixed: weapon.ammogive2 always gave 2 amounts of ammo.
SVN r1249 (trunk)
2008-09-27 07:57:41 +00:00
Christoph Oelckers b21d837b5a - Fixed: player.colorrange didn't read the parameters correctly.
- Reverted an 'optimization' in d_dehacked.cpp that didn't work.


SVN r1247 (trunk)
2008-09-24 23:22:55 +00:00
Christoph Oelckers ec1cfdd236 - Fixed: Old style decorations forgot all inherited states when installing their labels.
SVN r1246 (trunk)
2008-09-23 19:14:50 +00:00
Christoph Oelckers 3e291cf528 - Liux compile fixes.
SVN r1245 (trunk)
2008-09-23 07:46:23 +00:00
Christoph Oelckers 1cbaa24f96 - last commit was missing one file.
SVN r1244 (trunk)
2008-09-22 20:42:11 +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 b523ebd2a7 - Removed debug output.
- One line of code was accidentally deleted for last commit.

SVN r1242 (trunk)
2008-09-22 07:30:37 +00:00
Christoph Oelckers 8a79985f46 - did some code cleanup and reorganization in thingdef.cpp.
- Replaced the translation parser for TEXTURES with FRemapTable::AddToTranslation.


SVN r1241 (trunk)
2008-09-21 22:25:23 +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
Randy Heit 00b21e4b96 - Apparently, YASM is not a suitable substitute for NASM when doing Win32 builds.
- Removed extraneous printf parameter for Texman.Init startup message.
- Added newlines to the ends of a few headers that were missing them.
- Fixed more GCC errors/warnings.

SVN r1232 (trunk)
2008-09-17 20:24:08 +00:00
Christoph Oelckers 3637c878cd - Changed: Replaced weapons should not be given by generic cheats, only
when explicitly giving them.
- Changed 'give weapon' cheat so that in single player it only gives weapons
  belonging to the current game or are placed in a weapon slot to avoid
  giving the Chex Quest weapons in Doom and vice versa.
- Fixed: The texture manager must be the first thing to be initialized
  because MAPINFO and DECORATE both can reference textures and letting them
  create their own textures is not safe.


SVN r1230 (trunk)
2008-09-17 00:14:33 +00:00
Christoph Oelckers 760f70d3f1 - Changed compilation for g_doom, g_heretic, g_hexen and g_strife folders
so that all files are included by a central one instead of compiling 
  each one separately. This speeds up the compilation process by 25%
  when doing a complete rebuild in Visual C.
- Cleaned up more header dependencies.

SVN r1226 (trunk)
2008-09-15 14:11:05 +00:00
Christoph Oelckers b07542ddd6 More header cleanup.
SVN r1225 (trunk)
2008-09-15 00:47:31 +00:00
Christoph Oelckers db5723997c - Cleaned up some include dependencies.
SVN r1224 (trunk)
2008-09-14 23:54:38 +00:00
Christoph Oelckers 2cad1c2c19 - Moved IF_ALWAYSPICKUP and GiveQuest into CallTryPickup so that they are
automatically used by all inventory classes.
- The previous change made it necessary to replace all TryPickup calls with
  another function that just calls TryPickup.
- Fixed: AInventory::TryPickup can change the toucher so this must be reported
  to subclasses calling the super function. Changed TryPickup to pass the
  toucher pointer by reference.


SVN r1221 (trunk)
2008-09-13 22:08:41 +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 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 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 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 3638c658d6 - Added and fixed Boss death submission for random spawner.
- Added functions to FActorInfo that can set the damage factors and
  pain chances to reduce the chance of new errors when working with
  these features.
- Fixed: The handling of the deprecated FIRERESIST flag didn't work.
  There were 3 problems:
  * Actor defaults have no class information so HandleDeprecatedFlags
    needs to be passed a pointer to the ActorInfo.
  * The DamageFactors list is only created when needed so the code needs to
    check if it already exists.
  * damage factors are stored as fixed_t but this set a float.
- Added a traditional Strife color set for the automap.


SVN r1183 (trunk)
2008-08-23 08:48:19 +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 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 e54c7f6e46 - Fixed: The count parameter of A_Jump is a constant, not an expression.
SVN r1171 (trunk)
2008-08-14 22:58:17 +00:00
Christoph Oelckers 61cbb1d2e1 - Fixed: A_Jump used a wrong index into the jump address table.
- Fixed: The recent changes in the DECORATE parser require the special parameter
  to A_CallSpecial to be an expression, not a constant.
- Removed game filters from old style decorations. No WAD in existence ever 
  used them and removing them allows to make the parser more robust.


SVN r1170 (trunk)
2008-08-14 19:08:38 +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 1c034c1150 - Macro-fied access to action function parameters.
- Deactivated debug output code in d_Dehacked.cpp.
- fixed: A_FreezeDeathChunks crashed when a player's head got spawned.


SVN r1168 (trunk)
2008-08-13 22:54:24 +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 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 b1d36182c4 - Changed handling of AUTOPAGE texture so that it is properly inserted into
the texture manager even if it is from Raven's IWADs.
- Removed code related to internal ActorInfo definitions from dobjtype.cpp.
- removed unneeded file dehackedactions.h


SVN r1162 (trunk)
2008-08-12 09:57:59 +00:00
Christoph Oelckers 9e4b2fb3ec Fixed: The fix for GCC warnings in PowerupDuration would have caused incorrect error messages in case of incorrect use.
SVN r1158 (trunk)
2008-08-11 23:16:37 +00:00
Randy Heit f40d52c22a - Remove some GCC warnings.
SVN r1157 (trunk)
2008-08-11 22:42:38 +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 511c9366f7 - Macro-fied all access to action functions.
SVN r1149 (trunk)
2008-08-10 22:48:37 +00:00
Christoph Oelckers 1983b5c586 - Changed action function definition so that they have to be defined with a
DEFINE_ACTION_FUNCTION macro. This should make it easier to improve the
  whole system.


SVN r1148 (trunk)
2008-08-10 20:48: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 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 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 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 6ab69165c7 - Added more DECORATE conversions by Karate Chris.
SVN r1128 (trunk)
2008-08-08 07:40:41 +00:00
Christoph Oelckers f442e75dfa SVN r1127 (trunk) 2008-08-07 23:11:57 +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 0ad1bfe87e - Added Gez's dropammofactor submission with some necessary changes. Also merged
redundant ammo multiplication code from P_DropItem and ADehackedPickup::TryPickup.
- Restricted native action function definitions to zdoom.pk3.


SVN r1123 (trunk)
2008-08-07 08:18:48 +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 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 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
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 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 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 c4a1ca2ac8 - Fixed: Friendly spectral monsters should be able to hurt unfriendly ones
and vice versa.
- Fixed: In deathmatch specral missiles spawned by players should hurt other
  players.
- Fixed: SpectralLightningBigBall didn't set the proper owner for the lightning
  projectiles it spawned.
- Changed the EntityBoss's attack function to call the equivalent spectre
  functions instead of duplicating their code.
- Gave many of Strife's code pointers that only had a number as name more
  meaningful names. 
- Fixed: All spectral attacks must set 'health' first before P_CheckMissileSpawn
  is called.


SVN r1071 (trunk)
2008-07-12 10:59:36 +00:00
Christoph Oelckers d2f1515aa6 - Fixed: When a weapon is destroyed, its sister weapon must also be destroyed.
- Added a check for PUFFGETSOWNER to A_BFGSpray.
- Moved the PUFFGETSOWNER check into P_SpawnPuff and removed the limitation
  to players only.
- Fixed: P_SpawnMapThing still checked FMapThing::flags for the class bits 
  instead of FMapThing::ClassFilter.
- Fixed: A_CustomMissile must not let P_SpawnMissile call P_CheckMissileSpawn.
  It must do this itself after setting the proper owner.
- Fixed: CCMD(give) increased the total item count.
- Fixed: A_Stop didn't set the player specific variables to 0.


SVN r1066 (trunk)
2008-07-05 10:17:10 +00:00
Randy Heit a3e8a0cefd - Removed the S_Sound() variant that allows for pointing the origin at an
arbitrary point. It has been replaced with a variant that takes a polyobject
  as a source, since that was the only use that couldn't be rewritten with the
  other variants. This also fixes the bug that polyobject sounds were not
  successfully saved and caused a crash when reloading the game. Note that
  this is a significant change to how equality of sound sources is determined,
  so some things may not behave quite the same as before. (Which would be a
  bug, but hopefully everything still sounds the same.)


SVN r1059 (trunk)
2008-07-01 04:06:56 +00:00
Christoph Oelckers 0fc5a541b3 - Fixed: Dead players didn't get the MF_CORPSE flag set.
- Fixed: The internal definition of Floor_LowerToNearest had incorrect parameter
  settings.
- Fixed: Heretic's ActivatedTimeBomb had the same spawn ID as the inventory item.
- fixed: Heretic's mace did not have its spawn ID set.


SVN r1052 (trunk)
2008-06-28 12:24:15 +00:00
Randy Heit bb689ba3c9 - Fixed all the new warnings tossed out by GCC 4.3.
SVN r1047 (trunk)
2008-06-25 22:16:04 +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
Christoph Oelckers 8ca7c05e9d - Changed FImageCollection to return translated texture indices so
that animated icons can be done with it.
- Changed FImageCollection to use a TArray to hold its data.
- Fixed: SetChanHeadSettings did an assignment instead of comparing
  the channel ID witg CHAN_CEILING.
- Changed sound sequence names for animated doors to FNames.
- Automatically fixed: DCeiling didn't properly serialize its texture id.
- Replaced integers as texture ID representation with a specific new type
  to track down all potentially incorrect uses and remaining WORDs used
  for texture IDs so that more than 32767 or 65535 textures can be defined.


SVN r1036 (trunk)
2008-06-15 18:36:26 +00:00
Randy Heit 9e42cdaf08 - Replaced the naive area sound implementation with one that takes into
consideration the size and shape of the sector producing the sound. See
  the lifts on Doom 2 MAP30 and compare with previous versions.
- Fixed: The stop sound for sector-based sound sequences was not played with
  the CHAN_AREA flag.
- Removed the distinction between S_Sound() and S_SoundID() functions. Use
  S_Sound() for both names and IDs from now on.


SVN r1034 (trunk)
2008-06-15 02:25:09 +00:00
Christoph Oelckers 3397266e0f - Fixed: P_ChangeSector could incorrectly block movement when checking for
mid textures linked to a moving floor.
- Fixed AActor's bouncefactor definitions which I accidentally changed when
  adding wallbouncefactor.
- Fixed: A_SpawnItemEx added the floorclip offset to the z coordinate instead 
  of subtracting it.


SVN r1031 (trunk)
2008-06-12 10:08:50 +00:00
Christoph Oelckers 4e7a6c54ef - Added scaling to double size for idmypos display.
- Changed: Players don't telefrag when they are spawned now but after all
  actors have been spawned to avoid accidental voodoo doll telefragging.
- Fixed: ACS scripts for non-existent maps were started on the current one.
- Added a 'wallbouncefactor' property to AActor.
- Reverted forceunderwater change from r1026 and fixed the problem for real:
  SECF_FORCEDUNDERWATER only has meaning when coming from the heightsec.
  So the initial check of the current sector in AActor::UpdateWaterLevel
  must only check for SECF_UNDERWATER, not SECF_UNDERWATERMASK.

SVN r1027 (trunk)
2008-06-10 09:16:01 +00:00
Christoph Oelckers 29380f70b3 - Added an option to consider intermission screens gameplay for purposes of
capturing the mouse.
- Changed: Telefragging should not thrust the victim if it isn't in precisely the
  same position as the killer.
- fixed: A_SpawnItemEx must call P_TeleportMove before checking the spawned
  object's position.


SVN r1014 (trunk)
2008-06-02 16:56:53 +00:00
Randy Heit 4649d011c6 - Fixed: ActorStencilColor() did not set the palette part of the actor's
fill color, so it would always produce black for STYLE_Shaded.


SVN r990 (trunk)
2008-05-23 02:13:31 +00:00
Christoph Oelckers ab6b5e337e - Reworked a few options that previously depended on LEVEL_HEXENFORMAT
(actors being forced to the ground by instantly moving sectors, strife
  railing handling and shooting lines with a non-zero but unassigned tag.)
  With UDMF such semantics have to be handled diffently. 
- finalized UDMF 1.0 implementation.
- Added Martin Howe's latest morph update.


SVN r987 (trunk)
2008-05-22 19:35:38 +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 99f55e8b8f - Added Skulltag's PUFFGETSOWNER flag.
SVN r967 (trunk)
2008-05-12 22:52:13 +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 d5563fe478 - Changed all thing coordinates that were stored as shorts into fixed_t.
- Separated mapthing2_t into mapthinghexen_t and the internal FMapThing so
  that it is easier to add new features in the UDMF map format.
- Added some initial code to read UDMF maps.


SVN r956 (trunk)
2008-05-08 08:06:26 +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 6b2a7b8b03 - Added Martin Howe's morph system update.
- Added support for defining composite textures in HIRESTEX. It is not fully tested
  and right now can't do much more than the old TEXTUREx method.
- Added a few NULL pointer checks to the texture code.
- Made duplicate class names in DECORATE non-fatal. There is really no stability
  concern here and the worst that can happen is that the wrong actor is spawned.
  This was a constant hassle when testing with WADs that contain duplicate resources.


SVN r905 (trunk)
2008-04-12 15:31:18 +00:00
Christoph Oelckers 4cba91a936 - Added a Gets function to the FileReader class which I planned to use
to enable Timidity to read its config from Zips. 
  I put this on hold though after finding out that the sound quality 
  isn't even near that of Timidity++.
- GCC-Fixes (FString::GetChars() for Printf calls)
- Added a dummy Weapon.NOLMS flag so that Skulltag weapons using this flag
  can be loaded


SVN r901 (trunk)
2008-04-11 10:16:29 +00:00
Christoph Oelckers 3f497fe8e5 - Eliminated some more global variables (onmobj, DoRipping, LastRipped,
MissileActor, bulletpitch and linetarget.) 

SVN r899 (trunk)
2008-04-10 14:38:43 +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 a424a2f2a9 - Added Martin Howe's morph system enhancement.
SVN r889 (trunk)
2008-04-08 08:53:42 +00:00
Christoph Oelckers d938121378 - Added a NOTIMEFREEZE flag that excludes actors from being affected by
the time freezer powerup.
- Changed: Empty pickup messages are no longer printed. 

SVN r886 (trunk)
2008-04-06 09:24:41 +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 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 d780c2e3a4 - Fixed: The minimum parameter count for ACS_Execute and ACS_ExecuteAlways for
DECORATE was wrong (2 instead of 1.)
- Changed: Hexen set every cluster to be a hub if it hadn't been defined before
  a level using this cluster. Now it will only do that if HexenHack is true, 
  i.e. when original Hexen format MAPINFOs are parsed. For ZDoom format 
  MAPINFOs it will now be the same as for the other games which means that 
  'hub' has to be declared explicitly.
- Added an Idle state that is entered in place of the spawn state if a monster
  has to return to its inactive state if it can't find any more targets.
- Added MF5_NOINTERACTION flag which completely disables all physics related
  code for any actor with this flag. Mostly useful for particle effects where
  the actors just move a certain distance and then disappear.
- Removed the last remains of the antialias precalculation code from
  am_map.cpp because it was no longer used.
- Fixed: Two-sided lines bordering a secret sector were not drawn in the
  proper color
- Fixed: The automap didn't check ACS_LockedExecuteDoor for its lock color.


SVN r876 (trunk)
2008-04-03 10:49:54 +00:00
Randy Heit d2c275bbb3 - Changed FScanner so that opening a lump gives the complete wad+lump name
rather than a generic one, so identifying errors among files that all have
  the same lump name no longer involves any degree of guesswork in
  determining exactly which file the error occurred in.
- Added a check to S_ParseSndSeq() for SNDSEQ lumps with unterminated final
  sequences.
- Fixed: Parts of s_sndseq.cpp that scan the Sequences array need NULL
  pointer checks, in case an improper sequence was encountered during
  parsing but not early enough to avoid creating a slot for it in the array.


SVN r874 (trunk)
2008-04-03 03:19:21 +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 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 3a80dac348 Last commit was incomplete
SVN r848 (trunk)
2008-03-24 22:16:21 +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 ca43ea7345 - Fixed: A_CustomMissile with aimmode 2 ignored spawnofs_xy.
- Changed savegame versioning so that the written version is never lower
  than the minmum one reported as compatible. 
- Added mirrored movement modes for linked sectors.
- Added Eternity-style initialization for linked sectors as a new subtype
  of Static_Init.
- Added linked sectors. The control sector determines how they move but if
  any one of the linked sectors is blocked, movement for all linked sectors
  will be affected. This will allow lifts consisting out of more than one
  sector without the risk of breaking them if only one of the sectors is
  blocked.
- Fixed: A_Mushroom created an actor on the stack.


SVN r825 (trunk)
2008-03-20 21:12:03 +00:00
Christoph Oelckers 8244d1ea07 - Added a new parameter to all crushing action specials that selects
which crushing mode is used: 0 uses the game's default for compatibility,
  1 uses Doom's mode (crushers continue to move while damaging any actors ) and
  2 uses Hexen's mode (crushers stay at blocking actor's top until they die).
  Since Generic_Crusher already used all 5 args I created a second version for
  Hexen crushing mode.
- Added PICKUP flag to DECORATE.


SVN r817 (trunk)
2008-03-19 22:47:04 +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