MantisBT - Zandronum
View Issue Details
0001179Zandronum[All Projects] Bugpublic2012-11-12 10:422019-06-04 21:54
unknownna 
Dusk 
normalminoralways
newopen 
1.0 
 
0001179: ScriptedMarine is buggy online
It will display the wrong frames online when attacking.
1. zandronum -host +sv_cheats 1
2. Connect a client to the server and join the game.
3. "god; summon marinessg" in the console.
Missile.SSG:
        PLAY E 3 A_M_CheckAttack
        PLAY F 7 BRIGHT A_M_FireShotgun2
        Goto See
    SkipAttack:
        PLAY A 1
        Goto See
No tags attached.
Issue History
2012-11-12 10:42unknownnaNew Issue
2012-11-12 10:42unknownnaStatusnew => confirmed
2012-11-12 10:43unknownnaAdditional Information Updatedbug_revision_view_page.php?rev_id=2964#r2964
2012-11-12 14:18DuskNote Added: 0005385
2012-11-12 14:18DuskAssigned To => Dusk
2012-11-12 14:18DuskStatusconfirmed => needs review
2012-11-12 14:47unknownnaNote Added: 0005386
2012-11-12 14:49unknownnaNote Edited: 0005386bug_revision_view_page.php?bugnote_id=5386#r2968
2012-11-12 20:57DuskStatusneeds review => assigned
2012-11-12 21:43DuskNote Added: 0005390
2012-11-12 21:43DuskStatusassigned => needs review
2012-11-13 20:59Torr SamahoNote Added: 0005392
2012-11-15 16:39DuskNote Added: 0005399
2012-11-18 09:24Torr SamahoNote Added: 0005407
2012-11-18 12:41Torr SamahoNote Added: 0005415
2012-11-18 12:42Torr SamahoNote Edited: 0005415bug_revision_view_page.php?bugnote_id=5415#r2977
2012-11-18 12:42Torr SamahoNote Revision Dropped: 5415: 0002976
2012-11-18 12:42Torr SamahoStatusneeds review => feedback
2012-11-18 12:52Torr SamahoNote Edited: 0005415bug_revision_view_page.php?bugnote_id=5415#r2978
2012-11-18 18:37DuskNote Added: 0005416
2012-11-18 18:37DuskStatusfeedback => needs testing
2012-11-18 19:58Torr SamahoNote Added: 0005419
2012-12-18 20:44DuskTarget Version => 1.1
2013-02-27 00:14QentNote Added: 0006083
2013-04-04 00:21ArcoNote Added: 0006205
2013-04-05 19:53DuskStatusneeds testing => assigned
2013-06-11 04:16ArcoNote Added: 0006421
2013-06-23 20:10DuskTarget Version1.1 =>
2019-06-04 21:54DuskStatusassigned => new

Notes
(0005385)
Dusk   
2012-11-12 14:18   
Fixed
(0005386)
unknownna   
2012-11-12 14:47   
(edited on: 2012-11-12 14:49)
Good job, Dusk. But I think that the MarineFist and MarineBFG actors are affected too.

Melee.Fist:
        PLAY E 4 A_FaceTarget
        PLAY F 4 A_M_Punch(1)
        PLAY A 9
        PLAY A 0 A_M_Refire
        Loop
        PLAY A 5 A_FaceTarget
        Goto See
Missile.BFG:
        PLAY E 5 A_M_BFGSound
        PLAY EEEEE 5 A_FaceTarget
        PLAY F 6 A_M_FireBFG
        PLAY A 4 A_FaceTarget
        PLAY A 0 A_M_Refire
        Loop
        PLAY A 0
        Goto See


(0005390)
Dusk   
2012-11-12 21:43   
Fixed the BFG marine

I'm not sure how to handle the fist marine, though. It seems to be a much deeper issue than just a missing server command call and the desync is not very great.
(0005392)
Torr Samaho   
2012-11-13 20:59   
The A_M_BFGSound patch is perfect, the A_M_CheckAttack patch is also fine technically, I just have my usual pedantic style complaints (missing new line + unrelated changes merged into a bug fix commit).
(0005399)
Dusk   
2012-11-15 16:39   
Fine... here is this, then, Collaped stuff while I was at it. I could of sworn we were meant to reduce copy/paste code though..
(0005407)
Torr Samaho   
2012-11-18 09:24   
Thanks! Pulled and rebased.

Quote from Dusk
I could of sworn we were meant to reduce copy/paste code though..

Absolutely. We should just not mix changes that are intended to change the code behavior (e.g. bug fixes) and changes that are solely meant to make the code simpler while keeping the behavior exactly the same (e.g. copy and paste reduction by function use) in the same commit. Keeping these things in different commits makes debugging and change tracking easier.
(0005415)
Torr Samaho   
2012-11-18 12:41   
(edited on: 2012-11-18 12:52)
Quote from unknownna

Melee.Fist:
        PLAY E 4 A_FaceTarget
        PLAY F 4 A_M_Punch(1)
        PLAY A 9
        PLAY A 0 A_M_Refire
        Loop
        PLAY A 5 A_FaceTarget
        Goto See

This suffers the same fate as all server handled jump functions: The client doesn't have enough information to evaluate A_M_Refire and just always ignores it, i.e. it always executes the loop statement. If the server decides that the actor has to stop refiring, it informs the client. But till this information reaches the client, the client will already have started to refire locally, leading to a small desync.

BTW: In A_M_Punch the server doesn't inform the clients about the changed angle, this shouldn't make much of a difference though. EDIT: I added the missing angle synchronization.

(0005416)
Dusk   
2012-11-18 18:37   
Quote
Keeping these things in different commits makes debugging and change tracking easier.

Ah, right. Was not aware of this. I'll mark this as needing testing now that it's pulled.
(0005419)
Torr Samaho   
2012-11-18 19:58   
I'm sorry. I thought we talked about this a while ago, but it's quite possible that I only mentioned this to TIHan and never told you about this.
(0006083)
Qent   
2013-02-27 00:14   
The BFG and SSG marines look better. I can't see any desyncs. Was the fist marine changed?
(0006205)
Arco   
2013-04-04 00:21   
Fist marines occasionally desync when there's lag. The SSG and BFG marines are, as Qent stated, fixed.
(0006421)
Arco   
2013-06-11 04:16   
Latest version does not conform. Fist marines do not have the correct frames with induced pings.