PDA

View Full Version : MLLE - Playing catch-up with DJazz


Pages : [1] 2

Violet CLM
Jun 25, 2011, 09:12 PM
MLLE, short for Multi-Layer Level Editor, is an alternative to JCS that I am currently developing. It allows opening, viewing, editing, and saving of levels compatible with any version of the Jazz 2 engine, including Battery Check, Animaniacs: A Gigantic Adventure, and all OEM versions of Jazz 2 itself, as well as free conversion among those versions. It allows the creation of levels for JJ2+ that use multiple tilesets, custom palettes, and various other features. It is also intended to eventually subsume the functions of Reworder and make various other improvements on the JCS featureset.

You can download the most recent (December 14th, 2017) test release here.

Stijn
Jun 27, 2011, 01:03 PM
Until someone comes along and kindly explains what this is all about I'll just assume you took a screenshot of JCS running on a really large screen. Not really worth a thread.

cooba
Jun 27, 2011, 01:26 PM
But JCS doesn't show events on the parallax display

Violet CLM
Jun 27, 2011, 06:08 PM
But JCS doesn't show events on the parallax display
:crimi:

Update: hard to show with a screenshot, but all animation properties are now working properly. Next up, reading data3 from .j2t files for those .1% of tilesets with pure black pixels.

Sean
Jun 27, 2011, 06:11 PM
It's possible he used a screen-shot of the editing display and superimposed it onto the parallax display in an image editor. Not too hard if you know how to get rid of the Jazz Blue.

Seren
Jun 28, 2011, 01:27 AM
Next up, reading data3 from .j2t files for those .1% of tilesets with pure black pixels.
:D Was I the one who inspired you to do that?

I guess we can also expect built-in Reworder functions and full support of meta-animations? And let me ask, is there or will there be something indicating which layer are certain tiles on? Like, every other layer than the one being worked on becoming translucent? It can get really confusing in levels with many layers of the same scrolling speed. When I was working in a level editor of some other game, I often found myself erasing all the work I've just done because of finding out I was working on a background layer all the time instead of the sprite layer. That issue wouldn't be as annoying in here, because JCS has the "B" key (that other one didn't have a copy paste option), but it's a good idea to get rid of it anyway, for the sake of user friendliness.

Violet CLM
Jun 28, 2011, 01:43 AM
Well, I knew you'd like it, but really I'm more interested in invisible masked tiles that aren't invisible in JCS. Assuming I know what you mean by "meta-animations," they're in -- they're really very simple to program -- and other stuff will happen as time goes on. I've considered transparencing non-active layers, or at least ones farther front than the active layer (so 1-3 when editing 4, say), but for now I think the easier option is just to have a simple JCS-like mode with only one layer visible at a time, if only because I actually know how to program that. :# Reworder functions will make it in at some point, though don't be surprised if I release a prototype before getting there.

cooba
Jun 28, 2011, 04:08 AM
It's possible he used a screen-shot of the editing display and superimposed it onto the parallax display in an image editor. Not too hard if you know how to get rid of the Jazz Blue.My, good thing you're a Photoshop expert!

What else do you have in so far, Violet?

Stijn
Jun 28, 2011, 06:15 AM
So yeah, someone explain what this is about?

Obi1mcd
Jun 28, 2011, 07:21 AM
JCS+, or something thereabouts.

cooba
Jun 28, 2011, 11:01 AM
So yeah, someone explain what this is about?Perhaps... a new level editor, as judging from the title, or the screenshot, or the posts following the OP?

Violet CLM
Jun 29, 2011, 12:12 PM
Perhaps so! What else do I have in... really, what you see is what I've got. It reads and stores every last bit of data from a .j2l and its .j2t (even if I don't know what some bytes are for), displays eight layers at the proper parallax speeds relative to one another and scrolls around (with autospeed not yet implemented), reads and displays event names from JCS.ini, and is not remotely interactive. Data3 is in; next I should add support for 1.24 and 1.10o levels, and then saving, and also speed up the drawing function at some point before things get much more complicated.

Jgke
Jun 29, 2011, 02:27 PM
and then saving

This is an useless feature, please concentrate on useful stuff.

Violet CLM
Jul 3, 2011, 07:44 PM
Still no saving, but here's an early render of a version I neglected to mention in the last post: .lvl and .til files from Animaniacs: A Gigantic Adventure! Events aren't being read properly because AGA uses an earlier version of the .j2l format which has a much more complicated event structure, but graphically it looks good. :) TSF, 1.10o, and Battery Check are all working fine too.
<img src="http://www.tachyonlabs.com/sam/AGAearlyrender.png" />
ETA: oh yes, and this pretty much puts the kibosh on all edited JCS screenshot theories.
ETA2: A line of code for your amusement:
for (byte k = 0; k < 4; k++) alphaAtlas[i % 10 * 128 + i % 1030 / 10 * 40960 + j % 128 + j / 128 * 1280 + k] /*= alphatile[j + k]*/ = (k == 3) ? (j2l.J2T.TransparencyMaskJJ2_Style[Array.BinarySearch(j2l.J2T.TransparencyMaskOffset, 0, (int)j2l.J2T.data3Counter, j2l.J2T.TransparencyMaskAddress[i])][j / 4] == 1) ? ((transp) ? (byte)192 : (byte)255) : (byte)0 : pixel[k];
ETA 3: Code got longer:
for (byte k = 0; k < 4; k++) alphaAtlas[i % 10 * 128 + i % 1030 / 10 * 40960 + j % 128 + j / 128 * 1280 + k] /*= alphatile[j + k]*/ = (k == 3) ? (((source == TransparencySource.JCS_Style) ? J2T.TransparencyMaskJCS_Style : J2T.TransparencyMaskJJ2_Style)[Array.BinarySearch(J2T.TransparencyMaskOffset, 0, (int)J2T.data3Counter, J2T.TransparencyMaskAddress[i])][j / 4] == 1) ? ((transp) ? (byte)192 : (byte)255) : (byte)0 : (((source == TransparencySource.JCS_Style) ? J2T.TransparencyMaskJCS_Style : J2T.TransparencyMaskJJ2_Style)[Array.BinarySearch(J2T.TransparencyMaskOffset, 0, (int)J2T.data3Counter, J2T.TransparencyMaskAddress[i])][j / 4] == 1) ? pixel[k] : (i == 0 && k == 0) ? (byte)72 : PinkTransparentColors[k] ;

Sean
Jul 3, 2011, 11:42 PM
My, good thing you're a Photoshop expert!

lol noob. I use Paint.NET.

Violet CLM
Jul 20, 2011, 10:58 PM
Nothing is finalized, and there's a whole lot of missing functionality (e.g. displaying the tileset, any editing tools at all), but I managed to embed the level display in an editor window, so that's progress! Progress with working scrollbars, no less!
<img src="http://img854.imageshack.us/img854/3883/embeddedtars.png"/>

Obi1mcd
Jul 21, 2011, 01:54 AM
A save as image function too? This is looking great, can't wait for a functioning release.

DoubleGJ
Jul 21, 2011, 02:06 AM
If I can make a suggestion, I would appreciate an option to turn off the darkening of tiles where events are, so that only the text remains.

Sean
Jul 21, 2011, 03:42 AM
Well I'll be, I want this thing.

Gimme now.

Jgke
Jul 21, 2011, 04:48 AM
It will contain a possibility to edit text strings from the event viewer, right?

Violet CLM
Jul 21, 2011, 09:56 AM
Obi1: Not implemented yet by any means, but I don't imagine it'll present any serious difficulty since I'm already rendering levels at any resolution at all and the two are pretty much the same.
DoubleDJ: Right now the way I'm doing the event text makes that more difficult than it should be, but said way is also getting increasingly unsustainable the more I think about it, so hopefully I'll find a way to make that possible. It won't show up against all backgrounds very well, but I guess that's why it would be an option. EDIT: Stopped derping and started rendering the different difficulty levels by appealing directly to GL.Color4, rather than wasting time generating every texture four times, so now I feel much more comfortable continuing to use textures for event names. Consider this an easy addition!
Jake: Not a high priority, but sure, that can happen. I think something similar is in that big thread full of interface suggestions. :)

I'll probably put up a downloadable version once the very most basic level editing functionality is in place, mostly just to get reports of whether it messes up loading or saving any particular level, since I'm only really testing it on a pretty small set and conceivably there's something I just haven't thought of. From there, priorities will continue along the lines of replicating everything else JCS does and then building off of that, aside from certain features that just complement each other well (no point in adding an Undo button and then not adding Redo until some time later). Version changing is the exception so far because it has to be well integrated with saving.

ETA: If anyone wants to be super duper helpful, I don't know how Animaniacs events work, nor the structure of 1.00g/h .LEV files at all, but would love to write code supporting them given some proper specs.

ETA2: A question for y'all. As you've probably noticed, tile 0 uses a different color in JCS than the transparency of every other tile. However, the difference is between 72,48,168 and 79,48,168, and that's really small. Would it be best to make a more dramatic difference, leave the colors as is, or make all transparency look the same?

Sean
Jul 21, 2011, 04:52 PM
I think you should make tile 0 all black in the tileset display.

Violet CLM
Jul 21, 2011, 07:47 PM
I really do not find that attractive at all.
<img src="http://img824.imageshack.us/img824/2194/blackreally.png" />

Sean
Jul 22, 2011, 04:12 AM
What... only in the tileset display, not the editing display. Or did you program it differently?

Violet CLM
Jul 22, 2011, 11:37 AM
In JCS, at least, the same transparency color scheme is used for both tileset and level display, and that's definitely the simplest to program, but a black square certainly <em>could</em> be hacked in. That said, I think the best approach is consistency, since it's reassuring when the tiles you select look the same as the tiles you place. Also the Jazz purple is a pretty rare color as far as tileset design goes, whereas black... well...
<img src="http://img825.imageshack.us/img825/4948/blackreally2.png" />

WhiteBlaster
Jul 22, 2011, 02:28 PM
I have really no idea how difficult it would be, but what about making it changeable by the user? I mean, the colours would be the same normally, but the user could set an option to put them in contrast...

Violet CLM
Jul 22, 2011, 04:09 PM
Oh, yeah, I could do that too. This is going to have such a glorious .ini file at this rate.

Sean
Jul 22, 2011, 07:10 PM
Or you put an alternating white and grey checkerboard in place of tile 0. It's the generally accepted depiction of transparency.

Obi1mcd
Jul 22, 2011, 09:45 PM
I'm fine with the standard purple, but giving users a choice would be good.

Sean
Jul 23, 2011, 07:20 AM
I guess choice is always nice.

Jgke
Jul 23, 2011, 08:04 AM
Let people choose a picture for the transparent tile, problem solved :P

minmay
Jul 23, 2011, 09:59 AM
comment: you have such a wonderful variety of terrible, awful tilesets. i hope you still have the green pikachu one.

question: will this end up compatible with linux? will it at least be runnable on wine? i guess you probably don't know, that's fine.

