Commit graph

207 commits

Author SHA1 Message Date
Randy Heit
77c663a9b8 - In conjunction with all the below changes, attempt to fix A_CheckSightOrRange and A_CheckSight
for multiplayer: They now always check through the eyes of every player. For players whose
  cameras are not players, they also check through the eyes of those cameras.
- Using spynext/spyprev to switch from a non-player to a player now writes a command to the
  network stream and lets Net_DoCommand() take care of it later. The logic here is that if
  a player is viewing from something that isn't another player, then every player needs to know
  about it for sync purposes. Consequently, when they stop viewing from a non-player and switch
  to a player, everybody needs to know about that too. But if they are viewing from a
  player, it doesn't matter which player it is, so they can spynext/spyprev all they want
  without letting the other players know about it (and without potentially breaking demos--due
  to the above-mentioned two codepointers--while doing it during demo playback).
- Replaced the instances of checking players[consoleplayer].camera for a valid pointer to
  ones that do it for every player.
- Fixed: Upon changing levels, all players but the consoleplayer would have their cameras NULLed.
- Fixed: player_t::FixPointers() needs to bypass the read barriers, or it won't be able to
  do substitutions of old objects that are pending deletion.

SVN r3448 (trunk)
2012-03-17 00:52:33 +00:00
Randy Heit
73c55b52f9 - Fixed: The check for CHANGELEVEL_KEEPFACING in G_FinishTravel() needed parentheses.
SVN r3444 (trunk)
2012-03-16 00:59:10 +00:00
Randy Heit
58f7e72d1b - Restored savegame compatibility that was removed in r3427.
SVN r3435 (trunk)
2012-03-13 02:43:24 +00:00
Christoph Oelckers
e4880d162f - added Xaser's submission for accessing accuracy and stamina from DECORATE and ACS.
- added DECORATE properties for accuracy and stamina.
- Since these changes move properties from player_t to AActor all savegame compatibility code was removed and the min. savegame version bumped.


SVN r3427 (trunk)
2012-03-11 09:08:35 +00:00
Randy Heit
7279e2ad62 - Fixed: Player pitch limits were reset to 0 when changing levels and loading
saved games.



SVN r3332 (trunk)
2011-12-14 00:16:19 +00:00
Randy Heit
66f86add05 - Fixed: Starting in a sector with a musinfo thing would not trigger the thing.
SVN r3313 (trunk)
2011-11-07 00:31:17 +00:00
Randy Heit
e121bd7d92 - Added compat_badangles to simulate Doom's incorrect sine table: Player
spawning and teleporting will be offset by one fineangle so they cannot
  face directly in one of the cardinal directions.



SVN r3308 (trunk)
2011-11-01 02:58:52 +00:00
Christoph Oelckers
5bfcaab25c - separation of software renderer from the rest of the code complete. All external access to the renderer is routed through the FRenderer interface class now, with two exceptions (2D texture drawing to a canvas and polymost testing code) that are handled by #defines.
SVN r3263 (trunk)
2011-07-07 15:37:47 +00:00
Christoph Oelckers
163301dcd5 - took all includes of farchive.h out of headers. This file will have to be included explicitly in each source file that needs it.
SVN r3259 (trunk)
2011-07-06 14:20:54 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +00:00
Christoph Oelckers
5c6fd66ed5 - rename src/resources to src/r_data.
SVN r3254 (trunk)
2011-07-06 07:35:36 +00:00
Christoph Oelckers
17ed7aaabd - moved the code from r_data.cpp to some better fitting places and deleted this file and r_data.h because the remaining parts of it were just a random collection of unrelated functions.
SVN r3248 (trunk)
2011-07-05 10:02:38 +00:00
Christoph Oelckers
4626492f50 - separated all colormap related code from v_palette.cpp and r_data.cpp into its own file.
SVN r3245 (trunk)
2011-07-03 10:47:35 +00:00
Randy Heit
0e07113752 - Forgot a delete.
SVN r3197 (trunk)
2011-05-08 16:45:36 +00:00
Randy Heit
91a5e077f2 - Add the wad a map is defined in to the output of listmaps.
SVN r3196 (trunk)
2011-05-08 16:44:43 +00:00
Christoph Oelckers
c6525a2271 - changed some data init code to delete the data it wants to initialize first.
- The 'savebuffer' variable still existed?
- Changed AInventory::Destroy to NULL SendItemUse and SendItemDrop if they point to the destroyed object. Although unlikely it can't be ruled out completely that this can happen with delayed CCMDs.
- fixed: Starting a new game did not clear the hub statistics array.


