View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000325||Gameplay + OpenGL||[All Projects] Bug||public||2017-02-23 08:03||2017-02-27 04:35|
|Summary||0000325: Duplicate classes in old DECORATE mods cause fatal error|
|Description||Example wad: Zen Dynamics, which is a really classic wad and doesn't run in new GZDoom anymore solely because of this.|
It's a good idea to have this as fatal error in ZScript, but doing it in DECORATE means breaking backwards compatibility.
|Tags||No tags attached.|
zendynx.png (23,965 bytes) ==> SQL => SELECT d.adnum as num, d.adsrc as def from pg_attrdef d, pg_class c where d.adrelid=c.oid and c.relname='mantis_bug_file_table' order by d.adnum
zendynx.png (23,965 bytes)
In this particular case it's not even mod author's fault, as this was caused by addition of previously Skulltag-exclusive Grenade actor in 2009: https://zdoom.org/wiki/Classes:Grenade
|Though normally I adopt the "I'm cool with fixing the mod if it can't reasonably be done in the engine" stance, I have to draw the line somewhere. Zen is a few light-years on the other side of that line. :P|
|Partially fixed. There is no 100% fix here because one of the conflicting types is of class ammunition, so some weapon may be broken.|
|When I get some free time, I'll double-check my Revision of this mod to see if the problem still exists there. If not, I'll clean it up on my end.|
|The 'Grenade' ammo type won't work and will have to be renamed. Although I can rename the duplicate class, it doesn't help here becausethe first one is a simple actor while the second one is a special type that gets referenced by other classes.|
Wasn't it getting fully replaced before ZScript if it encountered duplicates?
And when internal Grenade was replaced with other random Grenade, the internal ZDoom's C++ code wouldn't crash?
The full replacement was also broken. In the end I had to decide between a design mistake that has been causing endless problems and would do so in the future if not removed or risking to break a handful of mods that depend on the bad implementation.
Unless a proper namespacing of class names that is compatible with all mods is implemented there is no way to completely resolve the problem for all mods - but the current way is definitely better than the old one and causes less problems overall.
Zendyn is the first mod that is really negatively affected by it.
|2017-02-23 08:03||ZZYZX||New Issue|
|2017-02-23 08:03||ZZYZX||File Added: zendynx.png|
|2017-02-23 08:05||ZZYZX||Note Added: 0000712|
|2017-02-23 08:09||ZZYZX||Note Edited: 0000712||View Revisions|
|2017-02-23 09:54||Xaser||Note Added: 0000715|
|2017-02-23 12:04||Graf Zahl||Note Added: 0000720|
|2017-02-23 12:04||Graf Zahl||Status||new => resolved|
|2017-02-23 12:04||Graf Zahl||Resolution||open => fixed|
|2017-02-23 13:34||Ed the Bat||Note Added: 0000724|
|2017-02-23 16:07||Graf Zahl||Note Added: 0000726|
|2017-02-24 01:00||ZZYZX||Note Added: 0000730|
|2017-02-24 01:01||ZZYZX||Note Edited: 0000730||View Revisions|
|2017-02-27 04:35||Graf Zahl||Note Added: 0000797|