i dearly look forward to making ridiculous animated crap not being a pain in the butt. thanks in advance.

one feature i would personally like that i don't believe has been mentioned: the ability to show tile masks at the same time as their graphics (by overlaying the mask with 75% transparency or somesuch).

Violet CLM
Jul 23, 2011, 11:02 AM
I think Mac/Linux compatibility will be possible, but I haven't started in on it yet. One thing I believe I'll need to do is make it a lot clearer what endianness I expect when working with the .j2l and .j2t files.
Animations: Yeah, I don't really know how that's going to work, so I'll probably look through the giant idea thread for interface suggestions. People apparently don't like sliders, and you should be able to delete animated tiles without messing up all the lower ones, but I don't presently know what else should happen on that front.
Masks: That's an interesting idea and I'll see how it would look.

Violet CLM
Aug 1, 2011, 10:33 AM
Another interface question, y'all: JCS uses Control+V to toggle displaying events (and similarly Ctrl+M for masks). Does anyone use this shortcut? I'd really be more comfortable with Control+V meaning "paste," and finding some other key combo for toggling event display, although nothing else would be quite as intuitive.

ETA: actually, screw it. Paste wouldn't be a useful hotkey anyway.

DoubleGJ
Aug 1, 2011, 11:41 AM
Never used these shortcuts myself, though I am aware they exist.

cooba
Aug 1, 2011, 12:39 PM
It wouldn't hurt to add Ctrl+C and Ctrl+V as alternatives to grab and paste for newer users, I think.

Obi1mcd
Aug 1, 2011, 09:00 PM
I wasn't aware they existed, so it should be fine to replace. Perhaps Ctrl-N for the events, since it's next to M.

Violet CLM
Aug 1, 2011, 09:39 PM
Ah, but Ctrl+N is New (Level), and that's actually a fairly standardized usage.

Anyway, I'm putting that off by working on the event selection window. This time around, you'll get to define your own personal event tree (although of course the old JCS categories will come as default). Also you can't type things that aren't numbers in the edit boxes; fun stuff! Not totally sure what to do with that stupid Illuminate Surroundings checkbox; maybe I'll just leave it in in hopes that blur will someday make it work for events besides Extra Live.

Obi1mcd
Aug 1, 2011, 09:42 PM
Oh, whoops, forgot entirely about New.

DoubleGJ
Aug 2, 2011, 03:11 AM
Also you can't type things that aren't numbers in the edit boxes; fun stuff!
So in JCS you can? I never noticed :B

WhiteBlaster
Aug 2, 2011, 03:34 AM
Also you can't type things that aren't numbers in the edit boxes; fun stuff!
Wait, why not including symbols? They would turn damn useful when creating MCE's: instead of having to search for the event number associated with an event, you just type in the event name and you're done...

Violet CLM
Aug 2, 2011, 12:27 PM
That's not a bad idea -- either an autocomplete textbox or a dropdown, though, I wouldn't want anyone to try to remember to type "TNT (armed explosive, no pickup)" -- but on the other hand I don't think you'd want every parameter box to exhibit that behavior all of the time anyway, not least because they're sized for numbers, not for text. And all restrictions on input could certainly be turned off in those special cases you might want to choose an event.

ETA: Okay, now you can drag an event from the tree list onto a parameter box and it'll fill in the event number.

Jerrythabest
Aug 3, 2011, 09:53 AM
Hey UR, awesome project you've got here! I'm checking the "watch this thread" button for sure, it looks very promising.

If I could be put to any use, just <strike>shoot me</strike> stuff a PM into my inbox ;)

cooba
Aug 3, 2011, 11:12 AM
Okay, now you can drag an event from the tree list onto a parameter box and it'll fill in the event number.Only by reading that I've realised how big of a thing this is.

Feels good to live in 2011.

Violet CLM
Aug 3, 2011, 06:29 PM
++2011

Work on the event window continues, largely because all that bitwise display and modification is complicated business. :| More importantly, though, another opportunity for people to be helpful to this project!
<img src="http://www.tachyonlabs.com/sam/OriginalMLLEIcon.png">
That's the clearest version I've been able to find of the icon for the original MLLE, but while it's 16x16, it's also got .jpg artifacts. Any creative folks out there feel like redoing it for authenticity value?

SilverBolt
Aug 3, 2011, 08:30 PM
Hey Unknown Rabbit, in order to keep out outside distractions, have you considered a fullscreen mode? That would be especially useful to those of us with dual monitors.

Would it be possible to add support for up to 99 triggers and 99 text strings? I know it can be done.

Also, maybe a "level preview" option? Kinda like parallax display, but without having to "save and run" the level. Maybe if you were to click it or press the hotkey, another "preview box" window would pop up, showing a frozen sprite for the enemies and trigger crates and such?

Obi1mcd
Aug 3, 2011, 09:31 PM
Would it be possible to add support for up to 99 triggers and 99 text strings? I know it can be done.

I'm unsure about the triggers, but I think text strings from 16 onward are sometimes used by JJ2. At the very least, I recall somebody saying that you could use them, but it would start to glitch the game out a bit.

Violet CLM
Aug 3, 2011, 10:01 PM
Hey Unknown Rabbit, in order to keep out outside distractions, have you considered a fullscreen mode? That would be especially useful to those of us with dual monitors.

I really know next to nothing about dual monitors. Is what you're proposing substantially different from maximizing the window?

Would it be possible to add support for up to 99 triggers and 99 text strings? I know it can be done.
JJ2 doesn't support more than 32 triggers, as you can test for yourself by editing JCS.ini. Text strings are more complicated. 1.23 (and presumably lower versions) will display text strings all the way up to #255, although #16 to about #63 run the risk of overlapping other data stored in the .j2l. Adding text strings higher than #~63 to a .j2l file does not interfere with any data in the .j2l itself, but does overlap with and apparently overwrite memory internal to JJ2. However, we know absolutely nothing about what deleterious effects this might or might not have, because it's so untested. TSF, by contrast, will only display text strings #0-15.

Also, maybe a "level preview" option? Kinda like parallax display, but without having to "save and run" the level. Maybe if you were to click it or press the hotkey, another "preview box" window would pop up, showing a frozen sprite for the enemies and trigger crates and such?
Basically what you're asking for is a sprite preview mode, which has been suggested before. I don't really see how that would be useful, and it would take a whole lot of new code since I'd want to get the images directly from anims.j2a. I'm not inherently against it, but the effort seems to outweigh the gain by far.

As a general rule, things that are completely feature ideas/requests and not pertaining to specific design things I'm talking about are probably better placed in the big thread, especially since that way you can look through the thread in advance and make sure your idea hasn't already been posted.

Violet CLM
Aug 4, 2011, 07:02 PM
<img src="http://img829.imageshack.us/img829/7281/layerproperties1.png" />
Revised Layer Properties screen as you can expect to see it 99% of the time. (Limit visible region goes disabled whenever Texture mode or Tile height are checked.)

<img src="http://img97.imageshack.us/img97/6006/layerproperties2.png" />
However, if you have more than one texture mode in the .ini file, then the familiar combobox reappears. All parameters (including the stars checkbox) have names specified per texture mode in the .ini.

<img src="http://img580.imageshack.us/img580/8303/layerproperties3.png" />
Finally, for Battery Check and other versions with no texture properties at all, the window is simplified even more, copying the layout from BCCS.

ETA: And now this window actually <em>works</em> as well as just looking pretty. Layers: resizable!

Obi1mcd
Aug 4, 2011, 10:03 PM
So, the texture mode stuff basically means that you get presets and don't have to set everything up each time?

cooba
Aug 5, 2011, 05:12 AM
So, the texture mode stuff basically means that you get presets and don't have to set everything up each time?<a href="http://www.jazz2online.com/jcf/showthread.php?p=317816#post317816">No</a>

Obi1mcd
Aug 5, 2011, 05:40 AM
Ah, thanks for explaining.

Jerrythabest
Aug 5, 2011, 09:59 AM
Very nice work! Also it's a great idea to remove/hide any features from the window if they're not available anyway.

cooba
Aug 5, 2011, 02:00 PM
It occured to me rather quickly that remaking the original icon is useless:

<img src="http://chaos.foxmage.com/cooba/mllewhat.png" />

So, I decided to try random things until I did something that I thought was decent:

<img src="http://chaos.foxmage.com/cooba/MLLE01.png" />

I think it resembles the original well enough. At first I tried to recapture the "multi-layer" part of the name but couldn't without making it look dumb, so I settled for some cheap bevel and decided to call it a bunch of buttons.

I also made a silly variation:

<img src="http://chaos.foxmage.com/cooba/MLLE02.png" />

They even scale to 32x32 quite well!

<img src="http://chaos.foxmage.com/cooba/MLLE01sm.png" /> <img src="http://chaos.foxmage.com/cooba/MLLE02sm.png" />

Violet CLM
Aug 5, 2011, 04:01 PM
Looks good to me; thanks muchly! I'd offer rep as well as thanks, but it says I have to spread some more around first. :(

cooba
Aug 6, 2011, 03:52 AM
Though, I dunno if it's a good idea to call it MLLE if it can't open .LEV files (yet?)

Jgke
Aug 6, 2011, 05:09 AM
Am I being slow or is that just old stuff, where is that from? :P

Violet CLM
Aug 6, 2011, 11:57 AM
Well, there are a lot of things it can't do at the moment. :P It's hoped to gain .lev support once someone figures out how they work, but the name is more a reference to the original MLLE, unlike JCS, using standard windows controls for scrollbars and buttons and stuff, instead of all those purple things. Arguably that distinction competes for salience with the .lev/,j2l difference and the much-increased usability of JCS (far fewer things hidden up in the top menustrip), but visually, gray vs. purple certainly stands out. And it rolls off the tongue better than, say, "JCS.NET."
Jake: Can't really answer that unless you use fewer pronouns? The original MLLE icon is old stuff, yes.

Jerrythabest
Aug 6, 2011, 12:28 PM
I could try to find out anything about the .lev format. We actually know what's stored inside (a tileset image, a color palette, multiple layers of tiles, events, some settings...), but (as far as I know?) we don't know anything about how things are stored in there. I'm actually quite optimistic that I could get an overall view of the structure (and possibly already more than just that) without too much difficulties if my expectations are right.

Violet CLM
Aug 6, 2011, 12:58 PM
Any investigation into .lev format should of course be informed by an understanding of <a href="http://www.jazz2online.com/wiki/index.php?J2L_File_Format">.j2l</a> and <a href="http://www.jazz2online.com/wiki/index.php?J2T_File_Format">.j2t</a> (and possibly, though unlikely, <a href="http://www.shikadi.net/moddingwiki/Jazz_Jackrabbit_Map_Format">LEVELX.XXX</a> and <a href="http://www.shikadi.net/moddingwiki/Jazz_Jackrabbit_Tile_Format">BLOCKS.XXX</a>) formats, since there will likely be things in common. All I know offhand is that the event structure (EVNT), stored as the antepenultimate section(?) in .lev files, looks identical to its .j2l counterpart, and the final section is the color palette and is formatted in a straightforward RGBRGBRGB order without the useless alpha values from .j2t files. That said, such investigation should also probably take place in <a href="http://www.jazz2online.com/jcf/showthread.php?t=19185">a separate thread</a>

