[v2.11.3] Abiathar: The superior Keen Galaxy editor

Here is where to post about the latest Commander Keen fangame or modification you've finished, a new website you've made, or another Keen-related creation.
User avatar
Fleexy
Tool Smith
Posts: 1434
Joined: Fri Dec 12, 2008 1:21
Location: Abiathar C&C

Post by Fleexy »

MoffD wrote:...every time I load my map it draws the current tile (default empty one) wherever the cursor is...
Ah yes, that does indeed happen if you double-click in the open dialog really fast. (Trivia: every Keen level editor I've used, including Mindbelt and TOM, has this bug!) I've been puzzling over it for a while and finally fixed it; the issue is gone in v2.7. Until I get that update finished and out the door, a quick tap of the Z key will remove the misplaced tile. :)

Sorry about that,

Fleexy
User avatar
Fleexy
Tool Smith
Posts: 1434
Joined: Fri Dec 12, 2008 1:21
Location: Abiathar C&C

Post by Fleexy »

Independence Day here in the United States is coming up in just a couple days, and what better to celebrate independence from than the unfortunate bugs in v2.6.1? Throw off your chains and sail across the sea to the glorious land of Abiathar v2.7!

UPDATE
v2.7(.1): the second major tileinfo-related update (the first was v1.1)

Get it with the auto-updater, or download ZIP. Let's see what changed!

The Tile Property Modifier now has per-project property lists! You no longer have to see entries that don't apply to the episode you're modding; there's no more of those ugly episode indicators in the lists. (If you didn't start from an NPW template, you'll still have the generic list that includes properties from all episodes.) I also corrected some property names, like that of Keen 6's conveyor belt top. You can edit the property names and add your own using a text editor on your ADEPS file: see the TilePropertyValues section. Also, the animation loop mode of the Tile Property Modifier now copies the animation delay from the starting tile to every tile you click in the loop.

Bio Menace support has been extended! In addition to there being a special list of tile properties for Bio Menace in the Tile Property Modifier, Abiathar can now understand the swapped background animation delay and offset layout those games use. You can enable that swap in the ADEPS file; it's called SwapBackgroundTileinfoFields and is a Boolean value.

A rare but serious Tile Property Modifier bug that caused a tile's properties to be blanked was fixed. I also put checks in place to stop the TPM from being invoked on the infoplane tileset, which doesn't make sense and caused a strange visual state. I noticed that the "Tileinfo modification and resaving are disabled" warning (that appears when the TPM is invoked on a project using read-only tileinfo) in the lower-right was very subtle and easy to miss, so there's now a much more obvious alert telling you that you can look but not touch.

Selecting tiles from the level while using the Tile Property Modifier in Simultaneous Tileset now causes the TPM to update its active tile. However, since it's possible in the level to select a tile outside the visible range (e.g. the zero foreground tile if Assimilate Infoplane is off, or something like AB1Ah that's way past the end of the tilset), the Tile Property Modifier may have to veto the selected tile change to prevent an inconsistent state that could result in tileinfo corruption. If your selection is canceled, you'll get a little note in the TPM window; just close the TPM or exit Simultaneous Tileset to regain full selection ability. (The TPM does save changes to the active tile when it vetoes a selection change, so your modifications are saved even if the other tile didn't get selected.)

The New Project Wizard now reopens if an error is encountered during project loading, which is very nice if you have to enter lots of custom settings. Several error messages have been improved to provide more useful information.

The Level Inspector's warning and error thresholds have been slightly adjusted, and a new check has been added: total number of unique animating tiles in the level. The Resource Counter was also adjusted; I gave it a special message to display if there are no resources, and it now has a different keyboard shortcut: Ctrl+U. (Previously, it was Ctrl+P, the same as the Tile Property Modifier.)

