supercasiobros/src/tuyau.c

43 lines
826 B
C

#include <tuyau.h>
#include <mario.h>
#include <keyboard.h>
#include <gint/std/string.h>
static teleport_t teleporteurs[6]={0}; // 6 max
static int nombre_teleporteurs=0; // Nombre d'entités utilisés dans le niveau actuel
void set_teleporteurs(teleport_t const * const t, int const n)
{
nombre_teleporteurs=0;
if (t)
{
if (n>6)
nombre_teleporteurs=6;
else
nombre_teleporteurs=n;
if (nombre_teleporteurs)
{
memcpy(teleporteurs, t, sizeof(teleport_t)*n);
}
}
}
void teleport_active()
{
for (int i=0; i<nombre_teleporteurs; i++)
{
teleport_t const t = teleporteurs[i];
if ((t.x==mario.p.x/8) && (t.y==mario.p.y/8 || t.y==(mario.p.y+mario.p.h)/8))
{
if (t.key>=0)
{
if (!keys[t.key])
continue;
}
mario.p.x=t.tx*8; mario.p.y=t.ty*8;
mario.p.vx=0; mario.p.vy=0;
}
}
}