DE 2.0 & jHRP - Flag not defined errors

Greetings all - I am working on getting jHRP working with the new DE 2.0.
Several of the errors are "Flag 'xxx_xxxxx' is not defined (or is used out of context)"
I am new to creating resource packs for DE and trying to learn as I go.

The flags are: gnf_dietouch, ptf_srcdir, and ptf_srcvel
I am guessing that DE is expecting these to be defined in a .ded file (no files in the resource pack contain those flag name strings).
I've been reading Doomsday.out but it doesn't indicate which .ded file it's reading when it finds those errors.

Am I on the right track?
Can anyone offer any advice or info about those flags?
Any help would be greatly appreciated!

Comments

  • Those flags do exist (in flags.ded of net.dengine.base.pack). The problem seems to be that they are used in the wrong place.
    • "dietouch" is a Generator Stage flag, meaning it has to be used in the Flags of a Stage block inside a Generator block.
    • "srcdir" and "srcvel" are Generator flags. They are used in the Flags of a Generator block.
    Here's an excerpt of a Generator definition:
    Generator {
      State = "IMP_XDIE1"
      Flags = static | blendrsub | srcdir | srcvel | modelonly    # <-- Generator Flags
      Submodel = 0
      # (...omitted...)
      Stage {
        Flags = stagetouch    # <-- Generator Stage Flags
    
  • Ok I understand (so far)... but that file is part of the DE distribution, right? Should I be touching the contents?
  • You'll only need to fix the Generator and Generator > Stage definitions in the jHRP *.ded files, so that they don't try to use the inappropriate flags.
  • skyjake wrote:
    You'll only need to fix the Generator and Generator > Stage definitions in the jHRP *.ded files, so that they don't try to use the inappropriate flags.

    I searched all .ded files in jHRP for those 3 flag names and found no files (thus my confusion initially! ;) ). Sorry if this is just me missing something or being a newb!
  • The flags can be written without the "gnf_" and "ptf_" prefixes using this kind of syntax:
    Flags = srcvel
    
    The parser reads this as "gnf_srcvel" because all flags of a Generator have the "gnf_" prefix.

    The older, equivalent syntax was:
    Flags = "gnf_srcvel";
    
  • I find ptf_dietouch instead of gnf_dietouch (in Generator->Stage->Flags).
    I also find gnf_srcdir instead of ptf_srcdir.
    Are those just other flag names or could they be errors?
  • edited 2015 Dec 10
    Can you clarify for me how to use the verbosity command line options? I'm trying to determine which .ded file is causing each error and hoping that this will help me determine that. In another post you said you used "-vvv", and the wiki lists "-v -v" as the syntax. I've tried both versions and I get an error that states "The ordinal 3873 could not be located in the dynamic link library LIBEAY32.dll". This is after DE loads but before loading any game.

    Am I doing something wrong?

    EDIT: It seems that despite the error verbosity level was set. My question now is should that setting be sticky? Running DE from the start menu (with no -vvv) still seems to produce the extra verbosity in the UI. Should that be happening?

    EDIT 2: Just FYI, it seems the verbosity level is a bit too sticky. If I run DE from a cmd line with -vvv, it remains effective even when I run it from the Start Menu (with no -vvv). A little weird in the UI watching all those messages! :D
  • edited 2015 Dec 10
    skyjake wrote:
    The flags can be written without the "gnf_" and "ptf_" prefixes using this kind of syntax:
    Flags = srcvel
    
    The parser reads this as "gnf_srcvel" because all flags of a Generator have the "gnf_" prefix.

    The older, equivalent syntax was:
    Flags = "gnf_srcvel";
    

    Ok just to confirm I am understanding you clearly... any flags that are in the Generator->Stage->Flags section can be written "dietouch" without the "gnf_" prefix - correct?

    EDIT: When I added gnf_ I got errors that listed gnf_gnf_dietouch not found, and ptf_gnf_dietouch not found. So I think I'm not understanding this correctly.
  • I found that despite the error verbosity seemed to work! And Doomsday.out had some interesting information!
    For testing purposes I'm just looking at 1 flag and 1 .ded file to see if I can eliminate it.
    Here is a snip from the .out file:
    Def_Read > Def_ReadProcessDED > FS1::openFile:
        Trying "(basedir)\defs\jHeretic\auto\Golem.ded"...
    ^ > FileHandle::fromLump > Zip::readLump: "(basedir)\data\jheretic\auto\jhrp2.zip:
                                              (basedir)\defs\jHeretic\auto\Golem.ded" (5146
                                              bytes, compressed) [0 +5146]
    ^ : Cache miss on #967
    Def_Read > Def_ReadProcessDED > Defs::evalFlags:
        Flag 'dietouch' is not defined (or used out of context)
    ^ : Flag 'dietouch' is not defined (or used out of context)
    ^ : Flag 'dietouch' is not defined (or used out of context)
    

    And indeed in the file Golem.ded there are 3 references to the flag.
    Here is the code:
    # Mummy leader attack fire.
    Generator {
      State = "MUMMYL_ATK2";
      Flags = "gnf_blend gnf_modelonly";
      Particles = 100;
      Speed = 4;
      Speed rnd = .5;
      Center { 0 0 10 };
      Spawn radius = 12;
      Spawn age = 20;
      Max age = 80;
      Spawn rate = 7;
      Vector { 0 0 1 };
      Vector rnd = 0.9;
    
      Stage {
        Type = "pt_point"; Flags = "ptf_bright dietouch";
        Radius = 0;
        Tics = 4; Rnd = .4;
        Color { 1 1 1 1 };
        Resistance = 0.1; Gravity = -0.3;
      };
      Stage {
        Type = "pt_point"; Flags = "ptf_bright dietouch";
        Radius = 12;
        Tics = 18; Rnd = .5;
        Color { 1 .95 .8 .8 };
        Resistance = 0.1; Gravity = -0.3;
      };
      Stage {
        Type = "pt_point"; Flags = "ptf_bright dietouch";
        Radius = 9;
        Tics = 10; Rnd = .6;
        Color { 1 .7 .5 .4 };
        Resistance = 0.1; Gravity = -0.3;
      };
      Stage {
        Type = "pt_point";
        Radius = 6;
      };
    }
    

    Isn't that correct?

    EDIT: I did try both dietouch and gnf_dietouch and saw the same error in Doomsday.out.
  • Type = "pt_point"; Flags = "ptf_bright dietouch";
    That is not correct. The syntax is either:

    Flags = bright | dietouch

    OR (the older variant):

    Flags = "ptf_bright ptf_dietouch";
    just to confirm I am understanding you clearly... any flags that are in the Generator->Stage->Flags section can be written "dietouch" without the "gnf_" prefix - correct?
    No, Generator > Stage > Flags uses the "ptf_" prefix. It's the Generator > Flags that uses "gnf_".
  • Ah ok I understand now - very different syntax indeed.
    I'm still getting a gnf_dietouch error in Wand-ammo.ded with the following code - but it looks ok to me - what am I missing?
    Generator {
    	Mobj = "AMGWNDWIMPY"		Alt Mobj = "AMGWNDHEFTY"
    	Flags = static | blendadd | spawn | modelonly | dietouch
    
  • I managed to get rid of the errors but I'm not sure what I've done is correct.

    For the gnf_dietouch error, I removed the flag as I hadn't seen it anywhere else in the Generator block - it was always within a Stage block.
    And for the srcvel and srcdir flags, I also removed them from the Stage block because again, I only see them in the Generator block.

    I'm reading the Wiki on DED, but I'm guessing that those flags just aren't supposed to be used in that context. Is that correct?

    Everything seems to run ok, as far as I can tell right now.
Sign In or Register to comment.