Commit graph

1141 commits

Author SHA1 Message Date
Christoph Oelckers
571d28281b - Added handling for UDMF user keys.
- Added support for ACS functions that can be defined without recompiling ACC.
- Fixed: The short lump name for embedded files must be cleared so that they
  are not found by a normal lump search.
- Added AProp_Notarget actor property.
- Fixed: TraceBleed was missing a NULL pointer check,
- Fixed: P_RandomChaseDir could crash for friendly monsters that belong to
  a player which left the game.
- Changed A_PodGrow so that it plays the generator's attack sound instead of
  "misc/podgrow".


SVN r1575 (trunk)
2009-05-11 21:05:40 +00:00
Randy Heit
1c61ef89eb - Added Species property for actors and separated Hexen's Demon1 and Demon2
into different species.


SVN r1573 (trunk)
2009-05-11 15:15:06 +00:00
Randy Heit
41a416f068 This commit is 90% contributed content:
- Added transference of a select few flags from PowerProtection to its owner.
- Added actor type parameters to A_PodPain() and A_MakePod().
- The savegame path is now passed through NicePath(), since it's user-
  specifiable.
- Added save_dir cvar. When non-empty, it controls where savegames go.
- SBARINFO update:
  * Added the ability to center things with fullscreenoffsets enabled.  Due
    to some limitations the syntax is [-]<integer> [+ center].
  * Fixed: the translucent flag on drawinventorybar didn't work quite right.
  * Fixed: Extremely minor inaccuracy in the Doom SBarInfo code.  The
    fullscreen inventory bar wasn't scaled correctly.


SVN r1571 (trunk)
2009-05-09 02:31:49 +00:00
Christoph Oelckers
a9c396a8ce - fixed: The CHECKSWITCHRANGE line flag was ignored for one sided lines.
SVN r1570 (trunk)
2009-05-03 21:12:52 +00:00
Christoph Oelckers
0d1d15eba8 - Added more compatibility settings, submitted by Gez.
SVN r1569 (trunk)
2009-05-03 07:19:21 +00:00
Christoph Oelckers
4d5692bf80 - Fixed: Doom's fullscreen HUD was limited to 6 keys.
- Made 'next endgame' work again for cases where it is supposed to be
  the same as 'next endgame4'.
- GCC nitpick fix: Classes being used as template parameters may not be
  defined locally in a function. Fixed FWadFile::SetNamespace for that.
- Improved error reporting for incorrect textures in maps.
- Fixed: When music was stopped this was not set in the global music state.
- Fixed: Friendly monsters did not target enemy players in deathmatch.

SVN r1567 (trunk)
2009-05-02 09:14:01 +00:00
Christoph Oelckers
b37d0ba2ea - Fixed: Completely empty patches (8 0-bytes) could not be handled by the
texture manager. They now get assigned a new FEmptyTexture object
  that is just a 1x1 pixel transparent texture.
- Fixed: Multiple namespace markers of the same type were no longer detected.
- Fixed sprite renaming.


SVN r1566 (trunk)
2009-04-30 11:10:38 +00:00
Randy Heit
28e9693b79 - Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
order.


SVN r1565 (trunk)
2009-04-30 03:50:52 +00:00
Randy Heit
f7d7e9faf9 - Fixed: FWadCollection::CheckNumForName() read the lump each iteration before
checking for the end marker. On 32-bit systems, this is -1, but on 64-bit
  systems, it is a very large integer that is highly unlikely to be in mapped
  memory.


SVN r1564 (trunk)
2009-04-30 02:41:20 +00:00
Christoph Oelckers
3bbef315f6 - Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking.
SVN r1561 (trunk)
2009-04-28 20:53:07 +00:00
Christoph Oelckers
511ddb028c - Fixed handling of embedded WADs.
SVN r1559 (trunk)
2009-04-26 18:12:40 +00:00
Christoph Oelckers
19c4e3caed - Added Gez's A_CheckCeiling submission.
- Fixed: AM_NewResolution crashed when called from outside a level.
- Added support for Quake PAK files.
- Improved warning messages for WAD files with incorrect marker usage.