SVN r3034 (trunk)
2010-12-13 10:02:45 +00:00
Christoph Oelckers
72192397ad - added some initial configurability to statistics intermission screen:
* Font and color for map name can be set if it's not a titlepatch
 * 'Finished' and 'Entering' can be either patches or a printed text in all gamees now.
 * Font and color for 'finished' and 'entering' text can be set.
 * moved 'finished' and 'Now entering:' texts into string table.


SVN r2981 (trunk)
2010-11-06 09:28:17 +00:00
Christoph Oelckers
d9970ab9b6 - merged finale branch back into trunk.
SVN r2911 (trunk)
2010-10-06 10:44:03 +00:00
Christoph Oelckers
9414fd2995 - fixed: G_DoLoadLevel must reset level.maptime before calling P_SetupLevel or all actors that read it in their BeginPlay method get the wrong time.
SVN r2860 (trunk)
2010-09-28 15:14:53 +00:00
Christoph Oelckers
54bdf38fef - resurrected some old statistics code I had and made some minor enhancements to be of more use.
SVN r2821 (trunk)
2010-09-18 16:08:10 +00:00
Christoph Oelckers
4da5ce74ca - fixed: The menu should not override the user's player class if there is no player class menu.
SVN r2798 (trunk)
2010-09-16 16:20:39 +00:00
Christoph Oelckers
579502ab74 - merged menu branch back into trunk.
SVN r2768 (trunk)
2010-09-14 17:28:18 +00:00
Christoph Oelckers
9a4abe0915 - merged automap branch into trunk.
SVN r2609 (trunk)
2010-08-27 15:20:05 +00:00
Randy Heit
34d8212d64 - Changed G_ChangeLevel()'s parameter list to match the ACS version's.
- Added resethealth to complement resetinventory.

SVN r2377 (trunk)
2010-06-18 03:35:41 +00:00
Braden Obrzut
d7686d0c26 - Added optional offset parameters to the drawshadow flag.
- Added character alignment parameter to font monospacing.
- Fixed: character shadows were not scaled.
- Heretic keys now have an icon associated with them so that they can be drawn through drawkeybar.
- Replaced the built in Heretic and Hexen status bars with SBarInfo equivalents.

SVN r2353 (trunk)
2010-06-02 20:26:27 +00:00
Randy Heit
aa86e62693 - Added DefaultEnvironment MAPINFO option to set the default sound environment for the whole map.
SVN r2261 (trunk)
2010-03-31 03:48:16 +00:00
Christoph Oelckers
0f0c02f9d6 - fixed: Level redirection checked the wrong level.
SVN r2241 (trunk)
2010-03-25 17:07:07 +00:00
Randy Heit
d19878efcb - Added BOOM/MBF BEX-style narrative background text substitution. There are two changes because
of this:
  * A cluster's flat definition can now be preceded by a $ to do a string table lookup.
  * Since the standard flat names are now in the LANGUAGE lump, the normal Dehacked substitution
    for these is no longer handled specially and so will not be automatically disabled merely
    by providing your own MAPINFO.

SVN r2195 (trunk)
2010-03-06 03:28:22 +00:00
Randy Heit
8de8924c47 - Fixed: The MAPINFO keyword resetinventory only worked when traveling to a redirected map.
SVN r2108 (trunk)
2010-01-08 03:40:10 +00:00
Christoph Oelckers
e0734b3c2d - ported GZDoom's new 'skyoffset' ANIMDEFS option for compatibility purposes.
SVN r1977 (trunk)
2009-11-13 21:28:39 +00:00
Christoph Oelckers
cc2b0b0dcf - made max. view pitch a property of the renderer so that it's overridable without
changing game code.
- made SpawningMapThing an argument of AActor::StaticSpawn instead of a global
  variable.
- added a stub to the DECORATE parser for defining dynamic lights directly
  in DECORATE. This is needed so that ZDoom remains compatible with any DECORATE 
  which uses this GZDoom feature in the future.


SVN r1935 (trunk)
2009-10-25 15:26:19 +00:00
Christoph Oelckers
3900381565 - fixed: Teleport_EndGame did not set the end sequence name properly.
SVN r1899 (trunk)
2009-10-08 07:30:20 +00:00
Christoph Oelckers
ba28749df7 - fixed: WIF_STAFF2_KICKBACK did not work anymore because it depended on conditions
that were changed some time ago.
- fixed: The damage inflictor for a rail attack was the shooter, not the puff.
- Fixed: Floor and ceiling huggers may not change their z-velocity when seeking.
- Fixed: UDMF set the secret sector flag before parsing the sector's properties,
  resulting in it always being false.
- Renamed sector's oldspecial variable to secretsector to better reflect its
  only use.
