Happy new year!
Annual

update here.
List of changes for 2025.12.31 compared to the previous version:
--- [
√]
RequirementsNow Editor works with ONE "tome.1" file, no other files are required.
--- [
√]
Triggers/WallsWalls placement over Triggers area now correct.
Walls will behave as good as possible after you [re]placed them over Triggers area (mostly top of the map).
You can Save and continue edit - this will not spoil owners state for walls placed in the current session, until you Load this PUD again.
* Changed Wall behavior on placement: it will "connect" to the map borders (maybe later i'll add backward compatibility by caps or w/e)
[~] To remove Triggers press Alt+Ctrl+Shift+T then accept operation. (It can NOT be restored after).
It will display something like "No triggers", if there are no triggers or incompatible(old) version of them.
...Still waiting for Ed to update the triggers... someday.
--- [
√]
ALOWNow Editor by default keeps ALOW section on saving if present in the loaded file.
The last loaded ALOW section will stay in memory until manual Reset or next load from some PUD that contains ALOW section,
so you can add this stored ALOW section to the another PUDs or even to created new one.
[~] Press Alt+Ctrl+Shift+A to Remove/Add last loaded ALOW section to the current document.
* the file will be changed on next Save, so you can change it back anytime.
* NOTE: Saving file in CAPS mode will remove most of special stuffs like Triggers, ALOW section, etc anyway.
--- [
√√]
SAVE. CRCCRC on saving will be compatible with standard Editor for ~normal~ maps, but...
If the file contains Triggers, ALOW section with NON-standard data, NON-standard SQM, or some ~special~ UDTA parts - it will be added to CRC.
in other words, the file's CRC now correctly reflects changes to its contents.
--- [
√√]
SAVE. *.bak filesAdded option to Make/Keep "*.bak" files while saving for more safety.
* Note: files with changed extensions accessible in Single Player > Custom Scenario w/o renaming back to *.pud, so you can straight test it in Single.
[
√] Fixed
rare bug:
While saving over same/some target file, some cases of "Access denied" error may cause
loss both new and old files. Grrr..
Now these cases you get new file saved with "*.tmp" name + old file stay untouched(most likely) or renamed to "*.bak" (independent of *.bak option status)... And of course you will be informed about this.
--- SAVE. File extensions
Now map can be saved TO .pud file only (+optional keep .bak file, see previous info)
* Loading FROM any file stays allowed btw (change file type filter in the FileOpen dialog to see All Files, or Drag&Drop the file directly)
In case you loaded map from *.bak file, then pressed Save - SaveAs dialog will appear first time, to let you remove ".bak" string manually.
If you just press Enter/OK w/o removing .bak extension - it will straight add ".pud" and continue saving, so you will get "name.bak.pud"
Most cases another ~strange~ extensions will behave same way - most likely you can save map.bad / map.ban / map.not... same way: ".pud" will be added automatically.
But the 'registered system file types' will block Enter/OK:
You can NOT save by just pressing OK if name looks like map.zip / map.txt / map.doc / whatever... If you really need name like this - add/type ".pud" after it manually.
--- [
√√]
SAVE. Protected mapsNow Editor protect some files from overwriting/resaving. "/Protected/" appears in the window header.
If you try to save these maps, forced "SaveAs" dialog will appear, at least there will be NO accidental spoil/resave.
In this case you need to change valuable number/letter of the file name.
For example: "Friends -.pud" will be blocked, "Friends 2.pud" will be allowed.
Protection works by:
1. File names - ending in "*BNE"/"* TE"/"* SE"/"* L"/"* OBS" or starting with "*) "
+ 26 hardcoded map names from old playable classics including Friends.pud
2. SIGN section (even 0 value) - if you load "SIGN"ed file - resaving with same name will be blocked.
* Note: Status of Protected files permanently locked to Saved = it will never ask for saving.
So,
if you plan to edit a protected map, first of all - resave it using a truly new name.
--- [
√]
SAVE. "Finalize/Shrink" featureWorks this way: Hold Shift then press Save by mouse.
If nothing happens visually this means that the saving procedure has worked in normal mode, because the conditions were not met.
In case the currently edited map
not contains Triggers, or at least one of UDTA/UGRD is standard MessageBox will appear.
There you can choose the saving method:
. Finalize: Shrink and add SIGN section (this option only appears if another set of conditions are met: SQM/UDTA/UGRD[/ALOW] is "standard")
. Shrink resulting file (if UDTA/UGRD/OILM/AIPL section contains "default" data it will not be saved to the file)
. Normal saving
* Most of another Map Editors will fail to open finalized/shrunk file correctly.
* You CAN later RE-save the current map again using a different method,
but note that once you RE-load the data [back] from the finalized/shrunk file:
- the owners information of the most/any terrain-walls will be lost (if any).
- the SIGN section will block resaving by this Editor using the same filename (see "Protected maps")
--- [~]
Legacy/Classic-modeFor retro users, to make PUDs compatible with ToD version:
'-c' cmdline key will force Editor start in 'Classic-compatible' mode,
this will disable all expansion stuff and do some changes automatically on map load:
Exp. AI changes to 00 (Land Attack)
Exp. heroes converts to normal units
Swamp tileset changes to wasteland
---
LOAD[
√√] Allowed REload file from Recent #1.
If the NotSaved status active and not overridden by options/protection, a Special confirmation will appear.
(the original Editor ignores (does nothing) Recent#1, even if the same file is manually selected or obtained using Drag&Drop)
[
√] Fixed Drag&Drop behavior when receiving multiple files (standard behavior: loading ALL of them 1 by 1, but use latest(less predictable) = no sense)
Now the file that you 'hold' by mouse pointer have priority, next file will be checked only if loading of previous failed.
Now the Cancel pressed in the "Not saved / Save?" msgbox - will not ask for every next file in the dropped queue, but stops instantly.
[
√] Fixed bug "Menu/Pictograms in the ToolBar stay Forest while starting with file that contains Winter/Wasteland/Swamp tileset".
Now menu/toolbar items match the tileset from the preloaded file.
[~] Changed sections parsing, so most cases even "incorrect/broken" PUD will be loaded, just using defaults if some part of data is missing.
.added earlier: in Save/Load dialogs the file type "Scenario" changed to "Warcraft II Scenario"
[
√] Fixed BUGs in 'automatic New Map dialog' on attemt to load broken PUD file: including bad Window title (!previous pud name) that may cause saving over previous file + wrong Main window ScrollBars limits, like a 96x96 but real size 128
Now, in case of inaccessible/"really broken" PUD:
. New Map forced to be created automatically (no dialog appears) as "NewMap.pud" with recent used parameters (default is 128x128 + random tileset)
. The path will NOT be removed from Recent (while Caps mode OFF), so you can fix problem externally then try load from the same Recent item again.
[
√] Range checking "THs ~vs~ Gold mines" on load, now disabled by default (same for oil stuffs), if you need this fsr - switch to Caps mode before loading the file.
[
√√] Now SQM processed correct, so special terrain changed in PudDraft will stay safe until you edit it manually (original Editor ignores SQM on load, then builds clean/standard one by MTXM data).
Asking for "Inappropriate unit location" by terrain reason now must be extremely rare, because of new SQM behavior.
+ Changed Msgbox itself for "Inappropriate..."
You may just hold ESC for a while to skip warnings,
Select Yes to remove unit, Cancel to let it stay, or Select No - to
disable warnings completely.
In case you need to enable these warnings back you can change corresponding option (Alt+Ctrl+Shift+O...)
* Fixed bug that msgbox asking about deletion appears over OLD map.
Now NEW(loaded) map will be drawn before MsgBox appears and updates on every deletion, so you can see current units status on minimap at least.
* in the original Editor you need some trick even for first redraw map in this case
1. Keep mouse pointer at the load moment inside main window area
2. On appearing Msgbox move mouse out then back into main area
It will redraw main window and minimap with new loaded map data, so you can see what the question is. (but anyway there will be no visual changes after you Accept deleting unit)
[
√√] Now ViewFrame position stay same after Load map of same dimensions.
For example: to
compare exactly same locations for Recent files 1 and 2 (same dimensions) repeat pressing "Alt+F then 2"
Thus, reloading the current file from Recent#1 will also remain in the same position, which will look something like ~undo.
[
√] StatusBar after Load now displays centered Description of the loaded file. Useful to see it right on load, w/o opening any dialog.
---
Desc/Tileset dialog new features.[~] on dialog start StatusBar displays map Description, so you can see source text/stats and some more stuff if present.
[
√√] Native "+" mark near tileset type - means you can convert To/From these tilesets LOSSLESS (checkbox "replace" will NOT affect result)
[
√] Also
Non-Destructive Tileset conversion used if "Replace" not checked
this will NOT affect 'notsaved' status, because can be switched forth-back instantly. This keep TileInfo for LOSSLESS conversion back to the original, but..
for NON-Native Target tileset this will produce 'black squares' so you see where is the difference (and can handle it manually).
[
√] Checked "Replace" will use Standard (Destructive) conversion, but now have options (how to replace Special tiles absent in the Target tileset):
to "Plain" (no Special tile anymore)
to "Special" (keep tile looks Special, but change to the compatible one from Target tileset)
Checked "Randomize" will get Random tile from Plain or Special range (unpredictable file CRC), elseway First tile from corresponding range will be used (stable file CRC).
* note: status of ^these checkboxes will be saved to Options in case you press OK after changes.
* note: the original Editor using worst possible combo: replaces missed Special tiles to Plain-Random tiles = do both: killing Special looks, and making CRC useless-unpredictable.
---
Upgrade properties dialog[
√√] Last used scroll position will be automatically restored.
[
√] Changes in the Upgrade properties dialog now affects NotSaved status.
[
√] Added Advanced dialog version with all UGRD fields accessible (Hold Shift before opening).
[
√] 'Reset to Default' button now have 3 functions:
Reset ALL UGRD data, including Special (Icon/Group/Flags)
Reset UGRD Basic Data only
Undo recent changes (if any) in the currently displayed fields (recent means maid after last scroll(get/set) event)
---
Unit properties dialog[
√√] Last used scroll position will be automatically restored.
[
√] Changes in the Unit properties dialog now affects NotSaved status.
[
√] Units "list" extended a bit and rearranged: Land, Water, Air, Heroes, Specials, Buildings.
(Additionally available Specials: Portal, Rune, Gold mine, Walls as unit)
[
√] Removed original BUG with placement Exp.Heroes to old Classic maps, etc. (Yes, it was side effect of dumb UDTA dialog + working with sprites)
[
√√] New Basic unit properties Dialog, added 4 fields: React range, React range for comp, Score, Priority.
+ Removed useless Attack range limit 15 (up to 255 now).
+ Range for buildings (towers) now can be changed.
+ Allowed Sight range 0, the Game will correct it to 1 automatically. It removes scroll-blocking MsgBox (until you enter something not 0) while viewing old custom maps that not contains Exp.heroes info.
[
√√] Added Advanced unit properties Dialog version that allows to change 99% remaining UDTA fields (Hold Shift before opening).
* Some rows using hexadecimal values because very convenient for it (Flags), or described in specs as hex (Missile)...
. Some things is both plus and minus, especially for advanced users: For example you can "copy/paste" very fast hex "Flags" DW value to another units (no need to pick every unit from list then change checkboxes for bits), but hex knowledge is required to change every bit.
. Both Basic+Advanced dialogs
sometimes way more convenient than puddraft plugins: Accessible 5 units at a time, restored scroll to last used position + visual compare values, etc...
[
√] 'Reset to Default' button now have 3+ functions:
Reset ALL UDTA
including inaccessible in both dialogs,
and throw-off BtDP trailing subsection* if present
* By default trailing UDTA section from BtDP puds will be saved if present in source file.
To throw it away: Open any UDTA dialog and press 'Default' button, then press 'Yes' in MsgBox.
After that you can exit from UDTA dialog even by pressing 'Cancel'(no changes in another Data) - it will NOT restore trailing UDTA subsection.
Reset the Data that accessible with Current Active Dialog only.
[same as UGRD]: Undo recent changes (if any) in the currently displayed fields (recent means maid after last scroll(get/set) event)
---
Races-AI dialog[
√] Changed controller "Human" to "Player", because the same term for "Human" is used right before that. So now it does not confuse the user.
[~] Added some spaces for Standard AI texts to make them more noticeable in the list. (First letter before spaces is a hotkey)
---
Common for UDTA/UGRD/AI-Races/Resources dialogs:
[
√√] Removed excessive annoying warnings in most dialogs. For example if some field is empty it will be ignored/skipped.
[~] By default TAB moves to next GUI item to the RIGHT.
If you prefer TAB=DOWN behavior while navigating using keyboard - switch CAPS before opening dialog.
---
Miscellaneous usability changes:
[
√√] Changed AutoScroll behavior on Placement/Selection:
Now click near edges of visible area will NOT cause AutoScroll until you drag out of visible area (or click right to 1px thin side line).
More over: you can hold CTRL to disable AutoScroll completely while Selecting/Placing stuff on the CURRENT screen and not need any accidental scrolls.
[
√] Applied Caps-dependent ScrollDelay on Select/Placement:
CAPS mode (original): autoscroll slower(jerky), arrows scroll faster (2 cells @ time),
Normal mode: autoscroll faster(smooth), arrows scroll slower (1 cell @ time).
[
√] Now Gold/TH, Oil/Yard, etc.. ~too near~ placement is allowed, but frame stays Red while hovering 'not so good' area (Caps mode return standard behavior).
[
√] Exact 'over unit' aiming not needed anymore to see hovered item resources amount in the Statusbar while Brush contains Gold/Oil stuff.
[
√] Gold/Oil dialogs now have small Edit field to set Amount directly by number of thousands, w/o scrolling (For example, open dialog then press: "A / 55 / Enter").
* note: 0 value is allowed, it will be 300k in the game.
[~] If the current map status is 'Saved' (not depends on confirmation option),
you may hold Alt before Clicking 'New' button to make NewMap instantly with last used settings (no dialog appears).
[
√] For scene setup, you can turn selected units faces to some location by Clicking RMB on the Terrain while holding Ctrl
[~] While you hold Alt on Terrain placement, Units over affected area will NOT be deleted, so you can change terrain between some units w/o need to place them again.
[~] While you hold Shift, it will unlock menu/toolbar items of opposite Race:
1. Heroes (also useful with unit/s conversion to some Hero).
2. Temporary Wall Brush (once you release Shift the current Wall Brush will instantly return to the native(Hum/Orc) for current player).
[
√√] Now you can "Pick" terrain Brush right from the map field, not using menu/tb/hotkeys:
While Brush is "Select" click RMB on the terrain you want to switch Brush to. Click RMB again to swith the current Brush back to the Select.
Also you can hold Ctrl or MMB while click RMB on the terrain to Pick/Set the Last Used Filler value from the solid tile then switch to Filler mode immediately.
---
Another bugfixes/stuffs:
[
√] Mostly fixed "Buildings drawn over Air/Water units" bug while scrolling map Up/Left (No more things like "Oil patch drawn over Gryphon" on scrolling). Start Locations stays bugged, because very special behavior.
[~] Mostly fixed "WhitePixel @0,0" bug (at least while Brush=Select).
[
√] Fixed Units "PlayerColor for Owners>8" on main field (Original Editor used Red for players 09-15, and madmix for Neutral). Now:
Enemy-NPC - Magenta, Rescuable-NPC - Cyan,
Neutral - Gray (no more strange spectrum), etc.
Also neutral Specials (DP, Runestone, Circle) now Green on the Minimap in normal mode.
[
√] Updated "system palette" bugfix in Swamp on Circle/DP/Rune: No longer depends on Animation switching.
[~] Now "About" displays the date of "build/patch".
A lot of changes that no one interested, like full rework of some funcs, bugfixes, etc.
[~] Fixed "About" dialog excessive sheet and small memory leak every creation.
[~] Removed useless compatibility with org Starting conditions dialog displaying values >65535. So user entered 100500 gold, will see only 34964 after using Duplicate or reopening dialog (previously he can see his big(fake) values while CAPS mode active)
[~] Fixed my bug that allows to change owner for "257" selected gold mines)
[~] Fixed my bugs that causes crash: after switching Caps in FileOpen dialog then Load the selected file, after using fullscreen with legacy ddraw, while starting in 256 color mode,
while/after drag/pop-out ToolBar because incorrect recalculations
(original bug still here: right/bottom row/line of trash pixels while previous map have no X or Y scrollbar(fit to window), but current loaded map brings this scrollbar back)
[
√] Changed work area behavior while Map too small for window. Now remaining area will be black (another content will not draw trails over it in most cases).
[~] Fixed related bug: Terrain placement to this area is still 'allowed' (same as standard Editor), but will be ignored, so NotSaved status stay real.
[~] Added to "Extra units" menu: Human/Orc Wall as Unit (* can NOT be owned by active enemy comp, will cause crash this case *)
[
√] "Filler" switch now taken into account for Tree/Rock brush to make plain arrays of the corresponding tiles.
[
√√] Fixed Filler brush value bugged behavior:
While you drag-draw using some value on the Terrain, if you just touch initial cell(where you started drag from) - original Editor changes the Filler value itself.
No accidental changes now: you need to release the LMB and then click again on the cell where you released the LMB to change the placeholder value in 1 click, otherwise (clicked to another cell, or brush was changed between clicks) it will take 2 clicks to change.
PudDraft bugged another way - same way better and worse
there are easier to keep current value - drag-draw is ok, but hard to GET needed initial Filler value - because it changed RANDOMLY, not sequentially.
Solutions for PudDraft: To keep current Filler value - do not touch "previous initial cell" with the Next click. Get exact needed value using Custom brush button.
--- Known issues / solutions:
While Toolbar is OFF - the Special Hotkeys/Caps will NOT work correctly (for example Caps mode will freeze in last seen status).
Solution: keep Toolbar enabled for correct program behavior.
~2do~maybe/later
0. Various Terrain features, most likely.
1. Still not added REGM special stuff preservation (special behavior of some units on the border of some areas, etc), but i'm not sure that anyone really needs this, so let it remain only for diggers for now.
2.a. Still not fixed original bad behavior of StatusBar text, because of potentially good system is badly used.
(Originally it spammed "For help press F1" etc, now it frozen on latest useful state or just empty sometimes)
2.b. Still not expanded a bit the coordinates field of the Statusbar for readability with high values.
3. Still not added Undo and the related terrain/units manupulations.
4. Still not fixed another original BUG: AutoRepeat + AutoScroll with unit placement on the edges ONCE makes 1-cell interval in the line of units.
Solution for MOD/Original Editor: Drag the brush OVER an already placed object(or over inappropriate terrain) before dragging it off the map, to prevent Auto-Repeat from being broken.
There are similar bug in PudDraft: it may produce multiple randomly sized intervals. Solution for PudDraft: keep mouse in the main area while Auto-Repeat placement.
Also updated the first post.