In the realm of the obvious, people should probably compare .lev files to their closest counterparts, e.g. battle1.j2l and castle1.j2t for battle1.lev. As far as I know, <a href="http://downlink.lordprime.com/jazzjackrabbit/2/code/j2ff.zip">j2ff</a> remains the best tool for extracting the data streams for .j2l and .j2t files; it doesn't work well for TSF levels, but fortunately that's not relevant here!

Jerrythabest
Aug 12, 2011, 01:16 PM
Restoring lost posts from old hosting provider ;)
<img src="http://img853.imageshack.us/img853/4391/mllelevelproperties.png" />
Haven't posted any shots in a few days, so here's one. Adding "Browse" buttons is something people've wanted for a long time, and I thought it would be fun to add some dropdown suggestions to the Next Level box. The first one is an automatic suggestion based on the filename Carrot1.j2l; if your level is saved as giantpack13.j2l, for instance, giantpack14 will get added to the dropdown list. Like the textured background stuff, the Bonus Level field will reappear if you specify in the .ini that you have a use for it. The Multiplayer checkbox doesn't actually do anything at the moment, but it's in there for completeness' sake. Text is not yet implemented.

Can we get an "Go to" button too? Would make more sense than having to type out the next level's filename in the Open prompt every time.

EDIT: How high can your Ambient Lighting box go? As far as I know it's doable to have +100 lighting on startup, so it wouldn't be bad to push the limit from 100 to 127.

And, would it be possible to also go to the previous level? For example, using the name scheme or cache of some sort...

cooba: Currently the next level is the default choice in the Open dialog. If that turns out to be counter-intuitive I could stick a button in the menustrip too, but I don't think such a button has any place in Level Properties.
I need to do some more work on ambient lighting, but yes, there's certainly no reason not to include the full range. The thing about the ambient lighting sliders in JCS is that, for no obvious reason, the numbers as stored in the .j2l file differ from the Set Light events and the Level Properties slider displays. Instead of giving you the full continuum of numbers between 0 and 100 to choose from, the sliders allow 0, 1, 3, 4, 6, 7, etc., adding alternatingly 1 or 2 each time, meaning that the normal 100 is actually stored as 64 within the file. So I still have to do some modifying so that you see numbers closer to what you expect (i.e. type 100, save 64), but yes, the full game-understood range will definitely be included.
ETA: ugh, no, it's not as simple as alternatingly 1 or 2. Rather the pattern is 1212121221212122, repeating every sixteen numbers. Pfffffff.
ETA2: And fixed, thanks to the power of 1.5625.

Jake: In theory, I guess? Still, while I imagine the vast majority of levels only have one "previous" level, it does feel like a lot of fiddling and trickery for a fairly minor result.

*expectations exceeded*

Well, it would make it easier to find some certain level, for example, if browsing the devres. 'Oh fiddlesticks, I overshot that level with the properties menu button again. (Idea: the settings window stays open if that button is pressed (maybe if some settings))

Oh fiddlesticks, I overshot that level with the properties menu button again.Well, that's an argument to not add any more buttons to Level Properties, I think.

There's always the "last 4 levels opened" list too.

minmay
Aug 13, 2011, 01:56 PM
A bit late here, but about the Illuminate Surroundings checkbox: isn't it used as a marker by quite a few utilities?

Violet CLM
Aug 15, 2011, 09:18 PM
Update on .lev support: I was able to convert battle4 and race4 to 1.23! That's just opening code, and unfinished opening code at that; conversion and saving haven't even been touched yet. I think full .lev support will be the last feature to add prior to the first test release, although I've got a number of bugs and stability issues to track down before that too.

minmay: If you find some links to utilities that use that checkbox (preferably with accompanying documentation), I'd be happy to take a look at them and think it over.

Violet CLM
Sep 3, 2011, 02:33 PM
Okay, so I lied. LEV support includes conversion and saving, so I should be at release point, and yet here I am adding more things. In my defense, a lot of it is just adding error messages, but then there's this kind of stuff, which is just icing.
<img src="http://img707.imageshack.us/img707/8498/mlleparameters.png" />
In all, there are now five different input modes for a parameter:

The normal box where you input a positive or negative number within a range.
Checkbox (for certain boolean parameters).
Dropdown list of text strings.
Dropdown list of pipe-separated strings within another string, for JJ2+ support (Offset).
Dropdown list of .ini-specified named options, for e.g. Moth and Bridge.

cooba
Sep 3, 2011, 03:09 PM
Fun discovery: layer autospeeds don't actually go as high as 32767, the highest speed is 32 (or its whereabouts) and then it goes down to 64 which is no motion. Setting the speed to 63 has the same effect as setting it to -1, etc.

Violet CLM
Sep 3, 2011, 03:21 PM
Well, they're measured in pixels, so a speed of 32 will move it a tile per tick, 64 will be two tiles per tick, etc. How they're related to negative speeds will depend on the size of the layer.

cooba
Sep 3, 2011, 03:26 PM
Well, they're measured in pixelsUm, not in JCS?

Violet CLM
Sep 3, 2011, 03:40 PM
http://www.tachyonlabs.com/sam/TESTScrollSpeeds.zip
One row repeats every 224 pixels; the other every 288. Play around. The really fast layer is 96 pixels wide and has an autospeed of 64 just to show that 64 != no movement.

Violet CLM
Sep 4, 2011, 12:17 PM
<img src="http://img268.imageshack.us/img268/8835/mlleagaevents.png" />
And then I got distracted again. Not reading the parameters yet, but identifying the events is the first step...

ETA: The Cupid enemy from the dining room level? <em>Twenty-four parameters.</em> That... that is just irresponsible game design. How do you even design an event editor window for that?

Jerrythabest
Sep 5, 2011, 10:47 AM
<strike>24? Are there even that many parameter bits available? :roll:</strike>

Oh, nvm that. I see AGA has its own way of storing event data.

Violet CLM
Sep 5, 2011, 10:55 AM
Nope! AGA levels <a href="http://www.jazz2online.com/wiki/index.php?J2L_File_Format">use their own data2 structure</a> which I'm still working on. So those twenty-four parameters are actually twenty-two longs (= 88 bytes) plus two variably lengthed strings.

Jerrythabest
Sep 5, 2011, 03:16 PM
I guess you're gonna need an "Event Properties" button + window for that, I wouldn't recommend to put so many parameters in the event list window, haha

I wonder how they came up with that. Are there really so many possible options one could think of for a single event?

Violet CLM
Sep 5, 2011, 04:08 PM
The problem is, I suspect many AGA events are practically useless without their parameters set up right, so it might not be too wise to have all those boxes hidden from view. I think what I'm going to do is make sure everything saves properly and can be thoroughly edited within MLLE. Then whenever I get around to a test release, generous people can help with the work of figuring out what all the individual parameters do and setting up the .ini accordingly, which knowledge is not required for the programming itself.

(AGA, for whatever reason, ships with a file EventParams.ini which gives a few clues about how some of its events work. I'm not sure it's all 100% accurate -- it may be from an earlier version of the game -- but it definitely suggests that some of the parameters are going to be things like "angle of bullet," "whether bullet can go through walls," "can enemy jump," "what frame in the shooting animation does the bullet actually appear," etc. Lots and lots of events have string parameters, usually used to name another object (e.g. the switches) or sprite (e.g. bullets or shards from the stuff that Dot shatters). It's complicated and not at all in the same spirit as the rest of .j2l files.)

minmay
Sep 7, 2011, 04:09 PM
I need to check this forum more than once every two weeks...
minmay: If you find some links to utilities that use that checkbox (preferably with accompanying documentation), I'd be happy to take a look at them and think it over.
Well, the one that had leapt to mind was Project Toolbox...but then I went and looked at it to make sure, and found no mention of Illuminate Surroundings. So apparently I just have a bad memory.
Sorry to waste your time...

Violet CLM
Sep 21, 2011, 08:32 AM
<img src="http://img35.imageshack.us/img35/8826/mlleselection.png" />
You know, B is great. Really great. But sometimes you just want a little more control than a single rectangle is going to offer you. And that's where Shift and Control come in handy.

In other news, AGA support is doing well on at least the technical side, if not the understanding specific events side. You can edit their parameters just as well as those of ordinary events, with the interface more or less held constant between the two versions of the window, and as far as I can tell all the information is being saved properly.

Jgke
Sep 21, 2011, 09:02 AM
I can understand what Ctrl does, but what is with shift?

Violet CLM
Sep 21, 2011, 09:07 AM
Same as in PSP and presumably other programs. Shift adds to an existing selection, Ctrl subtracts.

Seren
Sep 21, 2011, 09:31 AM
An awesome idea which no one thought of but everyone wanted!

Jgke
Sep 21, 2011, 11:27 AM
Same as in PSP and presumably other programs. Shift adds to an existing selection, Ctrl subtracts.
...Why this way? :(
Most GUI's use Ctrl for add. (shift would then in this case be to remove stuff)

Troglobite
Sep 21, 2011, 02:27 PM
I'm used to shift for add and ctrl for remove from GIMP and such. Most cases where Ctrl is add, Shift is for selecting large chunks at a time or something.

Violet CLM
Sep 21, 2011, 05:42 PM
As I said, PSP (and apparently GIMP) do it that way. I'm trying to envision level editing as roughly analogous to a paint program, and so it is paint programs that make the most sense to look to for design. Shift is pretty common for adding to a selection in other programs too, like Windows Explorer, though Control does admittedly vary.

Sean
Sep 21, 2011, 08:57 PM
Paint.NET uses Ctrl to add. And so does Windows Excel. And PowerPoint. And Explorer (to select additional specific files). And...

cooba
Sep 22, 2011, 02:17 AM
Same as in PSP and presumably other programs. Shift adds to an existing selectionPhotoshop, too, which makes me very :! about this getting implemented.

(Except it's Alt that subtracts, but who cares)

Violet CLM
Sep 22, 2011, 07:45 AM
Paint.NET uses Ctrl to add. And so does Windows Excel. And PowerPoint. And Explorer (to select additional specific files). And...
...screw it, you'll get to choose.

Jgke
Sep 22, 2011, 07:47 AM
Yay, your JCS just got better :)

Violet CLM
Sep 22, 2011, 08:04 AM
I just need to figure out <em>where</em>, that is, where the settings will be stored. JCS puts everything in the registry, but that doesn't work as well if you're hoping to have Mac and Linux ports whenever you get around to figuring that out. They could be stored in an .ini or .xml or whatever file in the same folder as MLLE, but I'm designing it to have multiple copies in different folders, e.g. a JJ2 folder, a TSF folder, a Battery Check folder, and so on. Thus each one can have its own .ini file with its own particular list of events and texture effects and so on, but presumably things like keyboard shortcuts would be universal settings that one would want to hold for every copy in every folder. I guess I just need to figure out where appropriate settings folders are for various operating systems... and various versions thereof... blegh.

(The alternative, I guess, is to keep MLLE in one folder and one folder only and edit everything from afar, loading different .ini files each time a level is loaded or a version is changed. That would make filename code a bit more difficult, but more importantly, loading things would take a bit longer, and there's absolutely no internal difference between Battery Check and v.10o levels. Hmmm!)

Jgke
Sep 22, 2011, 08:15 AM
I'd suggest you to make a ./settings directory, and store the setting files like ./settings/123.ini, ./settings/124.ini, ./settings/battery.ini... That shouldn't be that hard to make, just load the appropriate .ini after checking the level version.
E: and it would make editing them easier for power users, since they're easily available.

Grytolle
Sep 23, 2011, 04:17 AM
add an include command to the .ini parser and include a globals ini from every game-specific ini?

Jerrythabest
Sep 23, 2011, 10:03 AM
I'd also prefer one copy/folder.

For BC/1.10o detection I'd see three solutions:
1) Probably the nicest way is to try to derive the file type from the only true difference: event usage. Many events simply don't exist in BC, so the easiest guess would be: assume BC, unless non-BC events are used. Maybe it's also possible to look at event parameters. It's probably not very difficult to come with a pretty good algorithm. The only caveat would be that work-in-progress-levels with little events set could be misclassified.
2) Another way would be to place a simple, empty file inside (for example) the BC folder, named "BC" or something like that. If the level file is in the same folder as the "BC" file, it's a BC level, otherwise it's an 1.10o level. If you store BC levels in a seperate folder, just create a "BC" file in that folder for MLLE to work correctly. This would make it difficult to store levels from both games in the same folder though. If MLLE is going to store seperate settings in .ini files inside game folders, it could also look for the ini file.
3) Unless it's possible to detect the correct game 100% accurate, a BC/1.10o toggle button is pretty much unavoidable.