SVN r1556 (trunk)
2009-04-23 23:20:21 +00:00
Christoph Oelckers
cc066bc409 - complete restructuring of resource file handling for more flexibility and future
extensions.
- Removed merging of special namespaces. For the texture manager this has
  become totally useless so there is no need to do this anymore. Not merging
  the namespaces also allows a much more reliable detection of lumps belonging
  to special namespaces so the ScanForFlatHack function is no longer needed.
  Instead, any lump up to F_END with a length of 4096 will be marked for 
  inclusion as a flat texture if no F_START marker is found.
- Made the counting of intermission stats in Doom a GAMEINFO option so that
  it can be activated in all games.


SVN r1555 (trunk)
2009-04-23 22:49:38 +00:00
Randy Heit
1954f9ee84 - Gave the intermission screen sounds their own SNDINFO entries.
SVN r1551 (trunk)
2009-04-18 01:31:08 +00:00
Randy Heit
e865d95070 - Removed obsolete snd_surround cvar.
SVN r1550 (trunk)
2009-04-16 23:58:41 +00:00
Randy Heit
dcedad548b - Changing screen resolution now adjusts the automap scale to be constant
relative to screen resolution.


SVN r1549 (trunk)
2009-04-16 03:02:08 +00:00
Randy Heit
659be956de - Fixed: When FMultiPatchTexture::MakeTexture() needed to work in RGB
colorspace, it didn't zero out the temporary buffer.


SVN r1547 (trunk)
2009-04-16 02:02:56 +00:00
Randy Heit
c2ff8c78dd - Fixed memory leak from leftover code for 7z loading and added the
LUMPF_ZIPFILE flag to their contents so they have the same semantics
  as zips.


SVN r1546 (trunk)
2009-04-15 23:33:36 +00:00
Randy Heit
7e7429e3d2 - Added support for 7z archives.
SVN r1545 (trunk)
2009-04-15 03:58:10 +00:00
Christoph Oelckers
9040710e62 - Updated UDMF spec to 1.1.
- Added -noautoload option.
- Added default Raven automap colors set. Needs to be tested because I can't
  compare against the DOS version myself.
- Extened A_PlaySound and A_StopSound to be able to set all parameters of the
  internal sound code.



SVN r1544 (trunk)
2009-04-14 09:06:03 +00:00
Randy Heit
81c4773b46 - Changed gravity doubling so that it only happens when you run off a ledge.
SVN r1543 (trunk)
2009-04-14 01:20:44 +00:00
Randy Heit
6a9acc2cf8 - Fixed: World panning was ignored for the X offset of masked midtextures.
SVN r1541 (trunk)
2009-04-11 04:28:06 +00:00
Christoph Oelckers
d3b6dfb0f1 - Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground
of a moving floor, regardless of movement speed. For NOBLOCKMAP items this
  is necessary because otherwise they can be left in the air and it also adds 
  some options for other things.


SVN r1540 (trunk)
2009-04-10 06:50:39 +00:00
Randy Heit
3ecca432a9 - Changed A_FreezeDeathChunks() so that instead of directly destroying an
actor, it sets it to the "Null" state, which will make it invisible and
  destroy it one tic later.


SVN r1539 (trunk)
2009-04-10 04:04:17 +00:00
Randy Heit
bb9b5ebf92 - Added a NULL pointer check to A_Fire() and copied the target to a local
variable inside A_VileAttack() so that if P_DamageMobj() destroys the
  target, the function will still have a valid pointer to it (since reading
  it from the actor's instance data invokes the read barrier, which would
  return NULL).


