Lemmini - Lemmings for Java - public Alpha

Started by 0xdeadbeef, February 21, 2006, 06:37:50 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

0xdeadbeef

Quote from: covox link=1140547071/210#224 date=1143035585Tried to run under Linux (Ubuntu Dapper). Case-sensitive file/directories are somewhat ignored, so none of the levels will convert from LVL to INI if your export directory contains a capital letter. (interestingly, the graphics still convert without a hitch)

After picking a path that's entirely lowercase, the conversion process works fine for a while, but keels over when trying to patch the first level ("CRC of source differs from that in patch header"). One guess is that during the LVL2INI conversion process, the file I/O methods in UNIX Java translate "\n" into just a linefeed character (i.e. the civilized way), whereas under Windows Java it may instead give a carriage-return + linefeed (2 characters, a nasty relic from DOS and the norm for Windows text editing).

If this were the case it would certainly throw off the binary diff. Of course this is all guesswork, I haven't got a working Windows machine to litmus-test the theory on. Just for fun, here's my extracted copy of lvl1000.ini:
Hm, not too long ago I booted a Knoppix CD and played lemmini without any problem. Then again, probably I chose/created a lower case path back then. So probably I convert a whole path to lower case where I should only convert the file name...
The linefeed theory however is interesting but wrong, since all text files are created the "unix" way even on my windows machine.
I will try again with Knoppix, if the current version still works there.

ccexplore

Rather out of topic, but recently I ran across some game manuals of Lemmings online.  The SNES manual apparently listed these additional "official" names for certain lemmings actions:

JUMPER--Lemming walking over a small bump in the ground.
FLIPPER--A Climber who has finished climbing.
WAVER--A Builder who has finished building.

Not that I care to have these names used in Lemmini, but I have been looking forever to find a name for the action "climber who has finished climbing and is transitioning back to walker".  Now I know!  (Though "flipper" does sound a little odd I think.)

0xdeadbeef

Flipper sounds like a dolphin (or a part of one  ::) )
And I don't think it would be a good iedea to change a Walker's name to Jumper each time he jumps up. This would cause the name to flicker like hell in certain levels.

But back to Linux:
I had a look at the extraction code and found two placed where I converted the whole path to lower case where I wanted to convert only the file name. I tried this version with Knoppix and it worked with a resource (target) directory containing capital letters.
The source (WINLEMM) directory always contained capital letters, but as it's an NTFS partition, I'm not sure if capital letters are preserved.
Anyway, give the new version a try. It also fixes two other errors, one of them found while testing under Linux.

Fixes/changes 0.64 -> 0.65
#  Swapped Walker/Faller strings. Was overlooked when cleaning up lemming.ini for 0.64
#  Lemmini wouldn't work on Linux if the resource or game directory used capital letters. Should be fixed now.
#  Width of yellow frame in MiniMap was derived from Screen resolution, not from window's width. Fixed.

ccexplore

Quote from: 0xdeadbeef link=1140547071/225#227 date=1143048233But back to Linux:
I had a look at the extraction code and found two placed where I converted the whole path to lower case where I wanted to convert only the file name. I tried this version with Knoppix and it worked with a resource (target) directory containing capital letters.
The source (WINLEMM) directory always contained capital letters, but as it's an NTFS partition, I'm not sure if capital letters are preserved.
NTFS is case-insensitive but also case-preserving for filenames.  But Windows doesn't necessarily use NTFS, even on XP.

Not sure how this applies anyway, since I don't know your extraction code, and in particular don't know what you are doing that would require converting cases on any part of the path.

0xdeadbeef

Quote from: ccexplore link=1140547071/225#228 date=1143055778

Not sure how this applies anyway, since I don't know your extraction code, and in particular don't know what you are doing that would require converting cases on any part of the path.[/color]

I think you got me wrong here: I mounted my NTFS-Windows Partition as drive under Linux (Knoppix) and I'm not sure if Linux is case sensitive for NTFS-Partitions, cause as you said, NTFS itself is not (really) case sensitive. Since I used the WINLEMM directory from my (Windows) NTFS partition as extraction source under Linux, I'm not completely sure if that proves that also the extraction source paths with uppercase and lowercase characters work under Linux.


covox

FAT32 partitions mounted under Linux have ambiguous case recognition (i.e. 'cat /mnt/win-c/Games/ReadMe.txt' and 'cat /mnt/win-c/games/rEaDmE.TXT' will find the same file), presumably NTFS support does the same thing.

I'll give the new build a try later on.

Proxima

I had an idea for solving the controversy over level codes. Instead of going to the trouble of generating new codes for every level, how about just removing the first (or the last, as you prefer) letter of each one?

One feature I definitely hope Lemmini will support is minutes-and-seconds time limits for user-created levels; they open up so many new possibilities!  ;)

ccexplore

I'm pretty sure Lemmini already supports second-resolution time limits, since 0xdeadbeef once proposed extending the time limit of 1-minute levels by a few seconds to account for the faster clock coutdown in Lemmini compared to Amiga/PC/Mac Lemmings.

ccexplore

Very minor issues when playing v0.65:

63) During the entrance animations for the "rock" (eg. Tame 2) and "pillar" (eg. Fun 2) styles, the entrance graphics shifts slightly towards the end of the animation.  The rock entrance shifts slightly left, and the pillar entrance shifts slightly right.  The entrances animations in the other styles were fine.  Conceivably an error in WinLemm's hi-res graphics data.

64) In Taxing 4, there is an obvious error in the layout of one of the pillars on the right side of the level (the pillar doesn't connect with the level's bottom boundary).  It's an error in the WinLemm data actually (and in fact even the DOS version has the same problem).

0xdeadbeef

Quote from: Ahribar link=1140547071/225#231 date=1143204374I had an idea for solving the controversy over level codes. Instead of going to the trouble of generating new codes for every level, how about just removing the first (or the last, as you prefer) letter of each one?
When I'll have finished the replay stuff (which may take some time, since I was lazy lately), I'll come back to the level code. I might even consider auto generated codes again. No promises, but let's just wait and see.

Quote
One feature I definitely hope Lemmini will support is minutes-and-seconds time limits for user-created levels; they open up so many new possibilities!  ;)
Quote from: ccexplore link=1140547071/225#232 date=1143210931I'm pretty sure Lemmini already supports second-resolution time limits, since 0xdeadbeef once proposed extending the time limit of 1-minute levels by a few seconds to account for the faster clock coutdown in Lemmini compared to Amiga/PC/Mac Lemmings.
Indeed, there was no support yet in 0.65, though it was long prepared and on my todo list. But it's in 0.66 now.


Regarding ccexplore's bugs: should be all fixed in 0.66 I hope.

Fixes/changes 0.65 -> 0.66
#  Support for second exact level time. Keyword is "timeLimitSeconds" instead of "timeLimit". E.g. "timeLimitSeconds = 356" for 5 minutes and 56 seconds
#  Fixed gap in pillar of LVL0025.ini (Taxing 4)
#  Fixed one pixel shift in last animation frame of entries of ROCK and PILLAR


BTW: I moved the Lemmini page to http://lemmini.de. Since I updated the JNLP on the original site and also set a redirector to the site, I hope this should not create any problems.

Mindless

Quote from: 0xdeadbeef link=1140547071/225#234 date=1143217967BTW: I moved the Lemmini page to http://lemmini.de. Since I updated the JNLP on the original site and also set a redirector to the site, I hope this should not create any problems.
The JAR link is broken. It's easy enough to guess what the link should be, though.

0xdeadbeef

Quote from: Mindless link=1140547071/225#235 date=1143427551
Quote from: 0xdeadbeef link=1140547071/225#234 date=1143217967BTW: I moved the Lemmini page to http://lemmini.de. Since I updated the JNLP on the original site and also set a redirector to the site, I hope this should not create any problems.
The JAR link is broken. It's easy enough to guess what the link should be, though.
Oops, I will have a look when I'm at home. This should have been a relative link anyway...
The JNLP should work however.

Mindless


0xdeadbeef

Quote from: Mindless link=1140547071/225#237 date=1143843639Just some random weirdness, but I noticed 0xdeadbeef on Slashdot.  Odd.  :P
Just another guy who thought this would be a funny name ;)
But if you'll put it this way, there's even an article in wikipedia about "me": http://en.wikipedia.org/wiki/0xdeadbeef

Talking about strange web findings, I recently found this: http://slashnet.org/channels/bullshit/
It's a little offending to see my site as title in a channel named "bullshit".
And I'd really like to know what "Join the cult! It's all bullshit! (FREE PUNCH AND PIE)" would mean in this context  :-/


Anyway, Replay is more or less finished. I'd like to do some more testing and maybe need to rework some "visual" stuff.
But I guess there'll be a new version out by tomorrow evening.



0xdeadbeef

Here we are:

Fixes/changes 0.66 -> 0.67
#  Added replay functionality
#  Introduced text buttons instead of left/right clicking in debriefing screen
#  Set Focus explicitly on graphics pane. Maybe helps with flicker on low end machines?
#  Fixed some (more) bugs in LVL1016 (doubled entry, wrong water object)
  Who made this level anyway? It containes at least three bugs ;)
#  Split loading and painting levels so when restart/replay is used, the level is not loaded completely
  but (more or less) only redrawn
#  Reset Basher to Walker conditions to what it was before 0.64


Please test the replay functionality. Should be pretty much complete, but I'm sure you'll find something.