Commit graph

2842 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
07118147d8 - Revised the fix from r3442: Make the line a nonrepeatable Door_Open instead of completely
clearing the line's special.

SVN r3447 (trunk)
2012-03-16 23:42:11 +00:00
Randy Heit
73a78caa5c - Added support for a few extra color ranges to Player.Colorset so that the Strife player's
predefined colors can properly define the standard Strife translation ranges.

SVN r3446 (trunk)
2012-03-16 02:23:31 +00:00
Randy Heit
e6a0fbe4db - Fixed: Missiles that exploded on a wall because they exhausted their bounce count did not leave decals.
SVN r3445 (trunk)
2012-03-16 01:17:12 +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
5a076c1f32 - Fixed: The distance parameter for A_RadiusThrust was defined as fixed, when the parameter
passed to P_RadiusAttack is just a regular int.

SVN r3443 (trunk)
2012-03-16 00:41:11 +00:00
Randy Heit
9f168e29e2 - Added clearlinespecial, for doom.wad e3m4 line 1069.
- Allow using the parameterized compatibility options with IWAD maps.

SVN r3442 (trunk)
2012-03-15 23:41:44 +00:00
Randy Heit
5f23b4f64a - Fixed: Destroying a weapon that claimed it was its own sister would crash.
SVN r3441 (trunk)
2012-03-15 23:18:13 +00:00
Randy Heit
f500947814 - Apply fix from previous commit to Doom-format maps. (Previous commit only did it for Hexen.)
SVN r3440 (trunk)
2012-03-15 22:59:39 +00:00
Randy Heit
914ef44c59 - Fixed: In non-UDMF maps, projectile impact activation implies projectile cross activation as well.
SVN r3439 (trunk)
2012-03-15 22:57:00 +00:00
Randy Heit
977b2caa30 - Applied a modified version of FDARI's patch to prevent giving health to dead things:
* P_GiveBody() now takes a max parameter so that it can also do the bulk of the work
    AHealth::TryPickup() previously did.
  * Setting an actor's health to 0 or below with SetActorProperty will now kill the actor
    properly.

SVN r3438 (trunk)
2012-03-15 21:21:00 +00:00
Randy Heit
6290ea4fcb - Added setactivation command for compatibility.cpp to fix the gear boxes on hexdd.wad, map54,
which should be set for player uses activation but are not.
- Added some developer mode messages for setlinespecial and clearlinespecial.

SVN r3437 (trunk)
2012-03-15 20:33:33 +00:00
Randy Heit
ba2e8b2461 - Fixed: Old-style ACS has the string table record offsets from the start of the object file to
the strings, not from the start of the string table, so UnescapeStringTable() needs to be
  told where the offsets are based.

SVN r3436 (trunk)
2012-03-15 19:08:19 +00:00
Randy Heit
58f7e72d1b - Restored savegame compatibility that was removed in r3427.
SVN r3435 (trunk)
2012-03-13 02:43:24 +00:00
Randy Heit
c05345668c - Fix wrong case 'NULL' from previous commit. (I sure hope that patch was
tested!)



SVN r3434 (trunk)
2012-03-12 22:23:17 +00:00
Christoph Oelckers
365311ec36 - added SMMU/Eternity method of defining warped textures (Patch by Gez)
SVN r3433 (trunk)
2012-03-12 14:30:45 +00:00
Randy Heit
ce43552ebb - Use _exit() instead of exit() when Timidity++ cannot be execed, because
exit() can (and does) make the process hang. (It sure would be nice if
  POSIX-land had a simple CreateProcess API, but I guess that would be too
  easy, huh?)



SVN r3432 (trunk)
2012-03-12 04:05:15 +00:00
Randy Heit
4d64085c8a - Fixed: The PlayerDisplay menu item ignored the FlipX property of the sprite frames.
SVN r3431 (trunk)
2012-03-12 01:41:19 +00:00
Randy Heit
748eb255cc - Fixed: R_ExtendSpriteFrames() neglected to set the new spriteframes value for the sprite.
SVN r3430 (trunk)
2012-03-12 01:34:19 +00:00
Randy Heit
162ad601ba - Fixed bug introduced in r3412: The SetStyle() call needs to come after the scissoring check,
because the latter can flush the quads, including the one SetStyle() just set a style for.

