|
Macros |
|
#define | PA_UpdateOAM0() DMA_Copy((void*)PA_obj, (void*)OAM0, 256, DMA_32NOW) |
| | Mettre à jour les infos des sprites pour l'écran 0 uniquement. A faire dans le VBL
|
|
#define | PA_UpdateOAM1() DMA_Copy((void*)PA_obj + 256, (void*)OAM1, 256, DMA_32NOW) |
| | Mettre à jour les infos des sprites pour l'écran 1 uniquement. A faire dans le VBL
|
| #define | PA_UpdateSpriteGfx(screen, obj_number, obj_data) PA_UpdateGfx(screen, PA_GetSpriteGfx(screen, obj_number), obj_data) |
| | Mettre à jour les Gfx d'un sprite donné
|
| #define | PA_SetSpriteRotEnable(screen, sprite, rotset) {PA_obj[screen][sprite].atr0 |= OBJ_ROT; PA_obj[screen][sprite].atr1 = (PA_obj[screen][sprite].atr1 & ALL_BUT_ROTSET) + ((rotset) << 9);} |
| | Faire tourner et zoomer un sprite
|
| #define | PA_SetSpriteRotDisable(screen, sprite) {PA_obj[screen][sprite].atr0 &= ALL_BUT(OBJ_ROT); PA_obj[screen][sprite].atr1 &= ALL_BUT_ROTSET;} |
| | Arreter de faire tourner et zoomer un sprite
|
| #define | PA_SetSpriteX(screen, obj, x) PA_obj[screen][obj].atr1 = (PA_obj[screen][obj].atr1 & ALL_BUT(PA_OBJ_X)) + ((x) & PA_OBJ_X) |
| | Position X du sprite à l'écran
|
| #define | PA_GetSpriteX(screen, obj) (PA_obj[screen][obj].atr1 & (PA_OBJ_X)) |
| | Position X du sprite à l'écran
|
| #define | PA_SetSpriteY(screen, obj, y) PA_obj[screen][obj].atr0 = (PA_obj[screen][obj].atr0 & ALL_BUT(PA_OBJ_Y)) + ((y) & PA_OBJ_Y) |
| | Position Y du sprite à l'écran
|
| #define | PA_GetSpriteY(screen, obj) (PA_obj[screen][obj].atr0 & PA_OBJ_Y) |
| | Position Y du sprite à l'écran
|
| #define | PA_SetSpritePal(screen, obj, pal) PA_obj[screen][obj].atr2 = (PA_obj[screen][obj].atr2 & ALL_BUT_PAL) + ((pal) << 12) |
| | Changer la palette d'un sprite
|
| #define | PA_GetSpritePal(screen, obj) (PA_obj[screen][obj].atr2 >> 12) |
| | Palette d'un sprite
|
| #define | PA_SetSpriteDblsize(screen, obj, dblsize) PA_obj[screen][obj].atr0 = (PA_obj[screen][obj].atr0 & ALL_BUT(DBLSIZE)) + ((dblsize) << 9) |
| | Activer ou désactiver le mode Doublesize pour un sprite
|
| #define | PA_GetSpriteDblsize(screen, obj) ((PA_obj[screen][obj].atr0 & DBLSIZE) >> 9) |
| | Etat du mode Doublesize pour un sprite
|
| #define | PA_SetSpriteColors(screen, sprite, n_colors) PA_obj[screen][sprite].atr0 = (PA_obj[screen][sprite].atr0 & ALL_BUT(N_COLORS)) + ((n_colors) << 13) |
| | Changer le mode de couleur du sprite
|
| #define | PA_GetSpriteColors(screen, sprite) ((PA_obj[screen][sprite].atr0 & N_COLORS) >> 13) |
| | Mode de couleur d'un sprite
|
| #define | PA_SetSpriteMode(screen, sprite, obj_mode) PA_obj[screen][sprite].atr0 = (PA_obj[screen][sprite].atr0 & ALL_BUT(OBJ_MODE)) + ((obj_mode) << 10) |
| | Régler le mode d'un sprite : 0 pour normal, 1 pour transparent, 2 pour fenetre
|
| #define | PA_GetSpriteMode(screen, obj) ((PA_obj[screen][obj].atr0 & OBJ_MODE) >> 10) |
| | Mode d'un sprite : 0 pour normal, 1 pour transparent, 2 pour fenetre
|
| #define | PA_SetSpriteMosaic(screen, obj, mosaic) PA_obj[screen][obj].atr0 = (PA_obj[screen][obj].atr0 & ALL_BUT(OBJ_MOSAIC)) + ((mosaic) << 12) |
| | Mettre ou non un sprite en mode mosaic
|
| #define | PA_GetSpriteMosaic(screen, obj) ((PA_obj[screen][obj].atr0 & OBJ_MOSAIC) >> 12) |
| | Si un sprite est en mode mosaic
|
| #define | PA_SetSpriteHflip(screen, obj, hflip) PA_obj[screen][obj].atr1 = (PA_obj[screen][obj].atr1 & ALL_BUT(OBJ_HFLIP)) + ((hflip) << 12) |
| | Utiliser ou non le flip horizontal pour un sprite
|
| #define | PA_GetSpriteHflip(screen, obj) ((PA_obj[screen][obj].atr1 & OBJ_HFLIP) >> 12) |
| | S'il y a un flip horizontal pour un sprite
|
| #define | PA_SetSpriteVflip(screen, obj, vflip) PA_obj[screen][obj].atr1 = (PA_obj[screen][obj].atr1 & ALL_BUT(OBJ_VFLIP)) + ((vflip) << 13) |
| | Utiliser ou non le flip vertical pour un sprite
|
| #define | PA_GetSpriteVflip(screen, obj) ((PA_obj[screen][obj].atr1 & OBJ_VFLIP) >> 13) |
| | Si le flip vertical est utilisé ou non pour un sprite
|
| #define | PA_SetSpriteGfx(screen, obj, gfx) PA_obj[screen][obj].atr2 = (PA_obj[screen][obj].atr2 & ALL_BUT(OBJ_GFX)) + ((gfx) & OBJ_GFX) |
| | Modifier les graphismes utilisés par un sprite
|
| #define | PA_GetSpriteGfx(screen, obj) (PA_obj[screen][obj].atr2 & OBJ_GFX) |
| | Récupérer le gfx utilisés par un sprite
|
| #define | PA_SetSpritePrio(screen, obj, prio) PA_obj[screen][obj].atr2 = (PA_obj[screen][obj].atr2 & ALL_BUT(OBJ_PRIO)) + ((prio) << 10) |
| | Régler la priorité d'un sprite par rapport au Bg.
|
| #define | PA_GetSpritePrio(screen, obj) ((PA_obj[screen][obj].atr2 & OBJ_PRIO) >> 10) |
| | Récupérer la priorité d'un sprite par rapport au Bg.
|
| #define | PA_GetSpriteLx(screen, sprite) PA_size[PA_obj[screen][sprite].atr0 >> 14][PA_obj[screen][sprite].atr1 >> 14].lx |
| | Récupérer la largeur d'un sprite
|
| #define | PA_GetSpriteLy(screen, sprite) PA_size[PA_obj[screen][sprite].atr0 >> 14][PA_obj[screen][sprite].atr1 >> 14].ly |
| | Récupérer la hauteur d'un sprite
|
| #define | PA_CloneSprite(screen, obj, target) {PA_obj[screen][obj].atr0 = PA_obj[screen][target].atr0; PA_obj[screen][obj].atr1 = PA_obj[screen][target].atr1; PA_obj[screen][obj].atr2 = PA_obj[screen][target].atr2; ++obj_per_gfx[screen][PA_GetSpriteGfx(screen, target)];} |
| | Cloner un sprite. Marche uniquement pour les sprites sur un meme écran
|
Fonctions |
|
void | PA_UpdateOAM (void) |
| | Mettre à jour les infos des sprites pour les 2 écrans. A faire dans le VBL
|
| u16 | PA_CreateGfx (u8 screen, void *obj_data, u8 obj_shape, u8 obj_size, u8 color_mode) |
| | Charger en mémoire un gfx à utiliser plus tard pour un sprite. Renvoie le numéro en mémoire.
|
|
void | PA_ResetSpriteSysScreen (u8 screen) |
| void | PA_ResetSpriteSys (void) |
| | Remise à 0 du système de sprite, de la mémoire...
|
| void | PA_CreateSprite (u8 screen, u8 obj_number, void *obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y) |
| | Creer un sprite avec ses gfx... Ceci est la version simple de la fonction
|
| void | PA_CreateSpriteEx (u8 screen, 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) |
| | Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction
|
| void | PA_Create16bitSpriteEx (u8 screen, 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) |
| | 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
|
| void | PA_Create16bitSpriteFromGfx (u8 screen, u8 obj_number, u16 gfx, u8 obj_shape, u8 obj_size, s16 x, s16 y) |
| | Creer un sprite de 16 bits à partir de gfx...
|
| void | PA_Create16bitSprite (u8 screen, u8 obj_number, void *obj_data, u8 obj_shape, u8 obj_size, s16 x, s16 y) |
| | 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
|
| void | PA_CreateSpriteFromGfx (u8 screen, u8 obj_number, u16 obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y) |
| | Creer un sprite avec ses gfx... Ceci est la version simple de la fonction
|
| void | PA_CreateSpriteExFromGfx (u8 screen, 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) |
| | Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction
|
| void | PA_UpdateGfx (u8 screen, u16 gfx_number, void *obj_data) |
| | Mettre à jour les Gfx donnés
|
| void | PA_UpdateGfxAndMem (u8 screen, u8 gfx_number, void *obj_data) |
| | Mettre à jour les Gfx donnés et le pointer d'animation dans PAlib... Uniquement pour utilisateurs avertis
|
| void | PA_DeleteGfx (u8 screen, u16 obj_gfx) |
| | Effacer un Gfx. Si un sprite l'utilisait, il deviendra invisible...
|
| void | PA_DeleteSprite (u8 screen, u8 obj_number) |
| | Effacer un sprite. S'il était le seul à utiliser un gfx, il sera effacé lui aussi
|
| void | PA_SetRotset (u8 screen, u8 rotset, s16 angle, u16 zoomx, u16 zoomy) |
| | Faire tourner et zoomer un sprite
|
| void | PA_SetRotsetNoZoom (u8 screen, u8 rotset, s16 angle) |
| | Faire tourner un sprite sans zoomer. C'est un peu plus rapide que la fonction PA_SetRotset
|
| void | PA_SetRotsetNoAngle (u8 screen, u8 rotset, u16 zoomx, u16 zoomy) |
| | Zoomer un sprite sans le faire tourner. C'est un peu plus rapide que la fonction PA_SetRotset
|
| void | PA_SetSpriteXY (u8 screen, u8 sprite, s16 x, s16 y) |
| | Position X et Y du sprite à l'écran
|
| void | PA_SetSpriteAnimEx (u8 screen, u8 sprite, u8 lx, u8 ly, u8 ncolors, s16 animframe) |
| | 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
|
| void | PA_SetSpriteAnim (u8 screen, u8 sprite, s16 animframe) |
| | Régler l'image du sprite dans l'animation. Identique à PA_SetSpriteAnimEx, mais plus simple à utiliser, par contre plus lent
|
| void | PA_StartSpriteAnimEx (u8 screen, u8 sprite, s16 firstframe, s16 lastframe, s16 speed, u8 type, s16 ncycles) |
| | Démarre une animation de sprite. Une fois démarrée, elle continue tant qu'on ne l'arrête pas !
|
| void | PA_StartSpriteAnim (u8 screen, u8 sprite, s16 firstframe, s16 lastframe, s16 speed) |
| | Démarre une animation de sprite. Une fois démarrée, elle continue tant qu'on ne l'arrête pas !
|
| void | PA_StopSpriteAnim (u8 screen, u8 sprite) |
| | Arrêter une animation de sprite
|
| void | PA_SetSpriteAnimFrame (u8 screen, u8 sprite, u16 frame) |
| | Changer le numéro actuel de la frame d'animation
|
| u16 | PA_GetSpriteAnimFrame (u8 screen, u8 sprite) |
| | Renvoie le numéro actuel de la frame d'animation
|
| void | PA_SetSpriteAnimSpeed (u8 screen, u8 sprite, s16 speed) |
| | Changer la vitesse de l'animation
|
| u16 | PA_GetSpriteAnimSpeed (u8 screen, u8 sprite) |
| | Renvoie la vitesse de l'animation
|
| void | PA_SetSpriteNCycles (u8 screen, u8 sprite, s16 NCycles) |
| | Changer le nombre de cycles d'animation restant (-1 pour inifini)
|
| u16 | PA_GetSpriteNCycles (u8 screen, u8 sprite) |
| | Renvoie le nombre de cycles d'animation restants
|
| void | PA_SpriteAnimPause (u8 screen, u8 sprite, u8 pause) |
| | Mettre en Pause en remettre en lecture une animation de sprite
|
| void | PA_SetSpritePixel (u8 screen, u8 sprite, u8 x, u8 y, u8 color) |
| | Mettre un pixel d'un sprite à une couleur donnée. Comme PA_SetSpritePixelEx, avec moins d'options, mais un peu plus lent
|
| u8 | PA_GetSpritePixel (u8 screen, u8 sprite, u8 x, u8 y) |
| | Récupérer la couleur d'un pixel d'un sprite. Comme PA_GetSpritePixelEx, avec moins d'options, mais un peu plus lent
|
| u8 | PA_GetSprite16cPixel (u8 screen, u8 sprite, u8 x, u8 y) |
| | Récupérer la couleur d'un pixel d'un sprite de 16 couleurs.
|
| void | PA_InitSpriteDraw (u8 screen, u8 sprite) |
| | Initialise un sprite pour pouvoir dessiner dessus !
|
|
void | PA_InitAllSpriteDraw (void) |
| | Initialise tous les sprites à l'écran pour dessiner dessus
|
| void | PA_InitSpriteExtPrio (u8 SpritePrio) |
| | Activer le systeme de priorité de sprites PAlib. Plus lent que le systeme normal, il permet d'avoir 256 niveaux de priorité (supplante la priorité par numéro de sprites)
|
|
void | PA_SetSpriteExtPrio (u8 screen, u8 sprite, u8 prio) |