Typically coercion to integer is a truncation, so minISphere's behavior here is indeed a bug. Easy enough to fix, but yeah, just floor the values first for now.

miniSphere 5.0b2 (stable: 4.8.8) - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enormous man-eating pigs ~Rhuan

changes:1. I've floored the coordinates2. I've put the coordinates into an array so you only have one variable to remember and update3. as I assume the dimensions don't change I've used just one coordinate pair then added some known offsets in the drawing function calls.

I'll give that a try. Trying to get these to line up properly has been such a gorram pain.

If you set complex graphical objects out with one set of coordinates and a lot of offsets it's much easier to line things up.

The one time I'd used variables for the offsets is if I wanted the object to be able to change size, but even then it would probably be only 2 variable offsets (width and height).

The other time I'd need more variables for an arrangement like the above would be if I wanted the triangles to slide onto the screen from different sides or something fancy like that - but I assume you just keep them as a unit all the time?

@Miscreant Your animated gifs haven't been playing recently, they just show up as still images. Not sure if something broke with the forums or what...

miniSphere 5.0b2 (stable: 4.8.8) - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enormous man-eating pigs ~Rhuan

I misunderstood. Obviously, the triforce pieces only appear upon level completion but yes it all scrolls as a unit.

Then with the above code all you'd need to do is update t_coords[0] and t_coords[1] to move it around. functionally it's the same as what you already had just with a lot less variables and with the numbers rounded down so it will draw the same way on minisphere as it was on sphere 1.5.

So it turns out that nothing's wrong with miniSphere's handling of integer coordinates after all, they are indeed rounded down internally.

In the end, nothing I did to the Triangle() function could coax it to render the triangles the same way. Interestingly, Sphere 1.5 with the OpenGL plugin is broken in a similar way, see screenshot attached. I think this one is just down to differences between software rendering (Sphere with the standard32 plugin) vs. hardware rendering. It isn't something I can fix

miniSphere 5.0b2 (stable: 4.8.8) - Cell compiler - SSj debugger - thread | on GitHubFor the sake of our continued health I very much hope that Fat Cerberus does not become skilled enough at whatever arcane art it would require to cause computers to spawn enormous man-eating pigs ~Rhuan

@Miscreant Your animated gifs haven't been playing recently, they just show up as still images. Not sure if something broke with the forums or what...

I'm not sure what the issue is, I've check the gifs on 3 different platforms and they all display properly. I don't really know that much about ElkArte, could it possibly be something with the forums??

So it turns out that nothing's wrong with miniSphere's handling of integer coordinates after all, they are indeed rounded down internally.

In the end, nothing I did to the Triangle() function could coax it to render the triangles the same way. Interestingly, Sphere 1.5 with the OpenGL plugin is broken in a similar way, see screenshot attached. I think this one is just down to differences between software rendering (Sphere with the standard32 plugin) vs. hardware rendering. It isn't something I can fix

That's bizarre - simply rounding down before calling the draw functions got the right result for me.

Similarly rounding up before calling them resulted in repeating what miniSphere was already drawing.

So it turns out that nothing's wrong with miniSphere's handling of integer coordinates after all, they are indeed rounded down internally.

In the end, nothing I did to the Triangle() function could coax it to render the triangles the same way. Interestingly, Sphere 1.5 with the OpenGL plugin is broken in a similar way, see screenshot attached. I think this one is just down to differences between software rendering (Sphere with the standard32 plugin) vs. hardware rendering. It isn't something I can fix

That's bizarre - simply rounding down before calling the draw functions got the right result for me.

Similarly rounding up before calling them resulted in repeating what miniSphere was already drawing.

If it's software vs hardware rendering, maybe I should just turn the outling triangles into an image and blit that to the screen instead. That would keep everything aligned properly and shouldn't display those errors as it is drawn.