Violet CLM
Sep 23, 2011, 10:38 AM
Regarding 1.00o vs. BC, I think what I might do is take advantage of some of the unused bytes in Data1 and just stick a flag in there somewhere to indicate what kind of file it is, probably for the BC levels. It wouldn't work for the original three (Binnen, Rain, Boss), but it'd work for anything made afterward.

An issue I see with only one copy of MLLE on a computer (as spread among multiple games) is that it wouldn't work very well for starting new levels, since where would you get the list of tilesets from?
ETA: Duh, each version profile .ini could just include the filepath. Hmm. I guess putting everything in one folder will work, and hopefully it won't slow down loading times overmuch. Problem solved?

minmay
Sep 28, 2011, 02:34 PM
Seems like the easiest way to handle settings would be to let the user provide the location of the settings file. This makes it easy to use the same settings file for multiple copies of MLLE, or to use different settings files for different copies.

Obi1mcd
Sep 28, 2011, 10:15 PM
Also, would there be an option to choose which Jazz2.exe runs the file when you Save & Run?

Violet CLM
Sep 28, 2011, 10:43 PM
Yes. There is a "SaveAndRun" setting in each game profile .ini file that gives the name of the program to pass the level to on saving. If SaveAndRun is blank or removed from the file, the menu option is grayed out, since AGA and the Jazz2 betas don't support command line level playing. (Battery Check, for whatever strange reason, does.)

Jerrythabest
Sep 28, 2011, 11:17 PM
BC does? :O I've done all testing for BCCS by editing/replacing Binnen.j2l! In fact, I've actually removed the Save & Run menu option :roll:

Violet CLM
Sep 28, 2011, 11:49 PM
Well, you'd have to change the string in JCS.exe from "Jazz2" to "Battery," which might or might not be possible given that they're different lengths, but dragging levels onto it does work for me.

Love & Thunder
Sep 29, 2011, 08:34 AM
Will this editor have any problems with the LK Avalon version of TSF?

Troglobite
Sep 29, 2011, 09:31 AM
Will this editor have any problems with the LK Avalon version of TSF?

I'm pretty sure the level format is the same for LK Avalon, so it won't be an issue?

Violet CLM
Sep 29, 2011, 10:07 AM
What Troglobite said. LK Avalon TSF and, um, non-LK Avalon TSF may differ in their internal coding, but they are both able to read the same level files and both may have levels passed to them via command line, which are the only ways this program really interacts with such executables.

So, folks, tell me about the Multiplayer checkbox in Level Properties. Do you ever use it? (I don't.) In your ideal world, what function would it have, if any?

minmay
Sep 29, 2011, 10:18 AM
I use it, but I'm not really sure why because it has no actual function whatsoever. I would just remove it outright given the option.

Jgke
Sep 29, 2011, 10:27 AM
Perhaps it could turn some certain events to MCE's? The fly carrot, for example.

Seren
Sep 29, 2011, 10:45 AM
I sometimes use it as an event filter to make searching for events a bit faster, however default JCS.ini definitely fails at defining which events shouldn't be used in MP. Still, imo it works alright for simple MP levels.

Sean
Sep 29, 2011, 11:08 AM
Keep it in, you don't know what could turn out useful when people finally find out what else it does.

Love & Thunder
Sep 30, 2011, 07:05 PM
I never use it. For me it's just a waste of space(The MP Button), but clearly, some people like it, so keep it anyway.

KRSplat
Sep 30, 2011, 09:48 PM
*superstition*

Violet CLM
Sep 30, 2011, 10:31 PM
Perhaps I should clarify. I don't believe it has any effect in-game, although I'm open to being corrected. As far as I know, its only function is to make JCS restrict the events it lets you select and in turn warn you upon saving if you're using any others. Currently, the checkbox appears in MLLE's Level Properties, although you can configure the game-specific .ini file to remove it like almost every other setting in that window. However, it doesn't <em>do</em> anything right now. So it's not just a question of removing it or not, there's also the question of could it do something else that people would find more useful, and if so, what?

Seren
Oct 1, 2011, 01:34 AM
Well, although I might be thinking inside the box now, imo there's definitely no point in making it limit SP levels in any way, because SP can use all events and MCE's MP can. There should be no MP-checkbox-only features, because that'd be just annoying, having to switch it whenever there's a need to do something reserved for MP for some reason. That said, I think the only possible use of that checkbox is making it an event filter, like in JCS, limiting the possibilities when checked.

Love & Thunder
Oct 1, 2011, 03:59 PM
You could replace it with an advanced mode setting or something?
Or a Multiple Events per Block Setting(With a little box next to it where you put in a number saying how many events per block are allowed)?
Or perhaps just remove it, because it has no useful function.

Jgke
Oct 2, 2011, 12:04 AM
Or a Multiple Events per Block Setting(With a little box next to it where you put in a number saying how many events per block are allowed)?

You wish ;-)
It's a JJ2 limitation.

Love & Thunder
Oct 2, 2011, 04:41 PM
Yeah, I knew there was a reason no-one had thought of that before. :lol:

Seren
Oct 2, 2011, 10:20 PM
And on the matter of this:
You could replace it with an advanced mode setting or something?
The main reason we're discussing whether MP checkbox should make it in and how should it work, is because it's kept in the j2l file unlike any other checkbox Violet decides to add. Or rather (since it's possible to change some stuff in the file structure afaik) because this checkbox is commonly used in level files already. As such, if there is a need for any kind of "advanced mode", there can be just another checkbox added and there is no point in changing the existing one. Editor mode checkboxes don't need to be kept inside of the level file, because that's rather pointless in most cases. On the other hand, drastically changing the meaning of the box could affect levels that already have it checked, depending on the changes. That's why I personally ask for leaving it as it is, because I use it as it is, but if there are better ideas I might change my mind. It doesn't seem there are any though.

Violet CLM
Oct 2, 2011, 11:44 PM
I checked, and apparently 16% of the .j2l files in my JJ2 folder have it checked, so I guess my never using it is not quite as absolute a tendency as I had hoped. I'll see what I can do, although I wouldn't expect it to be functional in the first test release when I finally get around to that. Thanks for the feedback.

<em>That said,</em> that byte is used for a checkbox in JCS, so its values are only ever 0 and 1. That means it could <em>easily</em> be replaced by a dropdown menu of level modes, with up to 256 different options of which "generic multiplayer" or somesuch would only be the second one. So... tell me about this "advanced mode," I guess? And yes, as SE points out, this would only be useful for stuff that's set on a per-level basis and yet only pertains to the editor experience.

Sean
Oct 3, 2011, 05:32 PM
I'd say advanced mode could give way to MCEs. No?

Violet CLM
Oct 3, 2011, 05:45 PM
Again, looking for things that one might want to set on a <em>per level</em> basis, not a per game basis. Any sort of MCE support I feel like adding would presumably be enabled or disabled within the game profile .ini files, and would thus be available for all levels made for that game/version. I don't see any reason you would want, for instance, a shortcut for the black swinging vine MCE in foo.j2l but not bar.j2l if they're both JJ2 levels.

Love & Thunder
Oct 3, 2011, 05:53 PM
Well, maybe if you have it on, the MCE Event appears(As in, it doesn't appear in the Select Event Dialogue if it's unchecked), and maybe it could allow you to set events to move with a specific path(User Defined, with it so that in every event which would support it(This would work brilliantly with Generators), there would be a thing where you select a premade path or something? Maybe you could have this menu somewhere that lets you make paths and MLLE would give it a number(Like with Text) and you put in a number on the event, and it does the movement)? I'm not sure. There are loads of things it could do, but my mind's blank at the moment. I'll edit this when I think of some better ideas.

minmay
Oct 4, 2011, 09:17 AM
This is an editor, not a game. It's still making levels for JJ2; it has to obey JJ2's limitations.

Love & Thunder
Oct 4, 2011, 09:32 AM
Hmm... True... True... But, again, I don't know all the limitations of JJ2. But, then again, maybe my ideas don't have to bend the rules, it could -- temporarily -- create Belt events under the Event for Side-to-side movement, and -- believe me -- that's all you really need. You could find another work-around for moving them up/down, and another suggestion is to have the paths have a setting to make them loop, and another to have them have a ping-pong loop(As in, they do the path, then they do it reversed, then they do it normally, then reversed etc.) setting. Although, I'm not sure temporarily creating events is possible. Unless you have it so that it changes its speed between one you define and zero by storing the numbers in a Variable?

Jgke
Oct 4, 2011, 09:49 AM
-- temporarily -- create Belt events
No temporary events.
up/down
No up movement. Items such as ammo can be shot down, though.
make them loop, and another to have them have a ping-pong loop(As in, they do the path, then they do it reversed, then they do it normally, then reversed etc.) setting.
It's possible for an item to move right and then teleport a few tiles left. This works for enemies too.
Although, I'm not sure temporarily creating events is possible
It isn't.
Variable?
I wish with you.

Love & Thunder
Oct 4, 2011, 09:57 AM
Hmm, maybe your idea, then?
it's possible for an item to move right and then teleport a few tiles left. This works for enemies too.
I think that could work for Paths. I mean, it wouldn't be that customizable, but it would work. Sort of.

Jgke
Oct 4, 2011, 10:04 AM
Hmm, maybe your idea, then?

I think that could work for Paths. I mean, it wouldn't be that customizable, but it would work. Sort of.

How so? It can only teleport a few tiles, and not up or down. Again, shooting it would move it down but the teleport part sounds a bit unnecessary for this.

Love & Thunder
Oct 4, 2011, 10:11 AM
Well, it would work because it would move left/right. Some people might need up/down, but -- from what I can tell -- it's impossible to move things up/down. Shooting things would make it go down, but maybe that could be useful(For example, imagine you want to make a Shooting Gallery or something(Where you shoot a moving target that's above you), but you can't figure out how. You could use a Path to move some Enemies and Pickups left/right).