- Fixed: A_BrainSpit stored as the SpawnShot's target the intended BossTarget, 
  not itself contrarily to other projectile spawning functions. 
  A_SpawnFly then used the target for CopyFriendliness, thinking it'll be the 
  BossEye when in fact it wasn't.
- Added Gez's submission for a DEHACKED hack introduced by Boom.
  (using code pointers of the form 'Pointer 0 (x statenumber)'.
- fixed: Attaching 3DMidtex lines by sector tag did not work because lines
  were marked by index in the sector's line list but needed to be marked by
  line index in the global array.
- fixed: On Linux ZDoom was creating a directory called "~.zdoom" for 
  save files because of a missing slash.
- fixed: UDMF was unable to read floating point values in exponential format
  because the C Mode scanner was missing a definition for them.
- fixed: The recent changes for removing pointer aliasing got the end sequence
  info from an incorrect variable. To make this more robust the sequence index
  is now stored as a hexadecimal string to avoid storing binary data in a string.
  Also moved end sequence lookup from f_finale.cpp to the calling code so that
  the proper end sequences can be retrieved for secret exits, too.

SVN r1777 (trunk)
2009-08-30 10:43:51 +00:00
Randy Heit
e4af82ae96 - Enough with this "momentum" garbage. What Doom calls "momentum" is really
velocity, and now it's known as such. The actor variables momx/momy/momz
  are now known as velx/vely/velz, and the ACS functions GetActorMomX/Y/Z
  are now known as GetActorVelX/Y/Z. For compatibility, momx/momy/momz will
  continue to work as aliases from DECORATE. The ACS functions, however,
  require you to use the new name, since they never saw an official release
  yet.


SVN r1689 (trunk)
2009-06-30 20:57:51 +00:00
Christoph Oelckers
476e0bce2a - Added a 'resetinventory' MAPINFO option.
- Added MF6_NOFEAR flag.
- Added A_MonsterRefire(probability, jumptarget).
- Added A_JumpIfTargetInSight(state) action function.
- Changed: Puffs set their angle to face the originator of the attack.
- Strife's burning hands originally make the level view fullbright.
  changed in ZDoom to do partial brightening.

SVN r1642 (trunk)
2009-06-06 12:46:35 +00:00
Randy Heit
749de6c156 - Fixed: SetSoundPaused() still needs to call S_PauseSound() to pause music
that isn't piped through the digital sound system. (Was removed in r1004.)


SVN r1595 (trunk)
2009-05-20 02:52:07 +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
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
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
7dd75670f4 - Fixed: After loading a savegame or unmorphing, a player's weapon slots
were empty.


SVN r1477 (trunk)
2009-03-13 03:18:06 +00:00
Randy Heit
69c2c4de64 - Moved weapon slot initialization into APlayerPawn::PostBeginPlay() so that
they can be initialized when players respawn in multiplayer.


SVN r1476 (trunk)
2009-03-12 03:54:23 +00:00
Christoph Oelckers
2c65d5b8f5 - fixed: level.flags2 was not stored in savegames. Also bumped min. savegame
version and removed old compatibility handlings.

SVN r1448 (trunk)
2009-02-25 22:10:06 +00:00
Randy Heit
c2b4522b8f - Changed DEM_ADDSLOTDEFAULT, DEM_ADDSLOT, and DEM_SETSLOT to be more space-
efficient.


SVN r1445 (trunk)
2009-02-24 05:58:59 +00:00
Christoph Oelckers
317b8c1d7c - Fixed: Heretic's fullscreen HUD crashed when the player had armor without
a valid icon.


SVN r1436 (trunk)
2009-02-21 23:17:37 +00:00
Christoph Oelckers
125be6b54e - Fixed: G_SerializeLevel must use the TEXMAN_ReturnFirst flag for getting
the sky textures so that it still works when the first texture in a TEXTURE1
  lump is used as sky.

SVN r1412 (trunk)
2009-02-07 08:52:07 +00:00
Randy Heit
64b783f4bd - Changed singleplayer allowrespawn to act like a co-op game when you
change levels while dead by immediately respawning you before the switch
  so that you get to keep all your inventory.
- Fixed: G_InitLevelLocals() did not set flags2.


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


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


SVN r1402 (trunk)
2009-02-05 02:55:28 +00:00
Christoph Oelckers
4bcd3faef8 - moved all code related to global ACS variables to p_acs.cpp where it belongs.
- fixed: The nextmap and nextsecret CCMDs need to call G_DeferedInitNew instead of G_InitNew.
- merged MAPINFO branch back into trunk.

SVN r1393 (trunk)
2009-02-03 19:11:43 +00:00
Christoph Oelckers
40d740506d - Added Blzut3's statusbar maintenance patch.
SVN r1380 (trunk)
2009-01-30 22:37:55 +00:00