Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001815Zandronum[All Projects] Bugpublic2014-06-05 20:462018-09-30 23:11
ReporterArco 
Assigned ToTorr Samaho 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformMicrosoftOSWindowsOS VersionXP/Vista/7
Product Version2.0-beta 
Target Version2.0Fixed in Version2.0 
Summary0001815: Projectiles w/ +BOUNCEONACTORS die prematurely
DescriptionProjectiles with the +BOUNCEONACTORS flag in 2.0 die whenever they come in contact with a solid actor instead of bouncing.
Attached Files? file icon bounceonactors_test.wad [^] (926 bytes) 2014-06-05 20:46

- Relationships

-  Notes
User avatar (0008854)
Watermelon (developer)
2014-06-05 23:08

Is this a new 2.0 feature or one from 1.2 but broke along the way?
User avatar (0008855)
Arco (updater)
2014-06-05 23:14

I've only seen this bug in 2.0. It does not happen in 1.2 nor 1.3.
User avatar (0009847)
Torr Samaho (administrator)
2014-07-05 10:37

For things that work in 1.2, but not in 2.0, the most important question is whether it happens in GZDoom 880.
User avatar (0009865)
Arco (updater)
2014-07-06 01:15

r880 works as intended.
User avatar (0011157)
Edward-san (developer)
2014-12-31 14:57
edited on: 2014-12-31 15:24

The bounce code got screwed up by the server handling, which was positioned in a bad place, in p_mobj.cpp:


                    // [BB] The server handles this.
                    if ( (mo->BounceFlags & BOUNCE_Actors) && !NETWORK_InClientMode() )
                    {
                        // Bounce test and code moved to P_BounceActor
                        if (!P_BounceActor(mo, BlockingMobj))

                            // [BB] Inform the clients.
                            if ( NETWORK_GetState( ) == NETSTATE_SERVER )
                            {
                                SERVERCOMMANDS_PlayBounceSound( mo, true );
                                // [BB] We need to inform the clients about the new momentum and sync the position,
                                // but can only do this after calling P_ZMovement. Mark the actor accordingly.
                                mo->ulNetworkFlags |= NETFL_BOUNCED_OFF_ACTOR;
                            }

                        { // Struck a player/creature
                        
                            // Potentially reward the player who shot this missile with an accuracy/precision medal.
                            if ((( mo->ulSTFlags & STFL_EXPLODEONDEATH ) == false ) && mo->target && mo->target->player )
                            {
                                if ( mo->target->player->bStruckPlayer )
                                    PLAYER_StruckPlayer( mo->target->player );
                                else
                                    mo->target->player->ulConsecutiveHits = 0;
                            }

                            P_ExplodeMissile (mo, NULL, BlockingMobj);
                        }


see how the 'if ( NETWORK_GetState( ) == NETSTATE_SERVER )' code is placed between 'if (!P_BounceActor(mo, BlockingMobj))' and '{' . Moving the code after the '{' fixes the bouncing offline. Online it's still broken, the clients are not informed properly about the bounce, and the projectile in the example wad explodes somewhere else.

[edit]changeset 4df0191f8f0e is responsible for this.

User avatar (0011160)
Torr Samaho (administrator)
2015-01-01 11:33

You're right. The KDiff3 merging failed here. I'll take care of this.
User avatar (0011162)
cobalt (updater)
2015-01-01 16:32

Issue addressed by commit 69cad01a977a: Fixed a merge error introduced in 4df0191f8f0e4055bb9cf4d484e2c50940b1e13e spotted by Edward-san. This addresses 1815.
Committed by Benjamin Berkels [Torr Samaho] on Thursday 01 January 2015 17:28:37

Changes in files:
 src/p_map.cpp | 10 ++++++++++
 src/p_mobj.cpp | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)
User avatar (0011171)
Arco (updater)
2015-01-01 18:13

Issue fixed in r150101-1703.

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2014-06-05 20:46 Arco New Issue
2014-06-05 20:46 Arco File Added: bounceonactors_test.wad
2014-06-05 23:08 Watermelon Note Added: 0008854
2014-06-05 23:14 Arco Note Added: 0008855
2014-06-15 16:45 Watermelon Status new => confirmed
2014-07-05 10:37 Torr Samaho Note Added: 0009847
2014-07-05 10:37 Torr Samaho Status confirmed => feedback
2014-07-06 01:15 Arco Note Added: 0009865
2014-07-06 01:15 Arco Status feedback => new
2014-12-31 11:35 Torr Samaho Target Version => 2.0
2014-12-31 14:57 Edward-san Note Added: 0011157
2014-12-31 15:23 Edward-san Note Edited: 0011157 View Revisions
2014-12-31 15:24 Edward-san Note Edited: 0011157 View Revisions
2015-01-01 11:33 Torr Samaho Note Added: 0011160
2015-01-01 12:38 Dusk Assigned To => Torr Samaho
2015-01-01 12:38 Dusk Status new => assigned
2015-01-01 16:31 cobalt Status assigned => needs testing
2015-01-01 16:32 cobalt Note Added: 0011162
2015-01-01 18:13 Arco Note Added: 0011171
2015-01-01 18:13 Arco Status needs testing => resolved
2015-01-01 18:13 Arco Fixed in Version => 2.0
2015-01-01 18:13 Arco Resolution open => fixed
2018-09-30 23:11 Blzut3 Status resolved => closed






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker