Jump to content
Sign in to follow this  
tensorpudding

Tile World 2 64-bit patch

Recommended Posts

I recently tried looking at Tile World 2, and noticed that its 64-bit build would not handle TWS files properly. I tried to port a Tile World patch to fix this, because this bug was present in the last upstream Tile World release as well. I had been using the patch on TW 1 for a while and helped it get into the Debian Linux package for TW. My patched TW2 seems to handle TWS files fine now but has a lot of other problems including interface lockups that I'm not entirely sure is not due to the patch. I would suspect that it isn't though.

 

Another issue I had was a build failure on my system in one of the C++ files regarding a const cast. It compiled cleanly when I added the -fpermissive flag to g++ and the patch includes a change to add that flag to the build commands. I'm not entirely sure that this flag will work if you build using a different compiler or an old version of g++ though since I do not have an alternative to test it on.

 

Overall though, I do like the interface changes to Tile World 2 and would use it if the aforementioned bugs did not bedevil me. I am sure that once it has been fixed that it will be superior. Kudos to Madhav!

 

I'd include the patch in here but I'm not sure how to add an attachment...

Share this post


Link to post
Share on other sites

"It's already on my list."

I'm getting tired of saying that, so am thinking of releasing TW 2.0.1 sometime soon with the following fixes:-

 

TW2-specific:-

- "Stuck Alt" after Alt+Tab on Windows 7

- "Stuck arrow key" after level completion on Linux

- Additional console window on Windows

- Possible UI color issues when using some desktop themes

- const_cast problem in code which somehow compiled with GCC 3.4.x

 

TW1 + TW2:-

- TWS handling in 64-bit builds

- Toggle wall initialization bug in Lynx mode

- Potentially advantageous incorrectness in mouse emulation in MS mode

- Package with CCLP2 and CCLP3 included

 

... which is what I intended to do one year ago. But catching up with real-life after spending a lot of time on CCLP3 and TW2 took its toll, and I never got around to it. It's been such a long time since then, that I keep thinking that now it's time enough for a TW 2.1 with larger improvements. On the other hand, it's been such a long time since then, that I should be realistic and stop sitting on easy fixes which people are asking for.

 

@tensorpudding, let me know if there's anything else you found that's not on the list above.

 

Thanks.

- Madhav.

  • Upvote 2

Share this post


Link to post
Share on other sites

Just to mention two little things that might not take a lot of effort to change:

 

-pressing pgdn / pgup / enter / esc to get rid of the ccx story pages

 

-more great death messages (perhaps have a thread here asking for suggestions). Some could even be rarer than others.

Share this post


Link to post
Share on other sites

If you already have addressed the TWS problem and the const_cast issue in your own builds, the other problems I've had thusfar are:

 

- In the levelset selection and solution selection screens, the text seems to inherit the white from the rest of the interface but the background is also white, so you can't read the text. I tried fiddling with the .ui in QtDesigner but I do not understand Qt or QtDesign much, my experience is with GTK+.

 

- I had another issue that looked like UI freezeups but it actually seems to go away if I hit alt. I'll have to work longer with it to make sure that it's not something else.

 

- There's also the keyboard shortcuts that are in the menus but don't seem to work, like L for levelsets in the Game menu. Since it doesn't work and there is no way to open the menu from the keyboard because Alt is captured by the SDL bits, it is pretty inconvenient.

Share this post


Link to post
Share on other sites

Just to mention two little things that might not take a lot of effort to change:

-pressing pgdn / pgup / enter / esc to get rid of the ccx story pages

-more great death messages (perhaps have a thread here asking for suggestions). Some could even be rarer than others.

"Already on my list." :P

But I will refrain for now - to avoid going back into that loop of: "just one more thing" <-> procrastination.

 

The messages will eventually be moved out into a file that people can edit and share.

 

- Madhav.

Share this post


Link to post
Share on other sites

- In the levelset selection and solution selection screens, the text seems to inherit the white from the rest of the interface but the background is also white, so you can't read the text.

That's the "UI color issues when using some desktop themes" issue listed above. I should mention here that this and the const_cast issue were first brought to my attention by Sebastian Hungerecker.

 

