More Awesome Than You!

TS2: Burnination => The Podium => Topic started by: seapup on 2007 September 17, 13:25:51



Title: Sandcastle fix?
Post by: seapup on 2007 September 17, 13:25:51
I noticed that TwoJeffs has released a fix for sandcastles. Quote from RTFM: "Fixes Sandcastles so they properly delete themselves instead of littering the lot with stuck invisible objects." I havent seen this issue being discussed anywhere else. Is it an issue, and is an awesome fix in the works, or should we just grab TwoJeffs fix?


Title: Re: Sandcastle fix?
Post by: Emma on 2007 September 17, 13:44:07
I'd grab TJ's fix. Pescado won't bother if someone else has already done it. What's the point?


Title: Re: Sandcastle fix?
Post by: jolrei on 2007 September 17, 15:00:28
I've noticed piles of sand where 'castles have been destroyed, and any 'castles built tend to stick around on beach hotel lots.  Have not noticed 'stuck' invisible sandcastles (perhaps that's because they're invisible).  This might explain the lack of discussion, but does not mean it's not an issue.


Title: Re: Sandcastle fix?
Post by: jsalemi on 2007 September 17, 17:10:21
This might explain the lack of discussion, but does not mean it's not an issue.

Yea, but it might become an issue, like the 'never cleaned hotel rooms' we've discussed in another thread here. It appears that hotels act more like dorms than comm lots, and don't completely reset between uses. So unmade beds, dirty toilets and day-old dinner plates just keep mounting up until the whole hotel looks like a run-down motel on a road the interstate passed by. The never-dying sandcastles are probably another manifestation of this.


Title: Re: Sandcastle fix?
Post by: jolrei on 2007 September 17, 17:36:14
This might explain the lack of discussion, but does not mean it's not an issue.
Yea, but it might become an issue, like the 'never cleaned hotel rooms' we've discussed in another thread here.

Alright then, too many negatives (like the word "not") in my post - my meaning was that it probably was an issue.  Anyhow, I've downloaded the sandcastles hack and can hopefully avoid any problems before I even notice them.  The 'never cleaned hotel rooms' is one of my big annoyances now - one of my sims ended up cleaning up for half a sim day.  On another day, I did see an NPC maid touring through the hotel, but when my sims went back to their rooms, the dirty plates from breakfast were still there, although the maid had apparently cleaned the bathroom and made the beds.  She seems to have a blind spot for plates.


Title: Re: Sandcastle fix?
Post by: BastDawn on 2007 September 17, 20:53:09
Put your clean hotel in the lot bin to save it.  In the future, you can delete the hotel after use and replace it with the binned one to reset it.  That's what I often do with dorms.


Title: Re: Sandcastle fix?
Post by: kuronue on 2007 September 17, 21:50:41
The issue, I think, was reported when someone had a beach lot in residential where it wouldn't reset so they stayed stuck; the odds of building so many they cause routing issues while on vacation are somewhat smaller. But I could be wrong.


Title: Re: Sandcastle fix?
Post by: Havelock on 2007 September 17, 22:31:46
How could we burniate existing ones. I hop we have not to use the stuckobjectremover Box.  :o
I could see Beachlots with tons of yellow Boxes on it.


Title: Re: Sandcastle fix?
Post by: J. M. Pescado on 2007 September 17, 23:08:46
I've looked at the Jeffistani fix for it, although I'm uncertain why he has done some of the things he has, and his implementation seems unnecessarily complex, and frankly, I'm not sure why it has been done that way at all or even that those steps are necessary, but I haven't explored the problem yet.


Title: Re: Sandcastle fix?
Post by: twojeffs on 2007 September 17, 23:37:44
After sandcastles 'expire' either 12 hours after being created or 2 hours after being destroyed the objects are sent 'off-world' but not deleted. This is not a huge issue on community lots where they are not saved, but on owned lots eventually sims will no longer be able to use the beach and will start complaining about routing issues. For any lot with a beach (that you can save) this is a critical bug.

The supposedly complex implementation simply forces all of the object's parts to follow the lead tile, which is where EAxis blew it.


Title: Re: Sandcastle fix?
Post by: dizzy on 2007 September 18, 01:38:47
Is it the same way for Beach_Sunbathe? Or will that even need a fix?


Title: Re: Sandcastle fix?
Post by: skandelouslala on 2007 September 18, 04:13:32
Interesting, I'll have to grab this fix b/c I have a home beach lot with 3 kids and they have practically filled the thing up with sand castles when I am not paying attention.  In fact I need a damn no autonomous building of sand castles hack  :P


Title: Re: Sandcastle fix?
Post by: Zazazu on 2007 September 18, 15:48:10
After sandcastles 'expire' either 12 hours after being created or 2 hours after being destroyed the objects are sent 'off-world' but not deleted. This is not a huge issue on community lots where they are not saved, but on owned lots eventually sims will no longer be able to use the beach and will start complaining about routing issues. For any lot with a beach (that you can save) this is a critical bug.

