Commit graph

3971 commits

Author SHA1 Message Date
Edward Richardson
82ac6c999e Destroy old player mobjs when starting new games 2014-10-26 04:14:52 +13:00
Christoph Oelckers
85fae623c8 Merge branch 'BotSpawnFix' of https://github.com/ChillyDoom/zdoom 2014-10-25 16:50:17 +02:00
ChillyDoom
1b7c07df65 - Fixed: Bots added by different setting controllers could be assigned the same player number. 2014-10-25 14:58:10 +01:00
Christoph Oelckers
0124d41931 Merge branch 'Bloodtype' of https://github.com/Edward850/zdoom 2014-10-25 15:07:06 +02:00
Christoph Oelckers
d4c50b1662 - fixed: AActor::IsTeammate must consider monsters friendly to a specific player as members of the same team as the owning player. Such monsters cannot be made members of a designated team, though, because their association needs to change if the player changes teams. 2014-10-25 14:59:30 +02:00
Edward Richardson
9435cdc5c9 Fixed NULL refrence in P_SpawnBlood 2014-10-26 01:09:19 +13:00
Christoph Oelckers
2e1fa70cbf - some parentheses to silence GCC. 2014-10-25 13:12:57 +02:00
Christoph Oelckers
ad2e16576c - fixed_ P_ExplodeMissile skipped most of its logic when the missile got destroyed by having no death state.
Apparently a band-aid fix was applied to this function because AActor::Destroy could not be called on an already destroyed actor again which could happen here due to incorrect ordering of actions.
Moving the state change to a later point in this function - after hitting a sky has been checked and decals have been spawned - returns everything to a safe state and ensures that nothing gets skipped.
2014-10-25 13:10:38 +02:00
Christoph Oelckers
edd53f22a1 - fixed: The buddha powerup set the wrong flag. 2014-10-25 12:34:46 +02:00
Christoph Oelckers
dcc318fdee - print a warning when a state label can't be found. Preferably this would be an error but the oversight had been in the engine for too long so nobody knows 2014-10-25 12:33:08 +02:00
Christoph Oelckers
ef5707d73b - added a compatibility option for stopping sounds when the owning actor is destroyed. 2014-10-25 12:12:06 +02:00
Christoph Oelckers
fc40e9723a - fixed: CHANGELEVEL_RESETINVENTORY may not change the player's health.
APlayerPawn::GiveDefaultInventory altered the player_t's health value which was ok as long as this function was only called from G_PlayerReborn. For all other cases this initialization was wrong and G_PlayerReborn should do this itself.
2014-10-25 11:51:29 +02:00
Christoph Oelckers
cfe97b0f0f - Fixed: Killing a morphed monster must trigger A_BossDeath on its unmorphed self. 2014-10-25 11:33:28 +02:00
Christoph Oelckers
0d3908a4f3 - fixed: Hitscan traces crossing a two sided line right at the height of the back sector's floor or ceiling must not be considered a hit. 2014-10-25 10:44:00 +02:00
Christoph Oelckers
8edace83c5 - made CheatKey and EasyKey vector graphics configurable through MAPINFO. 2014-10-25 10:19:14 +02:00
Christoph Oelckers
313245dd77 - added a Buddha powerup 2014-10-25 09:53:23 +02:00
MajorCooke
a19620968d - Follow-up of the previous commit.
- Cleaned up the DoDamage and DoKill functionality.
- Added DMSS_FOILBUDDHA and KILS_FOILBUDDHA.
2014-10-25 09:39:10 +02:00
MajorCooke
d1dc6fd59a - Added: BUDDHA and FOILBUDDHA.
- Fixed: mugshot didn't take the god2 cheat into account.
2014-10-25 09:39:00 +02:00
MajorCooke
b980069367 - Added GOD2 and BUDDHA2 cheats.
- Ensures that not even telefrag damage can kill the player.
- Fixed: Players with NODAMAGE could still hurt and kill themselves via
voodoo dolls.
2014-10-25 09:38:40 +02:00
Christoph Oelckers
1c500cead6 - fixed: A_Respawn did not restore the flags6 and flags7 fields. 2014-10-25 01:27:34 +02:00
Christoph Oelckers
aa338a4dc6 - fixed: G_FinishTravel must synchronize the CF_FLY flag with MF2_FLY. 2014-10-25 01:00:40 +02:00
Christoph Oelckers
83be901ad6 - fixed: damage of amount TELEFRAG_DAMAGE should not be reduced by armors absorbing some damage, it'd lose its magic-ness, that is needed to ensure a guaranteed kill. The same applies to autousing health items. 2014-10-25 00:52:27 +02:00
Christoph Oelckers
5ac7e4fc38 - added HARMFRIENDS flag. 2014-10-25 00:30:36 +02:00
Christoph Oelckers
b6f4862024 - fixed: A_Warp didn't initialize oldx/y/z in all situations. 2014-10-25 00:05:52 +02:00
Christoph Oelckers
e81c404b04 - fixed some bad logic operations. 2014-10-25 00:01:04 +02:00
Christoph Oelckers
6f7b83faa1 - fixed: EV_DoFloor was a bit too selective about which movement types were allowed to crush. Changed so that the crush parameter is always used. Also changed all non-crushing calls to explicitly pass -1 as crush damage instead of relying on EV_DoFloor to ignore the passed value. 2014-10-24 23:12:38 +02:00
Christoph Oelckers
15b1c71257 - use proper CheckCheatMode semantics for throwing players out of chasecam mode if DF2_CHASECAM gets unset. 2014-10-24 23:02:02 +02:00
Christoph Oelckers
e662e4321a - fixed: Creating an OPL MIDI device can fail if no GENMIDI lump is found, and an exception is thrown. We need to handle this exception to prevent an abort. 2014-10-24 22:56:10 +02:00
Christoph Oelckers
9402bcf6cd - fixed: The targeter must reset its HUD sprites when being reactivated during the blinking phase. 2014-10-24 22:47:40 +02:00
John Palomo Jr
4496885366 Added Inventory.AlwaysRespawn flag. 2014-10-24 04:46:43 -04:00
Christoph Oelckers
d6a33a601d - fixed: The sorting of 3D floors was incomplete and missed cases where translucent volumes overlapped non-translucent ones only at their top. It also didn't account for one translucent volume being intersected by more than solid one. 2014-10-23 17:33:42 +02:00
ChillyDoom
acd4a71de2 - Fixed: New DBot instances were missing write barriers. 2014-10-21 19:33:48 +01:00
ChillyDoom
6166e83d28 - Fixed: Only setting controllers should be able to remove bots. 2014-10-21 19:32:15 +01:00
ChillyDoom
c9bc9b427c - Removed p_leader. 2014-10-21 19:31:11 +01:00
Christoph Oelckers
fafb0a672c Merge branch 'handshake-hotpatch' of https://github.com/Edward850/zdoom 2014-10-21 14:28:50 +02:00
Christoph Oelckers
ccbdcfea81 Merge branch 'master' of https://github.com/j-palomo/zdoom 2014-10-21 14:28:31 +02:00
Christoph Oelckers
09e0758507 Merge branch 'fix_cmake_unix' of https://github.com/alexey-lysiuk/gzdoom 2014-10-21 14:27:37 +02:00
Christoph Oelckers
20b740d5fc Merge branch 'DBot' of https://github.com/ChillyDoom/zdoom 2014-10-21 14:20:01 +02:00
Edward Richardson
ed51083572 Change u_short as well. 2014-10-21 23:44:14 +13:00
Edward Richardson
759f1bb81b Fix handshakes between GCC and MSVC
u_long has two different sizes between Linux GCC and MSVC
Stopped netgames from starting up if player count wont fit
2014-10-21 23:38:45 +13:00
John Palomo Jr
82255c4dfd Using PickActor will only set the TID if the picked actor doesn't have a TID already. An optional 8th parameter (bool forceTID) was added to revert to the old behavior. 2014-10-19 20:52:48 -04:00
alexey.lysiuk
1715b25a3e Fixed Unknown CMake command "CHECK_LIBRARY_EXISTS" error on Unix targets
Previously it worked somehow but not with CMake 3.0.2
2014-10-18 12:33:39 +03:00
ChillyDoom
c400dcf736 - Made DBot inherit from DObject. 2014-10-15 17:54:12 +01:00
ChillyDoom
db323643f8 - Renamed FBot to DBot and made it inherit from DThinker.
- Fixed: Bots added by players other than the net arbitrator did not have their skill set.
2014-10-14 19:57:11 +01:00
Christoph Oelckers
c9252d1919 Merge branch 'multi' of https://github.com/Edward850/zdoom 2014-10-14 11:54:40 +02:00
Edward Richardson
29cf6b0daa Fixed PredictionActor size and typo 2014-10-14 12:54:03 +13:00
ChillyDoom
83d84eaae9 - Moved bot related variables from player_t into a new FBot class. 2014-10-13 18:40:25 +01:00
Christoph Oelckers
952d03da7c Merge branch 'multi' of https://github.com/Edward850/zdoom 2014-10-13 10:37:51 +02:00
ChillyDoom
5de6b535ae - Removed unnecessary 'id' variable from AActor.
- Removed unused 'backpack' variable from player_t.
- Removed duplicate code from b_move.cpp.
- General cleanup.
2014-10-13 08:45:36 +01:00
Edward Richardson
0cd736b487 Prevent lerping when tic duplication not 1
Network dup makes player prediction inaccurate
2014-10-13 17:09:29 +13:00
Edward Richardson
3e4446e46b Moved prediction lerp reset to cover all cases. 2014-10-13 16:49:53 +13:00
Edward Richardson
98904039b7 Final work on prediction lerping
Added cl_predict_lerpscale and cl_predict_lerpthreshold
Added options in menudef
Made sure that lerping cannot extrapolate or run on small scales
Lerping gets reset when rendering interpolation does or respawn
2014-10-13 16:32:49 +13:00
Edward Richardson
3e6ad8c1a8 Further work on prediction lerping 2014-10-13 00:29:15 +13:00
Christoph Oelckers
0f19356e24 Merge branch 'master' of https://github.com/MajorCooke/zdoom
Conflicts:
	wadsrc/static/actors/constants.txt
