Commit graph

431 commits

Author SHA1 Message Date
Randy Heit
351ed8dcd1 - Changed the PowerTimeFreezer "blink" effect back to checking against
EffectTics (now + 1), because I wasn't convinced of the correctness of
  using level.time.
- Fixed: SC_CheckNumber() considered the empty string "" as the number 0.


SVN r586 (trunk)
2007-12-08 22:29:59 +00:00
Randy Heit
f76ef6ffc2 - Reverted the 'None' name change from r569.
SVN r585 (trunk)
2007-12-08 22:17:48 +00:00
Randy Heit
cc9dc13f55 - Fixed the PowerTimeFreezer, too. It got easier once I realized that I only
need to be concerned about changing the flag on odd tics, since A_Tracer()
  is called every two tics, not four.


SVN r584 (trunk)
2007-12-07 05:12:30 +00:00
Randy Heit
0adaaeb5d7 - Fixed: Using the freeze command would make the Revenant missiles switch
their seekingness. The only sane way to deal with this seemed to be to
  sync the freeze changes with the timer check in A_Tracer(), so that's what
  I did: Freeze mode only changes every four tics now.


SVN r583 (trunk)
2007-12-06 23:17:38 +00:00
Randy Heit
7f52e6537b - Added IWAD-based [*.Autoload] ini support for games that have more than one
IWAD. They are:
  * [Doom1.Autoload]
  * [Doom2.Autoload]
  * [Plutonia.Autoload]
  * [TNT.Autoload]
  * [HexenDK.Autoload]
  These are loaded after the more general game-specific [Doom.Autoload] and
  [Hexen.Autoload] sections if those are present.
- Changed the banner texts for the Final Doom IWADs to identify them as Final
  Doom rather than as DOOM 2. I know this differs from the original behavior,
  but they're marketed as Final Doom, not Doom 2.


SVN r582 (trunk)
2007-12-06 22:38:45 +00:00
Randy Heit
1dede60c5c - New: On Windows, the game now checks the registry to see if you have Steam
installed. If so, it checks your SteamApps directory for any IWADs you may
  have purchased through Steam and adds any it finds to the list of available
  IWADs you can play. This means that if you bought your id games through
  Steam, you can just extract ZDoom anywhere you like and run it without doing
  any additional setup.


SVN r581 (trunk)
2007-12-06 19:15:07 +00:00
Randy Heit
1eca84d644 - Fixed: The FLAC/makefile.mgw should use md5.o as an OBJ, not md5.c.
- Fixed: The Linux makefile probably shouldn't be using the bundled zlib headers,
  either.


SVN r580 (trunk)
2007-12-06 17:38:05 +00:00
Christoph Oelckers
1af122142b - Added Karate Chris's submission for scoreboard enhancement.
SVN r579 (trunk)
2007-12-06 14:33:28 +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
Randy Heit
2e56925c36 - Fixed: The Linux makefile should use the include files for the system FLAC
installation, not the bundled copies which might not match what is installed.
- Upgraded bundled FLAC from version 1.1.2 to version 1.2.1.


SVN r575 (trunk)
2007-12-06 04:10:26 +00:00
Christoph Oelckers
aeee07218c - after looking at the most recent Vavoom update I realized that A_FastChase should not
use the multi-purpose special2 as counter for strafing so I added a new variable
  for this purpose.
- forgot to save p_lnspec.cpp before last commut.


SVN r574 (trunk)
2007-11-28 13:53:55 +00:00
Christoph Oelckers
0c5731223c - added Floor_MoveToValue and Ceiling_MoveToValue action specials.
SVN r572 (trunk)
2007-11-28 09:11:35 +00:00
Christoph Oelckers
e1abe4b380 - Changed first name from 'none' to ''. The internal constant is still NAME_None,
though.
- Fixed: Picking up a backpack incorrectly set the maximum amount for any ammo
  type that didn't have a BackpackMaxAmount to 0.


SVN r569 (trunk)
2007-11-19 20:32:39 +00:00
Christoph Oelckers
ba61c60d52 - Fixed: When the DONTMOVE flag for A_Chase was used, movecount was not decreased
resulting in missile attacks not working.
- Fixed: Hitscan attacks used the puff's position to calculate the trajectory for
  weapon kickback.