SVN r1538 (trunk)
2009-04-10 03:54:28 +00:00
Christoph Oelckers
be9a05e32b - Added NOBLOCKMAP/MOVEWITHSECTOR combination to a few items that had their
NOBLOCKMAP flag taken away previously to make them move with a sector.
  This should fix the performance problem Claustrophobia had with recent
  ZDoom versions.


SVN r1537 (trunk)
2009-04-09 06:58:28 +00:00
Randy Heit
ac2f5aa632 - Added MF5_MOVEWITHSECTOR flag, so you can have the benefits of MF_NOBLOCKMAP
but still have actors that will move up and down with the floor. IceChunk
  now uses both of these flags.


SVN r1536 (trunk)
2009-04-09 02:25:37 +00:00
Randy Heit
c601426248 - More performance optimization for FBlockThingsIterator::Next(): Changed
the array used to keep track of visited actors into a hash table.

SVN r1533 (trunk)
2009-04-09 01:40:30 +00:00
Randy Heit
a54367a3c0 - Performance optimization for FBlockThingsIterator::Next(): Actors that
exist in only one block don't need to be added to the CheckArray or
  scanned for in it.


SVN r1532 (trunk)
2009-04-08 22:59:06 +00:00
Christoph Oelckers
a908834a11 - added some default definitions for constants that may miss in some headers.
- replaced __va_copy with va_copy per Chris's suggestion.
- replaced #include <malloc.h> with #include <stdlib.h> where possible.


SVN r1524 (trunk)
2009-04-07 07:06:07 +00:00
Christoph Oelckers
c8e01f9f91 - Fixed: The UDMF textmap readbuffer was never freed.
SVN r1523 (trunk)
2009-04-06 17:18:29 +00:00
Randy Heit
e16fde611f - Fixed: GetPlayerInput() died if you tried to get the input of the activator
and the activator was the world.


SVN r1522 (trunk)
2009-04-05 03:22:36 +00:00
Christoph Oelckers
78fb48302c - fixed: Any player class inheriting directly from PlayerPawn was left with
empty weapon slots due to the recent rewrite of the weapon slot assignment
  code. To handle such classes each game now defines a default weapon slot
  setting in its gameinfo. This will be used when a player class without any
  weapon slot settings is used.


SVN r1521 (trunk)
2009-04-04 17:46:33 +00:00
Christoph Oelckers
9d47afb304 - added 'damage' to the actor variables exported to DECORATE's expression
evaluator.
- fixed: solid corpses could block ripper missile that originally killed them.


SVN r1520 (trunk)
2009-04-04 09:28:10 +00:00
Randy Heit
4376c6b415 - Fixed: Doom's status bar was lacking its default face.
- Fixed: Custom skin face graphics were not added to the texture manager.


SVN r1519 (trunk)
2009-04-03 02:37:01 +00:00
Randy Heit
ccd3b2a6e1 - Fixed: UseHealthItems() gave you health equal to the number of items in
the stack of health items, rather than the item's proper amount.


SVN r1518 (trunk)
2009-04-03 01:25:06 +00:00
Randy Heit
08730b941b - Fixed: SBARINFO's "usessecondaryammo" considered a weapon to not use
secondaryammo if ammo2's type was the same as ammo1's, but only if you
  didn't use the "not" keyword with it.


SVN r1515 (trunk)
2009-04-02 01:48:59 +00:00
Christoph Oelckers
f62fcabb9c - Fixed: Altering a link type with Sector_SetLink did not work.
- Fixed: player.crouchsprite had no proper means of unsetting the crouch
  sprite which is needed by the ChexPlayer.
- Fixed: A_ChangeFlags must unlink the actor from the world before changing
  the NOBLOCKMAP and NOSECTOR flags.

SVN r1514 (trunk)
2009-03-29 08:55:15 +00:00
Christoph Oelckers
bf4e17703d - Fixed: Dehacked string replacement did not check the clusters' finaleflats.
- Changed the definition of several typedef'd structs so that they are
  properly named.
- Limited DEHSUPP lump lookup to search zdoom.pk3 only. It will no longer
  be possible to load DEHSUPP lumps from user WADs.