Small fixes and tweaks:
  • Added support for NetKeen audio and songs
  • Made the Set Tile ID dialog more easily keyboard-navigable
  • Made Lone Editing work more like Keen Next
  • Fixed a zero tile being placed when you open a project file (thanks for the alert, MoffD)
  • Fixed the wrong Huffman dictionary being used for partially-default Keen Dreams graphics
  • Fixed the "save changes before closing?" message appearing after a project load failure
  • Fixed the New Project Wizard's Containing Folder box being case-sensitive
  • Fixed the Set Tile ID window not notifying tools of the selected tile change
  • Fixed middle-button dragging being able to pan outside the level when FreeScroll is off
  • Fixed some old view state cache items carrying over across project files edited in the same Abiathar run
  • Removed ModKeen from the File Emitter (ModKeen bitmaps are still supported as graphics sources, of course)
(A few hours after releasing v2.7, I noticed that I had created a visual bug in the foreground tileset when Assimilate Infoplane is on. Argh. v2.7.1!)

Happy modding!

Fleexy
User avatar
Fleexy
Tool Smith
Posts: 1434
Joined: Fri Dec 12, 2008 1:21
Location: Abiathar C&C

Post by Fleexy »

While chatting with Gridlock on IRC, I identified and fixed a crash bug in Reload Graphics. (Despite its simple appearance, that function is actually one of the most complex parts of Abiathar.)

UPDATE
v2.7.2: fixing bugs

Reload Graphics no longer causes a stack explosion. (Fun fact: stack overflow is by far the more common of two types of crashes that can cause Abiathar to exit without warning. The other type of crash is actually caused by a bug in v4.0 of the .NET Framework, the version Abiathar is built for. Fortunately, it appears so rarely as to be a statistical impossibility.) Thanks again to Gridlock for helping me find this.

While fiddling with a funny little project of mine, I noticed that placing tiles beyond the end of the tileset into the foreground of the level caused an instant crash with error message. The problem was that the tileinfo drawing plane assumed every tile would have tileinfo; the hex composites (crazy large values like FA17h) don't. It's fixed now.

It came to mind that one might actually want to link nonexistent audio files to a project. It's actually necessary to do that if you only have a collection of audio files that needs to go into an uncompressed AudioT file. (Fortunately, it's always been possible to whack the ADEPS file with a text editor to allow such crazy stuff.) The Audio Resources dialog now only warns about nonexistent files rather than stopping you from using them. Additionally, a bug in the audio importer was fixed that could have caused a crash if Music Mappings had been used to manage songs in an uncompressed audio file.

Get v2.7.2 with the auto-updater, or download ZIP.

I also fixed a bug in ImfPreview (the Abiathar extension that allows playing IMFs in Music Mappings) that caused it to crash Abiathar if you right-clicked on an empty song slot. Download the updated version here.

If you ever find a bug or infelicity in Abiathar, please do not hesitate to complain to me about it in this thread or on the #KeenModding IRC.

Happy modding,

Fleexy
User avatar
Fleexy
Tool Smith
Posts: 1434
Joined: Fri Dec 12, 2008 1:21
Location: Abiathar C&C

Post by Fleexy »

UPDATE
v2.8: the time update

Get it with the auto-updater, or download ZIP. Let's see what changed!

You may notice a new entry under Edit in the undo/redo section: the Time Machine. Inspired by Paint.NET's History window, the Time Machine allows you to see what actions you've taken at what times and rewind or fast-forward multiple actions in one click.
Image
Entries are sorted from earliest to latest, with the most recent non-reverted action in bold. Actions that have been undone appear in gray after the bold entry. Select an entry and click Go to turn the clock so that the selected entry is the most recently done. Click Clear History to clear the undo/redo history, making time travel impossible until you perform more actions. Click Revert All to turn back the clock to the last use of Save or Clear History. Clicking Done closes the Time Machine window, but changes (e.g. clearing the history or going to an action) always take effect immediately.

The Patches window has been made more useful. It now features two tabs: Custom Patches, which provides the standard text field for custom patches, and Auto-Generated Patches, which provides read-only access to the Abiathar-generated section of the patch file (e.g. level song assignment patches) so you don't have to Generate Patches if you prefer to manage your own patch file.

