This is a monster posting but I have tried to be as detailed as I can because of the technical nature of the problem.
If anyone has had experience with editing their own XLAT translation files, please help to confirm if I am on the right track for solving this problem.
Background to problem
Whilst modding Oblige level maker, I have been able to get the generator to write the linedef flag:
Code: Select all
ML_BLOCKS_ALL = 32768Code: Select all
a = {
f_rel="floor_h", f_h=8, f_tex="grates_f",
c_rel="floor_h", c_h=120, c_tex="grates_c",
[4] = { kind = "kind", tag="tag", rail="rail_w",
l_peg="bottom", impassible=true, blockseverything=true,
},
},Code: Select all
if blockseverything then flags = flags + ML_BLOCKS_ALL end
The problem with XLAT
So next to allow this to be recognised using GZDoom I have found I needed to add this linedef flag to the Doom.txt found within the gzdoom\xlat folder.
Code: Select all
lineflag 0 = ML_BLOCKING;
lineflag 1 = ML_BLOCKMONSTERS;
lineflag 2 = ML_TWOSIDED;
lineflag 3 = ML_DONTPEGTOP;
lineflag 4 = ML_DONTPEGBOTTOM;
lineflag 5 = ML_SECRET;
lineflag 6 = ML_SOUNDBLOCK;
lineflag 7 = ML_DONTDRAW;
lineflag 8 = ML_MAPPED;
lineflag 9 = ML_PASSTHROUGH;
lineflag 10 = ML_3DMIDTEX;
lineflag 11 & (ML_BLOCKING|ML_BLOCKMONSTERS|ML_TWOSIDED|ML_DONTPEGTOP|ML_DONTPEGBOTTOM|ML_SECRET|ML_SOUNDBLOCK|ML_DONTDRAW|ML_MAPPED);
lineflag 15 = ML_BLOCKEVERYTHING; <---- I added this line and now GZDoom understands to allow this flag to block everythingBy looking at the linedef flags sections on this page I can see there is a problem when wanting to add:
Code: Select all
10-12 0x1400 activated when crossed by projectileI can see that I want to use 0x1400 for "activated when crossed by projectile" however when I add this to the defines.i file found in the gzdoom\xlat folder, it doesn't work as it did with ML_BLOCKEVERYTHING.
Code: Select all
enum
{
ML_BLOCKING = 0x00000001,
ML_BLOCKMONSTERS = 0x00000002,
ML_TWOSIDED = 0x00000004,
ML_DONTPEGTOP = 0x00000008,
ML_DONTPEGBOTTOM = 0x00000010,
ML_SECRET = 0x00000020,
ML_SOUNDBLOCK = 0x00000040,
ML_DONTDRAW = 0x00000080,
ML_MAPPED = 0x00000100,
SPAC_PCROSS = 0x00001400, <--- I tried added this line here so I am able to reference it in Doom.txt
// Extended flags
ML_MONSTERSCANACTIVATE = 0x00002000,
ML_BLOCK_PLAYERS = 0x00004000,
ML_BLOCKEVERYTHING = 0x00008000, <--- this line already exists, which I used to reference within Doom.txt
ML_ZONEBOUNDARY = 0x00010000,
ML_RAILING = 0x00020000,
ML_BLOCK_FLOATERS = 0x00040000,
ML_CLIP_MIDTEX = 0x00080000,
ML_WRAP_MIDTEX = 0x00100000,
ML_3DMIDTEX = 0x00200000,
ML_CHECKSWITCHRANGE = 0x00400000,
ML_FIRSTSIDEONLY = 0x00800000,
ML_BLOCKPROJECTILE = 0x01000000,
ML_BLOCKUSE = 0x02000000,
//
ML_PASSTHROUGH = -1,
ML_TRANSLUCENT = -2,
ML_TRANSPARENT = -3
}Code: Select all
lineflag 0 = ML_BLOCKING;
lineflag 1 = ML_BLOCKMONSTERS;
lineflag 2 = ML_TWOSIDED;
lineflag 3 = ML_DONTPEGTOP;
lineflag 4 = ML_DONTPEGBOTTOM;
lineflag 5 = ML_SECRET;
lineflag 6 = ML_SOUNDBLOCK;
lineflag 7 = ML_DONTDRAW;
lineflag 8 = ML_MAPPED;
lineflag 9 = ML_PASSTHROUGH;
lineflag 10 = ML_3DMIDTEX;
lineflag 11 & (ML_BLOCKING|ML_BLOCKMONSTERS|ML_TWOSIDED|ML_DONTPEGTOP|ML_DONTPEGBOTTOM|ML_SECRET|ML_SOUNDBLOCK|ML_DONTDRAW|ML_MAPPED);
lineflag 10 = SPAC_PCROSS; <--- I added this line in the hope one of them would work, but it doesn't
lineflag 11 = SPAC_PCROSS; <--- I added this line in the hope one of them would work, but it doesn't
lineflag 12 = SPAC_PCROSS; <--- I added this line in the hope one of them would work, but it doesn't
lineflag 15 = ML_BLOCKEVERYTHING;Can the correct flags be displayed in Slade/Doom Builder?
What is strange is that when I load up the generated map in Slade, it does not display ALL of the available flags in contrast to the linedef flags that there should be here.
Instead of the "activated when hit by projectile" flag being checked or the "activated when crossed by projectile" being checked, the "monsters can activate" flag is being checked but I know that these linedef flags are separate, and Slade does not show the other available flags.

Please if this issue makes sense to anyone here I would be truly appreciative if this can be explained and if there is something else that I need to do to get XLAT to understand what I need.
Many thanks!