SVN r3429 (trunk)
2012-03-12 01:22:19 +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
f94b38fd7f - Fixed: The softsynths could get stuck on the last notes of nonlooping songs.
SVN r3426 (trunk)
2012-03-11 04:30:35 +00:00
Randy Heit
957f67f7cc - Fixed: FMOD as MIDI device always looped the song, even when it shouldn't (such as the title music).
SVN r3425 (trunk)
2012-03-11 03:56:20 +00:00
Randy Heit
51e66acc6b - Fixed: UnescapeStringTable() used the wrong position in the script file for Hexen-style ACS.
SVN r3424 (trunk)
2012-03-11 03:47:45 +00:00
Randy Heit
58ed367280 - Fixed: If the first four bytes of the NODES lump are all zero, the nodes would not be loaded,
nor would they be generated.

SVN r3423 (trunk)
2012-03-11 03:25:04 +00:00
Randy Heit
d367b2941a - Fixed: Monsters spawned by the Boss Brain would not go after the player unless they were in sight.
SVN r3422 (trunk)
2012-03-10 02:17:49 +00:00
Randy Heit
859512bf77 - Added gather2.wad's map05 and darkside.wad's map01 (which are actually the same map) to
compatibility.txt for Arch-Vile ghost resurrection.

SVN r3421 (trunk)
2012-03-10 02:09:04 +00:00
Randy Heit
e9f832460b - Added "misc/startupdone" sound to be played when the startup screen is closed and the game
is about to begin.

SVN r3420 (trunk)
2012-03-10 01:54:00 +00:00
Randy Heit
a12729670b - Fixed: The user could interact with the conversation menu during demo playback and mess up the
demo.
- Fixed: The conversation menu stayed up during demo playback even after the conversation was
  over.

SVN r3419 (trunk)
2012-03-10 01:24:59 +00:00
Randy Heit
6d59fb3e9f - Fixed: If the dialogues are freed while a dialogue menu is open, we need to close that menu,
or it will crash because the dialogue node it refers to no longer exists.

SVN r3418 (trunk)
2012-03-10 00:38:38 +00:00
Randy Heit
2f3ea885c5 - Fixed: The identity translation for players should not be remapped through GPalette.Remap[].
The graphics are already mapped through this, so we don't need to do it again when translating.
  Moreover, if there was no duplicate of color 0, but there was a different color with a 
  duplicate, this means we end up drawing players with the duplicated color wherever it should
  be color 0. (Standard translations already had this right.)

SVN r3417 (trunk)
2012-03-10 00:26:42 +00:00
Randy Heit
29369b4d34 - Change some of the CMake GCC build flags from appending new ones to prepending them so they
can be overridden.

SVN r3416 (trunk)
2012-03-09 23:30:47 +00:00
Randy Heit
5564b99d3a - Fixed: UseInventory from ACS should ignore the totally frozen property.
SVN r3415 (trunk)
2012-03-09 01:56:37 +00:00
Randy Heit
10eb15fab9 - Fixed: Standing inside a "window" with a pushable exterior wall would trigger that wall if
your movement was blocked, even if it wasn't that wall that blocked you. Note that this is just
  a Z check against the actor and the floor and ceiling heights; it might still be possible to
  goof it up, but the common case is fixed.

SVN r3414 (trunk)
2012-03-09 01:49:26 +00:00
Randy Heit
ac3b805dd9 - Fixed: ACS's ClearInventory was not equipped to handle items that destroy other items when
destroyed. For example, if a weapon has a sister weapon immediately after it in the inventory
  list, they would both be destroyed by the call to destroy the weapon, and ClearInventory
  would fail to find anything beyond the sister weapon in the inventory list.