Dramatic speed improvements have been made. The initial render pass when switching to a new level is almost instant now, which also helps when loading the project file. Individual tile tweaks and visual updates from undo/redo now happen a bit quicker. The Row Adjuster and Column Adjuster now do their work in about half the time (even better if you set it to not deal with links at all), though it could still use a bit of improvement.

Changes have been made to the Copier, Essential Manipulator, and Paster to make their behavior more intuitive with respect to plane states. The Copier and EM copy mode now copy all planes except hidden ones, leaving the job of filtering non-active planes to the Paster and EM paste mode. (If you always paste immediately after copying, you won't notice any difference.) The paste preview overlay now displays only planes that will the pasted and is updated when you change plane states. I also fixed the weird behavior with translucent overlays when multiple planes are involved.

The Level Inspector now respects your UseHexadecimalDisplay settings for the coordinates in its warnings. Also, the problem alerts about map Keen being in levels have been downgraded to warnings. You can disable them entirely by setting IgnoreWorldmap under InfoplaneInspector in your ADEPS file to True.

Several small changes have been made to Find Highlight. It now marks found tiles with an opaque, non-filled square rather than the translucent highlight. If you prefer the old behavior, you can switch it back on with FindHighlightTranslucent in editor.aconf. The H key to activate the Find Highlight is no longer a tri-state toggle. Pressing H just turns it on and off; use Shift+H to activate it with pulsing. I fixed a bug that made the highlight appear to not update when the selected tiles were changed, and fixed project files always failing to load when Find Highlight was already active.

Finally, using the arrow keys to pan the level while dragging no longer results in the next mouse movement counting as a click. Thanks again to Gridlock for telling me about this.

Happy modding,

Fleexy
Last edited by Fleexy on Tue Jul 28, 2015 17:44, edited 1 time in total.
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Downloading now.

EDIT: Good heavens, this is an update? All the relevant files are smaller! That must be some ensleekening.

Love the new patch feature. And the speedier operation. I'm not doing too much levelwork at the moment. (Trying to make enemies do something tricky.) so proper testing will have to wait a bit.
What you really need, not what you think you ought to want.
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Ok, two small things.

Is there a way to move up\down a level with a keypress like TOM? (Pgup and Pgdn say.)

Is there any way to rearrange the level order, some sort of switch function say?
What you really need, not what you think you ought to want.
User avatar
Fleexy
Tool Smith
Posts: 1434
Joined: Fri Dec 12, 2008 1:21
Location: Abiathar C&C

Post by Fleexy »

PgUp and PgDn do exactly what you want. ;)

There is not currently a direct way of changing a level's ID, but you could use Level | Copy and Level | Delete to accomplish this. I just discovered that copying a level over an existing level can cause a crash in certain circumstances. To avoid that, make sure you've looked at the target level at least once before overwriting it. In the next update, I'll fix that and see about easier level rearrangement.

Thanks for the feedback!
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Fleexy wrote:PgUp and PgDn do exactly what you want. ;)
No... no they don't....


EDIT:

*Pokes*


Ok, it seems that when you get certain registry tweaks to turn of that damn capslock it can interfere with your numeric keypad? Weird.


Also, I note that when I select flood fill then only layer 2 then flood filled my level's border a row of tiles that had infoplane values over them were NOT flood filled. Is this something to do with the flood fill properties?
What you really need, not what you think you ought to want.
User avatar
Fleexy
Tool Smith
Posts: 1434
Joined: Fri Dec 12, 2008 1:21
Location: Abiathar C&C

Post by Fleexy »

The reduction in size is probably a result of the new compiler I'm using now. Between v2.7.2 and v2.8 I updated from Visual Studio 2013 to Visual Studio 2015, which has a fancy new open-source compiler called Rosyln that seems to do a nice job.

Oh, and I forgot to mention that in v2.8 I added the ability to copy the infoplane value for the tile under the mouse (that is, the infoplane value to link to it, what you get when you hit Enter twice in TOM or right-click with the Linker) by pressing the apostrophe key.

Yes, the planes that get filled are not necessarily the same as the planes that bound the filled area. You can adjust the fill policy by pressing Space. Alternatively,