SVN r568 (trunk)
2007-11-19 08:13:23 +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
c9aaf8460b Forgot to save rh-log.txt before committing (again...)
SVN r564 (trunk)
2007-11-08 09:22:46 +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
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
52e5f8b8e1 - Added skill definitions to MAPINFO.
SVN r558 (trunk)
2007-11-02 22:03:03 +00:00
Christoph Oelckers
170b633e91 - added two new things which can set a sector's color without the need of tags
or scripts. ColorSetter (#9038) sets the sector's color and FadeSetter (#9039)
  sets the fog color.
- added new flags MF5_ALWAYSFAST and MF5_NEVERFAST. These flags unconditionally
  enable or disable fast movement logic, regardless of skill settings.
- added an abstraction layer for skill related settings. This is a preparation
  for implementing custom skill definitions but right now all it does is
  returning the original values but keeping the related information all in one
  place


SVN r557 (trunk)
2007-10-29 22:15:46 +00:00
Christoph Oelckers
ab9a6623fd Forgot to save rh-log.txt for 555.
SVN r556 (trunk)
2007-10-29 20:29:07 +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
c81fe8d061 - Fixed: The code that checked hitscans entering an actor from above and below
calculated the hit position wrong.


SVN r553 (trunk)
2007-10-08 09:54:00 +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
e016a66dc0 - Fixed: When I changed the scaling of textures to full fixed point precision
I forgot to change the call that draws the automap marker numbers.
- Fixed: The chaingun-flash-checking code always checked the first player,
  not the calling one.
- Fixed: Hitscan traces didn't hit actors when entering from above or below


SVN r551 (trunk)
2007-09-27 14:08:45 +00:00
Christoph Oelckers
333ef105f7 - Fixed: The DECORATE expression evaluator was reading the operator token
from the wrong variable in a few places resulting in incorrect calculations.
- Fixed: MP3/OGG music always looped because the looping flag was always
  set when FMOD was called to play it.
- Removed upper limit of 1 for an actor's gravity factor.
- Fixed: A_VileTarget spawned the fire at coordinate (target->x, target->x)
  instead of (target->x, target->y). (Old vanilla bug.)


SVN r550 (trunk)
2007-09-27 11:30:23 +00:00
Christoph Oelckers
f94d971c06 - Fixed: F_StartFinale shouldn't get the information if the game is about
to end from level.nextmap. For example, this check is wrong for a secret
  exit.

SVN r549 (trunk)
2007-09-26 21:50:05 +00:00
Christoph Oelckers
09f5bbc2d3 - Fixed: AActor::CopyFriendliness must not copy the target if it has the
MF3_NOTARGET flag set.
- Fixed: Picking up weapons in deathmatch gives 2.5 times as much ammo as
  in other modes.


SVN r547 (trunk)
2007-09-25 23:31:27 +00:00
Christoph Oelckers
f62032ac6a - fixed: The #include command in DECORATE always tried to look up the name
as a normal WAD lump name. It only should do that if the name is not longer
  than 8 characters and doesn't contain any '/'-characters.

SVN r546 (trunk)
2007-09-23 08:02:57 +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
d0c3ebb5c2 - Fixed: Several options while changing maps only worked for the regular exit
but caused problems when used with the secret exit. Rewrote the code to
  set the next map at the beginning and removed all subsequent parts that
  tried to resolve it from the original data again.

SVN r544 (trunk)
2007-09-06 09:54:57 +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
6a3a47d77a - Moved setting of gameskill from M_ChooseSkill to G_DoNewGame because it
doesn't work in M_ChooseSkill when the full console is open.


SVN r541 (trunk)
2007-08-09 08:42:15 +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
2829361c5c - Added DTA_TopOffset and DTA_LeftOffset values to the automap background drawer.
- Fixed: DECORATE color translations with explicit colors didn't work because the
  code treated byte values as fixed point.
- Fixed: LEVEL_NOALLIES must clear MF_FRIENDLY off any spawned actor except players.
  Otherwise it doesn't work properly.
- Fixed: Entering a backslash in the player's name box caused a crash because 
  the code analyzing the string was missing a NULL pointer check.
- Fixed: Thing_Hate and Teleport_ZombieChanger unconditionally made state jumps,
  even for dead monsters.
- Fixed: The palette flash for item pickup was not reset upon a player's death.
- Fixed: P_DamageMobj tried to get damage multiplier information from the
  damage inflictor, not the attacker.
- Fixed: PowerTimeFreezer::DoEffect did not call its superclass method.
- fixed: When morphed monsters died they tried to set MF3_STAYMORPHED for the
  attacker, not themselves. This caused a crash when they were killed by a crusher.


SVN r539 (trunk)
2007-07-12 15:15:57 +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
91241eb96e - Fixed: Hirestex replacements for sprites didn't work properly due to some
incorrect calculations in R_ProjectSprite.


SVN r536 (trunk)
2007-05-27 15:33:05 +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
87383a32c6 - Fixed: Resurrecting a player must set mo->special1 to 0 because it is used
as a counter by the Hexen fighter's fist weapon.
- Fixed: The Wraithwerge's spirits shouldn't attack friends.
- Fixed: The Heresiarch's balls must not adjust their z-position after the
  Heresiarch dies.
- Added damage type specific pain chances and an MF5_NOPAIN flag that can be used
  to suppress entering the pain state altogether.
- Changed font initialization so that you can define replacements for the default
  fonts in FONTDEFS.
- Removed the 'add a bot' menu option since bots are beyond repair and therefore
  mostly useless.
- Fixed: Hitscan attacks must always spawn a puff so that it and its properties
  can be used as damage inflictor.


SVN r534 (trunk)
2007-05-26 10:50:32 +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
ea2ea7dbf0 - fixed: meleethreshold only has meaning when the attacking monster actually
has a melee attack.
- copied a colormap fix from Skulltag.


SVN r531 (trunk)
2007-05-13 20:21:26 +00:00
Christoph Oelckers
a6a5821f04 - Added a compatibility option to restore the original behavior of the Invisibility
powerup.
- Changed: Weapons are no longer checked for the EXTREMEDEATH and NOEXTREMEDEATH flags.
  For all damage related actions it will always be the projectile (or puff for hitscan
  attacks) that is treated as the damage inflictor.
- Fixed: Hexen's fourth weapons made extreme death depend on the weapon the player
  is holding, not the projectile that did the kill. The WIF_EXTREME_DEATH flag
  no longer exists as a result.
- Expanded PowerSpeed so that subclasses can be derived that alter the speed factor.
- Added an MF5_USESPECIAL flag that allows using things to execute their specials.
- added MF4_FORCERADIUSDMG flag so that exploding items can be created which
  are able to hurt boss monsters.
- moved ML_BLOCK_PLAYERS to the value 0x4000 to bring it in line with Skulltag's 
  implementation.


SVN r530 (trunk)
2007-05-12 11:14:09 +00:00
Christoph Oelckers
d60a5ee1b9 - added Skulltag's custom F1 help screen MAPINFO option.
- Fixed: Resurrecting a player must restore all flags words, not just the first one.
- Fixed: APowerWeaponLevel2::EndEffect must check PendingWeapon for WP_NOCHANGE.
- added Skulltag's high jump rune as a powerup
- Added Skulltag's Drain and Regeneration runes as powerups and used specific player
  sounds for their sound effects instead of using misc/i_pkup.
  (If I ever decide to implement runes it will be in a way that can use the regular
  powerups instead of having to define specific classes for them.)
- Added Skulltag's PowerQuadDamage and PowerQuarterDamage as more customizable
  PowerDamage and PowerProtection. These new powerups allow free customization of
  the damage modification per damage type by inheriting from these classes and
  setting specific values. Such derived damage/protection powerups will be considered
  as separate powers so that for example a QuadDamage and a DoubleDamage item can be
  stacked which would result in 8x damage.
- merged player_t::cheats and player_t::Powers into one variable.


SVN r529 (trunk)
2007-05-10 22:22:38 +00:00
Christoph Oelckers
12c122a7dd - Fixed: player_t::Powers was not saved in a savegame.
- Removed all unused PW_* player power flags.
- Added Skulltag's TimeFreezer powerup.


SVN r527 (trunk)
2007-05-01 15:09:44 +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
e08da03a3d - Increased precision of texture scaling factors to full fixed point. In the process
I got rid of the old tx and ty CVARs because they made the texture scaling
  much more complicated than it was actually needed (and besides, they were completely
  useless except for testing purposes anyway.)


SVN r522 (trunk)
2007-04-29 12:07:27 +00:00