- I had another issue that looked like UI freezeups but it actually seems to go away if I hit alt. I'll have to work longer with it to make sure that it's not something else.

Should be fixed by the other "stuck key" changes...

 

- There's also the keyboard shortcuts that are in the menus but don't seem to work, like L for levelsets in the Game menu. Since it doesn't work and there is no way to open the menu from the keyboard because Alt is captured by the SDL bits, it is pretty inconvenient.

Not sure if this is related to the above as well...

 

 

- Madhav.

Share this post


Link to post
Share on other sites

I've experienced the "stuck arrow key" in Windows. Do not know exactly what the circumstances are, but I have to close and reopen TW in order to fix it.

 

Also, if a death message comes up, and I don't hit Space to make it go away, but Alt (I think) it brings up the window control message, which I can make go away with Esc. However, after that I can never get TW to respond to any keystrokes; I have to close with the mouse and reopen. Not sure if this is the same Alt key problem you mentioned.

 

I also personally prefer the stderr.txt method rather than putting messages to the command window.

 

All work is very appreciated! Let me know if I can help with the background color calculations.

Share this post


Link to post
Share on other sites

I think the major fault in TW2 is the lack of a password system... Since I'll soon have to switch to a 64 bit O.S. I'm really looking forward to a new version of TW with it! ;)

 

The messages will eventually be moved out into a file that people can edit and share.

 

That's a great idea! I also think that having different messages for different situations (just like in MSCC - i.e. one message if Chip dies on a bomb, one if Chip steps on a fire tile without boots and so on) would be even greater.

 

Thanks for all your great work on updating TW!

Share this post


Link to post
Share on other sites

Some more for the list:

 

When the window has been resized, the playing area moves once the level begins. This doesn't happen when watching a replay. Not a big deal, but affects recording avis sometimes.

 

When playing in lynx, could the cursor disappear?

 

And sometimes a key gets stuck, even though I don't use Linux.

 

And, just for the record, concerning "potentially advantageous incorrectness in mouse emulation", the first time I scored 78 on Annoying Wall, it was using the mouse and a route that doesn't work in actual CC, so there are practical cases where this potential is fulfilled.

 

-Miika

Share this post


Link to post
Share on other sites

Here's a more complete list of what I would like to see in the next version of TW:

Important Features

-Passwords (when you open the 'Go To...' dialog you are asked for a password which is not displayed anywhere!)

-Keystroke buffer (for MS ruleset) - and this makes the difference for an MSCC-only player like I was. Pressing an arrow key and being able to release it knowing Chip will make one move further away simplify the gameplay a lot. When you pass to TW you have to press arrow keys longer in order to make multi-tiles moves.

-Package for Mac OSX (which is actually missing).

Secondary Features

-Full data reset emulation for MS ruleset (somewhat related also to keystroke buffer).

-Ability to add MIDI or MP3 files as background music.

-Death messages like the ones in MSCC.

Enhancements

-Ability to save TWS directly into AVI.

Bugs

-(Minor) The game menu should remain active also when you've started to play the level.

 

Thanks again for what you've done so far on TW 2!

Share this post


Link to post
Share on other sites

What about a way to tell if the level is played in odd/even step? That's one thing I don't like about TW2. Otherwise, It's great :)

Press "o". Don't know if that feature was added after your post though....

Share this post


Link to post
Share on other sites

- Potentially advantageous incorrectness in mouse emulation in MS mode

 

Whoa, if you're actually handling competitive issues...I sent you an email in the middle of June about a Lynx issue, which appears to be related to ajmiam's thread on clone desynchronization in Lynx. I'm not actually sure if you got it, since you never responded (I think I came across rudely in that email, so that could also be the reason why). In any case, that issue is worth a fix as well if you can track down the source of it.

Share this post


Link to post
Share on other sites

Press "o". Don't know if that feature was added after your post though....

 

Yes , "o" toggles between odd and even step, but unlike TW1, it doesn't display the word "(odd)" on the right. I think that's what Hornlitz meant.

Share this post


Link to post
Share on other sites

Yes , "o" toggles between odd and even step, but unlike TW1, it doesn't display the word "(odd)" on the right. I think that's what Hornlitz meant.

 

Yes it does :P

Share this post


