NeoLemmix (Player: V1.26n-C | Editor: V1.26n-B)

Started by namida, January 15, 2014, 09:26:16 AM

Previous topic - Next topic

0 Members and 5 Guests are viewing this topic.

Tsyu

SuperLemmini (but not Lemmini) already supports loading levels via the command line (and I should have said so in the release thread). To use this feature, use this command line:

Code: [Select]
java -jar [superlemmini.jar path] -l [level path]
Both paths need to include the file name and extension. Both INI and LVL levels can be loaded this way, but they can't use mods; I intend to make this possible somehow in the future.


2) I can't replicate this one; loading a level in a different folder works fine for me.
You're loading a (Super)Lemmini level, right?

To help you replicate my problem, I have attached my NeoLemmixStyles.ini file to this post. And in case it matters, I'm running Windows 7 Home Premium 64-bit, I have NeoLemmix installed in C:\lemmix\NeoLemmix, the SuperLemmini styles are located in C:\lemmix\NeoLemmix\superlemministyles, and I'm trying to load a SuperLemmini level from C:\lemmini\levels\1_orig.

namida

Ah, from a quick look at the INI file, it appears you haven't actually compiled the styles. I wasn't even aware they *could* be used without compiling them - so it would seem this bug only occurs if you haven't done so. I'll test it in more depth soon.

For now, I've added modifying the boundary options. So, unless there's something undocumented or something new you've added since the last release I downloaded (the one where invisible objects was broken), it now supports everything except background terrain and special graphics, I think? I've thought of a way I might go about implementing the former; while as I've said for the latter, I plan to overhaul how it handles that for Lemmix-based styles, as the way I plan to do that should also make it much easier to integrate SuperLemmini-style ones.


EDIT: Implemented the escaping for the level name. As it appears that traditional Lemmini handles these escaped levelnames just fine, and you mention it should be safer, I've implemented it on both styles.

EDIT: I also realise, there's no support for mods in the editor either, at this stage. Although you can always just have seperate copies of the SuperLemmini style sets that are individually modified, though that may be a bit tedious.

EDIT: Playtest mode implemented.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Tsyu

Ah, from a quick look at the INI file, it appears you haven't actually compiled the styles. I wasn't even aware they *could* be used without compiling them - so it would seem this bug only occurs if you haven't done so. I'll test it in more depth soon.
Compiling the styles does indeed fix the problem. Thanks for the help!

For now, I've added modifying the boundary options. So, unless there's something undocumented or something new you've added since the last release I downloaded (the one where invisible objects was broken), it now supports everything except background terrain and special graphics, I think?
I believe that's right.

And I found some more bugs:
  • The NeoLemmix editor won't load a (Super)Lemmini level if timeLimitSeconds or timeLimit is greater than 99. Neither Lemmini nor SuperLemmini imposes maximums for time limits.
  • SuperLemmini (but not Lemmini) supports skill counts greater than 99, but the editor doesn't.
  • It doesn't seem like you fully implemented invisible objects. It's possible to make an object invisible, but that flag is not saved to the level file, nor is it recognized when a level file is loaded.

namida

Thanks for that, I'll get those fixed before any update. Just for reference - if testing anything with skill counts, don't use 200, as that's treated as a special case (specifically, because NeoLemmix treats 200 as "infinite"). There doesn't seem to be any simple way I can make it set different limits for the different styles, so for now, I'll just remove the upper limits altogether. NeoLemmix can handle skill counts up to 199 (200 is treated as infinite, and anything over 200 will eventually count down and reach 200 at which point it becomes infinite) and time limits up to 255:59 (old format) or 1092:15 (new format) with no non-graphical issues.
(The higher limit in the new format wasn't actually intentional, it's just a side effect of how time limits are stored in the new format. While the old format stores minutes in one byte and seconds in another, both as 1-byte values; the new format just stores the seconds as a 2-byte value.)

The invisible objects; this is a matter of me forgetting to uncomment the lines that save/load that property when I removed the code that disabled the checkbox. I've fixed that in the source now.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Tsyu

There's something that I forgot to mention: SuperLemmini supports negative object and terrain IDs and basically treats such entries as though they're blank. The editor doesn't support this, though. And in case you're wondering, it's fine if the editor doesn't preserve those entries. (Lvl0006.ini is an example of a level that has object entries like this.)

namida

I don't get what you mean? Do you mean the piece ID (ie: the number that identifies an object as an exit, a window, etc), or the index (ie: whether it's the 1st piece, 2nd piece, etc)?
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)


namida

Alright, it no longer has problems with loading levels with such objects. http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />

I'll just test some of the new changes, and if they all seem to be working fine, I'll send you a copy of the update so you can test it too (since everything in this update relates to SuperLemmini, apart from enabling those two options in standard Lemmini mode).

EDIT: Check your PMs. http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Tsyu

Yes, all those bugs seem to be fixed.

