Jump to content

The Official DoomTools Thread


MTrop

Recommended Posts

Short descriptions of DoomTools utilities:

 

WadTex

 

A utility that imports or exports a DEUTEX-style texture file into/from a WAD file with a set of TEXTUREx/PNAMES lumps. SLADE does an excellent job of doing texture management, but if you're the kind of weirdo that likes managing stuff via text files, this is for you!

wadtex doom2.wad --export texture1.txt
wadtex d2tex.wad --import texture1.txt

 

 

WSWANTBL

 

A utility that, like SWANTBLS, imports or exports SWITCHES/ANIMATED data into/from a WAD file, creating/reading a file that is formatted like DEFSWANI.DAT from way back when. Again, for big nerds that like big text files.

wswantbl boomstuf.wad --export DEFSWANI.txt
wswantbl boomstuf.wad --import DEFSWANI.txt

 

 

WTexScan

 

A utility that scans one or more WAD files for maps and dumps the list of flats and textures that it finds. Works for DOOM, ZDOOM/HEXEN, and UDMF maps.

wtexscan maps.wad

The output may look strange, because it is best used with....

 

 

WTEXport

 

The second version of TEXtract, WTEXport is a utility that extracts a set of flats and textures from a source WAD and adds the extracted textures to a new WAD or an existing WAD, using the output piped in from WTexScan. Also uses ANIMATED/SWITCHES in order to figure out extra textures to copy over to complete full sets.

wtexscan maps.wad | wtexport texturepack.wad --base-wad doom2.wad --output maps.wad --add
wtexscan maps.wad | wtexport texturepack.wad --base-wad doom2.wad --output mapstex.wad --create

 

It has some limitations though - doesn't read ANIMDEFS yet. In that case you may be better off doing things more manually via WadTex.

 

 

WadMerge

 

A utility for making simple build scripts for compiling together projects made of several files into a single WADs, or merging WADs of different kinds together. Very flexible.

wadmerge build.txt

 

You can make snazzy build scripts that look like this!

create outwad

datemarker outwad __VER__

# Merge in maps.
mergewad outwad maps/map01.wad
mergewad outwad maps/map02.wad
mergewad outwad maps/map03.wad

# Merge in textures.
marker outwad pp_start
mergedir outwad textures/patches
marker outwad pp_end
marker outwad ff_start
mergedir outwad textures/flats
marker outwad ff_end

mergedeutexfile outwad textures/texture1.txt

# Export to file.
finish outwad build/mymod.wad
end

Go crazy!

 

 

WadScript

 

This utility is a doozy - it employs a sophisticated scripting language called RookScript (made by yours truly) with some function extensions for manipulating WAD data! It's SO FLEXIBLE! There are even functions for doing byte-by-byte reading and streaming in case you want to do something not covered in the built-in functions! WHOA!

 

Check this! Open a WAD and print its entry list:

entry main(args) {
    if (args[0] === null) {
        return error("NoWAD", "No WAD specified.");
    }
    check (err) {
        wad = wadfile(args[0]);
        each (i, e : wad->waditerate()) {
            println(i + ": " + e.name + ", " + e.size + " bytes, at offset " + e.offset);
        }
    }
    close(wad);
    if (err != null) {
        return err;
    }
}

 

Then you just run the script with:

wadscript filenameOfScript.wscript file.wad

NOTE: The arguments after the script file are passed in via that args variable, so "file.wad" is readable from args[0].

 

Or if you're using Bash, you can just slap #!/usr/bin/env wadscript into the first line and flag the script as executable! Wow! (You can even do a similar thing with WadMerge scripts)

 

Built-in function documentation for WadScript is included in the release archives, or you can type:

wadscript --function-help

 

...and send the output to a file or what-have-you. To get it in HTML format, use --function-help-html. A quick guide to RookScript is here (and included in the utilities): https://mtrop.github.io/DoomTools/rookscript-guide.html

 

You also get the regular RookScript utility without the Doom extensions for FREE!