Jgke
Oct 4, 2011, 10:31 AM
It would warp an item 255 pixels left/right at most. That would be... about 8 tiles. And it couldn't go anywhere else. For example, it goes 8 tiles on a belt, then warps back to the beginning. So, if you have use for this, go ahead and tell me :)

Love & Thunder
Oct 4, 2011, 10:34 AM
Target Practice. It would move an Enemy like this and it would continually generate Enemies that would act as Targets, the player would have to shoot upwards to shoot at them. 8 tiles is enough. :D

Jgke
Oct 4, 2011, 10:48 AM
Heh, unfortunatively hitting an enemy is easy :(
But the warp thing can be used for eyecandy too. (http://www.jazz2online.com/downloads/6161/abandoned-park/)

Love & Thunder
Oct 4, 2011, 10:50 AM
There, right there, you just gave it a use. :D Sure, it's just Eyecandy, but let's face it, what's a level without Eyecandy?

Violet CLM
Oct 4, 2011, 12:01 PM
It would warp an item 255 pixels left/right at most.

128. It's a signed parameter.

So, folks, this is a lovely discussion, but given that I <a href="http://www.jazz2online.com/jcsref/node.php?node=74&mode=id&menu=topics">wrote</a> the <a href="http://www.jazz2online.com/jcsref/node.php?node=84&mode=id&menu=topics">book</a> on moving stuff around with belts, I'm pretty sure I'm qualified to say that Jake is overall correct about what JJ2 can or cannot presently do. It <em>would</em> be nice to have some sort of advanced support for belts, but creating elaborate paths is probably not the right way to go. Elsewhere cooba <a href="http://www.jazz2online.com/jcf/showpost.php?p=469824&postcount=6">has described</a> a proposal for MCE support in DJazz's WebJCS, and while I'm not too fond of it because I don't see the use of the vertical line, it is nice because it's an actual proposal with specific interface repercussions.

One idea I've had that probably won't be too hard to implement is allowing the user to replace the standard parameter boxes (or lacks thereof) for a single event with the MCE Event parameters (with Event maybe titled Speed/Event to indicate it is also used for belt speed), so you don't have to edit the .ini file just to give Watermelon a speed parameter you're never going to use in any other level. This would be a checkbox or something in the event selection window. Is that along the same lines as the path idea? If not, please feel free to give a more specific proposal for implementation (and usefulness).

...and all this is still per-game, not per-level, but perhaps I should just give up on that distinction. Maybe simply no one has ideas yet for editing modes.

cooba
Oct 4, 2011, 12:10 PM
Maybe simply no one has ideas yet for editing modes.The biggest advantage MLLE has over JCS is that the earlier is actively developed!

Violet CLM
Oct 4, 2011, 12:12 PM
By some particular-to-me definition of "actively." But yes.

Love & Thunder
Oct 4, 2011, 01:01 PM
128. It's a signed parameter.

So, folks, this is a lovely discussion, but given that I <a href="http://www.jazz2online.com/jcsref/node.php?node=74&mode=id&menu=topics">wrote</a> the <a href="http://www.jazz2online.com/jcsref/node.php?node=84&mode=id&menu=topics">book</a> on moving stuff around with belts, I'm pretty sure I'm qualified to say that Jake is overall correct about what JJ2 can or cannot presently do. It <em>would</em> be nice to have some sort of advanced support for belts, but creating elaborate paths is probably not the right way to go. Elsewhere cooba <a href="http://www.jazz2online.com/jcf/showpost.php?p=469824&postcount=6">has described</a> a proposal for MCE support in DJazz's WebJCS, and while I'm not too fond of it because I don't see the use of the vertical line, it is nice because it's an actual proposal with specific interface repercussions.

One idea I've had that probably won't be too hard to implement is allowing the user to replace the standard parameter boxes (or lacks thereof) for a single event with the MCE Event parameters (with Event maybe titled Speed/Event to indicate it is also used for belt speed), so you don't have to edit the .ini file just to give Watermelon a speed parameter you're never going to use in any other level. This would be a checkbox or something in the event selection window. Is that along the same lines as the path idea? If not, please feel free to give a more specific proposal for implementation (and usefulness).

...and all this is still per-game, not per-level, but perhaps I should just give up on that distinction. Maybe simply no one has ideas yet for editing modes.
Well, the paths could allow things like -- for example -- a coin to move from left to right on the ceiling of something, really fast(Or, if you can only make it go in one direction, it could go in one direction, then teleport back to the beginning), and you can only go to a certain part of the level if you have that coin. That would be useful... Sort of. :D

minmay
Oct 5, 2011, 08:53 AM
You actually can move some events (crates and pickups, I think) up. It's just really hard.

Anyway, I'm pretty sure it would be easier to make the "path" manually than it would be to use any special interface for it, unless it were very limited in what it could do.

Love & Thunder
Oct 5, 2011, 11:51 AM
Well, you get the idea, right? Advanced mode would allow some features that non-Advanced would lock off. Oh yeah, another thing Advanced Mode being off could do is a Tutorial, which would turn off if you have Advanced Mode on. And by Tutorial, I don't mean the built-in documentation, I mean a full-fledged, properly made Tutorial. :D I've been using JCS for as long as I can remember, and I only found out that you can flip tiles about 6 months ago. Let's face it, there's so much about JCS that isn't documented that should be, MLLE is also full of features that should be documented properly for beginners(The one you're working on, not the one used by the Developers for the first 2 OEM Versions). I remember that up until a few years ago, I didn't know what the Animated Tiles Dialogue was for, or how to use it. So, please consider this idea. :D

Violet CLM
Oct 5, 2011, 12:16 PM
I assure you that flipping tiles <em>is</em> documented. It's in the JCS help file in the Layer section. Animated tiles and their properties are in there too. I don't think I could say much in a tutorial that wouldn't be covered in a help file for those who'd care to read it, and help files are <em>far</em> less work than interactive tutorials.

Love & Thunder
Oct 5, 2011, 12:20 PM
By making a Tutorial, I mean making the Help File show up every time you start up JCS, but not Full-Screen(As in, the Help File's not Full-Screen). Also, there are some things that aren't documented, so I suggest that you change the Help File to be more helpful. It would make JCS more user-friendly for new users. :D

Jerrythabest
Oct 6, 2011, 03:30 AM
What you are suggesting reminds me of those 'tip of the day' welcome messages some programs feature. Although I personally switch those off, I think such a feature could be used to highlight MLLE's more advanced/less obvious possibilities to new audiences?

As UR is making a new editor from scratch I think it's not really a matter of changing the help file, it's more a matter of making a better one for MLLE. If you just look at JCSref (http://www.jazz2online.com/jcsref/) you'll realise how much is actually 'undocumented' in JCS's help file. In fact, we now know things the creators of the game probably didn't even know to be possible.

Violet CLM
Oct 17, 2011, 08:34 PM
<a href="http://www.sendspace.com/file/73fh2j" style="font-weight: bold">MLLE test release #1</a>
To install: extract all files into a single directory (not necessarily your main JJ2 directory). Open MLLE.ini and replace the folder names in the [Paths] section with those appropriate to your own computer. Run MLLE.exe. Requires .NET runtime environment, I guess.

Major features missing in this release, aka my (partial) to-do list:
&#x2713;Tile layout editing
Reworder-esque functionality
&#x2713;Help string editing
&#x2713;Animated tile editing
Tileset compilation/conversion
Search & Replace Events window
Tile Type selection window (although you can just use the popup menu)
&#x2713;Functional Multiplayer mode checkbox
&#x2713;Differentiation between Battery Check and 1.00o
&#x2713;Conversion to AGA
&#x2713;Proper 1.00g/h translucent tile support
Most error messages
Mac and Linux versions
Documentation
&#x2713;cooba's icon, because I got an error trying to convert it to an .ico and then never got around to trying again
Support for AGA events not included in the demo, because I only have the demo :(


You can probably tell that this release is really pretty low on actual layout editing capabilities. You can clear and resize layers, and change the events around all you like, but that's about it. This release is intended to determine whether I've got pretty much everything else taken care of before delving deep into that stuff.

I'm particularly interested in looking for any mistakes in saving, loading, and converting between versions, although any and all errors are of course welcome. I've only really been testing this in Windows 7, so if stuff looks broken/ugly in other versions of Windows, screenshots and such would be great. I've included a .pdb debugging file which should produce some nice informative errors for you to copy the text of. A short list of known bugs, off the top of my head:
Editing a Generator event (by pressing E or clicking the Select Event menu item over it) produces an error and/or a jarbled mess of parameter setup boxes.
The vertical scrollbars will stop redrawing themselves from time to time. Not sure how to fix this.
Certain combinations of window and layer sizes lead to errors with the scrollbar values, but I haven't determined exactly the source of the problem, so if you run into this, details about what you did to cause it would be appreciated.
Scrollbars don't always get updated with the proper dimensions of a layer/tileset right away. Again, not sure what's up, so step-by-step ways of triggering this would be appreciated.
Scrolling in parallax view while selecting a layer with speed 0 doesn't have any effect. This makes sense, since layers with speed 0 just don't move, but it makes it harder to edit some of the tiles. Maybe more of a design issue than a bug proper.
The game profile .ini filenames are currently hardcoded instead of being specified in MLLE.ini, so 11o Style and JCS Style never actually get read.


Finally, besides generally looking for mistakes in loading/saving/converting and other errors, I'd love a volunteer or two to help me with AGA events. Right now, even though only the events used in the demo are supported, there are literally hundreds of parameters whose functions need to be determined in order to build a proper .ini file. While a lot of them are almost certainly repeated across similar events, that still leaves a whole lot of stuff to discover, and I don't really want to tackle it all alone.


tl;dr: Download this and you can look inside 1.00g/h and AGA levels for the first time ever! Just let me know if anything goes wrong.

<small>Besides thanks to everyone who's worked on the various file formats at play here, thanks go also to EvilMike and Jerrythabest, whose JCS.inis I make use of.</small>

Jerrythabest
Oct 18, 2011, 12:42 AM
Aaaah it's awesome! :D Absolutely brilliant how you did the events window, it's great! (Although, in BC, elevators go up or down, not left or right :p)

Two minor suggestions (just some polish though) ;)
-When one of the menus is opened (say, File) and you slide to the next (Edit), make it so that the next menu is opened
-For event parameter checkboxes, display the parameter name only once

Anyway, I'm impressed... MLLE is coming out REAL GREAT! :D


EDIT: Also, I must say, even though it's just a temporary logo it plays nice with Windows 7's folder icons!
http://jerry.webwideworlds.com/zooi/MLLE/MLLEFolder.png

Violet CLM
Oct 18, 2011, 01:19 AM
:o Yeah, you can tell I didn't test some of those dropdowns at all. Will fix. As for your suggestions:
- I haven't actually figured out how to do that yet, but I agree with the sentiment.
- I wasn't sure what to do there. If I only had one line -- the checkbox itself, with the label on the right -- the spacing would look weird compared to all the other parameter input types. Putting no text on the right of the checkbox at all, or something generic like "True," also looks weird. Nothing really looks <em>right</em>.

Jerrythabest
Oct 18, 2011, 02:02 AM
How about this? It doesn't look too bad I think
http://jerry.webwideworlds.com/zooi/MLLE/Checkboxevents.png

Jgke
Oct 18, 2011, 03:21 AM
Suggestion: Down-scale the picture in your first post and place the link there.

Jerrythabest
Oct 18, 2011, 05:33 AM
No! UP-scale it and make that the link! Links to MLLE should be HUGE! :rolleyes:

Toni_
Oct 18, 2011, 01:39 PM
Everytime I try to open it, it freezes. FPS: 16000+ Elapsed: 50+ . After 2-3 mins, it gets normalized, FPS: 60, Elapsed: X+ . But, once I press a mouse on something inside the window, it freezes again. What could cause the problem?

P.S. I had to install .NET Framework today, version 4.0something.

Violet CLM
Oct 19, 2011, 10:14 AM
Just to be sure; you did extract all the files into the same folder and set up all the path names (or at least JJ2) in MLLE.ini, yes?

Toni_
Oct 19, 2011, 02:03 PM
Yeah, I did.

Violet CLM
Oct 26, 2011, 07:55 PM
I'm not familiar enough with the runtime framework to know if you did everything right. I would suggest finding something else that requires .net, downloading that, and seeing whether that other program works if or if the problem is within your installation. I've certainly never experienced the behavior you describe.

Sean
Oct 29, 2011, 08:49 AM
Quick suggestion: what's the feasibility of implementing a small code to randomly fill in a given space using set parameters? I'm tired of 'randomly' filling in blank spaces.

Violet CLM
Oct 29, 2011, 10:19 AM
Planned and has been planned pretty much since the beginning. I am well familiar with how much time gets wasted when using tilesets like Castle or Carrotus.

In other news, animated tile editing is going pretty strong. You can clone and delete animations, add flipped or animated tiles as frames, and associate events with animated tiles just like with regular tiles. (I've tried making entire animated tiles translucent, as opposed to just their individual frames, but unfortunately that has no effect in JJ2.) Still a number of issues to work out, though, including making sure you can't embed an animated tile within itself and trigger a stack overflow error. Also selecting a generator event works properly now, and 1.00 translucency support is almost done.

Jerrythabest
Oct 30, 2011, 01:22 PM
Hey, I never knew about that 'crazy animations' thing! That's just awesome.

I wonder though, do 1.00, BC etc. also support crazy anims?

Violet CLM
Oct 30, 2011, 02:13 PM
*uses MLLE to check*
Yes. Ah, the beauty of a shared engine.


ETA: In the progress nobody really cares about department, here's a window for choosing which sound effects an AGA level will use for various (mostly unidentified) purposes.

<img src="http://img33.imageshack.us/img33/7703/mlleagasfx.png" />

Jerrythabest
Nov 1, 2011, 05:58 AM
Such an interface would probably also be useful for Ambient Sound ;) (it could possibly list associated sprites for MCE's too!)

Violet CLM
Nov 1, 2011, 08:09 AM
Anyone who wants string descriptions for ambient sound is welcome to edit the .ini themselves to replace the textbox with a dropdown.
ETA: ...although it occurs to me that MLLE might not actually read a single .ini line of such a length. Well, I can fix that.

minmay
Nov 1, 2011, 09:18 AM
My string descriptions for ambient sounds will be about which sprites they load.

Toni_
Nov 1, 2011, 09:38 AM
It would be good if we can hear the sound effects in JCS, so we can decide what fits the most.

Violet CLM
Nov 1, 2011, 09:47 AM
Yeah, <a href="http://www.jazz2online.com/wiki/index.php?J2A_File_Format">we don't know anything about how those work.</a>

Violet CLM
Nov 14, 2011, 02:55 PM
<img src="http://img7.imageshack.us/img7/1674/mllefilledrectangle.png" />
++filled rectangle tool

(And no, since it's a <em>rectangle</em>, it doesn't handle slopes and such. That's rather more complicated and won't be done until later.)

Love & Thunder
Nov 14, 2011, 03:44 PM
That will save so much time trying to get a natural-looking Diamondus ground! :D Oh, and I only have TSF(And BC, and AGA Demo), will I be able to use the flipped Tiles in Animations thing?

Violet CLM
Nov 14, 2011, 04:02 PM
I guess you could download one of the levels in that thread and try playing it in TSF...

Ragnarok!
Nov 16, 2011, 03:18 PM
Just tried it out and thought it was freaking awesome, so far. =)

Love & Thunder
Nov 16, 2011, 07:57 PM
Okay, I've tried the Crazyanims level, and the very frame the level started, this happened:
Jazz Jackrabbit 2 has caused an access violation at address 0046B34Ah by attemting to "read" from address 00000000h.
DS = 0023h EAX = 51CA00h
ES = 0023h EBX = 20h
FS = 003Bh ECX = 46B33Eh
GS = 0000h EDX = FFFFFFFFh
CS:EIP = 001Bh:0046B34Ah ESI = 0h
SS:ESP = 0023h:0012ECB4h EDI = 12ECC8h
SS:EBP = 0023h:0012FC30h EBP = 12FC30h
So, I tried Crazyanimstsf, and it didn't look strange. All that really looked strange was the flowers embedded in the ground, and even that wasn't very weird.

Violet CLM
Nov 16, 2011, 09:04 PM
Okay, since you did that research, I'll go into a little more detail, as much as is possible. Short answer is: I don't know why that error occurs. If you download practicalexample.j2l, for instance, that level does run in TSF. Some levels crash TSF, others don't, and I haven't yet figured out (read: bothered to figure out) what the distinguishing factor is. My guess is, once the technique becomes easy to implement, either here or through WebJCS, someone will figure it out without much difficulty and that will be that.

As for crazyanimstsf: shoot the flowers. They're destruct scenery, even though their initial frame is animated. You should have seen the same effect with the multi-color stomp blocks, although people tend not to notice those for some reason. There's another example in DryLava here which should also run in TSF.

FQuist
Nov 18, 2011, 03:05 PM
*appears*

First of all, awesome. Thanks for being awesome, Violet.

So, documentation. I used to have a dream about jcs being linked to either ERE or jcs.ref documentation-wise. I'd suggest making it very easy to get ERE info on most events, and perhaps on some of the properties. You could link to one overall article for things (f.ex animations) or to specifics (belt left)

*vanishes again*

Jgke
Nov 19, 2011, 02:46 AM
How about this: you hold the mouse over an event, and it shows a summary of the event (and perhaps even a picture?), and if you press it with right click or something, it takes you to the ERE page?

Violet CLM
Nov 19, 2011, 10:44 AM
The ERE is <a href="http://www.jazz2online.com/wiki/List_of_JCS_Events_by_Number">missing lots of events</a>.
Do you seriously want the ERE to include every single event from JJ2 (all versions), Battery Check, and Animaniacs: A Gigantic Adventure? Because that would be required for equal treatment, and it would be pretty weird if help buttons behaved differently across .j2l versions.
That would require a person to have internet access in order to be able to read about events.

Jgke
Nov 19, 2011, 01:28 PM
Perhaps a 'press help to learn more' in the help box if there's an ERE article? The summary texts would be included with the client.

DennisKainz
Nov 20, 2011, 09:14 AM
ISSUE WITH MLLE:
Folder MUST be C:\Games\Jazz2\

... unless I missed something ...

Violet CLM
Nov 20, 2011, 09:31 AM
To install: extract all files into a single directory (not necessarily your main JJ2 directory). Open MLLE.ini and replace the folder names in the [Paths] section with those appropriate to your own computer.
Unless you did do this, and it's hardcoded somewhere else that I'm not thinking of?

Violet CLM
Nov 21, 2011, 04:50 PM
All right, chaps, contribution time. Check out the event list used for JJ2 in the MLLE test release. It's based on EvilMike's JCS.ini, with various events renamed and recategorized, but even moreso. While the file is of course editable, I'd nonetheless like to ship with it already as good as possible, so if anyone has suggestions for things that should be changed in the .ini as it stands, for whatever reasons, bring'em on. One thing I'm considering in particular is combining Lighting and Sound into a single category like I already did with Sign post and Start pos; thoughts?

Love & Thunder
Nov 22, 2011, 10:23 PM
That would be nice(Sorry about the short message, my computer is low on power and doesn't charge anymore for some reason). :)

EDIT: Okay, I found a bug:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: Value of '-1' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'.
Parameter name: Value
at System.Windows.Forms.ScrollBar.set_Value(Int32 value)
at Mainframe.LoadJ2L(String filename) in C:\Users\Sam\documents\visual studio 2010\Projects\Renderer1\Renderer1\Mainframe.cs:lin e 597
at Mainframe.openToolStripMenuItem_Click(Object sender, EventArgs e) in C:\Users\Sam\documents\visual studio 2010\Projects\Renderer1\Renderer1\Mainframe.cs:lin e 566
at System.Windows.Forms.ToolStripItem.RaiseEvent(Obje ct key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.(-)(-)(-)(-)(-)(-)(-)(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(Eve ntArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(M ouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventIntera ctive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(Event Args e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.(-)(-)(-)(-)(-)(-)(-)(-)(-)(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.(-)(-)(-)(-)(-)(-)(-)(-)(-)(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Mes sage& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.239 (RTMGDR.030319-2300)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
MLLE
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Program%20Files/MLLE/MLLE.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.235 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.236 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
OpenTK.GLControl
Assembly Version: 1.0.0.0
Win32 Version: 1.0.278.44921
CodeBase: file:///C:/Program%20Files/MLLE/OpenTK.GLControl.DLL
----------------------------------------
OpenTK
Assembly Version: 1.0.0.0
Win32 Version: 1.0.278.44921
CodeBase: file:///C:/Program%20Files/MLLE/OpenTK.DLL
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.233 built by: RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Ionic.Zlib.CF
Assembly Version: 1.9.1.5
Win32 Version: 1.9.1.5
CodeBase: file:///C:/Program%20Files/MLLE/Ionic.Zlib.CF.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
It happened when I tried to open the Battery Check Boss Level.

Violet CLM
Nov 30, 2011, 03:22 PM
Sorry, I didn't see the error until now because editing the post didn't bump the topic. That's a scrollbar bug... there are probably several of them that at some point I'll buckle down and fix. It happens when loading new levels, as you said, based (I suspect) on some combination of the layer sizes and scroll positions of the view before loading and the view after loading. I've not deduced the exact cause, though, so if you could find a 100% reliable way of raising that error, that'd be great. :)


In other news, in keeping with the thread title, I guess I need to start implementing auto scroll into parallax mode...

Love & Thunder
Dec 5, 2011, 12:47 PM
A 100% reliable way of causing that error is to follow these steps:

Step 1: Load up MLLE.
Step 2: Load up the Battery Check Boss level.

It should then come up with that error. I tried this three times, so I'm pretty sure it works every time, although it might not happen sometimes.

Love & Thunder
Dec 7, 2011, 08:42 AM
So, what's happening in the world of MLLE?
(Sorry about the Double-Post, but it's needed in order for the question to be answered)

Violet CLM
Dec 7, 2011, 09:55 AM
Not much in a while, honestly. The rectangle tools were a bit boring with all the conditional logic about the size of the rectangle, the size of the stamp, blank tiles, etc., so a lot of my energy dissipated and I spent my Jazz time helping out with WebJCS instead of competing with it. I'll get back to it soon, and those scrollbars will finally feel my wrath.

Jgke
Dec 7, 2011, 01:07 PM
Kill them.
Kill them with fire.
And then fix them, so that they can be tortured over and over again by running mice over them }>

Marijn
Dec 7, 2011, 01:22 PM
You can get the Jazz 2 path from the registery key: HKEY_CURRENT_USER/SOFTWARE/Epic MegaGames/Jazz Creation Station/1.00/Paths.

Even thought I know conflicts with the point of a alternative to JCS.. and this doesn't work for Battery Check, I will just say this: You should handle the exception if the file isnt found :D

Violet CLM
Dec 7, 2011, 01:48 PM
I'm familiar with the registry, but as you say, it doesn't work for all versions, and I'm unclear on how well it translates cross-platform. I don't think I can or should count on it. But yes, error messages are something there should be more of.

zeroFLAMES
Dec 16, 2011, 12:25 PM
Ive downloaded MLLE and it works good except that I can't select any tile. Can anyone help me? I use JJ2+TSF.

Jgke
Dec 16, 2011, 12:28 PM
Editing levels is currently not supported.

Violet CLM
Dec 16, 2011, 03:00 PM
Technically you can select tiles using the B hotkey, but Jake is right that you can't do anything with them in the released copy. Eeeesh, fine, I'll work on this some more. Definitely got some catching up with DJazz to do at this point.

Jgke
Dec 16, 2011, 03:09 PM
Don't rush anything, use the Valve release speeds :)

Violet CLM
Dec 16, 2011, 03:15 PM
I will use the 3D Realms release speeds.

wait is that joke not funny anymore??

Love & Thunder
Dec 16, 2011, 10:16 PM
It's still funny. 3D Realms took so long that I actually didn't even know what Duke Nukem Forever was when it was announced 1-3 years ago. XD

DoubleGJ
Dec 17, 2011, 12:03 AM
Over here, DoubleGJ release speeds should be a thing.

Love & Thunder
Dec 19, 2011, 06:55 AM
Come on, people! Don't let this thread die! We don't want another BCCS, do we(As in, we don't want this to die horribly)?!

EDIT: By "We don't want another BCCS" I don't mean in any way that it was bad, it looked great. Although, it died, and we don't want this to die, do we?

Jerrythabest
Dec 19, 2011, 09:30 AM
GRR! I don't approve of this use of the term 'BCCS'! You make it look like stink!! >:-(

Though I agree we should keep supporting this project :D I think it would be a great step if we could edit levels with MLLE. That would be some more 'testing food'. I know by experience that you run into all kinds of little issues and discomforts once you actually start to do some 'real use' testing, instead of just looking at what the windows look like etc. Once people can do some basic editing stuff, I expect many more 'could you add ...' questions too.

Violet CLM
Dec 19, 2011, 09:48 AM
Since this is largely a one-man project, the onus isn't exactly on y'all folks to keep the thread alive. In any case, I'm hesitant to describe BCCS as having died horribly; while I suppose it never really got to a final release stage, I think the .ini was really the most important part (with things like yellow interface and simplified level properties being pretty but inessential icing on the cake) and that clearly continues to make itself useful today. :)

(If anyone is <em>really</em> devoted to keeping this thread from death, I still haven't found anyone to play with AGA events, but I do recognize that nobody cares about that game.)

Love & Thunder
Dec 19, 2011, 12:05 PM
I admit my use of BCCS there wasn't very good, but the point remains that we don't want this thread to suddenly die.

I think I might get a copy of AGA eventually. Although, Violet, you could go and buy yourself one off eBay or Amazon.

Jgke
Dec 19, 2011, 12:50 PM
jgke@Jgke-debian:~/MLLE$ wine MLLE.exe
install the Windows version of Mono to run .NET executables
I feel sad now. One upgrade, and now it started to complain.

Love & Thunder
Dec 19, 2011, 01:06 PM
I feel sad now. One upgrade, and now it started to complain.

I don't get it, can you please elaborate?

Jgke
Dec 19, 2011, 09:03 PM
I don't get it, can you please elaborate?

Wine is an open-source program that I need to run Windows programs on my Debian. My system recently got an update and it broke wine :(

Love & Thunder
Dec 20, 2011, 02:55 AM
Ah. Right. Sad Mode activated. :(

On the bright side, I now have the original Half-Life(I got it off Steam from a special deal where I get it for free! :D). Although, my computer's stupid and I can't run it. Anyone know how to fix this?

Ktos.
Dec 20, 2011, 06:42 AM
I'm not sure if that's proper thread for this.

Jgke
Dec 20, 2011, 09:51 AM
Hm, try running it with compability mode?

Love & Thunder
Dec 20, 2011, 01:18 PM
No, my problem isn't with actually running the program, it's with loading a Save File. Anyway, back on topic, why do all the views get replaced with red "X"s when MLLE crashes?
(If you think you have a solution to my Half-Life Problem, PM me, please)

Violet CLM
Dec 20, 2011, 05:52 PM
Red x: eh, it's a standard error display of OpenGL or something like that.

one feature i would personally like that i don't believe has been mentioned: the ability to show tile masks at the same time as their graphics (by overlaying the mask with 75% transparency or somesuch).

This suggestion was made back in July, and I did implement such a mode but then never actually included a means of accessing it. Today, all that has changed.
<img src="http://img804.imageshack.us/img804/6097/mllepartialmask.png" />
ETA:

And let me ask, is there or will there be something indicating which layer are certain tiles on? Like, every other layer than the one being worked on becoming translucent?
Screw it, I hacked in this one too. It's definitely an... interesting effect. Sometimes it looks really weird, and sometimes it looks like the best possible way to edit a level. Welp. (Just to clarify, in this shot it's combined with the above partial mask overlay, but the two are definitely separate options.)
<img src="http://img41.imageshack.us/img41/3807/mllepartialplxtoo.png" />

Sean
Dec 20, 2011, 07:30 PM
Has anyone ever mentioned how much this community worships you?

Ktos.
Dec 21, 2011, 04:50 AM
Hm, if not translucent mode for unused layers, would that be possibile to disable few layers(make them invisibile) in the parallax mode? Maybe except layer 8, but I'm not sure if there's a point in making such an exception. Some kind of additional preferences window where you could decide which layers you want to see in parallax mode.

Violet CLM
Dec 21, 2011, 07:57 AM
I suppose, but I feel it might be somewhat confusing to the user to give layers a "visible in parallax view" option but for that option not to have any effect in-game, e.g. when using Low Detail.

Sean: Not lately, but I much appreciate it. :))

Love & Thunder
Dec 23, 2011, 06:12 AM
Those sound like nice features. :)

Jerrythabest
Dec 23, 2011, 09:18 AM
Looks great, Violet! Also the mask overlay looks very nice. Well done!

Love & Thunder
Dec 23, 2011, 09:45 AM
Yeah! And, unlike WebJCS, this doesn't require the piece of poo known as Google Chrome! :D I mean, WebJCS is good and all, but I don't like having to have that annoying Web Browser. :)

Jgke
Dec 23, 2011, 10:24 AM
Unfortunatively, it needs a piece of poo known as .NET framework...

Jerrythabest
Dec 23, 2011, 10:29 AM
But everyone who's got Windows automatically has .NET Framework. (I got it automatically through Windows Update, never had to explicitly install anything for any .NET program.)

It's somewhat like IE but then more needed.

Jgke
Dec 23, 2011, 10:32 AM
But not all of us use Windows :(

Jerrythabest
Dec 23, 2011, 11:38 AM
That's true. But not all of us use Chrome either.

Violet CLM
Dec 23, 2011, 12:49 PM
I definitely plan on Mac and Linux versions, I just haven't gotten around to that yet. Doing my best to write cross-platform compatible code; we'll see how well I've been doing when the time comes.

Jgke
Dec 23, 2011, 01:55 PM
Pity that your code will ultimately be a port to some platform :(
Mono for GNU/Linux or Cygwin or something similar for Windows...

Love & Thunder
Dec 23, 2011, 02:40 PM
Umm... Jake, I don't understand what you just said(Specifically the second paragraph), can you clarify, please?

Jgke
Dec 24, 2011, 12:18 AM
Mono is a replacement for .NET framework (Violet, if you can kick yourself for it, convert to it and you're one step closer to cross-platform), and Cygwin is a kind of shell replacement for Windows.

Grytolle
Dec 24, 2011, 03:27 AM
But Chrome pwns, what's wrong with you n4bs?

Love & Thunder
Dec 24, 2011, 06:07 AM
Because:
A) I'm not used to Chrome.
B) It's not as secure as Firefox(Which I use).
and C) It has tracking cookies to see whatever you're doing whenever you're doing it(So Google know everything you're doing).

Grytolle
Dec 24, 2011, 06:19 AM
But noone is asking you to make Chrome your main browser (disregarding that point 2 and 3 are questionable) :p

Love & Thunder
Dec 24, 2011, 09:12 AM
Yeah, I just put the first point because almost no-one is used to Chrome. Also, another thing, Chrome has practically no interface! XD So, I hope WebJCS works for Firefox at some point. :)

Jgke
Dec 24, 2011, 10:12 AM
Sorry, but it uses the Chrome engine. So it probably won't work with Firefox (or any of it's afterbirths) in atleast 5 years.

djazz
Dec 24, 2011, 10:30 AM
Yeah, I just put the first point because almost no-one is used to Chrome.
Chrome is the world's second largest browser after IE. Everyone i know use Chrome.
I want to support more browsers but technically and feature-wise they are far behind. When the HTML5 specification is "finished", then WebJCS should be no problem to use crossbrowser, if those browsers support HTML5 fully.
Also, why is Chrome less secure?

cooba
Dec 24, 2011, 10:32 AM
Yeah, I just put the first point because almost no-one is used to Chrome.:gabber:Also, another thing, Chrome has practically no interface! XD<img src="http://stijn.fuzic.nl/hd/gabberfriend.jpg" width="565" height="564" />

Stijn
Dec 24, 2011, 10:36 AM
hey guys lets not turn this thread into a browser war discussion

Jerrythabest
Dec 24, 2011, 12:25 PM
O! I got a feature request!

You could add a Save & Run menu option to the right click menu of the layer editor. When it's clicked, MLLE saves a temporary copy of the level with a single Start Position in that spot and runs that. Would be a very easy way to test certain parts of a level without having to move the start positions manually (or using warps or whatever).

Jgke
Dec 24, 2011, 12:35 PM
Ooh, nice idea. And make it complain if you are trying to run a level without a start position.

Violet CLM
Dec 24, 2011, 08:42 PM
Pity that your code will ultimately be a port to some platform :(
Mono for GNU/Linux or Cygwin or something similar for Windows...
Yep. While I care enough about cross-platform support to want to make it possible, I don't care enough to redesign the interface twice over, at least not anytime soon. Features are simply a higher priority than native application style.

Jerry: this is a good idea and I will find a way to make it happen.

Love & Thunder
Dec 26, 2011, 04:11 PM
I've got a suggestion!

How about you can choose which character to play as with Save & Run? That would make Spaz-players' lives easier(Although, it won't affect me, as I play as Jazz. XD).

Jgke
Dec 27, 2011, 01:04 AM
And also choosing the default player for ctrl+r :)

Love & Thunder
Dec 27, 2011, 07:30 AM
Yes, those two ideas(Mine and Jake's) mixed together would be complete awesome. :D

Violet CLM
Dec 27, 2011, 06:23 PM
I shied away from that in Reworder (and earlier programs that I never released) because TSF and JJ2+ have a -spaz command line argument but regular JJ2 refuses to run your level if you pass it that argument, but I guess that could be toggled in the game profile .ini files. It shall be looked into.

minmay
Dec 28, 2011, 07:44 AM
How does CaptainCook do it?

Violet CLM
Dec 28, 2011, 11:02 AM
I have no idea.

Love & Thunder
Dec 28, 2011, 12:43 PM
How about you add a tickbox which you check to indicate JJ2+, and if you select TSF or JJ2+, you could have Spaz Mode?

Violet CLM
Dec 28, 2011, 04:11 PM
Not generic enough. Don't worry, I've got this.

Love & Thunder
Dec 28, 2011, 05:27 PM
This post will probably make me sound stupid, but what do you mean(The above post)? Oh, and just out of curiosity, is there a -lori command in TSF?

Violet CLM
Dec 28, 2011, 06:33 PM
"I've got this" is an English idiom (probably a shortened form of "I've got this covered") meaning roughly "I have the situation under control and anticipate no difficulty in taking care of it."

<a href="http://www.jazz2online.com/wiki/List+of+Jazz+Jackrabbit+2+Command+Line+Arguments">Lori</a>

Love & Thunder
Dec 28, 2011, 06:44 PM
When I said "What do you mean" I was talking about "Not generic enough".

Jerrythabest
Dec 29, 2011, 01:58 AM
Violet tries to make MLLE in such a way that it can be used to edit JJ2, TSF, Battery Check, and Animaniacs levels. A checkbox to indicate TSF or JJ2+ would not make any sense to the other games; it's too specific to JJ2+ and TSF. I guess that's what he meant with it being 'Not generic enough'.

Love & Thunder
Dec 29, 2011, 06:50 AM
Maybe you could add two another options in the games list, and have 1.23+ next to 1.23, and TSF+ next to TSF. It would remove confusion. But, I still think a tickbox would be good, it would be available on 1.23 and TSF, and would enable plus-only things.

Violet CLM
Dec 29, 2011, 09:16 PM
kids I have versions (other than the BC/1.00o issue) under control
relaaaaaax

Jerrythabest
Dec 30, 2011, 12:22 PM
1.00o

It's 1.10o 8D

Love & Thunder
Dec 31, 2011, 06:36 PM
So, what feature is currently at top priority?

EDIT: Hi, guys, I just want to know how things are going with MLLE? Also, I have a suggestion: Online Colaberation(WebJCS-style)! :D... That is, unless there are technical limitations or if it's already been suggested.

Love & Thunder
Jan 8, 2012, 06:47 AM
Suggestion: How about you release another beta? It would be nice to be able to test some of the new features, and acutally be able to place tiles using it. :)

Violet CLM
Jan 10, 2012, 08:31 PM
This post can serve as an unordered to-do list of features that I want to complete before I do another release. (I reserve the right to silently add items to this list at any time.) See, progress has slowed down significantly, and I think that making a release would license me to slow down even more; in case the next release is the last, either forever or for a while, this list contains stuff that I really want in there, either because they're extremely important or because they should actually be kind of fun to code:

<strike>Fix undo/redo code to work in AGA levels.</strike>
<strike>Eliminate scrollbar-induced crashes.</strike> (?)
<strike>Distinguish Battery Check from 1.10o.</strike>
<strike>Fix Save & Run not working with Battery Check.</strike>
<strike>Add a better startup sequence.</strike>
<strike>Add ambient sound support.</strike>
<strike>Add that localized Start Position thing.</strike>
<strike>Improve the .ini files significantly.
Shared events among different JJ2 versions extracted into their own file
Illuminate Surroundings now removable
Generator now dependent on .ini
Renaming event difficulties for Battery Check now works</strike>
<strike>Get a better fill algorithm.</strike>
Add Tile Cache control in accordance with my proposal for .j2l files.
<strike>Fix some tileset display issues.</strike>
Fix bugs with events on animated tiles.
<strike>Fix parallax view to stop adjusting layers with Limit Visible Region checked if Tile Height is also checked.</strike>
Allow scrolling when viewing layer 8 in parallax mode.
Get scrollbars to stop misestimating tileset/layer sizes by 256 pixels.
<strike>Add message if you try to exit (or open another level) without saving.</strike>
<strike>Force filename-selection window when you hit Save or Save&Run on a new level, instead of using "Made in MLLE.j2l."</strike>
Add error messages when trying to read files that aren't real levels or tilesets.
<strike>Allow levels and tilesets to be passed to MLLE by command line or dragged-and-dropped into it.</strike>
Change selection behavior so that the selection box in the tileset view only disappears if that's no longer the stamp, instead of disappearing whenever you select anything in the layer view.
Add .j2b support.
Allow music files to be previewed from within Level Properties.
<strike>Pause music when using Save & Run, so you don't have two programs playing the same track at the same time.</strike>
Make nice with Mac/Linux systems.

EDIT: this has become a general combination to-do list and changelog, instead of being tied to any particular release schedule.

Love & Thunder
Jan 10, 2012, 11:21 PM
I know how you can distinguish BC from 1.10o.
check the anims.j2a file, the animations of BC are completely different from that of any version of JJ2. Just have a simple check that looks for Batteryman, and if it finds him in a specific animation(Just pick an animation of Batteryman and pick a frame), and if it does, it goes into BC mode, if not, it goes into 1.10o mode. And I don't mean for it to check if a frame exists, I'm talking about checking that a frame matches what it looks like for the BC anims file.

I hope this helps. :D

EDIT: I have a suggestion: Online Colaberation(WebJCS-style)! ... That is, unless there are technical limitations or if it's already been suggested.

Jgke
Jan 11, 2012, 01:47 AM
Robo, it's not about anims, it's about the file.

Love & Thunder
Jan 11, 2012, 01:50 AM
That doesn't matter, it just has to check the anims file, and it'll know which is which. Unless you have Battery Check and 1.10o in the same folder, which would
A) Not work
and B) Be very stupid.

Jgke
Jan 11, 2012, 02:07 AM
What if someone does have only one level and nothing else?

Love & Thunder
Jan 11, 2012, 05:56 AM
... That's irrelivent, if you have JJ2 and BC in the same folder, their anims.j2a files would clash, and only one of them would work.

cooba
Jan 11, 2012, 05:59 AM
It's about distinguishing Battery Check and 1.10o levels from <em>within the editor.</em> Anims.j2a is completely irrelevant.

Love & Thunder
Jan 11, 2012, 06:02 AM
No, because the EXE AND the Anims.j2a are ALWAYS in the same folder, so it just checks the anims.j2a in the same folder as the EXE is set to be in.

Obi1mcd
Jan 11, 2012, 07:33 AM
But the point is, what if you want to edit a level that isn't in the same folder as the EXE?

Love & Thunder
Jan 11, 2012, 07:36 AM
... I never thought of that...

Maybe there's a distinction in the actual file itself? Or maybe you could have BC mode and 1.10o mode?

Violet CLM
Jan 11, 2012, 09:49 AM
Regarding 1.00o vs. BC, I think what I might do is take advantage of some of the unused bytes in Data1 and just stick a flag in there somewhere to indicate what kind of file it is, probably for the BC levels. It wouldn't work for the original three (Binnen, Rain, Boss), but it'd work for anything made afterward.

This is still the plan. When loading one of the original three BC levels, you'll have to manually change the version, but otherwise it shouldn't be a problem. No, there's absolutely no distinction within the files themselves, unless you count event distribution, which is a little too statistical for me to want to rely on.

(I'm at a loss as to why someone would want to test the inner contents of anims.j2a when Jazz2.exe and Battery.exe have different <em>filenames</em>, but Obi is right: folder-neutral is always better.)

Toni_
Jan 11, 2012, 09:59 AM
But the point is, what if you want to edit a level that isn't in the same folder as the EXE?

... I never thought of that...

Maybe there's a distinction in the actual file itself? Or maybe you could have BC mode and 1.10o mode?

Actually, I always save my JJ2 levels in a separate folder, so I know where they are, because I have >5 levels going on. It would be hard for me to remember all their names if I save them in JJ2 >5000files big folder.

Love & Thunder
Jan 11, 2012, 12:31 PM
Okay, my suggestion sucks. Oh well. Let's hope that the next Beta is released soon. :D

Neobeo
Jan 11, 2012, 01:43 PM
progress has slowed down significantly

Make it open source!

Violet CLM
Jan 11, 2012, 07:01 PM
But then progress would <em>stop</em>.

Love & Thunder
Jan 11, 2012, 10:13 PM
Yeah, making this Opensource would probably be the worst thing to do unless it's 100% fully complete.