2014-10-12 08:43:46 +02:00
Christoph Oelckers
2228dcb32f Merge branch 'experimental' of https://github.com/MajorCooke/zdoom 2014-10-12 08:30:13 +02:00
Christoph Oelckers
e6f3007bef Merge branch 'scoreboardtoggle' of https://github.com/ChillyDoom/zdoom 2014-10-12 08:27:35 +02:00
MajorCooke
f766a1ab38 - Added SXF_ORIGINATOR.
- Only useful for missiles.

By default, missiles cannot set themselves as the master when spawning
actors.
2014-10-11 16:15:42 -05:00
MajorCooke
47029a3efc DoKill bug
-Fixed: DoKill did not target 'killtarget' for missiles, causing crashes and making the function not work properly.
2014-10-07 11:33:08 -05:00
Christoph Oelckers
3eaebabdf1 - fixed: EV_Teleport must not access the thing's player pointer before ensuring that 'thing' is a valid pointer. 2014-10-06 17:40:02 +02:00
Edward Richardson
e1b8b4a871 Started work on prediction lerping 2014-10-06 15:27:13 +13:00
Edward Richardson
7175374350 Keep gateway sockets open during handshake 2014-10-05 19:46:34 +13:00
Edward Richardson
c9d603d1c3 Unreliable isn't exactly the problem 2014-10-05 18:52:56 +13:00
Edward Richardson
0c1fde81ad Remove PacketServer auto select
PacketServer has the tendency to amplify netgame latency times, so it
really shouldn't be auto selected.
Added a notice in case it's used.
2014-10-05 18:32:32 +13:00
Edward Richardson
ae71f94ed2 Remove disconnecting players safely
Players who were disconnecting would be removed outside of the playsims
control, causing problems with sector lists.
2014-10-05 18:04:11 +13:00
Edward Richardson
0f9a8176f5 Unprediction needs to restore selected inventory 2014-10-05 16:57:31 +13:00
MajorCooke
f54a59fdf8 - Added JLOSF_CHECKTRACER for A_JumpIfTargetInLOS.
- CHECKTRACER doesn't need to be a missile or have the SEEKERMISSILE
flag.
2014-10-02 17:00:17 -05:00
ChillyDoom
20dea78ce9 Merge branch 'master' of https://github.com/ChillyDoom/zdoom into scoreboardtoggle 2014-10-02 21:13:54 +01:00
ChillyDoom
c6e1ea864f - Added scoreboard toggling. 2014-10-02 21:03:15 +01:00
MajorCooke
5030832df0 - Added DMSS_NOFACTOR for all A_Damage functions. 2014-10-02 11:48:07 -05:00
Christoph Oelckers
c66c497811 Merge branch 'master' of https://github.com/crimsondusk/zdoom 2014-09-29 00:43:19 +02:00
Christoph Oelckers
cfb623d517 Merge branch 'master' of https://github.com/MajorCooke/zdoom 2014-09-29 00:42:59 +02:00
Christoph Oelckers
82656df8c8 Merge branch 'Get-linetarget-from-any-actor' of https://github.com/fdari/zdoom 2014-09-29 00:42:35 +02:00
Christoph Oelckers
81076abba2 Merge branch 'canraise' of https://github.com/GitExl/zdoom
Conflicts:
	src/p_acs.cpp