The supposedly complex implementation simply forces all of the object's parts to follow the lead tile, which is where EAxis blew it.
Well then. I've just been unusually lucky. I've had a public beach on a residential lot...level 8 biz right now, usually under a good review...they don't build too awfully many sandcastles (maybe four on the lot at a time) but you'd think that at approximately 30 days of play I'd still have an unusable beach.

Hot tubs and a radio are great distractors from sandcastle building. I usually have two townies doing the hibbity or chatting in the hot tub, five or six doing the smustle by the radio, and a few unwinding with some tai chi led by one of my playables. It's my other playables who sift for stuff and build castles...plus the odd townie.


Title: Re: Sandcastle fix?
Post by: J. M. Pescado on 2007 September 18, 15:55:33
The supposedly complex implementation simply forces all of the object's parts to follow the lead tile, which is where EAxis blew it.
Wouldn't the entire object disintegrate anyway when its lead-tile was removed? I notice you have complicated added bits checking everywhere if it is the lead tile. Why not just leave the entire function to the lead-tile and just have the non-lead-tiles idle-loop until the lead tile explodes on its own? I'll probably investigate this bug seperately when I run into it to see why such a complex implementation is deemed necessary. Why do "off-world" sandcastles affect the beach or routing issues? Object Instance depletion, or something else? I'll add a disintegrator option to the Debugger for these Lost Sandcastles.


Title: Re: Sandcastle fix?
Post by: J. M. Pescado on 2007 September 18, 18:00:44
Testing updates: No Sandcastle Fix.

I created nearly a dozen sandcastles, and then ordered my sims to destroy them all. After time elapsed, all the destroyed castles faded away. I forced an error. No lost sandcastles were on the lot.

I created more sandcastles, and this time, simply left them to decay. It took much LONGER for them to vanish, but again, force-error, check item list, no sandcastles. I am not able to reproduce this bug under the test conditions given, nor can I see any obvious apparent flaw in the original code: Under normal conditions, if any tile of a multitile object is destroyed, the entire object is destroyed. I therefore cannot see any reason why the sandcastles do not properly self-destruct, nor any reason why they would teleport themselves offlot. At present, I can see no evidence pointing to the existence of this particular bug as described. Do you have an error log in which you have, in fact, seen lost offworld sandcastles?


Title: Re: Sandcastle fix?
Post by: dizzy on 2007 September 19, 10:52:39
I've looked it over, and it seems more like a problem with robustness than a multi-tile issue. Say, for example, you have a lot reset while there are sand castles on your lot. That would cause them to re-init IIRC and would thus leave your sand castles in a hung state.

Code:
# Group = 0x7FA5A9EA, Instance = 0x1001
# Title = Function - Main
#
# Format = 0x8009, Params = 0, Locals = 0
# Tree type = 0x0, Header flag = 0x0, Tree version = 0xFFFF8009 (-32759), Cache flags = 0

     0: Idle(450 (0x1C2)); true: 1, false: error
     1: My Attribute 0x3 > 0; true: 3, false: 0

You see, if the Build interaction isn't forced by the Destination, the Kill Me Countdown attribute will never be > 0, and thus you will have invisible sand castles till you bulldoze the lot or use some object deleter.

Now that I stop and think about it, I think you might have stuck sand castles merely from canceling the build interaction as well.


Title: Re: Sandcastle fix?
Post by: J. M. Pescado on 2007 September 19, 11:16:00
I've looked it over, and it seems more like a problem with robustness than a multi-tile issue. Say, for example, you have a lot reset while there are sand castles on your lot. That would cause them to re-init IIRC and would thus leave your sand castles in a hung state.
The Sand Castle init does not reset Attribute 3, so the Sand Castle Self-Destruct Timer would be retained.


You see, if the Build interaction isn't forced by the Destination, the Kill Me Countdown attribute will never be > 0, and thus you will have invisible sand castles till you bulldoze the lot or use some object deleter.

Now that I stop and think about it, I think you might have stuck sand castles merely from canceling the build interaction as well.
I think this is actually a real possibility, one which the Jeffistani fix does nothing to address. Experimenting with this now.

UPDATE: Found the real bug. It's not where Jeffy found it, and Jeffy's fix will not stop it. Fix out Real Soon Now (http://www.moreawesomethanyou.com/smf/index.php/topic,9721.msg264810.html).

What ACTUALLY happens is not that the sand castles are not being flagged for destruction properly after being kicked, stomped, or abandoned, but what happens if the action is cancelled while the sim is still routing to the sand castle site: While a started construction process is properly flagged for termination, if the sim fails to reach the sand castle due to routing failure or the action is cancelled, the abandoned sand castle (which has never been started and therefore is invisible and cannot be kicked or stomped) is abandoned forever. This now properly flags all sandcastles for termination and destroys them immediately if they are still invisible.

Someone should inform Jeffy that his fix has missed the real issue, since New Jeffistan seems to lack a feedback area and I would probably be banned on sight there anyway, nor do I feel like jumping through the ridiculous registration hoops I've heard they have there.