Link to post
Share on other sites

It does? Do you have a different version of TW2?

It does say even-step and odd-step in the lower-right, but only before you start playing the level. (Edit: specifically, right after you press 'o') TW1 says (odd) right next to the time the whole time you're playing.

Share this post


Link to post
Share on other sites

Is "better TWS handling" on that list? Like an ability to handle individual level solutions besides simply deleting them? Or if i want to rename a levelset and the .dac files associated with it, can i have a way to not have to redo all of it?

Share this post


Link to post
Share on other sites

Whoa, if you're actually handling competitive issues...I sent you an email in the middle of June about a Lynx issue, which appears to be related to ajmiam's thread on clone desynchronization in Lynx. I'm not actually sure if you got it, since you never responded (I think I came across rudely in that email, so that could also be the reason why). In any case, that issue is worth a fix as well if you can track down the source of it.

 

I apologize for not responding to your e-mail, my dear fellow.  You certainly didn't come across rudely.

 

It came at a time when I "couldn't be bothered much", and that situation has - over the past few months - further degraded to approximately zero CC time.  That message has been lying in my Yahoo Inbox as the one unread message which I must some day reply to, for so long now, that I am used to seeing "Inbox (1)" as an indication of no new mail, and dare not open it for fear of being confused.

Just kidding.

 

Meanwhile, Miika - who has the ability to send me messages that seemingly innocently meander into random topics in a way that somehow prompt me to respond - hath discussed an odd behavior with a bug turning around when it could-and-should have turned right (in a level constructed by random8 I think), which he cleverly presented in the form of screenshots to sufficiently arouse my curiosity.  I believe it was not a bug (I mean the behavior) and provided a hypothesis that would explain it [forwarded that to you now].  The crux was that if a creature makes a choice of direction on step x, then on step x+1 it will "turn" in that direction, irrespective of whether that direction is now blocked; and if indeed blocked, then on step x+2 it will make its new choice of direction with the consideration that it has already "turned".  Possibly the same applies to Blazes, but I'm still too lazy to check the TWS or the code.

 

- Madhav.

 

[Goes back into cave.]

Share this post


Link to post
Share on other sites

I first discovered that behavior when playing "Go Back To Start" in CCLP3, trying to lead the paramecia to the bombs. I suspect all monsters have that behavior, though it would be insignificant for some. Also, those are probably my screenshots (it's possible he made his own after i showed it to him).

Share this post


Link to post
Share on other sites

I first discovered that behavior when playing "Go Back To Start" in CCLP3, trying to lead the paramecia to the bombs. I suspect all monsters have that behavior, though it would be insignificant for some. Also, those are probably my screenshots (it's possible he made his own after i showed it to him).

They were yours. I might have been unclear about their origin, so apologies. I still call it a bug and not a logical behavior, though understanding it does make it easier to use. (see Obsacle Course for example ;) hint hint)

 

Madhav, if I could choose how you spend your CC time, I'd be torn between having you make more levels, adding features to TW, giving people feedback on custom levels,or just discussing stuff with you. I hope you'll lose your job and end up doing all those things. Yes, I guess I'm a bit spoiled.

Share this post


Link to post
Share on other sites

[Goes back into cave.]

 

I didn't know that ducks lived in caves. Oh well.

 

[Goes back to using the fish]

Share this post


Link to post
Share on other sites

I still call it a bug and not a logical behavior, though understanding it does make it easier to use. (see Obsacle Course for example ;) hint hint)

 

It's about as logical as block-slapping (the animation, at least), Chip's super drowning skills, the inability of bugs and paramecia to not drown themselves like lemmings, and the fact he has absolutely no control on the ice without skates. :P

Share this post


Link to post
Share on other sites

The crux was that if a creature makes a choice of direction on step x, then on step x+1 it will "turn" in that direction, irrespective of whether that direction is now blocked; and if indeed blocked, then on step x+2 it will make its new choice of direction with the consideration that it has already "turned".  Possibly the same applies to Blazes, but I'm still too lazy to check the TWS or the code.

 

That would seem to explain Blazes. Thanks for the explanation.

 

(also, hooray for accidentally exploiting dubious creature movements to score new records B))

Edited by James

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...