Changelog
Version 1.3.2
- Fixed: [CODEPTR] frame definitions were not always correctly read from patches. Thanks to Gregor.
- Fixed: Sound loading was broken, and was not 1-based. Thanks to MTrop.
Version 1.3.1
- Fixed: writing actions/code pointers for vanilla-styles patches. Thanks to Asht Mslf.
Version 1.3.0
- Added: DeHackEd Extended (DEHEXTRA) configuration with extra states, sounds, things and sprites.
- Added: support for DEHEXTRA thing fields: Gib health, Dropped item, Pickup width, Projectile pass height and Fullbright.
- Added: Doom Retro thing fields: Blood, Shadow offset, Retro Bits, Name and Plural.
- Added: state preview now uses a state's unused 1 and 2 parameters as offsets if previewing a state from the weapons editor (right-click state label).
- Added: better Linux compatibility. The application starts and is somewhat usable, but a number of UI issues still prevent it from working well.
- Added: IWAD detection for chex.wad and chex3.wad (official version). Thanks to Acts19quiz.
- Changed: engine table files can now include (base table) files. This leads to smaller filesizes and makes for easier updating. As a result of this, strings in the Doom 1.9 and Ultimate Doom 1.9 tables are now keyed by their index.
- Changed: engine table files list only fields used by that engine to reduce their size and improve maintainability. Default entries for things, states, weapons, ammo and sounds are provided for tables that extend existing ones.
- Changed: string editing for vanilla patches will allow any number of characters to be entered, but disallow using the new string if it is too long.
- Changed: thing editor properties, states, sounds and flags are now tabbed to save on screen real estate. Especially useful if an engine has many thing properties.
- Changed: WhackEd4 is now a 64 bit application.
- Changed: moved preview availability warning to notification text inside the patch settings window.
- Changed: scale UI and bitmap assets for high DPI displays.
- Changed: text input controls only select the entire contents when the end is selected.
- Fixed: the state animation preview now displays action names instead of code pointers for non-extended patches.
- Fixed: a weapon's FireCGun and FirePlasma actions would only mark the extra muzzle flash state as used if the action was used on the first fire state.
- Fixed: loading non-extended patches that try to set a codepointer on a state that originally had none will now display a warning. Thanks to Zodomaniac.
- Fixed: saving a yet unsaved patch while exiting caused a crash. Thanks to TheStupidestBeing.
- Fixed: BEX strings that do not appear in the engine selected for a patch will now not be visible in the strings editor, but will remain in the saved patch.
- Fixed: fixed a wrong next state value in the MBF tables for S_GRENADE (968). Thanks to hawkwind3.
- Fixed: crash on startup in some rare cases where no patch was loaded yet. Thanks to Endy McGufin.
- Fixed: maximum string length calculation for non-extended patches did not take the terminating NULL character into account. Thanks to Altazimuth.
- Fixed: sprite frame selection up\down button did not work correctly.
- Fixed: sound priority values can now be in the full signed integer range (though anything above 127 is useless).
- Fixed: the MBF TRANSLATION2 flag is now available and will not be removed upon saving. Thanks to j0e.
- Fixed: the MBF TRANSLATION1 flag is now recognized, and aliased to TRANSLATION for Boom compatibility. Thanks to hawkwind3.
- Fixed: some typos in engine configuration files. Thanks to hawkwind3.
- Fixed: Doom Retro TRANSLUCENT flag now shows up correctly in the flag list, alongside Boom's TRANSLUCENT.
- Fixed: an MBF flag alias was missing. Thanks to hawkwind3.
- Fixed: when copying a thing or undoing changes to one, its speed property was wrong if it changed from or to a projectile.
- Fixed: hopefully, locale issues.
- Fixed: Zdaemon misc. rocketExplosionStyle is a string. Thanks to Acts19quiz.
- Fixed: selecting a Render Style would crash the application. Thanks to Acts19quiz.
- Fixed: prevent out of range sprite indices from causing errors. Thanks to NeophyteRonin.
Version 1.2.4
- Fixed: invalid sprite names no longer cause a crash when loading\creating a patch, but are ignored instead.
- Fixed: changing miscellaneous values would result in a crash. Thanks to antares031, Xyzzy01.
Version 1.2.3
- Fixed: no longer allow a state's action to be removed in non-extended patches. Thanks to Mechadon.
- Fixed: Boom configurations now properly refer to the red skullcard pickup string key as REDSKULL instead of REDSKUL. Thanks to EarthQuake.
- Fixed: a crash on startup if the program settings became empty or corrupted somehow. Default settings will now be loaded if this is the case.
- Changed: doubled size of sprite previews in the state editor.
- Changed: updated wxPython to 4.0.6.
- Changed: updated to Python 3.7.
- Changed: enabled high DPI support.
- Changed: reduced size of installed files.
Version 1.2.2
- Fixed: a serious issue with saving thing, weapon and ammo names that could cause no names to be saved and the wrong names loaded when opening a second patch. Thanks to Da Werecat.
- Changed: detecting if a thing is a projectile is now done by looking for actions in it's used list of states that set the momentum as a non-fixed point value. Currently Chase and VileChase being used will cause a thing to not be considered a projectile and it's speed property to be automatically cast to a non-fixed point value internally and in written patches.
Version 1.2.1
- Added: support the RandomJump action in state previews.
- Added: Extended DehackEd configuration with the extra things and empty states from Doom Retro. Crispy Doom also supports these.
- Added: state actions that spawn things (like missiles from monster attacks) will now play that thing's sound during a preview.
- Fixed: unused state parameter descriptions would not be updated when an action using them was selected.
- Fixed: added missing things to the Doom Retro configuration. Thanks to VGA.
- Changed: WAD reloading is now faster and doesn't reset the UI state.
Version 1.2.0
- Added: state animation preview (with sounds) by pressing ~ on a state or using the new state context menu. Pressing ~ again inside the animation preview will restart it. Right-clicking a thing or weapon state from their respective dialogs will preview it directly.
- Added: linking states together can now be done by selecting them, right-clicking and selecting a link option (or use the respective shortcut key). Linking is done in the order of selection.
- Added: an option to clear out all selected states from the state context menu.
- Added: an option to clear out a thing's properties from a thing's context menu.
- Added: DOOM Retro "Gib health" thing property.
- Added: barebones patch merging feature by loading a patch 'over' the current one.
- Fixed: state and thing copy and paste operations were much slower than they should to be.
- Changed: sprite selection dialog now shows sprites at 2x scale.
- Changed: always display a state's "unused" parameters since these actually affect a weapon sprite's offset even in vanilla Doom.
- Changed: updated to PyAudio 0.2.11.
- Changed: monospace font is now the more modern DejaVu Sans Mono.
Version 1.1.2
- Fixed: Doom Retro's PlaySound action was missing a parameter name, causing a crash when it was selected. Thanks to AnotherLife.
- Fixed: rewrote sprite name, frame and rotation handling to better emulate Doom's behaviour. As a result, zero-rotation sprites can now replace sprites with multiple rotations. Thanks to VGA, AnotherLife.
- Fixed: when selecting a new sprite for a state, all selected state's frames were set to 0 when no specific frame was selected. Thanks to VGA.
Version 1.1.1
- Added: A Doom Retro engine configuration (thanks to VGA).
- Added: Unknown Dehacked fields are now ignored, but also saved unaltered.
- Fixed: missing parameter names for the PlaySound and PlayWeaponSound state actions.
- Fixed: the sprite label property not updating after selecting a sprite in the state editor.
- Fixed: a crash when jumping to a state with the RandomJump action.
- Fixed: choosing a 30th sprite frame.
- Fixed: state parameters disappearing when selecting a state.
- Fixed: state action editing was possible in non-extended patches.
- Fixed: patch states with extra text in their headers being ignored.
- Fixed: calculation of maximum string length.
Version 1.1.0
- Added: the ability to change the rotation in a sprite preview by dragging the mouse over it with the left button held down.
- Added: a number of new state, thing, weapon and miscellaneous options for advanced ZDaemon\ZDoom support.
- Added: better defined state action parameter support, including support for arguments.
- Added: a new miscellaneous editor UI that supports an arbitrary number of options. Double click items to quickly edit them.
- Added: clicking an active editor window toolbar button will bring it to the front if it is not already, otherwise it will close it.
- Added: closing dialogs is now possible with the ESC and a window close button.
- Added: a ZDaemon engine configuration file supporting some of ZDaemon's Dehacked extensions.
- Fixed: sound numbering and sound assignment used sound 1 as the dummy sound erroneously.
- Fixed: missing ampersands in thing flags.
- Fixed: thing names not being updated in the state filter list when a thing is renamed.
- Fixed: misspelling of ReFire and BFGSound actions.
- Fixed: monster infighting flag used the wrong value when enabled.
- Fixed: loading a patch through explorer no longer causes a crash on startup.
- Fixed: weapon editor undo functionality did not work properly.
- Changed: removed the MBF Beta configuration. The regular MBF configuration now also contains the beta functionality.
- Changed: editing action parameters is now made easier by only displaying parameters for actions that support them, complete with name labels and descriptions in tooltips.
- Changed: thing list indices start at 1 to make using state actions like MBF's Spawn easier.
- Changed: some control and window sizes have been altered to better fit with larger fonts.
- Changed: the string editor window will focus on the text to edit when activated, so the user can often begin typing immediately.
- Changed: reduced flickering when resizing editor windows.
- Changed: tab traversal between controls is now possible in most cases.
- Changed: the sprite selector will now not hide when pressing enter or clicking Ok if no sprite is selected.
- Changed: the sprite selector puts focus on the filter field for faster filtering.
Version 1.0.4
- Fixed: added missing state 895 to the list of hardcoded used states.
- Fixed: added the second Chaingun muzzle flash state to the chaingun state filter.
- Fixed: unused thing flag mnemonics being displayed and saved for the MBF engine configuration.
- Changed: the weapon deselect and select state labels have been swapped. Internally they are still swapped to preserve the original erroneous Dehacked behaviour.
- Changed: renamed the Deselect and Select weapon states to Lower and Raise states respectively, to better reflect what they are supposed to do.
- Changed: characters can now be selected inside input fields without selecting the entire field.
- Changed: updated to wxWidgets 3.0.2.
Version 1.0.3
- Fixed: warnings about missing color profiles on some systems.
- Fixed: the Lower and Raise state were (still) erroneously swapped.
- Changed: invalid graphics are previewed as "BAD IMAGE" instead of crashing.
- Changed: updated wxWidgets to 3.0.0.
Version 1.0.2
- Added: an engine configuration file for MBF that includes the beta state actions, and removed the beta actions from the regular MBF configuration.
- Added: RandomJump states are now recognized as using the state in parameter1.
- Added: thing index numbers in the things editor.
- Fixed: -1 state durations could not be entered.
- Fixed: crash when trying to display a sprite with an invalid file format.
- Changed: detect additional thing flag delimiters supported by some source ports.
Version 1.0.1
- Added: thing flag mnemonic name to thing flag tool tips.
- Changed: multiple thing flags with the same name can now be defined in engine configurations.
- Fixed: OpenShotgun and CloseShotgun action names should be OpenShotgun2 and CloseShotgun2.
- Fixed: added missing beta things, states and sprites to the MBF engine configuration.
- Fixed: added missing translucent flags to the Boom and MBF engine configurations.
Version 1.0.0
- Added: a button to delete the selected IWAD in the patch settings dialog.
- Fixed: an ancient bug where the Raise and Lower actions are swapped.
- Fixed: state pasting not updating the filtered list.
Version 0.9.1 beta
- Changed: allow patch load messages to be ignored.
- Changed: Make patch reading and writing less exception-prone.
- Changed: exit application after an exception has occurred.
- Changed: restructure startup into App object, and add exception dialog.
- Changed: adjust UI sizes to work better with large fonts.
- Fixed: exception dialog not closing application.
- Fixed: exceptions not displaying if a busy cursor was set.
- Fixed: clean the recent files list before displaying it in the startup dialog.
- Fixed: fix cheat keys being displayed instead of names.
- Fixed: cheats being displayed in the wrong order.
- Fixed: Ammo & Keys patch key capitalization.
- Fixed: state action editing issues in non-extended patches.
- Fixed: do not fail silently when patch analysation fails.
- Fixed: the license file not being included in the 7zip build.
Version 0.9.0 beta
- Added: WAD reload menu option.
- Added: license and additional credits to about, convert resources to PNG.
- Added: sound editing functionality.
- Added: miscellaneous editing functionality.
- Added: par time editing functionality.
- Added: new editor iconography.
- Added: cheat editing functionality.
- Added: ammo editing functionality.
- Added: weapon editing functionality.
- Added: string editing functionality.
- Changed: write and read patch entries if only the entry's name has changed.
- Changed: adjust UI sizes to work better with high-DPI display settings.
- Changed: draw a "floor" in sprite previews.
- Changed: move thing names list and display more data in it.
- Changed: move license text to a messagebox.
- Changed: sort action choices alphabetically.
- Changed: do not hide patch settings when browsing for a file.
- Changed: internal code comments and cleanups.
- Fixed: miscellaneous UI bugs.
- Fixed: mark patch as modified after setting a state or sound.
- Fixed: toggling a thing projectile flag not updating it's speed.
- Fixed: some listview columns being too wide.
- Fixed: file dialogs not being modal when they should be.
- Fixed: a patch engine detection bug.
Version 0.5.0 alpha
- Initial release.
Source code
The source code for WhackEd4 is available under a BSD 2-clause license, and can be viewed or forked on GitHub. Any contributions are more than welcome, provided they retain the coding style used in other WhackEd4 code, and are actual useful features for WhackEd4 to have.
View WhackEd4's source code on GitHub
Feedback
Found a bug or have an idea for WhackEd4? Place an issue on WhackEd4's GitHub issues page! I can also be reached through the Doomworld forums.