MantisBT - Zandronum
View Issue Details
0002662Zandronum[All Projects] Suggestionpublic2016-03-06 00:092018-09-30 21:49
Dusk 
Dusk 
normalmajorhave not tried
closedfixed 
2.1 
3.03.0 
0002662: Code generator to handle server command read/write
We talked about this on the previous meeting. The code generator is mostly feature complete now so I've taken and refabricated the commits on top of the Zandronum current history (mostly because edward-san's mom→vel stuff kind of threw a few spanners into the works). I'm putting in a pull request now.

The benefits should be clear:
- automates the generation of boilerplate code, removing the factor of human error from within that
- prints warnings in various places where client code previously silently returned away
- eliminates vast quantities of code duplication
- exposes the spec of the server commands to a parseable text file which should assist external programs in analyzing Zandronum traffic, e.g.'http://zandronum.com/forum/showthread.php?tid=7048 [^]'

I've managed to convert all thing commands and most player commands now, as well as a select few difficult cases (i.e. WeaponRailgun and ACSScriptExecute). Along the way I've noticed several ways the server could crash the client that the code generator automatically fixes…

I'm confident that I can also convert the rest of the commands but the complexity of the patch is already large enough that I find it most unfeasible to convert everything for a single patch. This already contains a week of work and only covers a third or quarter of the commands. Nevertheless it's a mostly stable base that we can build upon.
No tags attached.
Issue History
2016-03-06 00:09DuskNew Issue
2016-03-06 00:14DuskNote Added: 0014554
2016-03-06 00:14DuskAssigned To => Dusk
2016-03-06 00:14DuskStatusnew => needs review
2016-03-06 00:14DuskNote Edited: 0014554bug_revision_view_page.php?bugnote_id=14554#r8817
2016-03-06 03:39ZzZomboNote Added: 0014557
2016-06-05 23:00DuskNote Added: 0015028
2016-06-05 23:00DuskSeverityminor => major
2016-11-24 07:49Edward-sanNote Added: 0016311
2016-11-24 07:49Edward-sanStatusneeds review => needs testing
2016-11-24 07:49Edward-sanProduct Version => 2.1
2016-11-24 07:49Edward-sanTarget Version => 3.0
2017-02-06 19:00DuskNote Added: 0016785
2017-02-06 19:00DuskStatusneeds testing => resolved
2017-02-06 19:00DuskFixed in Version => 3.0
2017-02-06 19:00DuskResolutionopen => fixed
2018-09-30 21:49Blzut3Statusresolved => closed

Notes
(0014554)
Dusk   
2016-03-06 00:14   
'https://bitbucket.org/Torr_Samaho/zandronum/pull-requests/77 [^]'

Notice that I've (painstakingly) arranged the changes to a series of commits. The combined diff is very large already.

(0014557)
ZzZombo   
2016-03-06 03:39   
ClientIterator::increm_?_ntCurrentTillValid
(0015028)
Dusk   
2016-06-05 23:00   
'https://bitbucket.org/Torr_Samaho/zandronum/pull-requests/105 [^]' Now with the latest changes, all neatly packaged up.
(0016311)
Edward-san   
2016-11-24 07:49   
It was added some months ago.
(0016785)
Dusk   
2017-02-06 19:00   
It seems to be working just fine. I will rework on it for 3.1 but that'll go into a different ticket.