Startup Problems with Paranoiac

Something not working in GZDoom that's not a bug? Is the display a bit quirky and unexpected? Post here.

Moderator: Graf Zahl

Locked
User avatar
Enjay
Developer
Developer
Posts: 4720
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Startup Problems with Paranoiac

Post by Enjay »

This is another "not sure if a bug, not finished or the mod" situation. Worth asking about and I'll post a bug report if ncessary.

When I load the Wip of Paranoiac with the current Git build, I get a bunch of errors in the startup window and the game can't start.

[spoiler]

Code: Select all

Script error, "gzdoom.pk3:zscript/compatibility.txt" line 12:
Invalid expression on left hand side of MidPrint

Script error, "gzdoom.pk3:zscript/strife/thingstoblowup.txt" line 35:
Invalid expression on left hand side of MidPrint

Script error, "gzdoom.pk3:zscript/inventory/inv_misc.txt" line 127:
Invalid expression on left hand side of MidPrint

Script error, "gzdoom.pk3:zscript/shared/player_cheat.txt" line 304:
Invalid expression on left hand side of HideConsole

Script error, "gzdoom.pk3:zscript/strife/alienspectres.txt" line 111:
Invalid expression on left hand side of MidPrint

Script error, "gzdoom.pk3:zscript/strife/strifeitems.txt" line 534:
Invalid expression on left hand side of MidPrint
[/spoiler]

If I go back to the build from the 17th, the game starts with no error messages.

Builds from the 18th and 19th only give a single message.

[spoiler]

Code: Select all

Script error, "gzdoom.pk3:zscript/shared/player_cheat.txt" line 304:
Invalid expression on left hand side of HideConsole
[/spoiler]

The builds from the 20th and 21st give all the messages mentioned above.

What I find weird though, is that these errors are being flagged up for gzdoom.pk3, not the files I'm loading.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: Startup Problems with Paranoiac

Post by Graf Zahl »

You must have messed up something. Are you sure you have all the correct files in there? These messages mean that 'struct Console' appears to be missing in base.txt
User avatar
Enjay
Developer
Developer
Posts: 4720
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Startup Problems with Paranoiac

Post by Enjay »

As far as I can tell, everything is as it should be.

I've just downloaded a fresh copy of the 21st build and the 17th build. I extracted each into their own directories (the 21st into testme and the 17th into testme17). I put a doom2.wad in each, put a copy of paranoid.pk3 and paranoiac.pk3 in each and ran them from the command line. The one from the 17th works, the one from the 21st doesn't.

If I just have paranoid.pk3 on the command line, the 21st build works. When I add paranoiac.pk3, it doesn't. The 17th build works with either.
Best to watch full screen.

The paranoic.pk3 file in the video above is actually paranoic_2016-12-06.pk3 renamed to make it easier to type.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: Startup Problems with Paranoiac

Post by Graf Zahl »

My guess is that the mod defines a class named 'Console' somewhere which shadows the global struct that holds the missing functions. I just wish the type system wasn't this royally fucked up so that namespaces could easily be done. But they were implemented in a way that makes them completely and utterly useless because there's no facilities to search for a class name across namespaces.

That's the payback for developing the entire thing without doing any practical tests. It may sound harsh but whatever Randi was smoking here was not good. The entire system was buiilt on theoretical assumptions that never got tested in practice and the type table resulted in a monster that's mostly unusable if a name clash occurs. It's the same reason that so far made it impossible to do enums properly. If I added enum types all those implicit conversions to ints would go nuclear because the way they are done the types are incompatible on a basic level.
Last edited by Graf Zahl on Sun Jan 22, 2017 14:36, edited 1 time in total.
User avatar
Enjay
Developer
Developer
Posts: 4720
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Startup Problems with Paranoiac

Post by Enjay »

Bingo! That's exactly what it is.

The add-on mod has a number of computer console actors and the first one is called "Console". Renaming it allows the game to start without errors. The mod is unreleased so that's an easy fix but is there a chance that there might be other mods out there already with an actor called "Console"?
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: Startup Problems with Paranoiac

Post by Graf Zahl »

I'll have to fix the type system, that's for sure. Which has suddenly become the #1 priority, pushing the statusbar far into the background.
I already knew that the system was irreparably brokenly designed put pushed it off because it's one huge clusterfuck to clean out and redesign and will definitely take its time. :?
Blue Shadow
Global Moderator
Global Moderator
Posts: 308
Joined: Sun Aug 29, 2010 6:09

Re: Startup Problems with Paranoiac

Post by Blue Shadow »

I know this doesn't solve the problem, but modders should put a bit of effort into naming their actors as to avoid situations like this; by using a prefix or something.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: Startup Problems with Paranoiac

Post by Graf Zahl »

The thing is, the Console type was a very recent addition. The clash occurs because that type system may have provisions for namespacing but none for looking up a type name in a namespace-aware fashion. It also has some weird properties that types of the same name but different type can both coexist - of course again with no means to get all reported by looking up a name. The entire thing is finally and totally fucked up by a hashing algorithm out of a nightmare that very obviously had been developed with nice theories in mind but no practical testing, as it hashes not only by name but also by type AND namespace, meaning, that if you want to get all info about a type name you can forget about it and just enumerate all the types and hope for the best. I skipped that part because it was clear from the start that this part needed to be redone. Obviously, to work reliably, all types of the same name need to hash identically or you are in for some major trouble if some duplicates occur and you cannot prioritize because both are in different hash chains and you cannot decide which one should win.
Interestingly, the texture manager which has to deal with similar issues got it right: Hashing is done by name and the type checks only used to filter out the correct texture.

Sorry to say this but Randi blew this. But I guess, failures like this one are inevitable if no code is ever written to make real use of the system. DECORATE never cut it because it wasn't capable of really using the types except for checking what class a pointer represents.
User avatar
Rex Claussen
Developer
Developer
Posts: 2597
Joined: Tue Jul 11, 2006 18:36
Contact:

Re: Startup Problems with Paranoiac

Post by Rex Claussen »

Changing the actor's name was the easiest solution. Thanks for working out the source of the problem.
Locked

Return to “Technical Support”