To keep the multiples is a very specific problem.
The original datas come with (more or less hidden) coords and rectangles.
There are a *lot* of calculations with them which had to be adjusted too - there you can't trick me in!
For not having to change them, I just multiply their values in routines like shrinkblit, mirror, blit etc.
In conclusion that means, that there is a kind of a grid now. Nothing can be *positioned* within the grids, but all that is once there (like a loaded bitmap), can be copied and will be kept. Shrink and mirror also work within bitmaps, because the grid is kinda outside.
Try to resize one of the graphics and play it with that one - effect is: *nothing*
That's because size and height of the bitmap is defined by the rectangles within other datas, so I simply shrinkblit the graphic to the needed size when loaded! As I said - that's very project-specific!!!
There's just one problem: the teleporter animation.
Here, the calculation starts randomly within the bitmap and then just steps (modulo) ahead.
With the bitmap stretched in X and Y you got a lot of more pixels, and even a step of *3 won't help, because there are the additional Y-lines too. I decided to trick here, resizing the graphics back to the original and painting 'thick' pixels then - at least it looks original in the newest version (not uploaded yet).
The mask-problem became solved too meanwhile! I'm in good hope that I got it now!!!
@zoom:
Hey, you already played it to the end with no more bugs? - Don't tell me you killed poor Petal
Yes, I'm aware of that thing. That comes because original CSB leaves the game 'from deeper in the routines' and I want a clean restart instead of doing an endless loop, so I have to climb up the routines and get this effect. Perhaps I should simply do a division by zero and catch the exception

But hey - the whole clone is nothing but 'development environment' for the adjusted graphic routines. Only those shall go to CSBwin if somehow possible!