SVN r3413 (trunk)
2012-03-09 01:19:02 +00:00
Randy Heit
76b5e7ef60 - Fixed: D3DFB::DrawTextureV() did not disable the scissor test if it was needed but SetStyle()
decided there was nothing to draw. In practical terms, this means that if your weapon is
  completely invisible, the game would not draw anything outside of the main play area because
  the scissor test would be left on for the entire frame and not just the weapon's quad.

  Making the call to SetStyle() before the scissor check is enough to fix this.

SVN r3412 (trunk)
2012-03-09 00:12:04 +00:00
Randy Heit
8f8f937f9b - The "give artifacts" and "give puzzlepieces" commands now ignore items that have been replaced.
"give everything" continues to give replaced items, however.

SVN r3411 (trunk)
2012-03-08 23:34:00 +00:00
Randy Heit
fdec9bdee3 - Fixed: The memmove() in AddToConsole() did not include the terminating null character.
SVN r3410 (trunk)
2012-03-08 23:17:53 +00:00
Randy Heit
e5e1ee00a6 - Handle ACS string escape sequences at load time rather than print time.
- Fixed: FBehavior::FindStringInChunk() was not big-endian safe.
- Fixed: FBehavior::LookupString() was not big-endian safe.

SVN r3406 (trunk)
2012-03-08 21:37:34 +00:00
Randy Heit
5f88d2c9f0 - All ACS debugging messages are now aware of named scripts.
- Identify script types by name in FBehavior::StaticStartTypedScripts().

SVN r3405 (trunk)
2012-03-08 20:48:53 +00:00
Christoph Oelckers
d3981197c5 - moved the FRenderer::StateChanged call from AActor::StaticSpawn to AActor::PostBeginPlay.
- ensured that all classes reach AActor's PostBeginPlay method. Some were missing a Super call.


SVN r3404 (trunk)
2012-03-07 01:03:56 +00:00
Randy Heit
f2f9bd800d - Fixed: When processing the SFLG and SVCT chunks in ACS objects, the script number must be
read as a signed integer.

SVN r3402 (trunk)
2012-03-04 03:18:06 +00:00
Randy Heit
64fb6410cf - Fixed: FStringTable::operator[] would crash when passed a NULL string pointer.
SVN r3401 (trunk)
2012-03-03 03:19:29 +00:00
Randy Heit
676ce338b1 - Fixed: The game would lockup when using the override polyobject specials with cyclical chains
of mirrored polyobjects. Fixing this has also removed lots of duplicated code for mirrored
  polyobjects.

SVN r3400 (trunk)
2012-03-02 02:23:37 +00:00
Randy Heit
f6c1c0e2df - Truncate rotating polyobjects to 7 bits of fractional precision per vertex.
Fixes known cases of freezing.

SVN r3399 (trunk)
2012-02-28 03:05:31 +00:00
Randy Heit
64e992f648 - Remove seeker missile restriction from A_JumpIfTracerCloser.
SVN r3398 (trunk)
2012-02-28 02:19:57 +00:00
Randy Heit
0fc6d9a0c6 - Unload all bound camera textures when FCanvasTextureInfo::EmptyList() is called.
SVN r3397 (trunk)
2012-02-28 02:17:29 +00:00
Randy Heit
fcb0840246 - Fixed: The DConversationMenu constructor is not the appropriate place to set menuactive to
MENU_OnNoPause.

SVN r3396 (trunk)
2012-02-28 02:07:06 +00:00
Randy Heit
d59280eadb - Preserve the MF_BLOCKED flag on level-spawned actors that have it in their default properties.
SVN r3395 (trunk)
2012-02-28 01:54:35 +00:00
Randy Heit
1e21ebad5d - Let puke and pukename take up to four script parameters.
- Pass ACS_ExecuteWithResult's fifth argument as a fourth script parameter.
- Simplify P_StartScript()'s usage.

SVN r3394 (trunk)
2012-02-26 03:36:05 +00:00