Linedef type 242 was added by team TNT in the BOOM source port as part of their (arguably) biggest change: the property-transfer effect. This lets you draw fake floors and ceilings in a sector. It also lets you alter the COLORMAP used in that sector. The COLORMAP for the main area of the effected sector is decided by the main texture of the linedef's first sidedef.

The trouble here is if the linedef loses it's type-value (over-zealous pre-boom editors may delete unknown types, for example), then the main texture value for that linedef's first sidedef is no longer valid and the map won't load in prboom (and I expect, other ports).

Enter Fredrik's python doom library, omgifol. This library lets me quickly[^quickly] and easily narrow down the troublesome linedefs in the map and reset the texture:

from omg import *
mywad = WAD('e1m1.wad')
maped = MapEditor(mywad.maps['E1M1'])
count = 0

for l in maped.linedefs:
    if maped.sidedefs[l.front].tx_mid == 'MFADEMAP' \
    and l.action != 242:
        maped.sidedefs[l.front].tx_mid = 'STARTAN1'
        count += 1 

print 'changed %d textures from MFADEMAP' % count
mywad.maps['E1M1'] = maped.to_lumps()
mywad.to_file('out.wad')


Comments