2014-09-29 00:42:09 +02:00
Teemu Piippo
770547e661 - added udmf key midtex3dimpassible which causes the midtex to behave like a finite-height impassible line; practically this means the mid texture lets projectiles pass through it. 2014-09-28 17:17:19 +03:00
MajorCooke
96c6e7d9bf Minor fix; didn't mean to include that flag check. 2014-09-28 08:20:27 -05:00
MajorCooke
43b86288c7 - Added A_Remove(int pointer, int flags).
- RMVF_MISSILES removes missiles.
- RMVF_NOMONSTERS ignores monsters.
- RMVF_MISC includes non-monsters and missiles.
- RMVF_EVERYTHING disregards all checks and remove it.

These flags now apply to the following in addition to the new function:

-A_RemoveTarget
-A_RemoveMaster
-A_RemoveTracer
-A_RemoveChildren
-A_RemoveSiblings
2014-09-28 08:15:00 -05:00
fdari
c4f0f95ec8 Get linetarget (aim target) from any actor (not just player): AAPTR_LINETARGET 2014-09-28 15:06:52 +02:00
fdari
a2f7b86a0f IsPointerEqual (ACS and Decorate)
Decorate: IsPointerEqual(int aaptr_selector1, int aaptr_selector2)
ACS: IsPointerEqual(int aaptr_selector1, int aaptr_selector2, int tid1 = 0, int tid2 = 0)