UPDATE
v2.8.1: better level management and flood filling

Get it with the auto-updater, or download ZIP. Let's see what changed!

The level properties window (accessed with Level | Properties) now allows changing the ID of the current level. If you change its ID to the ID of an existing level, it will give you the choice to swap or overwrite. The hotkey for the level properties window has been changed from Alt+P to Shift+P to prevent shortcut collisions with the menu bar. Level management operations now have more descriptive texts in the Time Machine. I also fixed some issues that caused the "current level" check mark to disappear from the Level menu after certain management operations.

The distinction between bound planes and filled planes in the Flood Filler is probably confusing to people who didn't write it, so I added a simple mode for it that automatically uses only active planes as both bound and fill. This mode is on by default, you can switch back to the old manual way (which is more powerful) by pressing Space with the Flood Filler to bring up the Flood Fill Policy window, which now contains a checkbox for the mode. If you prefer textual config files for some reason, that checkbox is backed by SimpleFloodFill in editor.aconf. Also, if you're ever confused about a tool, I recommend enabling contextual help (Help | Contextual, or press the question mark key) to get a list of everything you can currently do.

All fillers (Rectangle Filler, Circle Filler, and Flood Filler) now allow right-clicking to select tiles, so you don't have to switch back to the Tile Placer.

Thanks again for the feedback! If you ever need help with a feature (or with system configuration), feel free to hop on IRC. There's even a shortcut to the #KeenModding IRC channel via Mibbit in Abiathar's Help menu.

Happy modding,

Fleexy

P.S. Trivia: this is the 50th version non-indev of Abiathar, including private betas.

Edit: I am now aware of a bug in View | Links that causes infoplane values to stop rendering. This has been fixed, and v2.8.2 has been released with the change. It's in the auto-updater, or you can get it with the ZIP link above.
Last edited by Fleexy on Wed Aug 05, 2015 18:03, edited 1 time in total.
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Awwww yisss!

Some good stuff here, small but powerful tweaks.


50 huh? Reminds me of folders filled with endless source code files.
What you really need, not what you think you ought to want.
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

So I'm putting in some new songs, 6 in fact. But I notice that my AUDIO file is smaller than just one of those songs and the music hasn't changed.

Not sure why but this version I have refuses to change chunk data when I replace an IMF, though it *does* work correctly when I import a new song. (It does however add my preferred song name to the end of the AUDIO file.) Anyone else experiencing this problem?
What you really need, not what you think you ought to want.
User avatar
lemm
Blorb
Posts: 696
Joined: Fri Jul 03, 2009 10:18
Location: canada lol

Post by lemm »

By the way, you should make sure that your songs are huffman compressed when you export them. When the game loads a song, it needs to allocate memory enough for both the compressed and uncompressed song. If the songs are compressed using that "trivial" dictionary that Keenwave uses, then the game will need to allocate 2x the memory to decompress the song, and that usually leads to the error of insufficient memory.
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Interesting, I was only vaguely aware of this. Is that still the case if you're using the patch that removes compression from Keen? Memory management is quite the issue for me and it would be a terrible waste if so.
What you really need, not what you think you ought to want.
User avatar
lemm
Blorb
Posts: 696
Joined: Fri Jul 03, 2009 10:18
Location: canada lol

Post by lemm »

If that's a patch for the original games, then I don't know. Atroxian Realm doesn't allocate any extra memory for decompression; it just loads the uncompressed songs straight into memory.

I think that this problem might be why Battle of the Brains had so many frequent memory errors, for it was a mod that had rather lengthy songs.
User avatar
Levellass
S-Triazine
Posts: 5266
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Um... you wrote the patch...

Code: Select all

#Keen 4 - remove Huffman compression
%patch $12D2C $55 $8B $EC $56 $57 $8C $DA $C4 $7E $0A $C5 $76 $06 $8B $4E $0E $D1
              $E9 $FC $F3 $A5 $73 $01 $A4 $8E $DA $5F $5E  $5D $CB

I generalized it to all Keens.
What you really need, not what you think you ought to want.
Post Reply