[Testing] When In Doubt, Use Brute Force


simplex

Recommended Posts

I'm back! And I come bearing bugs that may or may not have been previously encountered!

 

First off, a bunch of the anims are bugged. My current list of offenders are:

  • Beanlets
  • Skytraps

I'm still looking for more.

 

Also, Crystal Relics are activatable, but dont do anything when they are.

 

Finally, You still play the rocking back and forth anim when being sucked into a whirlwhind.

Link to comment
Share on other sites

I'm back! And I come bearing bugs that may or may not have been previously encountered!

 

First off, a bunch of the anims are bugged. My current list of offenders are:

  • Beanlets
  • Skytraps

I'm still looking for more.

 

And secondly, Crystal Relics are activatable, but dont do anything when they are.

 

Edit: I am experiencing the animation bug as well. Different parts are flashing.

 

What do you mean the crystal relics don't do anything? :razz:

Link to comment
Share on other sites

How are the animations bugged?

 

What do you mean the crystal relics don't do anything? :razz:

 

Most importantly, how up to date is your version of the mod?

Parts of the creature dissapear randomly.

 

I mean that they dont do anything. at least nothing that I noticed.

I got it 25 minutes ago.

 

EDIT: Oh, and golden petals dont stack.

Link to comment
Share on other sites

Parts of the creature dissapear randomly.

 

I mean that they dont do anything. at least nothing that I noticed.

I got it 25 minutes ago.

 

EDIT: Oh, and golden petals dont stack.

 

Ah. They're (currently) resurrection stones.

 

Golden petals will stack in the next commit.

 

As for the animation issues, that's @simplex's territory. Also, simplex, yes, the latest ds_mod_tools do in fact work with the latest version of Spriter.

Link to comment
Share on other sites

As for the animation issues, that's @simplex's territory.

We already went over this. Our animations are broken due to the lack of an end frame. That's undefined behaviour, and they might as well suddenly stop working after a tweak to the mod tools.

I pushed a change to the mod tools making the persistency of objects at the end of the anim (in the lack of an end frame) be determined by the existence of an object_ref to the in the last key of the mainline, instead of the existence of a timeline key in the last time amongst all timeline keys. This seems to have fixed the beanlet and skytrap issues (and I recompiled and pushed all anims), but that's the last time I accomodate the scml compiler to the broken state of our anims. If they rely on undefined behaviour in order to work, what they'll get is undefined behaviour.

Link to comment
Share on other sites

We already went over this. Our animations are broken due to the lack of an end frame. That's undefined behaviour, and they might as well suddenly stop working after a tweak to the mod tools.

I pushed a change to the mod tools making the persistency of objects at the end of the anim (in the lack of an end frame) be determined by the existence of an object_ref to the in the last key of the mainline, instead of the existence of a timeline key in the last time amongst all timeline keys. This seems to have fixed the beanlet and skytrap issues (and I recompiled and pushed all anims), but that's the last time I accomodate the scml compiler to the broken state of our anims. If they rely on undefined behaviour in order to work, what they'll get is undefined behaviour.

 

Sorry, I wasn't aware that was still an issue with the animations themselves. I thought that you added backwards compatible behavior to the mod tools. I'll be sure to give animations an explicit end frame in the future.

Link to comment
Share on other sites

Sorry, I wasn't aware that was still an issue with the animations themselves. I thought that you added backwards compatible behavior to the mod tools. I'll be sure to give animations an explicit end frame in the future.

I tried to preserve backwards compatibility as much as I could, but as I said that's undefined behaviour. What I'm having to do is attempt to "guess" what's the desired outcome, since a lack of end frame creates an ambiguity, and as much as I tried to adopt reasonable guesses it's still a guess, and it may product an output different than the one desired. There's no way to keep perfect backwards compatibility because the old behaviour relied on the mod tools not being able to handle hidden timeline objects (objects that appear/disappear in the middle of an animation).

I do believe this last change in how the scml compiler handles a missing end frame keeps backwards compatibility with all of our anims, but I can't be sure. In the future, we really should add end frames (and if any anim is misbehaving by having parts disappear, we should fix it by adding an end frame).

But anyway, thank you for checking that the mod tools are now compatible with the latest Spriter. I appreciate it.

EDIT: I was leaning towards extending krane to also compile scmls, rendering the mod tools obsolete. If I did that, I'd have more flexibility in change details such as these (given that the scml compiler's code is a mess). I just decided (at least for the moment) to not do this because the scml compiler in the mod tools is already fully functional (albeit highly hardcoded and clumsy to use), and I can't see any feature missing from it (the only remaining item from Cheerio's TODO list is to allow specifying build frame durations, but since Spriter has no such concept I don't believe it is possible).

Link to comment
Share on other sites

I tried to preserve backwards compatibility as much as I could, but as I said that's undefined behaviour. What I'm having to do is attempt to "guess" what's the desired outcome, since a lack of end frame creates an ambiguity, and as much as I tried to adopt reasonable guesses it's still a guess, and it may product an output different than the one desired. There's no way to keep perfect backwards compatibility because the old behaviour relied on the mod tools not being able to handle hidden timeline objects (objects that appear/disappear in the middle of an animation).

