Commit graph

375 commits

Author SHA1 Message Date
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
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
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