ZDCode [2.13.0] - The high-level DECORATE wrapper

Any utility that assists in the creation of mods, assets, etc, go here. For example: Ultimate Doom Builder, Slade, WadSmoosh, Oblige, etc.
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.
User avatar
Posts: 372
Joined: Wed Oct 09, 2019 3:39 am
Graphics Processor: nVidia with Vulkan support
Location: The Shores of Hell

Re: ZDCode II - The pretty language that compiles to DECORAT

Post by CBM »

ah ok.
is it still being updated? whats the latest on zcode?
User avatar
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil

Re: ZDCode II - The pretty language that compiles to DECORAT

Post by Gustavo6046 »

I think there are some new features planned for the near future? Then again maybe not. I am somewhat satisfied with the current status quo of ZDCode. Apart from mixins I'm not entirely sure what else to add yet.
User avatar
Posts: 136
Joined: Sat May 13, 2017 3:11 pm
Location: Brazil

Re: ZDCode [2.13.0] - The high-level DECORATE wrapper

Post by Gustavo6046 »

The new Zake build system and project configuration format, as well as the many new features ZDCode has received over time, mean that ZDCode is now even closer than ever to being a proper release.

Here's an example of a Zake file. For more info, please see the Zake template project where this Zake.ini example comes from.

Code: Select all

# General project configuration.

    # Your project's name
    Name = my-project

    # Your project's version
    Version = 0.1.0  

    # The build targets of your project. Debug and Release are fine
    Targets = dbg rel

    # The partitions of your project. Each build target will build
    # one of each partition below.
    # Partitions are helpful, because they allow distributing changes
    # separately; changes in the code will not require updating a
    # possibly quite large list of sprites, sounds, and other whathaveya,
    # from the net.

    #Partitions = asset code

# Partition configuration.

    # What kind of files should be in the Code partition.
    # "DECORATE" includes the DECORATE generated from
    # ZDCode lumps.
    # Do note that more "matchers" can be defined for
    # other partitions (Matchers.my_targert)
    Matchers.Code = *.o DECORATE DECORATE*

    # What files should be excluded from every partition.
    # Use the dot syntax (akin to Matchers.Code above)
    # to specify a partition.
    Excluders = .gitignore

    # Excludes patterns only for the Asset partition.
    # Note that this is not restricted to the debug build
    # (in a Partition.dbg section), as there is already an
    # Injects entry for it.
    Excluders.Asset = DEBUG

# Important project file locations.

    # The path of the output Asset partition package.
    Output.Asset = pkg/${name}-${version}-${target}-asset.pk3

    # Same as above, but for the Code partition.
    Output.Code = pkg/${name}-${version}-${target}-code.pk3

    # Where to walk for inputs to be included.
    # More inputs can be added separated by spaces.
    # Also see Matchers and Excluders in [Partition] above.
    Inputs = content

# Sections of configuration can be defined for specific
# targets. For instance below, Paths.dbg.

    # Inputs to be inserted in specific locations.
    # In this case, it places the "contents/DEBUG"
    # file tree within the root of the package.
    # Other use cases include adding ACS objects
    # in "bin/${target}/" into "acs/", to differentiate
    # between debug and release ACS modules.
    # Note that injected inputs do not need to be
    # listed by an Inputs entry.
    Injects = "content/DEBUG":"."

# Preprocessor definitions, used in ZDCode.

    TARGET = ${target}
    VERSION = ${version}

# Preprocessor definitions. In this case, for the debug build.

    # No need to specify a value for the DEBUG definition.
    # Empty definitions are allowed, and "#ifdef" will merely
    # check for a definition's existence, even if it is, in
    # fact, empty.
    DEBUG =

Return to “Creation, Conversion, and Editing”