There's no memory need for the CLSN I talk about. You only have to save the two points needed to make a box (rectangle) and to name this box by a number. Then, when the prog ask for a CLSN to check between 2 boxes (or more), you check if the 2 boxes touch or not. This way, you don't have to think about what is in the box (transparent pixels or not) because it's only a drawing. The boxes are some approximations of the needed area. It's the programmer that defines the importants parts of his bitmaps. I don't think there will be more than 3 or 4 CLSN boxes on 1 bitmap.
About the street fighter example I talk:
The offensive character have 2 boxes : one for the body, the other for the punch.
The defensive character have only 1 boxe : for the entire body.
If the punch box of the offensive character touch the body box of the defensive character then he hits.
No box is drawn unless if we add a function to show them (only for the game development like DRCL : draw CLSN boxes).
So you don't have to check the pixels in the boxes, only the boxes's edges. There's not much memory waste (for each box : 4 coordinates by box : x1, y1, x2, y2, and the box's name) and this must be really fast.
This CLSN system allow to have specifics parts on 1 bitmap, and, for example, to destruct only 1 part of a plane each time you launch a missile. I think there could be lots of applications.
Don't forget that the boxes's coordinates depend on the bitmap coordinates.
I think the best way to define those boxes is to implement their edition in the bitmap editor. So boxes and their name are added directly to the bitmap description.
For the programmer, he associates bitmaps to a sprite like we do for now. After, a CLSN check is like that :
CLSN <sprite 1>,<box number (name) of the associated bitmap>,<sprite 2>,<box number of the associated bitmap>,<%var>
If, on each bitmap, the name 1 is given to the body box, and the name 2 is given to every attack boxes, you could have the code bellow to check if the sprite 1's attack (that contain an attack bitmap and so an attack box) touch sprite 2's body (that contain a body bitmap and so a body box) :
CLSN ^sprite1,2,^sprite2,1,%TOUCH
So names are int numbers. The same name can be given to different boxes of a bitmap if the programmer thinks they have the same function. In this case, the CLSN function would check every boxes of the bitmap of the sprite that have the same number. So the speed of the CLSN function would depend on how much boxes with the same name the programmer gives to his bitmaps. We must warn him about how it works so that he won't abuse on the boxes number.
On the same bitmap, a box named 1 can cut a box named 2 with no error. Their size and position are free in the bitmap.
If a called box doesn't exist, there's no error, the interpreter pass through the CLSN call.
Here are some stuffs about the mugen'CLSN:
http://www.angelfire...er2/sykchar.htmhttp://www.geocities...enrealm/air.htmIf you're interested, I can give you the tools needed in those tutorials.
About the flip mode, it's the same use than rotation. What's the interest of the rotation ? Only to reduce the memory needed : Only one bitmap is used to show 4 bitmaps with different angles, doesn't it ?
The flip mode allow a character to look right and left (so 2 bitmaps) with only 1 bitmap. It's the vertical flip. To follow this way, we can add an horizontal flip and a mixed vertical and horizontal flip (that is like a 180? rotation). At first, Marco was OK with it. I hope you'll agree it.
If the box CLSN system I talk about is adopted, don't forget to make the boxes to follow the bitmap motions.