Stupid inheritance added by Linearity on Mon Oct 17 18:59:56 2011

SpriteChange(SpriteObject *p_object = NULL, Sprite *p_newSprite = NULL);

class FieldObject : public MovementObject2D, public SpriteObject, public CollisionObject2D
class Character : public FieldObject
class Avatar : public Character

//this works in C++
Avatar *avatar = new Avatar();
SpriteChange *change = new SpriteChange(avatar);
change->someFunction() // this calls a function on the data member of type SpriteObject *




;; Now for the Chicken bindings
(define new-Avatar (foreign-lambda* (c-pointer "Avatar")
                                    ( <BLAH BLAH BLAH parameters> )
                                    "C_return(new Avatar( <BLAH BLAH BLAH arguments> );"))

(define new-SpriteChange (foreign-lambda* (c-pointer void)
                                          (((c-pointer "SpriteObject") object) ((c-pointer void) sprite))
                                          "C_return(new SpriteChange(object, (Sprite *)sprite));"))