mirror of
https://github.com/AntonioND/palib.git
synced 2025-06-18 14:45:43 -04:00
834 lines
41 KiB
C
834 lines
41 KiB
C
#ifndef _PA_SpriteDual
|
|
#define _PA_SpriteDual
|
|
|
|
extern s16 DualSpriteX[128];
|
|
|
|
/*! \file PA_SpriteDual.h
|
|
\brief Everything concerning the sprite system, but for 2 screens !
|
|
|
|
This file contains all macros, variables, and prototypes regarding the sprite system (OAM, Sprite mouvement, Gfx loading...) on 2 screens, easily, like if it was just one screen
|
|
*/
|
|
|
|
#include "PA_Sprite.h"
|
|
|
|
/** @defgroup SpriteDual Sprite system for Dual Screen
|
|
* Load Sprite, move them around, rotate them...
|
|
* @{
|
|
*/
|
|
|
|
/*! \fn static inline void PA_SetScreenSpace(s16 ScreenSpace)
|
|
\brief
|
|
\~english Set the space between the 2 screens for the Dual Fonctions. 48 pixels by default
|
|
\~french Désigner l'espace entre les 2 écrans, 48 pixels par défaut
|
|
\~\param ScreenSpace
|
|
\~english Space in pixels
|
|
\~french Espace en pixels
|
|
*/
|
|
static inline void PA_SetScreenSpace(s16 ScreenSpace){
|
|
PA_ScreenSpace = 192 + ScreenSpace;
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteX(u8 obj, s16 x)
|
|
\brief
|
|
\~english Set the X position of a sprite on screen
|
|
\~french Position X du sprite à l'écran
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param x
|
|
\~english X position
|
|
\~french Position X
|
|
*/
|
|
static inline void PA_DualSetSpriteX(u8 obj, s16 x){
|
|
PA_obj[0][obj].atr1 = PA_obj[1][obj].atr1 = (PA_obj[0][obj].atr1 & ALL_BUT(PA_OBJ_X)) + ((x) & PA_OBJ_X);
|
|
DualSpriteX[obj] = x; // Memorize X, as moving out will be used to hide sprites
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteY(u8 obj, s16 y)
|
|
\brief
|
|
\~english Set the Y position of a sprite on screen
|
|
\~french Position Y du sprite à l'écran
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param y
|
|
\~english Y position
|
|
\~french Position Y
|
|
*/
|
|
static inline void PA_DualSetSpriteY(u8 obj, s16 y){
|
|
if (y < 192) {
|
|
PA_SetSpriteY(1, obj, y);
|
|
PA_SetSpriteX(1, obj, DualSpriteX[obj]);
|
|
}
|
|
else PA_SetSpriteX(1, obj, 256); // hide sprite if not on screen...
|
|
if (y > PA_ScreenSpace-64) {
|
|
PA_SetSpriteY(0, obj, y - PA_ScreenSpace);
|
|
PA_SetSpriteX(0, obj, DualSpriteX[obj]);
|
|
}
|
|
else PA_SetSpriteX(0, obj, 256);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteXY(u8 sprite, s16 x, s16 y)
|
|
\brief
|
|
\~english Set the X and Y position of a sprite on screen
|
|
\~french Position X et Y du sprite à l'écran
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param x
|
|
\~english X position
|
|
\~french Position Y
|
|
\~\param y
|
|
\~english X position
|
|
\~french Position Y
|
|
*/
|
|
static inline void PA_DualSetSpriteXY(u8 sprite, s16 x, s16 y) {
|
|
PA_DualSetSpriteX(sprite, x);
|
|
PA_DualSetSpriteY(sprite, y);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualCreateSprite(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y)
|
|
\brief
|
|
\~english Create a sprite with it's gfx, on 2 screens
|
|
\~french Creer un sprite avec ses gfxsur les 2 écrans
|
|
\~\param obj_number
|
|
\~english Object number you want to use (0-127 for each screen seperately).
|
|
\~french Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
|
|
\~\param obj_data
|
|
\~english Gfx to load
|
|
\~french Gfx à charger
|
|
\~\param obj_shape
|
|
\~english Object shape, from 0 to 2. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param obj_size
|
|
\~english Object size. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param color_mode
|
|
\~english 256 or 16 color mode (1 or 0).
|
|
\~french Mode 256 ou 16 couleurs (1 ou 0).
|
|
\~\param palette
|
|
\~english Palette to use (0-15).
|
|
\~french Palette à utiliser (0-15).
|
|
\~\param x
|
|
\~english X position of the sprite
|
|
\~french Position X du sprite
|
|
\~\param y
|
|
\~english Y position of the sprite
|
|
\~french Position Y du sprite
|
|
*/
|
|
static inline void PA_DualCreateSprite(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y) {
|
|
PA_CreateSprite(0, obj_number, obj_data, obj_shape, obj_size, color_mode, palette, x, 192);
|
|
PA_CreateSprite(1, obj_number, obj_data, obj_shape, obj_size, color_mode, palette, x, 192);
|
|
PA_DualSetSpriteXY(obj_number, x, y);
|
|
};
|
|
|
|
/*! \fn static inline void PA_DualCreateSpriteEx(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, u8 obj_mode, u8 mosaic, u8 hflip, u8 vflip, u8 prio, u8 dblsize, s16 x, s16 y)
|
|
\brief
|
|
\~english Create a sprite with it's gfx. This is the complex version of the function
|
|
\~french Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction
|
|
\~\param obj_number
|
|
\~english Object number you want to use (0-127 for each screen seperately).
|
|
\~french Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
|
|
\~\param obj_data
|
|
\~english Gfx to load
|
|
\~french Gfx à charger
|
|
\~\param obj_shape
|
|
\~english Object shape, from 0 to 2. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param obj_size
|
|
\~english Object size. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param color_mode
|
|
\~english 256 or 16 color mode (1 or 0).
|
|
\~french Mode 256 ou 16 couleurs (1 ou 0).
|
|
\~\param palette
|
|
\~english Palette to use (0-15).
|
|
\~french Palette à utiliser (0-15).
|
|
\~\param obj_mode
|
|
\~english Object mode (normal, transparent, window). Not functionnal yet, please leave to 0 for now
|
|
\~french Mode du sprite (normal, transparent, fenetre). Pas encore opérationnel, laisser à 0...
|
|
\~\param mosaic
|
|
\~english Activate Mosaic for the sprite or not. Not yet functionnal either :p
|
|
\~french Activer le mode mosaique pour ce sprite. Pas encore au point...
|
|
\~\param hflip
|
|
\~english Horizontal flip on or off...
|
|
\~french Flip horizontal activé ou non.
|
|
\~\param vflip
|
|
\~english Vertical flip...
|
|
\~french Flip vertical...
|
|
\~\param prio
|
|
\~english Sprite priority regarding backgrounds : in front of which background to show it (0-3)
|
|
\~french Priorité du sprite vis-à-vis des fonds : devant quel fond l'afficher... (0-3)
|
|
\~\param dblsize
|
|
\~english Double the possible sprite size. Activate only if you are going to rotate and zoom in the sprite
|
|
\~french Doubler la taille possible du sprite. A activer uniquement si on compte grossir et faire tourner le sprite
|
|
\~\param x
|
|
\~english X position of the sprite
|
|
\~french Position X du sprite
|
|
\~\param y
|
|
\~english Y position of the sprite
|
|
\~french Position Y du sprite
|
|
*/
|
|
static inline void PA_DualCreateSpriteEx(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, u8 obj_mode, u8 mosaic, u8 hflip, u8 vflip, u8 prio, u8 dblsize, s16 x, s16 y){
|
|
PA_CreateSpriteEx(0, obj_number, obj_data, obj_shape, obj_size, color_mode, palette, obj_mode, mosaic, hflip, vflip, prio, dblsize, x, 192);
|
|
PA_CreateSpriteEx(1, obj_number, obj_data, obj_shape, obj_size, color_mode, palette, obj_mode, mosaic, hflip, vflip, prio, dblsize, x, 192);
|
|
PA_DualSetSpriteXY(obj_number, x, y);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualCreate16bitSpriteEx(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, u8 mosaic, u8 hflip, u8 vflip, u8 prio, u8 dblsize, s16 x, s16 y)
|
|
\brief
|
|
\~english Create a 16 bit sprite with it's gfx. This is the complex version of the function. Warning : a 16bit sprite MUST be 128 pixels large, even if you sprite only takes up a small part on the left...
|
|
\~french Creer un sprite de 16 bits avec ses gfx... Ceci est la version complexe de la fonction. Attention : un sprite de 16 bits DOIT etre large de 128 pixels, meme si ce sprite ne prend qu'une petite partie sur la gauche
|
|
\~\param obj_number
|
|
\~english Object number you want to use (0-127 for each screen seperately).
|
|
\~french Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
|
|
\~\param obj_data
|
|
\~english Gfx to load
|
|
\~french Gfx à charger
|
|
\~\param obj_shape
|
|
\~english Object shape, from 0 to 2. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param obj_size
|
|
\~english Object size. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param mosaic
|
|
\~english Activate Mosaic for the sprite or not. Not yet functionnal either :p
|
|
\~french Activer le mode mosaique pour ce sprite. Pas encore au point...
|
|
\~\param hflip
|
|
\~english Horizontal flip on or off...
|
|
\~french Flip horizontal activé ou non.
|
|
\~\param vflip
|
|
\~english Vertical flip...
|
|
\~french Flip vertical...
|
|
\~\param prio
|
|
\~english Sprite priority regarding backgrounds : in front of which background to show it (0-3)
|
|
\~french Priorité du sprite vis-à-vis des fonds : devant quel fond l'afficher... (0-3)
|
|
\~\param dblsize
|
|
\~english Double the possible sprite size. Activate only if you are going to rotate and zoom in the sprite
|
|
\~french Doubler la taille possible du sprite. A activer uniquement si on compte grossir et faire tourner le sprite
|
|
\~\param x
|
|
\~english X position of the sprite
|
|
\~french Position X du sprite
|
|
\~\param y
|
|
\~english Y position of the sprite
|
|
\~french Position Y du sprite
|
|
*/
|
|
|
|
static inline void PA_DualCreate16bitSpriteEx(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, u8 mosaic, u8 hflip, u8 vflip, u8 prio, u8 dblsize, s16 x, s16 y){
|
|
u16 mem_size = PA_obj_sizes[obj_size][obj_shape] << 1;
|
|
u16 *gfx = (u16*)malloc(mem_size);
|
|
mem_size = mem_size >> 1;
|
|
s32 i;
|
|
u16 *data = (u16*)obj_data;
|
|
for (i = 0; i < mem_size; i++) gfx[i] = data[i] + (1 << 15);
|
|
PA_obj[0][obj_number].atr2 = PA_CreateGfx(0, gfx, obj_shape, obj_size, 2) + (prio << 10) + (15 << 12);
|
|
PA_obj[1][obj_number].atr2 = PA_CreateGfx(1, gfx, obj_shape, obj_size, 2) + (prio << 10) + (15 << 12);
|
|
PA_obj[1][obj_number].atr0 = PA_obj[0][obj_number].atr0 = (192 & PA_OBJ_Y) + (dblsize << 9) + (3 << 10) + (mosaic << 12) + (0 << 13) + (obj_shape << 14);
|
|
PA_obj[1][obj_number].atr1 = PA_obj[0][obj_number].atr1 = (x & PA_OBJ_X) + (hflip << 12) + (vflip << 13) + (obj_size << 14);
|
|
PA_DualSetSpriteXY(obj_number, x, y);
|
|
|
|
free(gfx);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualCreate16bitSprite(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, s16 x, s16 y)
|
|
\brief
|
|
\~english Create a 16 bit sprite with it's gfx. This is the simple version of the function. Warning : a 16bit sprite MUST be 128 pixels large, even if you sprite only takes up a small part on the left...
|
|
\~french Creer un sprite de 16 bits avec ses gfx... Ceci est la version simple de la fonction. Attention : un sprite de 16 bits DOIT etre large de 128 pixels, meme si ce sprite ne prend qu'une petite partie sur la gauche
|
|
\~\param obj_number
|
|
\~english Object number you want to use (0-127 for each screen seperately).
|
|
\~french Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
|
|
\~\param obj_data
|
|
\~english Gfx to load
|
|
\~french Gfx à charger
|
|
\~\param obj_shape
|
|
\~english Object shape, from 0 to 2. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param obj_size
|
|
\~english Object size. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param x
|
|
\~english X position of the sprite
|
|
\~french Position X du sprite
|
|
\~\param y
|
|
\~english Y position of the sprite
|
|
\~french Position Y du sprite
|
|
*/
|
|
static inline void PA_DualCreate16bitSprite(u8 obj_number, void* obj_data, u8 obj_shape, u8 obj_size, s16 x, s16 y){
|
|
PA_DualCreate16bitSpriteEx(obj_number, obj_data, obj_shape, obj_size, 0, 0, 0, 0, 0, x, y);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualCreateSpriteFromGfx(u8 obj_number, u16 *obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y)
|
|
\brief
|
|
\~english Create a sprite with it's gfx. This is the simple version of the function
|
|
\~french Creer un sprite avec ses gfx... Ceci est la version simple de la fonction
|
|
\~\param obj_number
|
|
\~english Object number you want to use (0-127 for each screen seperately).
|
|
\~french Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
|
|
\~\param obj_gfx
|
|
\~english Memory gfx to use. Get it by using PA_GetSpriteGfx or PA_CreateGfx
|
|
\~french Gfx en mémoire à utiliser. On peut en avoir avec PA_GetSpriteGfx ou PA_CreateGfx
|
|
\~\param obj_shape
|
|
\~english Object shape, from 0 to 2. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param obj_size
|
|
\~english Object size. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param color_mode
|
|
\~english 256 or 16 color mode (1 or 0).
|
|
\~french Mode 256 ou 16 couleurs (1 ou 0).
|
|
\~\param palette
|
|
\~english Palette to use (0-15).
|
|
\~french Palette à utiliser (0-15).
|
|
\~\param x
|
|
\~english X position of the sprite
|
|
\~french Position X du sprite
|
|
\~\param y
|
|
\~english Y position of the sprite
|
|
\~french Position Y du sprite
|
|
*/
|
|
static inline void PA_DualCreateSpriteFromGfx(u8 obj_number, u16 *obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y) {
|
|
PA_CreateSpriteFromGfx(0, obj_number, obj_gfx[0], obj_shape, obj_size, color_mode, palette, x, 192);
|
|
PA_CreateSpriteFromGfx(1, obj_number, obj_gfx[1], obj_shape, obj_size, color_mode, palette, x, 192);
|
|
PA_DualSetSpriteXY(obj_number, x, y);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualCreateSpriteExFromGfx(u8 obj_number, u16 *obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, u8 obj_mode, u8 mosaic, u8 hflip, u8 vflip, u8 prio, u8 dblsize, s16 x, s16 y)
|
|
\brief
|
|
\~english Create a sprite with it's gfx. This is the complex version of the function
|
|
\~french Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction
|
|
\~\param obj_number
|
|
\~english Object number you want to use (0-127 for each screen seperately).
|
|
\~french Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
|
|
\~\param obj_gfx
|
|
\~english Memory gfx to use. Get it by using PA_GetSpriteGfx or PA_CreateGfx
|
|
\~french Gfx en mémoire à utiliser. On peut en avoir avec PA_GetSpriteGfx ou PA_CreateGfx
|
|
\~\param obj_shape
|
|
\~english Object shape, from 0 to 2. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param obj_size
|
|
\~english Object size. Use the OBJ_SIZE_32X32 (...) macros for object shape and obj_size...
|
|
\~french Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
|
|
\~\param color_mode
|
|
\~english 256 or 16 color mode (1 or 0).
|
|
\~french Mode 256 ou 16 couleurs (1 ou 0).
|
|
\~\param palette
|
|
\~english Palette to use (0-15).
|
|
\~french Palette à utiliser (0-15).
|
|
\~\param obj_mode
|
|
\~english Object mode (normal, transparent, window). Not functionnal yet, please leave to 0 for now
|
|
\~french Mode du sprite (normal, transparent, fenetre). Pas encore opérationnel, laisser à 0...
|
|
\~\param mosaic
|
|
\~english Activate Mosaic for the sprite or not. Not yet functionnal either :p
|
|
\~french Activer le mode mosaique pour ce sprite. Pas encore au point...
|
|
\~\param hflip
|
|
\~english Horizontal flip on or off...
|
|
\~french Flip horizontal activé ou non.
|
|
\~\param vflip
|
|
\~english Vertical flip...
|
|
\~french Flip vertical...
|
|
\~\param prio
|
|
\~english Sprite priority regarding backgrounds : in front of which background to show it (0-3)
|
|
\~french Priorité du sprite vis-à-vis des fonds : devant quel fond l'afficher... (0-3)
|
|
\~\param dblsize
|
|
\~english Double the possible sprite size. Activate only if you are going to rotate and zoom in the sprite
|
|
\~french Doubler la taille possible du sprite. A activer uniquement si on compte grossir et faire tourner le sprite
|
|
\~\param x
|
|
\~english X position of the sprite
|
|
\~french Position X du sprite
|
|
\~\param y
|
|
\~english Y position of the sprite
|
|
\~french Position Y du sprite
|
|
*/
|
|
static inline void PA_DualCreateSpriteExFromGfx(u8 obj_number, u16 *obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, u8 obj_mode, u8 mosaic, u8 hflip, u8 vflip, u8 prio, u8 dblsize, s16 x, s16 y) {
|
|
PA_CreateSpriteExFromGfx(0, obj_number, obj_gfx[0], obj_shape, obj_size, color_mode, palette, obj_mode, mosaic, hflip, vflip, prio, dblsize, x, 192);
|
|
PA_CreateSpriteExFromGfx(1, obj_number, obj_gfx[1], obj_shape, obj_size, color_mode, palette, obj_mode, mosaic, hflip, vflip, prio, dblsize, x, 192);
|
|
PA_DualSetSpriteXY(obj_number, x, y);
|
|
}
|
|
|
|
|
|
/*! \fn static inline void PA_DualUpdateSpriteGfx(u8 obj_number, void *obj_data)
|
|
\brief
|
|
\~english Update the Gfx of a given sprite
|
|
\~french Mettre à jour les Gfx d'un sprite donné
|
|
\~\param obj_number
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param obj_data
|
|
\~english Gfx to load
|
|
\~french Graphisme à charger
|
|
*/
|
|
static inline void PA_DualUpdateSpriteGfx(u8 obj_number, void *obj_data){
|
|
PA_UpdateSpriteGfx(0, obj_number, obj_data);
|
|
PA_UpdateSpriteGfx(1, obj_number, obj_data);
|
|
}
|
|
|
|
|
|
/*! \fn static inline void PA_DualUpdateGfx(u16 gfx_number, void *obj_data)
|
|
\brief
|
|
\~english Update the Gfx of a given sprite
|
|
\~french Mettre à jour les Gfx d'un sprite donné
|
|
\~\param gfx_number
|
|
\~english Gfx number in memory
|
|
\~french Numéro du Gfx en mémoire
|
|
\~\param obj_data
|
|
\~english Gfx to load
|
|
\~french Graphisme à charger
|
|
*/
|
|
static inline void PA_DualUpdateGfx(u16 gfx_number, void *obj_data){
|
|
PA_UpdateGfx(0, gfx_number, obj_data);
|
|
PA_UpdateGfx(1, gfx_number, obj_data);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualDeleteSprite(u8 obj_number)
|
|
\brief
|
|
\~english Delete a given sprite. If it is the only one to use it's gfx, it'll be deleted too.
|
|
\~french Effacer un sprite. S'il était le seul à utiliser un gfx, il sera effacé lui aussi
|
|
\~\param obj_number
|
|
\~english Sprite number
|
|
\~french Numéro du sprite
|
|
*/
|
|
static inline void PA_DualDeleteSprite(u8 obj_number){
|
|
PA_DeleteSprite(0, obj_number);
|
|
PA_DeleteSprite(1, obj_number);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteRotEnable(u8 sprite, u8 rotset)
|
|
\brief
|
|
\~english Rotate and zoom a sprite
|
|
\~french Faire tourner et zoomer un sprite
|
|
\~\param sprite
|
|
\~english Sprite you want to rotate
|
|
\~french Sprite que l'on veut faire tourner
|
|
\~\param rotset
|
|
\~english Rotset you want to give to that sprite (0-31). You can apparently use a rotset for multiple sprites if zoomed/rotated identically...
|
|
\~french Rotset que l'on veut pour un sprite donné (0-31). On peut a priori utiliser un rotset pour plusieurs sprites, s'ils sont zoomés/tournés pareil...
|
|
*/
|
|
static inline void PA_DualSetSpriteRotEnable(u8 sprite, u8 rotset){
|
|
PA_SetSpriteRotEnable(0, sprite, rotset);
|
|
PA_SetSpriteRotEnable(1, sprite, rotset);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteRotDisable(u8 sprite)
|
|
\brief
|
|
\~english Stop rotating and zooming a sprite
|
|
\~french Arreter de faire tourner et zoomer un sprite
|
|
\~\param sprite
|
|
\~english Sprite you want to rotate
|
|
\~french Sprite que l'on veut faire tourner
|
|
*/
|
|
static inline void PA_DualSetSpriteRotDisable(u8 sprite){
|
|
PA_SetSpriteRotDisable(0, sprite);
|
|
PA_SetSpriteRotDisable(1, sprite);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetRotset(u8 rotset, s16 angle, u16 zoomx, u16 zoomy)
|
|
\brief
|
|
\~english Rotate and zoom a sprite
|
|
\~french Faire tourner et zoomer un sprite
|
|
\~\param rotset
|
|
\~english Rotset you want to change. To give a sprite a rotset, use PA_SetSpriteRotEnable...
|
|
\~french Rotset que l'on veut changer. Pour attribuer un rotset à un sprite, utiliser PA_SetSpriteRotEnable
|
|
\~\param angle
|
|
\~english Angle, between 0 and 512 (not 360, be carefull)
|
|
\~french Angle, entre 0 et 512 (et non 360, attention !)
|
|
\~\param zoomx
|
|
\~english Horizontal zoom. 256 is unzoomed, 512 is 2 times smaller, and 128 twice as big... So adjust at will ! :p
|
|
\~french Zoom horizontal. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p
|
|
\~\param zoomy
|
|
\~english Vertical zoom. 256 is unzoomed, 512 is 2 times smaller, and 128 twice as big... So adjust at will ! :p
|
|
\~french Zoom vertical. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p
|
|
*/
|
|
|
|
static inline void PA_DualSetRotset(u8 rotset, s16 angle, u16 zoomx, u16 zoomy) {
|
|
u8 obj_num = (rotset << 2);
|
|
PA_obj[0][obj_num].atr3 = PA_obj[1][obj_num].atr3 = (PA_Cos(angle) * zoomx) >> 8;
|
|
PA_obj[0][obj_num + 1].atr3 = PA_obj[1][obj_num + 1].atr3 = (-PA_Sin(angle) * zoomy) >> 8;
|
|
PA_obj[0][obj_num + 2].atr3 = PA_obj[1][obj_num + 2].atr3 = (PA_Sin(angle) * zoomx) >> 8;
|
|
PA_obj[0][obj_num + 2].atr3 = PA_obj[1][obj_num + 2].atr3 = (PA_Sin(angle) * zoomx) >> 8;
|
|
PA_obj[0][obj_num + 3].atr3 = PA_obj[1][obj_num + 3].atr3 = (PA_Cos(angle) * zoomy) >> 8;
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetRotsetNoZoom(u8 rotset, s16 angle)
|
|
\brief
|
|
\~english Rotate a sprite without zooming. It's a bit faster than the normal PA_SetRotset function
|
|
\~french Faire tourner un sprite sans zoomer. C'est un peu plus rapide que la fonction PA_SetRotset
|
|
\~\param rotset
|
|
\~english Rotset you want to change. To give a sprite a rotset, use PA_SetSpriteRotEnable...
|
|
\~french Rotset que l'on veut changer. Pour attribuer un rotset à un sprite, utiliser PA_SetSpriteRotEnable
|
|
\~\param angle
|
|
\~english Angle, between 0 and 512 (not 360, be carefull)
|
|
\~french Angle, entre 0 et 512 (et non 360, attention !)
|
|
*/
|
|
static inline void PA_DualSetRotsetNoZoom(u8 rotset, s16 angle) {
|
|
u8 obj_num = (rotset << 2);
|
|
PA_obj[0][obj_num].atr3 = PA_obj[1][obj_num].atr3 = PA_Cos(angle);
|
|
PA_obj[0][obj_num + 1].atr3 = PA_obj[1][obj_num + 1].atr3 = -PA_Sin(angle);
|
|
PA_obj[0][obj_num + 2].atr3 = PA_obj[1][obj_num + 2].atr3 = PA_Sin(angle);
|
|
PA_obj[0][obj_num + 3].atr3 = PA_obj[1][obj_num + 3].atr3 = PA_Cos(angle);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetRotsetNoAngle(u8 rotset, u16 zoomx, u16 zoomy)
|
|
\brief
|
|
\~english Zoom a sprite without rotating. It's a bit faster than the normal PA_SetRotset function
|
|
\~french Zoomer un sprite sans le faire tourner. C'est un peu plus rapide que la fonction PA_SetRotset
|
|
\~\param rotset
|
|
\~english Rotset you want to change. To give a sprite a rotset, use PA_SetSpriteRotEnable...
|
|
\~french Rotset que l'on veut changer. Pour attribuer un rotset à un sprite, utiliser PA_SetSpriteRotEnable
|
|
\~\param zoomx
|
|
\~english Horizontal zoom. 256 is unzoomed, 512 is 2 times smaller, and 128 twice as big... So adjust at will ! :p
|
|
\~french Zoom horizontal. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p
|
|
\~\param zoomy
|
|
\~english Vertical zoom. 256 is unzoomed, 512 is 2 times smaller, and 128 twice as big... So adjust at will ! :p
|
|
\~french Zoom vertical. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p
|
|
*/
|
|
static inline void PA_DualSetRotsetNoAngle(u8 rotset, u16 zoomx, u16 zoomy) {
|
|
u8 obj_num = (rotset << 2);
|
|
PA_obj[0][obj_num].atr3 = PA_obj[1][obj_num].atr3 = zoomx;
|
|
PA_obj[0][obj_num + 1].atr3 = PA_obj[1][obj_num + 1].atr3 = 0;
|
|
PA_obj[0][obj_num + 2].atr3 = PA_obj[1][obj_num + 2].atr3 = 0;
|
|
PA_obj[0][obj_num + 3].atr3 = PA_obj[1][obj_num + 3].atr3 = zoomy;
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpritePal(u8 obj, u8 pal)
|
|
\brief
|
|
\~english Set the color palette used by a sprite
|
|
\~french Changer la palette d'un sprite
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param pal
|
|
\~english Palette number (0 - 15)
|
|
\~french Numéro de la palette (de 0 à 15)
|
|
*/
|
|
static inline void PA_DualSetSpritePal(u8 obj, u8 pal){
|
|
PA_SetSpritePal(0, obj, pal);
|
|
PA_SetSpritePal(1, obj, pal);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteDblsize(u8 obj, u8 dblsize)
|
|
\brief
|
|
\~english Enable or disable double size for a given sprite
|
|
\~french Activer ou désactiver le mode Doublesize pour un sprite
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param dblsize
|
|
\~english 1 to enable doublesize, 0 to disable it...
|
|
\~french 1 pour l'activer, 0 pour l'inactiver
|
|
*/
|
|
static inline void PA_DualSetSpriteDblsize(u8 obj, u8 dblsize){
|
|
PA_SetSpriteDblsize(0, obj, dblsize);
|
|
PA_SetSpriteDblsize(1, obj, dblsize);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteColors(u8 sprite, u8 n_colors)
|
|
\brief
|
|
\~english Change the sprite's color mode
|
|
\~french Changer le mode de couleur du sprite
|
|
\~\param sprite
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param n_colors
|
|
\~english 0 for 16 colors, 1 for 256
|
|
\~french 0 pour 16 couleurs, 1 pour 256
|
|
*/
|
|
static inline void PA_DualSetSpriteColors(u8 sprite, u8 n_colors){
|
|
PA_SetSpriteColors(0, sprite, n_colors);
|
|
PA_SetSpriteColors(1, sprite, n_colors);
|
|
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteMode(u8 sprite, u8 obj_mode)
|
|
\brief
|
|
\~english Set the sprite's mode : 0 for normal, 1 for alpha blending, 2 for window
|
|
\~french Régler le mode d'un sprite : 0 pour normal, 1 pour transparent, 2 pour fenetre
|
|
\~\param sprite
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param obj_mode
|
|
\~english Object mode : 0 for normal, 1 for alpha blending, 2 for window ; not working yet
|
|
\~french Mode : 0 pour normal, 1 pour transparent, 2 pour fenetre ; ne marche pas encore
|
|
*/
|
|
static inline void PA_DualSetSpriteMode(u8 sprite, u8 obj_mode){
|
|
PA_SetSpriteMode(0, sprite, obj_mode);
|
|
PA_SetSpriteMode(1, sprite, obj_mode);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteMosaic(u8 obj, u8 mosaic)
|
|
\brief
|
|
\~english Enable or disable mosaic mode for a given sprite
|
|
\~french Mettre ou non un sprite en mode mosaic
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param mosaic
|
|
\~english Set mosaic on (1) or off (0)
|
|
\~french Mode mosaic activé (1) ou désactivé (0)
|
|
*/
|
|
static inline void PA_DualSetSpriteMosaic(u8 obj, u8 mosaic){
|
|
PA_SetSpriteMosaic(0, obj, mosaic);
|
|
PA_SetSpriteMosaic(1, obj, mosaic);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteHflip(u8 obj, u8 hflip)
|
|
\brief
|
|
\~english Enable or disable horizontal flip for a given sprite
|
|
\~french Utiliser ou non le flip horizontal pour un sprite
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param hflip
|
|
\~english Horizontal flip, 1 to enable, 0 to disable...
|
|
\~french Flip horizontal, 1 pour oui, 0 pour non...
|
|
*/
|
|
static inline void PA_DualSetSpriteHflip(u8 obj, u8 hflip){
|
|
PA_SetSpriteHflip(0, obj, hflip);
|
|
PA_SetSpriteHflip(1, obj, hflip);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteVflip(u8 obj, u8 vflip)
|
|
\brief
|
|
\~english Enable or disable vertical flip for a given sprite
|
|
\~french Utiliser ou non le flip vertical pour un sprite
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param vflip
|
|
\~english Vertical flip, 1 to enable, 0 to disable...
|
|
\~french Flip vertical, 1 pour oui, 0 pour non...
|
|
*/
|
|
static inline void PA_DualSetSpriteVflip(u8 obj, u8 vflip){
|
|
PA_SetSpriteVflip(0, obj, vflip);
|
|
PA_SetSpriteVflip(1, obj, vflip);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteGfx(u8 obj, u16 *gfx)
|
|
\brief
|
|
\~english Change the gfx used by a sprite
|
|
\~french Modifier les graphismes utilisés par un sprite
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param gfx
|
|
\~english Gfx number ; you can get one by using PA_CreateGfx or PA_GetSpriteGfx(obj_number);
|
|
\~french Numéro du gfx en mémoire ; on peut obtenir un numéro avec PA_CreateGfx ou PA_GetSpriteGfx(obj_number);
|
|
*/
|
|
static inline void PA_DualSetSpriteGfx(u8 obj, u16 *gfx){
|
|
PA_SetSpriteGfx(0, obj, gfx[0]);
|
|
PA_SetSpriteGfx(1, obj, gfx[1]);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpritePrio(u8 obj, u8 prio)
|
|
\brief
|
|
\~english Set a sprite's Background priority
|
|
\~french Régler la priorité d'un sprite par rapport au Bg.
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param prio
|
|
\~english Sprite priority : 0 is over background 0, 1 over Bg 1, etc... (0-3)
|
|
\~french Priorité du sprite : 0 est au-dessus du fond 0, 1 au-dessus du 1, etc... (0-3)
|
|
*/
|
|
static inline void PA_DualSetSpritePrio(u8 obj, u8 prio){
|
|
PA_SetSpritePrio(0, obj, prio);
|
|
PA_SetSpritePrio(1, obj, prio);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualCloneSprite(u8 obj, u8 target)
|
|
\brief
|
|
\~english Clone a sprite. Works only for sprites on the same screen
|
|
\~french Cloner un sprite. Marche uniquement pour les sprites sur un meme écran
|
|
\~\param obj
|
|
\~english Object number in the sprite system
|
|
\~french Numéro de l'objet dans le systeme de sprite
|
|
\~\param target
|
|
\~english Target sprite to clone
|
|
\~french Numéro de la cible à cloner
|
|
*/
|
|
static inline void PA_DualCloneSprite(u8 obj, u8 target){
|
|
PA_CloneSprite(0, obj, target);
|
|
PA_CloneSprite(1, obj, target);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteAnimEx(u8 sprite, u8 lx, u8 ly, u8 ncolors, s16 animframe)
|
|
\brief
|
|
\~english Set the animation frame for a given sprite. This function is faster than the normal PA_SetSpriteAnim because it doesn't have to lookup the sprite dimensions...
|
|
\~french Régler l'image du sprite dans l'animation. Cette fonction est plus rapide que PA_SetSpriteAnim parce qu'elle n'a pas à rechercher les dimensions du sprite
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param lx
|
|
\~english Sprite width (8, 16, 32, 64)
|
|
\~french Largeur du sprite (8, 16, 32, 64)
|
|
\~\param ly
|
|
\~english Sprite height (8, 16, 32, 64)
|
|
\~french Hauteur du sprite (8, 16, 32, 64)
|
|
\~\param ncolors
|
|
\~english Sprite color mode (0 for 16 colors, 1 for 256)
|
|
\~french Mode couleur du sprite (0 pour 16 couleurs, 1 pour 256)
|
|
\~\param animframe
|
|
\~english Sprite animation frame (0, 1, 2, etc...)
|
|
\~french Frame de l'animation du sprite (0, 1, 2, etc...)
|
|
*/
|
|
static inline void PA_DualSetSpriteAnimEx(u8 sprite, u8 lx, u8 ly, u8 ncolors, s16 animframe){
|
|
PA_SetSpriteAnimEx(0, sprite, lx, ly, ncolors, animframe);
|
|
PA_SetSpriteAnimEx(1, sprite, lx, ly, ncolors, animframe);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteAnim(u8 sprite, s16 animframe)
|
|
\brief
|
|
\~english Set the animation frame for a given sprite. Same as PA_SetSpriteAnimEx, but a bit slower and easier to use...
|
|
\~french Régler l'image du sprite dans l'animation. Identique à PA_SetSpriteAnimEx, mais plus simple à utiliser, par contre plus lent
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param animframe
|
|
\~english Sprite animation frame (0, 1, 2, etc...)
|
|
\~french Frame de l'animation du sprite (0, 1, 2, etc...)
|
|
*/
|
|
static inline void PA_DualSetSpriteAnim(u8 sprite, s16 animframe){
|
|
u8 lx = PA_GetSpriteLx(0, sprite); u8 ly = PA_GetSpriteLy(0, sprite);
|
|
u8 ncolors = PA_GetSpriteColors(0, sprite);
|
|
PA_SetSpriteAnimEx(0, sprite, lx, ly, ncolors, animframe);
|
|
PA_SetSpriteAnimEx(1, sprite, lx, ly, ncolors, animframe);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualStartSpriteAnimEx(u8 sprite, s16 firstframe, s16 lastframe, s16 speed, u8 type, s16 ncycles)
|
|
\brief
|
|
\~english Start a sprite animation for DualSprites. Once started, it continues on and on by itself until you stop it !
|
|
\~french Démarre une animation de sprite pour DualSprites. Une fois démarrée, elle continue tant qu'on ne l'arrête pas !
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param firstframe
|
|
\~english First frame of the animation sequence, most of the time 0...
|
|
\~french Premières image de l'animation, généralement 0....
|
|
\~\param lastframe
|
|
\~english Last frame to be displayed. When it gets there, it loops back to the first frame
|
|
\~french Dernière image à afficher. Une fois atteinte, ca retourne à la première
|
|
\~\param speed
|
|
\~english Speed, in frames per second. So speed 1 would mean 1 image per second, so 1 image every game frame
|
|
\~french Vitesse, en frames par seconde (fps). 1 signifie donc 1 image par seconde...
|
|
\~\param type
|
|
\~english Defines how you want it to loop. ANIM_LOOP (0) for a normal loop, ANIM_UPDOWN (1) for back and forth animation.
|
|
\~french Défini de quelle manière on veut boucler. ANIM_LOOP (0) pour normal, et ANIM_UPDOWN (1) pour d'avant en arrière
|
|
\~\param ncycles
|
|
\~english Number of animation cycles before stopping. If using ANIM_UPDOWN, it takes 2 cycles to come back to the original image
|
|
\~french Nombres de cycles d'animations avant l'arrêt. Si on utilise ANIM_UPDOWN, il faut 2 cycles pour que l'animation revienne à l'image de base
|
|
*/
|
|
static inline void PA_DualStartSpriteAnimEx(u8 sprite, s16 firstframe, s16 lastframe, s16 speed, u8 type, s16 ncycles){
|
|
PA_StartSpriteAnimEx(0, sprite, firstframe, lastframe, speed, type, ncycles);
|
|
PA_StartSpriteAnimEx(1, sprite, firstframe, lastframe, speed, type, ncycles);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualStartSpriteAnim(u8 sprite, s16 firstframe, s16 lastframe, s16 speed)
|
|
\brief
|
|
\~english Start a sprite animation for DualSprite. Once started, it continues on and on by itself until you stop it !
|
|
\~french Démarre une animation de sprite pour DualSprite. Une fois démarrée, elle continue tant qu'on ne l'arrête pas !
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param firstframe
|
|
\~english First frame of the animation sequence, most of the time 0...
|
|
\~french Premières image de l'animation, généralement 0....
|
|
\~\param lastframe
|
|
\~english Last frame to be displayed. When it gets there, it loops back to the first frame
|
|
\~french Dernière image à afficher. Une fois atteinte, ca retourne à la première
|
|
\~\param speed
|
|
\~english Speed, in frames per second. So speed 1 would mean 1 image per second, so 1 image every game frame
|
|
\~french Vitesse, en frames par seconde (fps). 1 signifie donc 1 image par seconde...
|
|
*/
|
|
static inline void PA_DualStartSpriteAnim(u8 sprite, s16 firstframe, s16 lastframe, s16 speed){
|
|
PA_StartSpriteAnim(0, sprite, firstframe, lastframe, speed);
|
|
PA_StartSpriteAnim(1, sprite, firstframe, lastframe, speed);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualStopSpriteAnim(u8 sprite)
|
|
\brief
|
|
\~english Stop a sprite animation for DualSprites
|
|
\~french Arrêter une animation de sprite pour les DualSprites
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
*/
|
|
static inline void PA_DualStopSpriteAnim(u8 sprite){
|
|
PA_StopSpriteAnim(0, sprite);
|
|
PA_StopSpriteAnim(1, sprite);
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteAnimFrame(u8 sprite, u16 frame)
|
|
\brief
|
|
\~english Set the current animation frame number for DualSprites
|
|
\~french Changer le numéro actuel de la frame d'animation pour les DualSprites
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param frame
|
|
\~english Frame number to use...
|
|
\~french Numéro de frame...
|
|
*/
|
|
static inline void PA_DualSetSpriteAnimFrame(u8 sprite, u16 frame){
|
|
PA_SetSpriteAnimFrame(0, sprite, frame);
|
|
PA_SetSpriteAnimFrame(1, sprite, frame);
|
|
}
|
|
|
|
/*! \fn static inline u16 PA_DualGetSpriteAnimFrame(u8 sprite)
|
|
\brief
|
|
\~english Returns the current animation frame number for DualSprites
|
|
\~french Renvoie le numéro actuel de la frame d'animation pour les DualSprites
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
*/
|
|
static inline u16 PA_DualGetSpriteAnimFrame(u8 sprite){
|
|
return spriteanims[0][sprite].currentframe;
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSetSpriteAnimSpeed(u8 sprite, s16 speed)
|
|
\brief
|
|
\~english Set the current animation speed for DualSprites
|
|
\~french Changer la vitesse de l'animation pour les DualSprites
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param speed
|
|
\~english Speed, in fps...
|
|
\~french Vitesse, en fps...
|
|
*/
|
|
static inline void PA_DualSetSpriteAnimSpeed(u8 sprite, s16 speed){
|
|
PA_SetSpriteAnimSpeed(0, sprite, speed);
|
|
PA_SetSpriteAnimSpeed(1, sprite, speed);
|
|
}
|
|
|
|
/*! \fn static inline u16 PA_DualGetSpriteAnimSpeed(u8 sprite)
|
|
\brief
|
|
\~english Returns the current animation speed for DualSprites
|
|
\~french Renvoie la vitesse de l'animation pour les DualSprites
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
*/
|
|
static inline u16 PA_DualGetSpriteAnimSpeed(u8 sprite){
|
|
return spriteanims[0][sprite].speed;
|
|
}
|
|
|
|
/*! \fn static inline void PA_DualSpriteAnimPause(u8 sprite, u8 pause)
|
|
\brief
|
|
\~english Pause or UnPause a sprite animation for DualSprites
|
|
\~french Mettre en Pause en remettre en lecture une animation de sprite pour les DualSprites
|
|
\~\param sprite
|
|
\~english sprite number in the sprite system
|
|
\~french Numéro du sprite dans le systeme de sprite
|
|
\~\param pause
|
|
\~english 1 for pause, 0 for unpause
|
|
\~french 1 pour pause, 0 pour reprendre la lecture...
|
|
*/
|
|
static inline void PA_DualSpriteAnimPause(u8 sprite, u8 pause){
|
|
PA_SpriteAnimPause(0, sprite, pause);
|
|
PA_SpriteAnimPause(1, sprite, pause);
|
|
}
|
|
|
|
/** @} */ // end of Sprite
|
|
|
|
#endif
|