#include "../commun.h"

//Gestionnaire de collisions
u32 gcRocherTest(PERSO *p, SONIC *s, u32 type)
{
        if (type & TC_HAUT) //Sonic est dessus le rocher
                s->crochePF = 6;
        return 1;
}

//Gère le personnage du rocher. Appelé à chaque frame
void hRocherTest(SONIC *s, PERSO *p, u32 message)
{
        InitCollisions(p);
        ExecSprScript(p->x, p->y, Obj_Spt_Pal_3_tiles, Rocher_sprScript, 3);
        hCollision(s, p, gcRocherTest, TC_TOUS);
        ColleAuSol(p);
        if ((nTimer & 7) == 0)
        {                        //Toutes les 8 frames (7+1), on déplace le rocher d'un pixel vers la droite
                p->x++; //Déplace le rocher
                if (s->crochePF)        //Sonic est croché?
                        s->x++;                        //On le déplace avec :)
        }
}

//Crée le personnage du rocher
void cpRocherTest(u32 xxx, u32 yyy)
{
        CreePerso(xxx << 4, yyy << 4, 1, 48, 32, hRocherTest, INSTR_SEULEMENT_ECRAN);
}

//Liste des objets supplémentaires
const void *ExtCreePerso[] = { cpRocherTest, };

//Nombre des objets supplémentaires
const int ExtCreePersoTaille = sizeof(ExtCreePerso) / sizeof(ExtCreePerso[0]);