I do believe this last change in how the scml compiler handles a missing end frame keeps backwards compatibility with all of our anims, but I can't be sure. In the future, we really should add end frames (and if any anim is misbehaving by having parts disappear, we should fix it by adding an end frame).

But anyway, thank you for checking that the mod tools are now compatible with the latest Spriter. I appreciate it.

EDIT: I was leaning towards extending krane to also compile scmls, rendering the mod tools obsolete. If I did that, I'd have more flexibility in change details such as these (given that the scml compiler's code is a mess). I just decided (at least for the moment) to not do this because the scml compiler in the mod tools is already fully functional (albeit highly hardcoded and clumsy to use), and I can't see any feature missing from it (the only remaining item from Cheerio's TODO list is to allow specifying build frame durations, but since Spriter has no such concept I don't believe it is possible).

 

Noted. I wonder why the original compiler didn't take that into account.

 

The latest Spriter version plays a lot nicer, so it's good to be able to use it. :p

 

As far as krane compiling scmls, it's unnecessary as it stands, but I don't see why you shouldn't pursue that at some point, if it makes upkeep easier.

Link to comment
Share on other sites

Noted. I wonder why the original compiler didn't take that into account.

That was in Cheerio's TODO list. Though it wasn't particularly hard or time consuming to implement, so don't ask me why he didn't simply do it instead of listing it should be eventually done.

As far as krane compiling scmls, it's unnecessary as it stands, but I don't see why you shouldn't pursue that at some point, if it makes upkeep easier.

Well, I don't think there is any upkeep to be made still. If I though there would be (non-trivial) things to still implement in the scml compiler, I'd rewrite it within krane, but since I can't think of any, I think I'll just leave it be. It'd take a reasonable time to reimplement everything anyway, from the scml compiler itself up to the functionality in the Python scripts (the latter consisting basically on computing how to build the atlas from the pieces).

Link to comment
Share on other sites

The permacutscene glitch popped up again, but it vanished before I could get a log. Otherwise, it's fine.

You probably should lower the cloudfruit tree spawnrates though.

 

I'll look into the shopkeeper bug. I was able to reproduce it finally.

 

It happens if you attack the shopkeeper and find him again.

 

I fixed it (I think, at least in my tests it fixed it) by forcing the player hud to be unhidden during the Silence function. This may fix it in other scenarios, but that I'm not sure of.

 

@simplex

 

I did get an interesting bug when loading a save which has an existing shopkeeper. I'm not sure what causes it, since it's inconsistent. This happens without my change (which is very small and doesn't touch speeches.)

[23:07:06] (Up and Away) SpeechGiver [104134 - shopkeeper]: ClearQueue()[23:07:06] (Up and Away) SpeechGiver [104134 - shopkeeper]: Loading 1 speeches from savedata.../mods/UpAndAway/code/components/speechgiver.lua:282: assertion failed!LUA ERROR stack traceback:        =[C] in function 'assert'        ../mods/UpAndAway/code/components/speechgiver.lua(282,1) in function '_ctor'        scripts/class.lua(98,1)        =(tail call) ?        ../mods/UpAndAway/code/components/speechgiver.lua(987,1) in function 'LoadPostPass'        scripts/entityscript.lua(1218,1) in function 'LoadPostPass'        scripts/gamelogic.lua(603,1) in function 'PopulateWorld'        scripts/gamelogic.lua(795,1) in function 'DoInitGame'        scripts/gamelogic.lua(972,1) in function 'cb'        scripts/saveindex.lua(433,1)        =[C] in function 'GetPersistentString'    ...        =[C] in function 'GetPersistentString'        scripts/saveindex.lua(89,1) in function 'Load'        scripts/gamelogic.lua(1142,1) in function 'callback'        scripts/playerprofile.lua(519,1) in function 'Set'        scripts/playerprofile.lua(403,1)        =[C] in function 'GetPersistentString'        scripts/playerprofile.lua(401,1) in function 'Load'        scripts/gamelogic.lua(1141,1) in main chunk        =[C] in function 'require'        scripts/mainfunctions.lua(639,1)scripts/frontend.lua(717,1) SCRIPT ERROR! Showing error screen    scripts/modindex.lua(67,1) ModIndex: Load sequence finished successfully.
Link to comment
Share on other sites

@simplex

 

I did get an interesting bug when loading a save which has an existing shopkeeper. I'm not sure what causes it, since it's inconsistent. This happens without my change (which is very small and doesn't touch speeches.)

I just pushed a fix. Savedata wasn't being loaded correctly.

Link to comment
Share on other sites

Hmm, it really was marked as a science level 2 recipe (so prototypable with an alchemy engine). I just fixed it, making it a fable recipe.

Good.

 

Another note, lag seems to be a really big thing. My framerate drops to about 6 fps in the cloudrealm.

Link to comment
Share on other sites

Good.

 

Another note, lag seems to be a really big thing. My framerate drops to about 6 fps in the cloudrealm.

In which biomes?

If it's everywhere, try putting this file (rc.lua) inside the UpAndAway folder and tell us if it helps considerably:

rc.zip

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.