WadSmoosh - merge all official id releases into one PK3 IWAD
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.
Got a cool project idea but nothing else? Put it in the project ideas thread instead!
Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.
Please read the full rules for more details.
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.
Got a cool project idea but nothing else? Put it in the project ideas thread instead!
Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.
Please read the full rules for more details.
Re: WadSmoosh - merge all official id releases into one PK3
You know you can load GZDoom in software mode, right? Just add +vid_renderer 0 at the command line, and you won't need OpenGL.
- MrRumbleRoses
- Posts: 331
- Joined: Thu Feb 25, 2016 2:01 pm
Re: WadSmoosh - merge all official id releases into one PK3
yes i know that. i also know that they have the ability to choose in the game menu thing. but what i said still standsGutawer wrote:You know you can load GZDoom in software mode, right? Just add +vid_renderer 0 at the command line, and you won't need OpenGL.
Re: WadSmoosh - merge all official id releases into one PK3
Regarding the AddOptionMenu crash in Zandronum, I've filed a bug with that project to at least ignore the line in MENUDEF instead of crashing on it: https://zandronum.com/tracker/view.php?id=3205 In the meantime until that's fixed on their end, like I said earlier Zandronum users can delete the MENUDEF.txt from your doom_complete.pk3 IWAD and it will run with no trouble.
- drfrag
- Vintage GZDoom Developer
- Posts: 3141
- Joined: Fri Apr 23, 2004 3:51 am
- Location: Spain
- Contact:
Re: WadSmoosh - merge all official id releases into one PK3
Adding AddOptionMenu was pretty easy, i did it recently for ZDoom32. I haven't tried WadSmoosh tough. You could point them to my repo, that could speed things up.
https://github.com/drfrag666/gzdoom/commits/zdoom32
https://github.com/drfrag666/gzdoom/commits/zdoom32
Re: WadSmoosh - merge all official id releases into one PK3
Good morning,
i plan to add the "tech gone bad" level as a secret level which could be reached by using a secret exit in e1m7. Unfortunately I don't know which linedef_id I should use to add the switch. Could anyone give me a short advise/hint which id i should use for this? -> add_secret_exit('E1M7', ???)
Thanks a lot and regards,
Purity
i plan to add the "tech gone bad" level as a secret level which could be reached by using a secret exit in e1m7. Unfortunately I don't know which linedef_id I should use to add the switch. Could anyone give me a short advise/hint which id i should use for this? -> add_secret_exit('E1M7', ???)
Thanks a lot and regards,
Purity
Re: WadSmoosh - merge all official id releases into one PK3
You'll want to read about [wiki]MAPINFO[/wiki]. To add a secret exit to E1M7, you'll need to edit E1M7's definition. But that's just for the game logic part -- you'll also need to add a secret exit to the E1M7 map itself, and for that you'll need to use a map editor...
Re: WadSmoosh - merge all official id releases into one PK3
hm, ok I see. I've already edited the doom1_levels.txt file in the res\mapinfo folder of wadsoosh. I thought it would be as easy as adding the xbox levels to the doom1 and doom2 episodes. How did it work there without editing the levels for them?
Re: WadSmoosh - merge all official id releases into one PK3
The levels with the added secret exits were actually edited by the Xbox developers.
Re: WadSmoosh - merge all official id releases into one PK3
perhaps I got it completely wrong but as far as I understood it works slightly different. If I read the python code right, then wadsmoosh patchs the pc doom.wad file by adding a secret exit to e1m1 so that the xbox level sewers starts. So the e1m1 was not patched by the xbox team (so there should be no secret exit in the pc doom e1m1) as it is part of the pc doom - only the xbox level is added. I thought it might be possible to patch another pc doom level (in this case e1m7) to add also there a secret exit so that the alternate e1m8 (tech gone bad) will be started.
Re: WadSmoosh - merge all official id releases into one PK3
Well then, yes I suppose you could hardcode a patch similarly. You'd still need to open the map in a map editor to find a suitable place and note the linedef number.
Re: WadSmoosh - merge all official id releases into one PK3
ok, great. So now we are back to my initial question: has anyone a suggestion, where to place this secret exit - perhaps in one of the secret areas of the map?
Spoiler:
Re: WadSmoosh - merge all official id releases into one PK3
If you're going for the same level of obscurity of the XBox Doom secret exits, it hardly matters where you put it; switches without a switch texture are never going to be found by someone who doesn't already know they're there.Purity666 wrote:ok, great. So now we are back to my initial question: has anyone a suggestion, where to place this secret exit - perhaps in one of the secret areas of the map?Spoiler:
Line #510, right behind the secret automap powerup, is a decent switch-sized secret wall. The large outdoor area in the southeast is a secret and has plenty of space for a switch, but none of the lines (eg #921) are easy switch candidates.
Re: WadSmoosh - merge all official id releases into one PK3
Success!
I've added a new funtion to the wadsmoosh.py script to add the exit and level to the wad. While compiling an executable using pyInstaller, I found out that omgifol wasn't compatible anymore to python 3.6 - the MD5 class is not supported anymore hence I had to update omgifol as well.
So the procedure for adding the level and switch looks like this for now:
...and while I was adding the texture for E1M7, I did the same for the Xbox maps:
I'm quite happy with the result, especially because I used python, pyInstaller and omgifol for the first time...
Greetings
Purity
I've added a new funtion to the wadsmoosh.py script to add the exit and level to the wad. While compiling an executable using pyInstaller, I found out that omgifol wasn't compatible anymore to python 3.6 - the MD5 class is not supported anymore hence I had to update omgifol as well.
Right, that makes no sense. So I played around a bit with omgifol (as I was curious in it anyway) and extended your add_secret_exit function to also add a switch texture (which should fit to the base texture used before adding the switch):If you're going for the same level of obscurity of the XBox Doom secret exits, it hardly matters where you put it; switches without a switch texture are never going to be found by someone who doesn't already know they're there.
Code: Select all
def add_secret_exit(map_name, line_id, side_id='', side_texture=''):
# sets given line # in given map as a secret exit switch
wad = omg.WAD()
wad_filename = DEST_DIR + 'maps/%s.wad' % map_name
wad.from_file(wad_filename)
ed = omg.MapEditor(wad.maps[map_name])
ed.linedefs[line_id].__dict__['action'] = 51
if side_id != '':
ed.sidedefs[side_id].__dict__['tx_mid'] = side_texture
wad.maps[map_name] = ed.to_lumps()
wad.to_file(wad_filename)
Code: Select all
def add_tech_level():
logg('Adding tech gone bad bonus level...')
logg(' Adding secret exit and switch SW1STARG to E1M7')
add_secret_exit('E1M7', 721, 908, 'SW1STARG') #STARG3
logg(' Adding e1m8b.wad as E1M11')
add_secret_level('e1m8b', 'E1M8', 'E1M11')
Code: Select all
# only supported version of thihs @ https://www.doomworld.com/idgames/levels/doom/Ports/d-f/e1m8b
if get_wad_filename('e1m8b') and should_extract:
add_tech_level()
Code: Select all
Adding Xbox bonus levels...
Adding secret exit and switch SW1STARG to E1M1
Adding SEWERS.WAD as E1M10
Adding secret exit and switch SW1STONE to MAP02
Adding BETRAY.WAD as MAP33
Adding tech gone bad bonus level...
Adding secret exit and switch SW1STARG to E1M7
Adding e1m8b.wad as E1M11
Creating doom_complete.pk3...
Greetings
Purity
Re: WadSmoosh - merge all official id releases into one PK3
Nice! Glad it was a good learning experience.
Re: WadSmoosh - merge all official id releases into one PK3
Hey guys,
while updating Skymarshalls script to JPLs latest codebase, no texture replacement within the maps itself but replacing them during the loading of the map via ACS scripts, I've got some strange problems I don't really understand. Here is an example which occurs on different maps of different wads:
I've merged TNT:Revilution and this line is part of the patches_tntr file which is used by wadsmoosh to extract and rename the patch lumps:
In the corresponding texture.tntr file, which is placed in the root of the pk3, I've added the following texture configuration entry:
I've also added an ACS file for this wad called ws_scripts_tntr.acs. It's linked in ws_fixes.acs via #include. This file contains the "replacement array" for the textures:
Replacement procedure in ws_fixes.acs:
So if I got it all right, then the texture COMPRED2 should be renamed to TRCPRED2 when a map is loaded.
Unfortuntately this does not work for me. The array above contains 187 replacement entries but for some of them, the replace-process via ACS seems not to work, when a map is loaded.
This is the output when a map is loaded:
The map itself looks fine ingame - the (replaced) texture is visible at the walls where it is used...
Thanks in advance and regards,
Purity
while updating Skymarshalls script to JPLs latest codebase, no texture replacement within the maps itself but replacing them during the loading of the map via ACS scripts, I've got some strange problems I don't really understand. Here is an example which occurs on different maps of different wads:
I've merged TNT:Revilution and this line is part of the patches_tntr file which is used by wadsmoosh to extract and rename the patch lumps:
Code: Select all
.
.
.
//Renamed from COMPRED2 to TRCPRED2 to avoid conflict with another WAD
COMPRED2 : TRCPRED2
.
.
.
Code: Select all
.
.
.
//Renamed from COMPRED2 to TRCPRED2 to avoid conflict with another WAD
Texture "TRCPRED2", 128, 128
{
Patch "TRCPRED2", 0, 0
}
.
.
.
Code: Select all
#define TR_TEX_REPLACEMENTS 187
int TR_TEX[TR_TEX_REPLACEMENTS][2] = {
.
.
.
{ "COMPRED2", "TRCPRED2" },
.
.
.
}
Code: Select all
.
.
.
else if ( StrIcmp(s, "tr") == 0 )
{
for (i = 0; i < TR_TEX_REPLACEMENTS; i++)
{
ReplaceTextures(TR_TEX[i][0], TR_TEX[i][1]);
log(s:"replaced ", s:TR_TEX[i][0], s:" by ", s:TR_TEX[i][1]);
}
}
.
.
.
Unfortuntately this does not work for me. The array above contains 187 replacement entries but for some of them, the replace-process via ACS seems not to work, when a map is loaded.
This is the output when a map is loaded:
As you can see, most textures get renamed and replaced fine, but some replacements seem to take place too late. Does anyone know why this happens or how to avoid these problems?tr_map12 - Transduction
Unknown middle texture 'COMPRED2' on first side of linedef 1681
Unknown middle texture 'COMPRED2' on first side of linedef 1993
Unknown middle texture 'COMPRED2' on first side of linedef 2041
Unknown middle texture 'COMPRED2' on first side of linedef 2061
Unknown middle texture 'COMPRED2' on first side of linedef 2090
Unknown middle texture 'COMPRED2' on first side of linedef 2096
Unknown middle texture 'COMPRED2' on first side of linedef 2110
Unknown middle texture 'COMPRED2' on first side of linedef 2115
Unknown bottom texture 'COMPRED2' on second side of linedef 2128
Unknown middle texture 'COMPRED2' on first side of linedef 2241
Unknown top texture 'COMPRED2' on first side of linedef 2439
Unknown bottom texture 'COMPRED2' on first side of linedef 2439
Unknown middle texture 'COMPRED2' on first side of linedef 2451
Unknown middle texture 'COMPRED2' on first side of linedef 2452
Unknown bottom texture 'COMPRED2' on second side of linedef 2509
Unknown middle texture 'COMPRED2' on first side of linedef 3251
Unknown top texture 'COMPRED2' on first side of linedef 3251
Unknown bottom texture 'COMPRED2' on first side of linedef 3251
Unknown middle texture 'COMPRED2' on first side of linedef 3653
Unknown middle texture 'COMPRED2' on first side of linedef 3658
Missing texture 'COMPRED2' is used 170 more times
replaced AASHITTY by TRAASHTY
replaced BFALL1 by TRBFALL1
replaced BFALL2 by TRBFALL2
replaced BFALL3 by TRBFALL3
replaced BFALL4 by TRBFALL4
replaced BIGDOOR1 by TRBIGDR1
replaced BIGDOOR7 by TRBIGDR7
replaced BIGMURAL by TRBIGMRL
replaced BIGWALL by TRBIGWL
replaced BLODGR1 by TRBLDGR1
replaced BLODGR4 by TRBLDGR4
Unknown texture: "BLUEWALL"
Unknown texture: "BLUEWALL"
replaced BLUEWALL by TRBLUEWL
replaced BRNPOIS by TRBRNPOS
replaced BRNSMAL1 by TRBRSML1
replaced BRNSMAL2 by TRBRSML2
replaced BRNSMALL by TRBRSMLL
replaced BRNSMALR by TRBRSMLR
replaced BROWN96 by TRBRWN96
replaced BROWN96T by TRBRWN96
replaced CAVERN6 by TRCAVRN6
replaced CAVERN7 by TRCAVRN7
replaced COMPBLUE by TRCMPBLU
Unknown texture: "COMPGRN2"
Unknown texture: "COMPGRN2"
replaced COMPGRN2 by TRCPGRN2
Unknown texture: "COMPRED2" <---
Unknown texture: "COMPRED2" <---
replaced COMPRED2 by TRCPRED2 <--- replacement takes place after the errors occure?!
replaced COMPSTA1 by TRCMPST1
replaced COMPSTA2 by TRCMPST2
.
.
.
The map itself looks fine ingame - the (replaced) texture is visible at the walls where it is used...
Thanks in advance and regards,
Purity