Compare the pointers values returned by two pointer select operations. Returns true if they both resolve to the same value. Null values can be explicitly tested using IsPointerEqual(AAPTR_NULL, ...)

ACS: IsPointerEqual(int aaptr1, int aaptr2, int tid1 = 0, int tid2 = 0)

This function lets you compare pointers from other actors than the activator, using tids. Tid1 determines the actor used to resolve aaptr1, Tid2 does the same for aaptr2. If tid1 and tid2 are equal, the same actor will be used for resolving both pointers (that could always happen randomly; this way you know it will happen).
2014-09-28 11:52:37 +02:00
MajorCooke
97d5d614c4 - Fixed: SXF_NOPOINTERS didn't clear LastHeard, causing monsters to spawn with targets. 2014-09-27 16:50:24 -05:00
MajorCooke
68a5db3c8c - Added SXF_NOPOINTERS for A_SpawnItemEx.
- Added WARPF_ABSOLUTEPOSITION for A_Warp.
2014-09-27 13:22:14 -05:00
Christoph Oelckers
68c481945a - extended parameter list of A_BFGSpray. 2014-09-27 09:36:38 +02:00
Christoph Oelckers
e025f40902 - more redundancy removal: Consolidated the common part of the A_Kill* functions into a subfunction. 2014-09-27 08:54:18 +02:00
Christoph Oelckers
afaa88a460 - consolidated the common portion of the 6 different A_Damage* functions into a subfunction. 2014-09-27 08:48:36 +02:00
MajorCooke
0735cb9550 - Updated many functions.
- Added A_KillTarget(damagetype, int flags).
- Added A_KillTracer(damagetype, int flags).
- Added A_RemoveTarget.
- Added A_RemoveTracer.

