MantisBT - Zandronum
View Issue Details
0002061Zandronum[All Projects] Bugpublic2015-01-10 16:502015-01-10 19:52
Torr Samaho 
Blzut3 
highblockalways
closedno change required 
2.0-beta 
2.0 
0002061: DECORATE parser of 2.0 rejects code that was allowed in 1.x
'http://www.mediafire.com/download/cdin9ijgn8i0qbe/Doom2TowerDefense%282%29.rar [^]'

can be loaded with 1.x (if you load skulltag_actors.pk3 skulltag_data_126.pk3), but not with 2.0. Apparently, this is caused by the ZDoom updates to the DECORATE parser.

Did ZDoom intentionally break backwards compatibility here or is this a Zandronum bug (merge error, ZDoom error that has been fixed by now in ZDoom, 1.X allowed DECORATE code ZDoom never accepted, etc.)?
No tags attached.
Issue History
2015-01-10 16:50Torr SamahoNew Issue
2015-01-10 16:50Torr SamahoStatusnew => assigned
2015-01-10 16:50Torr SamahoAssigned To => Blzut3
2015-01-10 19:13Edward-sanNote Added: 0011360
2015-01-10 19:14Edward-sanNote Edited: 0011360bug_revision_view_page.php?bugnote_id=11360#r6379
2015-01-10 19:14Edward-sanNote Edited: 0011360bug_revision_view_page.php?bugnote_id=11360#r6380
2015-01-10 19:25Torr SamahoNote Added: 0011361
2015-01-10 19:49Blzut3Note Added: 0011362
2015-01-10 19:52DuskNote Added: 0011363
2015-01-10 19:52DuskStatusassigned => closed
2015-01-10 19:52DuskResolutionopen => no change required

Notes
(0011360)
Edward-san   
2015-01-10 19:13   
(edited on: 2015-01-10 19:14)
From what I could see, it's sufficient this:


actor FatShot replaces Fatshot
{
}


Apparently zdoom lost (intentionally?) the case sensitive checking on name collisions. I can reproduce this on latest zdoom.

(0011361)
Torr Samaho   
2015-01-10 19:25   
You are right. GZDoom 323 / Zandronum 1.x accepts this code snippet, GZDoom 900 / Zandronum 2.0 does not. ZDoom 2.7.1 still doesn't accept it. Now the question is, whether ZDoom intentionally broke backwards compatibility with existing code.
(0011362)
Blzut3   
2015-01-10 19:49   
It's not somehow related to this is it?'http://zdoom.org/wiki/RTC-3057#Pistol_bug [^]'

The one thing I can say for sure is yes, that piece of code is ill-formed. Names in ZDoom were intended to be case insensitive. From my understanding of the change, the actor header was the only place where it was checked case sensitive so it resulted in some quirks.

I think it should be triggering Zandronum's actor renaming though shouldn't it? I know we've been warning people forever that doing "actor Demon : Demon replaces Demon" is ill-formed. If they chose not to listen, that's their problem imo.

Actually with some testing it looks like at some point ZDoom introduced similar renaming code, but decided to properly check that the construct I mentioned produces an error (inheriting from itself or replacing itself).
(0011363)
Dusk   
2015-01-10 19:52   
edward-san isolated the changeset'http://zdoom.org/Changelog/6ec3076/files [^]'

ZDoom fixed this as a bug which in turn causes the parser to reject ill-formed DECORATE like this.


<@Blzut3> yeah, definitely a wad error
<@Blzut3> "not listening to developer warnings"


Nothing to do here.