- Brought back the text-based DEHSUPP parser and changed it to be able to 
  reference states by label. Also changed label names of 
  DoomUnusedStates and added proper labels to all states that were
  previously forced to be the first state of an actor so that the old
  (limited) method could access them. This was done to address the following
  bug:
- Fixed: The player's death states calling A_PlayerSkinCheck should not be
  part of the state set that is accessible by Dehacked. These will produce
  error messages when mapped to non-players.

SVN r1512 (trunk)
2009-03-28 11:49:44 +00:00
Christoph Oelckers
26420a9c60 - Fixed: Reading the RNG states from a savegame calculated the amounts of
RNGs in the savegame wrong.


SVN r1508 (trunk)
2009-03-27 22:07:16 +00:00
Randy Heit
7371c4a516 - Changed random seed initialization so that it uses the system's
cryptographically secure random number generator, if available, instead
  of the current time.
- Changed the random number generator from Lee Killough's algorithm to the
  SFMT607 variant of the Mersenne Twister.

SVN r1507 (trunk)
2009-03-27 04:49:17 +00:00
Randy Heit
35fe9ae690 - Made fmodex.dll delay-loaded so the game should be runnable on Windows 95
again, though without sound.



SVN r1506 (trunk)
2009-03-26 02:33:37 +00:00
Randy Heit
854097ba03 - Changed gameinfo_t and gameborder_t to be named structs instead of
typedef'ed anonymous structs.
- Fixed: P_AutoUseHealth() used autousemodes 0 and 1 instead of 1 and 2.
- Fixed: SBARINFO did not recognize 5:4 aspect ratio.
- Fixed: screenshot_dir was ignored.


SVN r1505 (trunk)
2009-03-26 02:06:14 +00:00
Christoph Oelckers
03e8f0e355 - Removed some obsolete code from G_InitLevelLocals that was causing problems
with maps that have no name.
- Fixed: The inner loop in AWeaponSlot::PickWeapon could endlessly loop when
  the counter variable became negative.


SVN r1504 (trunk)
2009-03-25 23:29:00 +00:00
Christoph Oelckers
f7bcd0b98e - Fixed: Implicitly defined clusters were not initialized when being created.
SVN r1503 (trunk)
2009-03-25 22:02:15 +00:00
Christoph Oelckers
218fc5018e - Fixed: Item tossing did not work anymore.
SVN r1502 (trunk)
2009-03-24 07:51:15 +00:00
Christoph Oelckers
e4da63e9f3 - Changed: Making the gameinfo customizable by MAPINFO requires different
checks for map specific border flats.
- fixed intermission music for Doom 1.


SVN r1501 (trunk)
2009-03-23 17:46:59 +00:00
Christoph Oelckers
a150f6f9b7 - disabled Zip related code in IWAD detection for now
- forgot to add new files.


SVN r1498 (trunk)
2009-03-22 11:42:46 +00:00
Christoph Oelckers
505031fa5a - removed gamemission variable because it wasn't used anywhere.
- removed gamemode variable. All it was used for were some checks that
  really should depend on GI_MAPxx.
- Externalized all internal gameinfo definitions.
- added include to MAPINFO parser.
- split IWAD detection code off from d_main.cpp into its own file.
- disabled gamemission based switch filtering because it is not useful.
- added GAMEINFO submission by Blzut3 with significant modifications. There
  is no GAMEINFO lump. Instead all information is placed in MAPINFO, except
  the data that is needed to decide which WADs to autoload.


SVN r1497 (trunk)
2009-03-22 11:37:56 +00:00
Randy Heit
5c5137747f - Added the current value of the string buffer to the state saved when
making a function call in ACS. Now you can print inside functions and
  also return values from them for the caller to plug directly into
  another string without having to save it to a temporary variable.


SVN r1492 (trunk)
2009-03-20 02:13:25 +00:00