ZDoom / Raze

Build engine port backed by GZDoom tech. Currently supports Duke Nukem 3D, Blood, Shadow Warrior, Redneck Rampage and Powerslave/Exhumed.
691 stars 59 forks source link

[BUG] [Duke 3D] DukeHard map pack doesn't work anymore #123

Closed AJMJ2012 closed 4 years ago

AJMJ2012 commented 4 years ago

The DukeHard map pack doesn't work anymore since the code base for Duke3D moved away from EDuke32.

Compiling: 'eduke.con'.
  * WARNING.(GAME.CON, line 3330) Expected an identifier, got a numeric literal 1.
  * ERROR!(bin/dukehard2.con, line 63) Keyword expected, got 'mearray'.
  * ERROR!(bin/dukehard2.con, line 63) Keyword expected, got 'p'.
  * ERROR!(bin/dukehard2.con, line 63) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 75) Symbol 'xdim' is not a Game Definition.
  * ERROR!(bin/dukehard2.con, line 77) Symbol 'ydim' is not a Game Definition.
  * ERROR!(bin/dukehard2.con, line 92) Parameter 'EVENT_INIT' is undefined.
  * ERROR!(bin/dukehard2.con, line 93) Keyword expected, got 'adgamevar'.
  * ERROR!(bin/dukehard2.con, line 93) Keyword expected, got 'ervalue'.
  * ERROR!(bin/dukehard2.con, line 98) Parameter 'EVENT_NEWGAME' is undefined.
  * ERROR!(bin/dukehard2.con, line 98) Invalid Event ID.
  * ERROR!(bin/dukehard2.con, line 112) Keyword expected, got 'sizearray'.
  * ERROR!(bin/dukehard2.con, line 112) Keyword expected, got 'p'.
  * ERROR!(bin/dukehard2.con, line 112) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 112) Keyword expected, got 'sizearray'.
  * ERROR!(bin/dukehard2.con, line 112) Keyword expected, got 'p'.
  * ERROR!(bin/dukehard2.con, line 112) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 117) Keyword expected, got 'tarraysize'.
  * ERROR!(bin/dukehard2.con, line 117) Keyword expected, got 'p'.
  * ERROR!(bin/dukehard2.con, line 117) Keyword expected, got 'lumesize'.
  * ERROR!(bin/dukehard2.con, line 122) Keyword expected, got 'ilevarvarn'.
  * ERROR!(bin/dukehard2.con, line 122) Keyword expected, got 'r1'.
  * ERROR!(bin/dukehard2.con, line 122) Keyword expected, got 'lumesize'.
  * ERROR!(bin/dukehard2.con, line 129) Keyword expected, got 'ilevarn'.
  * ERROR!(bin/dukehard2.con, line 129) Keyword expected, got 'lueokay'.
  * ERROR!(bin/dukehard2.con, line 129) Keyword expected, got 'lueokay'.
  * ERROR!(bin/dukehard2.con, line 135) Keyword expected, got 'ilevarvarn'.
  * ERROR!(bin/dukehard2.con, line 135) Keyword expected, got 'r2'.
  * ERROR!(bin/dukehard2.con, line 135) Keyword expected, got 'r1'.
  * ERROR!(bin/dukehard2.con, line 137) Symbol 'map[for2' is not a Game Definition.
  * ERROR!(bin/dukehard2.con, line 137) Keyword expected, got 'ndom'.
  * ERROR!(bin/dukehard2.con, line 150) Keyword expected, got 'tarray'.
  * ERROR!(bin/dukehard2.con, line 150) Keyword expected, got 'p'.
  * ERROR!(bin/dukehard2.con, line 150) Keyword expected, got 'r1'.
  * ERROR!(bin/dukehard2.con, line 150) Keyword expected, got 'ndom'.
  * ERROR!(bin/dukehard2.con, line 158) Symbol 'map[0' is not a Game Definition.
  * ERROR!(bin/dukehard2.con, line 165) Symbol '0' is not a Game Definition.
  * ERROR!(bin/dukehard2.con, line 170) Parameter 'EVENT_ENTERLEVEL' is undefined.
  * ERROR!(bin/dukehard2.con, line 170) Invalid Event ID.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got 'tatesprite'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got '0'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got '0'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got '536'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got '536'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got '04'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got 'imminus'.
  * ERROR!(bin/dukehard2.con, line 179) Keyword expected, got 'imminus'.
  * ERROR!(bin/dukehard2.con, line 181) Keyword expected, got 'definequote'.
  * ERROR!(bin/dukehard2.con, line 181) Keyword expected, got '7'.
  * ERROR!(bin/dukehard2.con, line 181) Keyword expected, got 'ngratulations'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got 'reentext'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got 'ARTALPHANUM'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got '0'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got '536'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got '536'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got '536'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got '7'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got '7'.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got ''.
  * ERROR!(bin/dukehard2.con, line 182) Keyword expected, got ''.
  * ERROR! Too many errors.

Execution could not continue.

Failed to compile eduke.con

mjr4077au suggested on Discord that I make a report on this and the developers would look into what features the scripts need.

The mod can be downloaded from here: https://www.moddb.com/mods/duke-hard/downloads/duke-hard-episode It's one of the more enjoyable map packs for me.

- Dark-Assassin

coelckers commented 4 years ago

This mod contains some EDuke32 extensions requiring quite broad support of its features.

It doesn't look like it defines anything gameplay related through its scripts - it appearars to be just a level randomizer and some menu extensions. Unless it uses actual mapping features like True ROR (somewhat unlikely considering its age) it is hopefully enough to just disable its scripts.

dukehard1.con is just the level definitions and should be fine, but dukehard2.con is the level randomizer and dukehard3.con the menu extensions. Since dukehard.dat is just a renamed zip file, you can open it, look for "eduke.con" and try to remove the includes for these two files and then save it back.

FYI, the command it chokes upon is "gamearray", but later there'd be others. I'll have to check, though,how the parser manages to go off the rails and printing incorrect keywords once it fails.

AJMJ2012 commented 4 years ago

Thanks. I'll see how it goes without dukehard2.con.

coelckers commented 4 years ago

I can confirm that the game starts up properly after commenting out dukehard2.con and dukehard3.con includes. What I cannot say is whether there's anything else to look out for. It is not really easy to check the EDuke source for added features, Duke's code is such an extreme Spaghetti style and EDuke32 virtually renamed everything that it's very hard to find where things got added outside the scripting engine.