A_Kill (Master/Target/Tracer/Children/Siblings):
- KILS_FOILINVUL: foils invulnerability.
- KILS_KILLMISSILES: destroys projectiles. Does not work on invulnerable
projectiles without KILS_FOILINVUL, and doesn't work at all on missiles
with NODAMAGE flag.
- KILS_NOMONSTERS: actors that are monsters will not be killed.

A_Damage (Self/Target/Master/Tracer/Children/Siblings):
- DMSS_FOILINVUL: foils invulnerability.
- DMSS_AFFECTARMOR: damages the actor's armor instead of bypassing it
entirely.
- DMSS_KILL: damages the actor by its remaining health (useful for
modular DECORATE programming).

- Added A_SpawnItemEx flags:
- SXF_SETTARGET: sets the calling actor as the target.
- SXF_SETTRACER: sets the calling actor as the tracer.
Both of these functions take priority similar to SXF_SETMASTER over
SXF_TRANSFERPOINTERS.
2014-09-27 00:10:31 -05:00
MajorCooke
5b71ce6dcb - Added FDARI's A_JumpIfHealthLower patch.
Now with pointer accessibility.
2014-09-26 11:48:20 -05:00
Edoardo Prezioso
54ccf5d44d - Fixed a possible uninitialized condition.
In the function R_RebuildViewInterpolation, the pointer 'iview' was not initialized when the player or its camera were NULL, hence 'iview == NULL' was garbage. Also, the function FindPastViewer does not return NULL, hence the mentioned check is not needed at all. Just return early if the player camera does not exist.
2014-09-26 11:11:35 +02:00
Christoph Oelckers
0f62983aee Merge branch 'master' of https://github.com/Edward850/zdoom 2014-09-26 08:31:20 +02:00
Christoph Oelckers
80060cf1ac Merge branch 'checkclass' of https://github.com/MajorCooke/zdoom 2014-09-26 08:30:33 +02:00
MajorCooke
6586fa29fd - Added FDARI's A_JumpIf CheckClass submission.
- bool CheckClass(string classname, int ptr_select = aaptr_default, bool
match_superclass = false)
2014-09-25 23:56:10 -05:00
MajorCooke
422e83a1b9 - Added more A_Damage functions:
- A_DamageTarget
- A_DamageTracer
-Both take a number for how much damage to deal and the damagetype to
inflict. Negative numbers means healing.
2014-09-25 23:12:25 -05:00
Edward Richardson
e25b91d5a1 Cleanup 2014-09-26 16:11:52 +12:00
Edward Richardson
84cf799803 Final changes to balancing 2014-09-26 15:48:46 +12:00
Edward Richardson
8f82243f4c Don't balance if already the slowest node
- Network balancing shouldn't be run if already too far behind
- Don't save network settings
- Added net_fakelatency for debug builds
2014-09-26 15:48:45 +12:00
Edward Richardson
9e68983b44 Added standard teleports to line prediction
- Added standard teleports to line prediction
- Menudef for line special prediction
2014-09-26 15:48:45 +12:00
Edward Richardson
53b6e7d4d5 Added silent line teleport prediction
- Allow activation of line teleport specials during prediction
- Moved prediction functions to improve uncapped framerates
2014-09-26 15:48:45 +12:00
Edward Richardson
ad0a1ad865 Readded -extratic for compatibility with launchers 2014-09-26 15:48:45 +12:00
Edward Richardson
530f474673 Shifted netmode reporting for guests
- The netmode is now reported after a guest has received it.
- Minor code cleanup
2014-09-26 15:48:44 +12:00
Edward Richardson
c661da2995 Stop negative tic counts from corrupting messages 2014-09-26 15:48:44 +12:00
Edward Richardson
42e6737803 Player prediction now updates listener 2014-09-26 15:48:44 +12:00
Edward Richardson
4db8b3e421 Made delay updates less erratic 2014-09-26 15:48:44 +12:00