rookscript [scriptfile]

 

 

DMXConv
 

SLADE3 does an okay job at converting sounds from WAV to Doom's DMX format, but you are like me and chuck your sounds in a project tree and want to convert all of them at once for importing later, this'll do it! Works best if you have FFmpeg on your PATH or somewhere on your computer - then you can convert practically EVERY SOUND FORMAT THAT EVER EXISTED to DMX! If not, it'll still use the existing Java SPI framework for conversion, if you want.

dmxconv sounds/*.wav -o ./converted/sounds

Typing `--help` will give you more options and explanations. Keep in mind that this is a one-way utility - it does not convert from DMX back to other formats.

 

 

DECOHack

 

Have you ever wanted to create some kind of insane mod for Vanilla Doom (and other classic Dooms) but wished that there was a better programmatic way to write weapon, ammo, sound, string, par time, and thing definitions with a DECORATE-like language? Introducing DECOHack, the thing that does exactly that!

 

DECOHack takes a file (or series of files) written in a DECORATE-ish language and turns it into a DEH/BEX file that can be loaded into your favorite source port, or patched into your favorite executable via DeHackEd! Supports all patch schemes up to DSDHACKED.

decohack code.dh --output dehacked.deh

Hate backpacks? Turn them into BFGs!

#include <doom19>
#include <friendly>

// copy BFG pickup into backpack
thing MTF_BACKPACK : thing MTF_BFG
{
    //keep ednum, though
    ednum 8
}

Make an Imp with a worse attack!

#include <doom19>
#include <friendly>

thing MTF_IMP free states
thing MTF_IMP "Worse Imp"
{
    health 200
    speed 12
    
    clear states
    States
    {
        Spawn:
            TROO AB 10 A_Look
            Loop
        See:
            TROO AABBCCDD 3 A_Chase
            Loop
        Melee:
        Missile:
            TROO EF 8 A_FaceTarget
            TROO G 6 A_BruisAttack
            Goto See
        Pain:
            TROO H 2
            TROO H 2 A_Pain
            Goto See
        Death:
            TROO I 8
            TROO J 8 A_Scream
            TROO K 6
            TROO L 6 A_Fall
            TROO M -1
            Stop
        XDeath:
            TROO N 5
            TROO O 5 A_XScream
            TROO P 5
            TROO Q 5 A_Fall
            TROO RST 5
            TROO U -1
            Stop
        Raise:
            TROO ML 8
            TROO KJI 6
            Goto See
    }
}

The sky's the limit (within reason, as it is still limited to Doom engine quirks and limitations)!

 

If you're worried about how many states you have left (in total or action-pointer allocated), you can run DECOHack with the `--budget` switch. Full help available via the `--help-full` switch. You can do a lot! It's all documented, even the worst of Doom's hardcodings!

 

 

DoomMake

Have you ever wanted to start a new project, but didn't want to organize everything, and still have it produce WADs that you can maintain in a code versioning system like Git, compile together in an automated fashion, or keep providing builds via an ultra-nerdy thing like Continuous Integration?

 

Well, in case that's you, you're in luck!

 

DoomMake is here to help you build that giant project with all sorts of bells and whistles with a single command, and produce something compiled together and playable (and with some setups, a reduced texture set)! It leverages WadScript and turns it into a do-anything-you-want build tool that isn't tied to one operating system or environment. You can even call all the rest of the tools in the DoomTools toolset!

 

You can start a new project with maps and new textures sourced from WADs:

doommake newproj --new-project maps texturewads

Or even a giant vanilla mod from scratch with all sorts of things, and make it Git-repository-ready:

doommake newproj --new-project maps assets textures decohack run git

And then when you want to build your project in it's current state, you just switch to its project directory, and...

doommake

 

It's that easy! Want to feel its power? Try cloning and building this project for starters: https://github.com/MTrop/doommake-example

 

A project quick starter is here: https://mtrop.github.io/DoomTools/doommake-quickstart.html

 

As always, chuck some issues my way if stuff doesn't work, or if you've got some feature requests. Follow the GitHub repository to be notified of updates and releases.

Edited by MTrop

Share this post


Link to post
16 minutes ago, MTrop said:

Where to get Java (in case you never played Minecraft) in descending order of recommendation

 

16 minutes ago, MTrop said:

But I hate Java!

 

Horsefeathers. You know you installed Minecraft at some point! That thing was practically the only reason anybody installed a JVM in the past decade or two!

 

Minecraft has bundled its own JVM in since early 2015 or so, nobody's really had a reason or excuse to inflict such horrors upon their computers (unless they're reliant on some other Java-based util for something or other, and sometimes even then some apps pack in their own portable JREs!) for nearly seven years now.

Share this post


Link to post
5 minutes ago, Kinsie said:

Minecraft has bundled its own JVM in since early 2015 or so, nobody's really had a reason or excuse to inflict such horrors upon their computers (unless they're reliant on some other Java-based util for something or other, and sometimes even then some apps pack in their own portable JREs!) for nearly seven years now.

I've considered it. I did that for this thing: https://tame-if.com/

 

I'm just worried that some bundles are gonna be really chunky (~45MB each, already pared back to java.desktop modules), and I'll need to maintain packages for separate OSes.

 

If you have a compatible embedded JRE, you can put that in a jre folder off of the DoomTools root if you don't want a full install, and it'll find that one. Java's ubiquitous enough at this point that installing it isn't even that great an issue, anymore.

Share this post


Link to post
  • 2 months later...

Hey, all. New release!

 

Changes
-------

- **2022-03-14** GUI uses the FlatLaf Look and Feel.
- **2022-03-06** DoomTools has a GUI now!
- **2022-03-06** Cygwin pathing fixes (thanks, @dmcmahill).


This release fixes/updates the following utilities:

DECOHack
--------

### Changed for 0.23.0

* `Added` A patch format for the Unity port, `doomunity`, which is `udoom19` but with no string limits (thanks, Xaser!). (PR #65).
* `Added` A way to dump all known action pointers to DECOHack to STDOUT via the `--dump-pointers` runtime switch.
* `Fixed` MBF21's `A_SeekTracer` parameters needed to check for FIXED angles, not UINT.
* `Fixed` Some Action Pointer parameter interpretation - if a field needs a fixed expression, integer values are coerced to fixed, and vice-versa.
* `Changed` Stricter (but safer) checking for types in parameters, such as Fixed values, and auto-detecting sounds, things, and states.
* `Changed` Better string length error messages (Issue/Enhancement #64).


DoomMake
--------

### Changed for 0.15.0

* `Added` DoomMake Agent for listening for project changes. See help for more info!
* `Added` DoomMake GUI for individual projects and creating new ones.
* `Added` A `justrun` target for new projects using the `run` template to execute the project without building it.

 

The biggest change to DECOHack: DECOHack is now smarter about converting integers to fixed-point values, or fixed-point to integers, depending on the parameter types, as well as understanding other parameter types like Things, States, and Sounds:

 

A_Spawn(Demon, 0.0)                           // Thing alias
A_Scratch(10, punch)                          // Sound name
A_RandomJump(pain2, 128)                      // State label
A_HealChase(heal, slop)                       // State label, sound name
A_WeaponSound(shotg3, 1)                      // Sound name
A_WeaponProjectile(CacodemonBall, 0, 0, 0, 0) // Thing alias

 

 

And you read that right, DoomTools has a GUI!

GUI.png.c13cf31ca7a0fd12d9de69f3106fffcf.png

 

...but so far, it's just DoomMake, but you can now start builds, open projects in Explorer or SLADE (or even VSCode), and also create new projects! You can start it up from the doomtools-gui.exe file. Eventually I'll have an installer to make things smoother, but for now, you've got a "beta" to tinker with.

 

DoomMake.png.b21e85d1fd9c89c9bea3ac059293d436.png874549902_Screenshot2022-03-27034920.png.6a3da0ff7443dcb70166165d718cef2a.png

 

So far, you can open the DoomMake New Project window by running (or making a shortcut to):

doommake-gui.exe doommake-new

Or to open the DoomMake Open Project window:

doommake-gui.exe doommake-open

Or to open a specific project folder:

doommake-gui.exe doommake-open C:\Path\To\Project

In non-Windows platforms:

doomtools --gui
doommake --new-project-gui
doommake --gui      (in working directory of project)

 

Currently, there's a small (rare) issue where the GUI may not quit completely on close, so I'm gonna be working on fixing that. But for now, enjoy the new fixes and stuff.

Edited by MTrop

Share this post


Link to post
  • 3 weeks later...

New release for DoomTools (2022-04-16).

 

This release now adds Windows Installers (including one with a minified embedded JRE), so that you can install and run without needing to tinker with your system PATH!

 

Installer Notes

 

If you choose NOT to add DoomTools to your system PATH in the installer, you can still access the tools in the command line using the DoomTools CMD shortcut that it creates in the Start Menu, which will add DoomTools to PATH for that shell session.

 

Uninstalling reverses all changes to PATH and/or Explorer Shell, if chosen during install. The JRE version will embed a minified JRE in DoomTools, should you also choose to do so. If you install a JRE/JDK separately for your system, it will not affect DoomTools's embedded JRE.

 

Changes
-------

- **2022-04-15** Changed DoomTools's update system to pull the JAR ZIP for the update.
- **2022-04-05** Updated DoomStruct to `2.14.2`. (Entry/Texture name fixes).


This release fixes/updates the following utilities:

DECOHack
--------

### Changed for 0.24.0

* `Added` The ability to read a DECOHack patch from STDIN.
* `Added` The ability to add custom action pointers. (Enhancement #72)


DoomMake
--------

### Changed for 0.16.0

* `Fixed` (GUI) GUI still checked for DoomMake on PATH in order to run. This was unnecessary. (Issue #69)
* `Added` The `TOOL::DECOHACK(...)` function was changed to support reading DECOHack source from STDIN.

 

Yup, that's right: you now have support for custom action pointers in case a port has one that may not be part of an official "generation" of patch - necessary for code pointers like A_MonsterRail and A_FireRailgun that were around in the times between MBF and ZDoom's additions, pre DECORATE.

 

From the documentation:

 

==============================================================================
===== Custom Action Pointers
==============================================================================

There may be some patches that accept bespoke actions or action functions that
are not known to DECOHack, or actions that port authors include that may not
be "standard". For those, you can specify custom pointers for use on Thing
or Weapon states:

    custom thing pointer <PatchType> A_PointerName ( <ParameterType> [ , <ParameterType> ...] )
    custom weapon pointer <PatchType> A_PointerName ( <ParameterType> [ , <ParameterType> ...] )


Where <PatchType> is:

    boom       // no parameters, allow Offset
    mbf        // two parameters max, store in Misc fields, disallow Offset if at least one parameter
    mbf21      // ten parameters max, store in Args fields, allow Offset


...which describes how many parameters the function can take and how it's
stored in the patch (misc fields, or args).

<ParameterType> is:

    bool       // 0 or 1
    byte       // -127 to 127
    ubyte      // 0 to 255
    short      // -32767 to 32767
    ushort     // 0 to 65535
    int        // -2147483648 to 2147483647
    uint       // 0 to 2147483647
    angleint   // -359 to 359
    angleuint  // 0 to 359
    anglefixed // -359.99998 to 359.99998
    fixed      // -32768.99998 to 32767.99998
    state      // 0 to 2147483647, verify valid state index, reference, or label.
    thing      // 0 to 2147483647, verify valid thing index.
    weapon     // 0 to 2147483647, verify valid weapon index.
    sound      // valid sound name.
    flags      // -2147483648 to 2147483647, flag expression


For example, a popular non-standard pointer, MonsterRail:

    custom thing pointer boom A_MonsterRail()


...and its counterpart, FireRailgun:

    custom weapon pointer boom A_FireRailgun()


...the Mushroom pointer from MBF:

    custom thing pointer mbf A_Mushroom(anglefixed, fixed)


...the WeaponMeleeAttack pointer from MBF21:

    custom weapon pointer mbf21 A_WeaponMeleeAttack(ushort, uint, fixed, sound, fixed)


 /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\

      IMPORTANT: This is only supported for Boom and higher, since those 
      patch formats refer to action pointers by mnemonic - defining a 
      custom pointer as "A_PointerName" will write "PointerName" to the 
      correct place in the [CODEPTR] section of the patch. Name your 
      experimental pointers accordingly!

 /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\

 

Edited by MTrop

Share this post


Link to post

Quick (and very important fix): 2022.04.21-RELEASE

DECOHack
--------

### Changed for 0.24.1

* `Fixed` MBF Action Pointers were not recognized. This has been fixed.
* `Fixed` An error is now thrown if you are attempting to define a custom action pointer that already exists.

Sorry for the inconvenience. Grab it now!

Share this post


Link to post
  • 2 weeks later...

How can I open this software and work? There miss doomtools-gui.exe...

 

image.png.1b75693b506ed98ee78a29657ebaa418.png

 

I cant add doomtools-gui.exe in doomtool folder because it says "there already exist this file", but app doomtools-gui cant find this doomtools-gui.exe file... is that bug? In doomtool there is no doomtools-gui.exe file

 

I restarted my pc and now i can copy doomtools-gui.exe. But if I switch this software on, antivirus block it and this exe will disappear...

 

Edited by CrazyDoomguy

Share this post


Link to post

You need admin rights for write access to "Program Files". Either run it as admin (not recommended) or don't put it in "Program Files".

Share this post


Link to post
19 minutes ago, boris said:

You need admin rights for write access to "Program Files". Either run it as admin (not recommended) or don't put it in "Program Files".

I switched antivirus for 10 minutes off and added Doomtool on desktop. Startet doomtools-gui.exe and there error

The files are from there https://github.com/MTrop/DoomTools/releases/tag/2022.03.27-RELEASE

image.png.53e0ce63bc665bf416d4c47f16244104.png

Edited by CrazyDoomguy

Share this post


Link to post

Got it. I stopped antivirus software for 10 minutes, installed Doomtools and now its work.

Is there any tutorial video how I can work with MBF21? I want create dehacked file for boom maps or for TAS run.

I expected, this file will look like WhackEd4.

 

As I understand - I writte in main.dh a script like decorate.txt (zdoom) and Doomtool convert this into DEHACKED?

Edited by CrazyDoomguy

Share this post


Link to post
On 5/6/2022 at 5:45 PM, CrazyDoomguy said:

As I understand - I writte in main.dh a script like decorate.txt (zdoom) and Doomtool convert this into DEHACKED?

 

Pretty much. You'll be using DECOHack as a compiler of some kind:

decohack main.dh --output dehacked.deh

Its language isn't exactly the same as DECORATE though. Full documentation is here: https://mtrop.github.io/DoomTools/decohack.html

 

Though what I'm curious about is the method in how you installed DoomTools. Did you use one of the installers, or did you unzip one of the non-installer archives into a folder off of Program Files? Antivirus shouldn't be that strict for programs installed via installer.

Share this post


Link to post
11 hours ago, MTrop said:

Though what I'm curious about is the method in how you installed DoomTools. Did you use one of the installers, or did you unzip one of the non-installer archives into a folder off of Program Files? Antivirus shouldn't be that strict for programs installed via installer.

I use Avira Security and it bans it every time I install or open this program. I installed the program "doomtools-setup-jre-2022.04.21.071908288.exe" under program files (automatic installation). Before installation I turned off antivirus, otherwise this protection pushes exe. file in the quarantine and then can not install or copy exe. again. I need restart pc before install doomtool again.

After that when antivirus is active, I added this file to exception rule. I have exe. as well as entire "DoomTool" folders as an exception. Otherwise this programm by opening will be deleted by antivirus

 

It took me hours to figure that out :/

Edited by CrazyDoomguy

Share this post


Link to post
  • 1 month later...

In case you aren't watching the project repository, lots of progress has been made on GUI stuff.

 

No new release yet, but that's because I'm putting some finishing touches on some helpful utilities. Here's a sneak peek:

 

905676139_sneakpeek.png.8a6b7d4fdea988c85eab6887e086219f.png

Share this post


Link to post
  • 4 weeks later...

I'm going to carry this over here from the DSDA thread.

https://github.com/MTrop/DoomTools/issues/77

 

I found a way around my issue by spawning a dummy thing with WeaponProjectile and then using SpawnThing off of that to give the thing that I wanted to have speed. Basically, I wanted Doom guy to 'throw' something onto the ground and it can't have the MISSILE flag or it would explode. I could have entered the speed in the thing as a fixed point value without the MISSILE flag except DECOHack spits an error saying it's not in a signed short range. What I did is probably wrong in most cases, but I think this maybe should be a warning instead.

 

I also noticed that when I called WeaponProjectile, I stupidly put some values in as fixed point. I wouldn't get any errors or warnings in the build, but the output for the parameters were zeroed out in the dehacked file.
 

Can the build output just be a window that stays? It would be nicer to leave it if I prefer instead of it being a modal that blocks everything.

This is a great tool, I'm going to have to play around with it some more.

Share this post


Link to post
4 hours ago, hobomaster22 said:

I could have entered the speed in the thing as a fixed point value without the MISSILE flag except DECOHack spits an error saying it's not in a signed short range. What I did is probably wrong in most cases, but I think this maybe should be a warning instead.

 

I should probably add warnings for any type coercion that happens under the covers (fixed to integer or integer to fixed). It currently does not do so, and would definitely be helpful.

 

EDIT: Made a tiny enhancement issue so I don't forget: https://github.com/MTrop/DoomTools/issues/78

 

4 hours ago, hobomaster22 said:

Can the build output just be a window that stays? It would be nicer to leave it if I prefer instead of it being a modal that blocks everything.

 

You can always build from the command line via decohack or doommake if you want the output to persist, for now. The next version of the DoomTools GUI is coming soon and will hopefully ease some more pain points, as well as provide more opportunities for some additional features.

Edited by MTrop

Share this post


Link to post

Are there any plans to add support in decohack for the colored blood feature shared between dsda, doom retro, woof and eternity (maybe more i dont know of)? Because right now the alternative is writing it in manually right into the .deh every time :p

Edited by MattFright

Share this post


Link to post
On 7/14/2022 at 9:17 PM, MattFright said:

Are there any plans to add support in decohack for the colored blood feature shared between dsda, doom retro, woof and eternity (maybe more i dont know of)? Because right now the alternative is writing it in manually right into the .deh every time :p

 

That will be coming when I get around to adding custom properties, which will require quite a bit of re-jiggering of how DECOHack stores properties. It will probably look similar to how custom action pointers get defined.

 

A ticket for this enhancement is here: https://github.com/MTrop/DoomTools/issues/55

Share this post


Link to post

Hey, everybody. Been a while. New release is up for DoomTools (2022-07-16): https://github.com/MTrop/DoomTools/releases/tag/2022.07.16-RELEASE

 

NOTE: You should probably re-install if you used an installer - a lot of helpful shortcuts get added to the Start Menu, as well as some JRE updates that could keep the editor utilities from starting!

 

doomtools.png.7146d4e914ef3e6e553c1d0cf67283b8.png

 

There's a lot going on in this one, but here's some key ones:

  • All utilities have graphical representations, including DECOHack, WadScript, and WTexScan-WTexport (that's right, no command-line required for your project texture extraction!).
  • DECOHack got a lot of fixes and features, and more to come!
  • All editors have autocomplete and templates and documentation (Ctrl-SPACE by default) for known identifiers and functions (but NOT for user tokens - I need to fix/implement that, somehow).

Stuff I need help on:

 

Full Changes:

Changes
-------

- **2022-07-05** Imported the `jdk.charsets` module for the embedded JRE.
- **2022-07-04** Fixed a small updater display bug on command prompt.
- **2022-06-30** Updated RookScript to `1.15.0`. (Includer encoding).

DECOHack
--------

### Changed for 0.25.0

* `Fixed` Changed the z-position parameter type for MBF's A_Spawn pointer to "fixed".
* `Fixed` Changed the range parameter type for MBF21's A_MonsterMeleeAttack pointer to "fixed".
* `Fixed` Some inconsistent error messages around flag setting/removal.
* `Fixed` Thing `dropitem` didn't allow 0 as a viable value.
* `Added` The DECOHack GUI, plus a switch to start it (`--gui`).
* `Added` Documentation for all pointers when dumped with `--dump-pointers`.
* `Added` A `--charset` switch for specifying the encoding of the input source files (if not system default).
* `Added` The ability to write the patch and the source directly into a WAD.
* `Changed` MBF's A_FireOldBFG pointer should have been a weapon pointer instead of a thing pointer.
* `Changed` Added a better error message for bad action pointers.
* `Changed` Added an error message if the user does "flag mixing" on the same expression (see Issue #76).

DImgConv
--------

### Changed for 1.2.0

* `Added` The GUI version of DImgConv.

DMXConv
-------

### Changed for 1.1.0

* `Added` GUI Version of DMXConv.
* `Added` Additional error output to diagnose FFmpeg issues.

DoomMake
--------

### Changed for 0.17.0

* `Added` The `TOOL::WADTEX(...)` function was changed to support entry name override.
* `Added` The `TOOL::WSWANTBL(...)` function was changed to support source import.
* `Added` The `TOOL::WADMERGE(...)` function was changed to support alternate input charset encoding.
* `Added` The `TOOL::WADSCRIPT(...)` function was changed to support alternate input charset encoding.
* `Added` The `TOOL::DECOHACK(...)` function was changed to support alternate input charset encoding.
* `Added` Support for project-wide text encoding setting.
* `Changed` Default DECOHack source code output file was changed from `dehsrc.dh` to `decohack.dh`. More to the point.

WadMerge
--------

### Changed for 1.8.0

* `Added` A `--charset` switch for specifying the encoding of the script files (if not system default).
* `Added` The WadMerge GUI, plus a switch to start it (`--gui`).

WadScript
---------

### Changed for 1.5.0

* `Fixed` The `--entry` switch didn't parse the command line properly after its use.
* `Added` The WadScript GUI, plus a switch to start it (`--gui`).
* `Added` A `--charset` switch for specifying the encoding of the script files (if not system default).

WadTex
------

### Changed for 1.2.0

* `Added` The GUI version of WadTex.
* `Added` Entry name override for texture entry lump.

WSwAnTbl
--------

### Changed for 1.1.0

* `Added` The GUI version of WSwAnTbl.
* `Fixed` Bad newline in export header comments.
* `Added` An `--import-source` switch for adding the source file to the WAD on import as `DEFSWANI`.

WTEXport
--------

### Changed for 1.5.0

* `Fixed` Textures/Flats in ANIMATED were added in an incorrect order if the provided texture/flat was not the start of an animation loop. (Issue #75)
* `Added` More output info during the extraction process.
* `Added` The GUI version of WTEXport.
* `Changed` Removed some potential sorts that could ruin things.

WTexScan
--------

### Changed for 1.2.0

* `Added` GUI Version of WTexScan.

As always, let me know what you think, and keep those bug reports coming!

Edited by MTrop

Share this post


Link to post

This looks great. I really wanted to check out the DECOHack editor but it's not opening for me on Windows 10. Tried through the command line and no error messages. The only tool that seems to open right now is WTexScan-WTExport.

Share this post


Link to post
1 hour ago, hobomaster22 said:

I really wanted to check out the DECOHack editor but it's not opening for me on Windows 10.

 

Did you re-install the JRE version? That should contain the packages to run the editor. You might be missing some encoding packs that it requires.

 

EDIT: I have updated the release post to remind people to re-install the application due to the above issue.

Edited by MTrop

Share this post


Link to post
14 minutes ago, MTrop said:

 

Did you re-install the JRE version? That should contain the packages to run the editor. You might be missing some encoding packs that it requires.

 

EDIT: I have updated the release post to remind people to re-install the application due to the above issue.

Yeah, that did it. I selected the one without JRE assuming because I installed it last time thinking I was good. Strange that no errors are printed running it through the command prompt. All is well now.

Share this post


Link to post

Coming soon to a DoomMake near you.

 

doommake.png.1c41c03ac466ab7a2befcb1305490bfa.png

 

That's right - I'm an insane person who decided to write an IDE. Pray for me.

Share this post


Link to post

This does seem nice! Might convince me to switch over to doing all the modding on this GUI.

Share this post


Link to post
9 hours ago, MTrop said:

Coming soon to a DoomMake near you.

 

doommake.png.1c41c03ac466ab7a2befcb1305490bfa.png

 

That's right - I'm an insane person who decided to write an IDE. Pray for me.


This is kind of what I was getting at with the build output being a modal and blocking. I was expecting it to be like an IDE where there is a build output window and I can look at it if I want, or not and just leave it. I wonder if basing off of Eclipse would make your life easier. But I've had to dig deep into the source code for the editor (long story) and it's not great... so it may or may not be worth it. Just throwing it out there.

Share this post


Link to post

The only time you get any kind of output is via actually executing a tool, so I thought a pop-up modal was still okay for utility-invoking actions that were user-initiated, as opposed to passively logging them in some location. This may change in the future, but in order to get a passive text box going, I'll have to change a bit of plumbing.

 

If it's any consolation, closing the modal does not interrupt the process, but then again, you'd be closing a modal every time. I could maybe include an option to not show logging output. Hmmm....

 

 

EDIT: On second thought, this may not be as difficult as I imagined. There's a single place in the code that creates the modals - if I return the same one, several outputs can go to one text area!

Edited by MTrop

Share this post


Link to post

Decohack Bug? State freeing for weapons is a little faulty, when doing:

weapon 1 free Fire

weapon 1 "Pistol"
{
    states
    {
    fire:
        PISG A 3
        PISG B 6 A_FirePistol
        PISG C 3
        PISG B 4 A_RefireTo(Fire)
        goto ready
    }
}

It seems like it should only free the states under "fire", but it also frees the state on "ready" and it caused the weapon to fire uncontrollably the moment it got ready at starting the game, so I had to add:

	states
	{
	ready:
		PISG A 1 A_WeaponReady
		loop
	fire:
		PISG A 3
		PISG B 6 A_FirePistol
		PISG C 3
		PISG B 4 A_RefireTo(Fire)
		goto ready
	}

This just ends up not modifying the ready state on the patch at all, only prevents decohack from modifying it, so it ends up being redundant when specifying to only free the fire state.

Share this post


Link to post
1 hour ago, dusk-iv said:

It seems like it should only free the states under "fire", but it also frees the state on "ready" and it caused the weapon to fire uncontrollably the moment it got ready at starting the game

 

That is, unfortunately, intended behavior.

 

Freeing from a state will keep following and freeing the next state it until it reaches a "protected" (which is, out-of-the-box, state 0 or 1) or an already-freed state.

 

Weirdly enough, it's safer to free a whole weapon and rewriting it than a single label. I'm starting to think that I need to add the ability to protect a state via current label to stop the "freeing traversal," or some kind of "safe free" that follows until it hits a defined label.

 

EDIT: Added enhancement: https://github.com/MTrop/DoomTools/issues/80

Edited by MTrop
Added issue

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...