EDIT: Actually, it turns out that playtesting SuperLemmini levels doesn't work; I get a "ShellExcecute fout 5." error (including the misspelling) whenever I try to do so.

Unrelated to Lemmini, but something that should be mentioned: In the DOS level format, bit 4 of byte 0 of each terrain entry is not unused; it's a 13th bit for the X position. And no, it's not a sign bit.

namida

Alright then. Here's editor V1.18n-C, which fixes a lot of things with SuperLemmini (and to a lesser extent, Lemmini) editing. If you're only editing Lemmix / NeoLemmix, there's nothing new in this update affecting those.

NeoLemmix Editor V1.18n-C
---------------------------------------
> Can now edit the custom boundary settings in SuperLemmini levels.
> The custom fall distance and seconds-based time limits have been enabled for standard
  Lemmini levels; I wasn't previously aware that they worked there too.
> Various bugfixes relating to Lemmini and SuperLemmini editing.
> An internal name can be set for Lemmini / SuperLemmini styles, if the style name set
  in the file needs to be different from the one displayed in the editor. If none is set
  for a style, it defaults to the displayed name in all lowercase.
> Lemmini / SuperLemmini level names are now escaped properly (if you don't know what this
  means, don't worry about it).
> Playtest mode is now supported for SuperLemmini levels; you must set TestEXE to the full
  path of SuperLemmini.jar (even if it's in the same folder as the editor). It cannot be
  supported for traditional Lemmini as Lemmini itself doesn't offer support; though the
  option to specify a testing program is present, in case support is ever added, or if
  you wish to use SuperLemmini to test them.


https://www.dropbox.com/s/id72hofxcxo9gjv/NeoLemmixEditor_V1.18n-C.zip" class="bbc_link" target="_blank">https://www.dropbox.com/s/id72hofxcxo9gjv/NeoLemmixEditor_V1.18n-C.zip
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

If you're getting that error, it's because your operating system doesn't know where to find the Java EXE. No specific path to the Java executable is coded into the editor; what it does would be exactly the same as typing this into a command prompt (from the editor's folder):

java -jar (TestEXE's value) -l (NeoLemmix Editor's Folder Path)temptestlevel.ini

I'm not sure if there's some option during Java install that sets up this to work, or if it's something done manually, or exactly how you get it to the point where you can do that. I guess an option could be to add something to the main INI to specify the exact path to the Java executable?

EDIT: It appears that you need to add Java's directory to your "Path" environment variable. See http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path" class="bbc_link" target="_blank">here for more info on this.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Tsyu

If you're getting that error, it's because your operating system doesn't know where to find the Java EXE. No specific path to the Java executable is coded into the editor; what it does would be exactly the same as typing this into a command prompt (from the editor's folder):

java -jar (TestEXE's value) -l (NeoLemmix Editor's Folder Path)temptestlevel.ini

I'm not sure if there's some option during Java install that sets up this to work, or if it's something done manually, or exactly how you get it to the point where you can do that. I guess an option could be to add something to the main INI to specify the exact path to the Java executable?

EDIT: It appears that you need to add Java's directory to your "Path" environment variable. See http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path" class="bbc_link" target="_blank">here for more info on this.
No, that's not the problem; it works fine for me if I use the Windows command prompt. It must be a problem with the editor. Have you actually tested this yourself? (And in case I'm doing something wrong, I have attached my NeoLemmixStyles.ini.)

I found out just now that that error appears only if the TestEXE value is correct. If it's not, then a "file not found" message appears instead.

I should also say that I got the same error the first time I tried playtesting a NeoLemmix level, but subsequent tries worked fine.

Minim

Unfortunately I noticed a bug with the disobedient lemmings gimmick. Normally when replaying a level the lemmings automatically follow the earlier commands from the player, but when this gimmick turned on it doesn't seem to work very well (well, sometimes I think), and they carry on walking instead. Basically just solve any level and press the restart button, and you'll have to do those time-wasting commands again. http://www.lemmingsforums.com/Smileys/lemmings/angry.gif" alt=">:(" title="Angry" class="smiley" /> It's quite funny that they turn into shruggers every time you command them.
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

namida

DynaLem already informed me of that bug by PM. I've worked out why it happens, though haven't got around to actually fixing it yet.

Tsyu: Yes, I have tested it, it works fine for me - at first it didn't, but then I realised it needed the level file to have a ".ini" extension or it wouldn't load it properly. Anyway the NeoLemmixStyles.ini you attached specifies CustLemmixNeo.exe as the test app for SuperLemmini style, which is probably the problem... try changing it to this (based on the directories you gave me in the post further up):

TestEXE=C:\lemmini\superlemmini.jar
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Tsyu

I fixed that line and tried playtesting again--same result. My new NeoLemmixStyles.ini is attached.

In case it helps, my operating system is Windows 7 Home Premium 64-bit SP1, and my Java virtual machine is Java 8 Update 20, 64-bit. What OS and JVM are you using?