head 1.1; branch 1.1.1; access ; symbols start:1.1.1.1 PAlibDoc:1.1.1; locks ; strict; comment @# @; 1.1 date 2005.11.02.08.30.37; author jandujar; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.11.02.08.30.37; author jandujar; state Exp; branches ; next ; desc @@ 1.1 log @Initial revision @ text @ PA_lib: Bg Modes 0-2

Bg Modes 0-2


Macros

#define PA_HideBg(screen, bg_select)   _REG16(REG_BGSCREEN(screen)) &= ~(0x100 << (bg_select))
 Cacher un fond.
#define PA_ShowBg(screen, bg_select)   _REG16(REG_BGSCREEN(screen)) |= (0x100 << (bg_select))
 Afficher un fond auparavant caché.
#define PA_ResetBg(screen)   _REG16(REG_BGSCREEN(screen)) &= ~(0xF00)
 Reinitialiser les fonds d'un écran. En fait ca ne fait que cacher tous les fonds
#define PA_LoadBgTiles(screen, bg_select, bg_tiles)   PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, SIZEOF_16BIT(bg_tiles))
 Charger un tileset en mémoire
#define PA_LoadSimpleBg(screen, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode)
 Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap
#define PA_LoadRotBg(screen, bg_select, bg_tiles, bg_map, bg_size, wraparound)
 Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs
#define PA_LoadBg(screen, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode)
 Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap
#define PA_BGScrollX(screen, bg_number, x)   _REG16(REG_BGSCROLLX + ((screen) * 0x1000) + ((bg_number) << 2)) = (x)&1023
 Scroll horizontal de n'importe quel fond
#define PA_GetBGScrollX(screen, bg_number)   ((_REG16(REG_BGSCROLLX + ((screen) * 0x1000) + ((bg_number) << 2))) &1023)
 Récupérer le scroll horizontal de n'importe quel fond
#define PA_BGScrollY(screen, bg_number, y)   _REG16(REG_BGSCROLLY + ((screen) * 0x1000) + ((bg_number) << 2)) = (y)&1023
 Scroll vertical de n'importe quel fond
#define PA_GetBGScrollY(screen, bg_number)   ((_REG16(REG_BGSCROLLY + ((screen) * 0x1000) + ((bg_number) << 2))) &1023)
 Récupérer le scroll vertical de n'importe quel fond
#define PA_BGScrollXY(screen, bg_number, x, y)   {PA_BGScrollX(screen, bg_number, x); PA_BGScrollY(screen, bg_number, y);}
 Scroll horizontal et vertical de n'importe quel fond
#define PA_SetMapTile(screen, bg_select, x, y, tile_number)   {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_N); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((tile_number)&TILE_N);}
 Change la tile gfx utilisée pour une tile donnée dans la map
#define PA_SetMapTileAll(screen, bg_select, x, y, tile_info)   *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) = tile_info
 Change les infos tiles utilisée pour une tile donnée dans la map
#define PA_SetMapTileHflip(screen, bg_select, x, y, hflip)   {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_HFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((hflip) << 10);}
 Flipper une tile de la carte, horizontalement
#define PA_SetMapTileVflip(screen, bg_select, x, y, vflip)   {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_VFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((vflip) << 11);}
 Flipper une tile de la carte, verticalement
#define PA_SetMapTilePal(screen, bg_select, x, y, palette_number)   {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((palette_number) << 12);}
 Changer la palette de 16 couleurs utilisée par une tile de la carte. Marche uniquement en mode 16 couleurs pour le Bg.
#define PA_SetMapTileEx(screen, bg_select, x, y, tile_number, hflip, vflip, palette_number)   *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) = (tile_number) + ((hflip) << 10) + ((vflip) << 11) + ((palette_number) << 12)
 Changer tous les aspect d'une tile donnée dans la map.
#define PA_LoadTiledBitmap(screen, tiled_bitmap)   PA_LoadBg(screen, 0, tiled_bitmap, SCREEN_TILES, bitmap, BG_256X256, 1, 1)
 Charger un bitmap converti avec gfx2gba, comme pour un fond normal, mais sans aucune optimisation. Plus la peine d'inclure la map dans ce cas. Attention, prend tout la mémoire des fonds.
#define PA_LoadLargeBg(screen, bg_select, bg_tiles, bg_map, color_mode, lx, ly)
 Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large)
#define PA_LoadLargeBgEx(screen, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly)
 Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), mais ici on met soi-meme la taille des tiles

Fonctions

void PA_ResetBgSys (void)
 Reinitialise le systeme de fonds
void PA_InitBg (bool screen, u8 bg_select, u8 bg_size, bool wraparound, bool color_mode)
 Initialise un fond. A faire uniquement après avoir chargé un tileset et une map.
void PA_LoadBgTilesEx (bool screen, u8 bg_select, void *bg_tiles, u16 size)
 Charger un tileset en mémoire avec une taille donnée
void PA_DeleteTiles (bool screen, u8 bg_select)
 Effacer un tileset en mémoire. A noter que charger un tileset efface automatiquement le tileset précédent, donc on n'aura pas souvent besoin de cette fonction...
void PA_DeleteMap (bool screen, u8 bg_select)
 Effacer une map en mémoire. A noter que charger une map efface automatiquement la map précédent, donc on n'aura pas souvent besoin de cette fonction...
void PA_DeleteBg (bool screen, u8 bg_select)
 Effacer un fond complètement (tiles + map + cacher)
void PA_LoadBgMap (bool screen, u8 bg_select, void *bg_map, u8 bg_size)
 Charge la carte d'un fond
void PA_SetBgRot (bool screen, u8 bg_select, s32 x_scroll, s32 y_scroll, s32 x_rotcentre, s32 y_rotcentre, s16 bg_angle, s32 bg_zoom)
void PA_SetLargeMapTile (bool screen, u8 bg_select, s32 x, s32 y, u32 tile_info)
 Change les infos tiles utilisée pour une tile donnée dans la map, seulement pour les grands fonds (512 de large ou haut)
void PA_InfLargeScrollX (bool screen, u8 bg_select, s32 x)
 Déplacer un fond à scrolling 'infini' horizontalement. Doit etre initialisé avec PA_LoadLargeBg.
void PA_InfLargeScrollY (bool screen, u8 bg_select, s32 y)
 Déplacer un fond à scrolling 'infini' verticalement. Doit etre initialisé avec PA_LoadLargeBg.
void PA_InfLargeScrollXY (bool screen, u8 bg_select, s32 x, s32 y)
 Déplacer un fond à scrolling 'infini' horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg.
void PA_LargeScrollX (bool screen, u8 bg_select, s32 x)
 Déplacer un grand fond à scrolling horizontalement.Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void PA_LargeScrollY (bool screen, u8 bg_select, s32 y)
 Déplacer un grand fond à scrolling verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void PA_LargeScrollXY (bool screen, u8 bg_select, s32 x, s32 y)
 Déplacer un grand fond à scrolling horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void PA_InitParallaxX (bool screen, s32 bg0, s32 bg1, s32 bg2, s32 bg3)
 Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller
void PA_InitParallaxY (bool screen, s32 bg0, s32 bg1, s32 bg2, s32 bg3)
 Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller
void PA_ParallaxScrollX (bool screen, s32 x)
 Déplacer les fonds activés pour le parallax...
void PA_ParallaxScrollY (bool screen, s32 y)
 Déplacer les fonds activés pour le parallax...
void PA_ParallaxScrollXY (bool screen, s32 x, s32 y)
 Déplacer les fonds activés pour le parallax...
void PA_SetBgPrio (bool screen, u8 bg, u8 prio)
 Changer la priorité d'un fond

Description détaillée

Load tiles, a map, scroll it...

Documentation des macro

#define PA_BGScrollX screen,
bg_number,
 )     _REG16(REG_BGSCROLLX + ((screen) * 0x1000) + ((bg_number) << 2)) = (x)&1023
 

Scroll horizontal de n'importe quel fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X à déplacer, horizontalement...

#define PA_BGScrollXY screen,
bg_number,
x,
 )     {PA_BGScrollX(screen, bg_number, x); PA_BGScrollY(screen, bg_number, y);}
 

Scroll horizontal et vertical de n'importe quel fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X à déplacer, horizontalement...
y Valeur Y à déplacer, verticalement...

#define PA_BGScrollY screen,
bg_number,
 )     _REG16(REG_BGSCROLLY + ((screen) * 0x1000) + ((bg_number) << 2)) = (y)&1023
 

Scroll vertical de n'importe quel fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
y Valeur Y à déplacer, verticalement...

#define PA_GetBGScrollX screen,
bg_number   )     ((_REG16(REG_BGSCROLLX + ((screen) * 0x1000) + ((bg_number) << 2))) &1023)
 

Récupérer le scroll horizontal de n'importe quel fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond (0-3)

#define PA_GetBGScrollY screen,
bg_number   )     ((_REG16(REG_BGSCROLLY + ((screen) * 0x1000) + ((bg_number) << 2))) &1023)
 

Récupérer le scroll vertical de n'importe quel fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond (0-3)

#define PA_HideBg screen,
bg_select   )     _REG16(REG_BGSCREEN(screen)) &= ~(0x100 << (bg_select))
 

Cacher un fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

#define PA_LoadBg screen,
bg_select,
bg_tiles,
tile_size,
bg_map,
bg_size,
wraparound,
color_mode   ) 
 

Valeur:

{\
PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, tile_size); \
PA_LoadBgMap(screen, bg_select, (void*)bg_map, bg_size); \
PA_InitBg(screen, bg_select, bg_size, wraparound, color_mode);\
PA_BGScrollXY(screen, bg_select, 0, 0);}
Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
tile_size Taille du tilset
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
bg_size Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc... Por un fond rotatif, il suffit d'utiliser BG_ROT_128X128...
wraparound Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

#define PA_LoadBgTiles screen,
bg_select,
bg_tiles   )     PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, SIZEOF_16BIT(bg_tiles))
 

Charger un tileset en mémoire

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)

#define PA_LoadLargeBg screen,
bg_select,
bg_tiles,
bg_map,
color_mode,
lx,
ly   ) 
 

Valeur:

{\
PA_LoadSimpleBg(screen, bg_select, bg_tiles, Blank, BG_512X256, 1, color_mode);\
PA_InitLargeBg(screen, bg_select, lx, ly, (void*)bg_map);}
Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large)

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256
lx Largeur, en tiles. Un fond de 512 pixels de large fera 64 tiles de large.
ly Hauteur, en tiles. Un fond de 512 pixels de hauy fera 64 tiles de haut.

#define PA_LoadLargeBgEx screen,
bg_select,
bg_tiles,
tile_size,
bg_map,
color_mode,
lx,
ly   ) 
 

Valeur:

{\
PA_LoadBg(screen, bg_select, bg_tiles, tile_size, Blank, BG_512X256, 1, color_mode);\
PA_InitLargeBg(screen, bg_select, lx, ly, (void*)bg_map);}
Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), mais ici on met soi-meme la taille des tiles

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
tile_size Taille du tilset
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256
lx Largeur, en tiles. Un fond de 512 pixels de large fera 64 tiles de large.
ly Hauteur, en tiles. Un fond de 512 pixels de hauy fera 64 tiles de haut.

#define PA_LoadRotBg screen,
bg_select,
bg_tiles,
bg_map,
bg_size,
wraparound   ) 
 

Valeur:

{\
PA_DeleteBg(screen, bg_select);\
PA_LoadBgTiles(screen, bg_select, bg_tiles); \
PA_LoadRotBgMap(screen, bg_select, (void*)bg_map, bg_size); \
PA_InitBg(screen, bg_select, bg_size, wraparound, 1);\
PA_SetBgRot(screen, bg_select, 0, 0, 0, 0, 0, 256);\
}
Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
bg_size Taille du fond. Utiliser les macros suivantes : BG_ROT_128X128, ou 256X256, 512X512, ou enfin 1024X1024
wraparound Si le fond boucle ou non.

#define PA_LoadSimpleBg screen,
bg_select,
bg_tiles,
bg_map,
bg_size,
wraparound,
color_mode   ) 
 

Valeur:

{\
PA_DeleteBg(screen, bg_select);\
PA_LoadBgTiles(screen, bg_select, bg_tiles); \
PA_LoadBgMap(screen, bg_select, (void*)bg_map, bg_size); \
PA_InitBg(screen, bg_select, bg_size, wraparound, color_mode);\
PA_BGScrollXY(screen, bg_select, 0, 0);}
Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
bg_size Taille du fond. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc...
wraparound Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

#define PA_LoadTiledBitmap screen,
tiled_bitmap   )     PA_LoadBg(screen, 0, tiled_bitmap, SCREEN_TILES, bitmap, BG_256X256, 1, 1)
 

Charger un bitmap converti avec gfx2gba, comme pour un fond normal, mais sans aucune optimisation. Plus la peine d'inclure la map dans ce cas. Attention, prend tout la mémoire des fonds.

Paramètres:
screen Choix de l'écran (0 ou 1)
tiled_bitmap Nom du fond donné par gfx2gba, du genre (splashTiles)

#define PA_ResetBg screen   )     _REG16(REG_BGSCREEN(screen)) &= ~(0xF00)
 

Reinitialiser les fonds d'un écran. En fait ca ne fait que cacher tous les fonds

Paramètres:
screen Choix de l'écran (0 ou 1)

#define PA_SetMapTile screen,
bg_select,
x,
y,
tile_number   )     {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_N); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((tile_number)&TILE_N);}
 

Change la tile gfx utilisée pour une tile donnée dans la map

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_number Nouveau numéro de tile que l'on veut mettre

#define PA_SetMapTileAll screen,
bg_select,
x,
y,
tile_info   )     *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) = tile_info
 

Change les infos tiles utilisée pour une tile donnée dans la map

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_info Nouveau numéro de tile que l'on veut mettre (tile + palette + flips...)

#define PA_SetMapTileEx screen,
bg_select,
x,
y,
tile_number,
hflip,
vflip,
palette_number   )     *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) = (tile_number) + ((hflip) << 10) + ((vflip) << 11) + ((palette_number) << 12)
 

Changer tous les aspect d'une tile donnée dans la map.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_number Nouveau numéro de tile que l'on veut mettre
hflip Mettre la tile de la carte en flip horizontal
vflip Mettre la tile de la carte en flip vertical
palette_number Numéro de la palette (0-15)

#define PA_SetMapTileHflip screen,
bg_select,
x,
y,
hflip   )     {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_HFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((hflip) << 10);}
 

Flipper une tile de la carte, horizontalement

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
hflip Mettre la tile de la carte en flip horizontal

#define PA_SetMapTilePal screen,
bg_select,
x,
y,
palette_number   )     {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((palette_number) << 12);}
 

Changer la palette de 16 couleurs utilisée par une tile de la carte. Marche uniquement en mode 16 couleurs pour le Bg.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
palette_number Numéro de la palette (0-15)

#define PA_SetMapTileVflip screen,
bg_select,
x,
y,
vflip   )     {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_VFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((vflip) << 11);}
 

Flipper une tile de la carte, verticalement

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
vflip Mettre la tile de la carte en flip vertical

#define PA_ShowBg screen,
bg_select   )     _REG16(REG_BGSCREEN(screen)) |= (0x100 << (bg_select))
 

Afficher un fond auparavant caché.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)


Documentation des fonctions

inline void PA_DeleteBg bool  screen,
u8  bg_select
[inline]
 

Effacer un fond complètement (tiles + map + cacher)

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

void PA_DeleteMap bool  screen,
u8  bg_select
 

Effacer une map en mémoire. A noter que charger une map efface automatiquement la map précédent, donc on n'aura pas souvent besoin de cette fonction...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

void PA_DeleteTiles bool  screen,
u8  bg_select
 

Effacer un tileset en mémoire. A noter que charger un tileset efface automatiquement le tileset précédent, donc on n'aura pas souvent besoin de cette fonction...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

void PA_InfLargeScrollX bool  screen,
u8  bg_select,
s32  x
 

Déplacer un fond à scrolling 'infini' horizontalement. Doit etre initialisé avec PA_LoadLargeBg.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
x Valeur X à déplacer

inline void PA_InfLargeScrollXY bool  screen,
u8  bg_select,
s32  x,
s32  y
[inline]
 

Déplacer un fond à scrolling 'infini' horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
x Valeur X à déplacer
y Valeur Y à déplacer

void PA_InfLargeScrollY bool  screen,
u8  bg_select,
s32  y
 

Déplacer un fond à scrolling 'infini' verticalement. Doit etre initialisé avec PA_LoadLargeBg.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
y Valeur Y à déplacer

void PA_InitBg bool  screen,
u8  bg_select,
u8  bg_size,
bool  wraparound,
bool  color_mode
 

Initialise un fond. A faire uniquement après avoir chargé un tileset et une map.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_size Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc... Por un fond rotatif, il suffit d'utiliser BG_ROT_128X128...
wraparound Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

inline void PA_InitParallaxX bool  screen,
s32  bg0,
s32  bg1,
s32  bg2,
s32  bg3
[inline]
 

Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller

Paramètres:
screen Choix de l'écran (0 ou 1)
bg0 Valeur pour le premier fond (0). 256 met en vitesse normal, moins pour moins lent (128 pour moitié de vitesse), plus pour plus rapide (512 équivaut à 2 fois plus vite). On peut utiliser des valeurs négatives. 0 désactive le scrolling parallax pour ce fond
bg1 Idem, pour le Fond 1
bg2 Idem, pour le Fond 2
bg3 Idem, pour le Fond 3

inline void PA_InitParallaxY bool  screen,
s32  bg0,
s32  bg1,
s32  bg2,
s32  bg3
[inline]
 

Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller

Paramètres:
screen Choix de l'écran (0 ou 1)
bg0 Valeur pour le premier fond (0). 256 met en vitesse normal, moins pour moins lent (128 pour moitié de vitesse), plus pour plus rapide (512 équivaut à 2 fois plus vite). On peut utiliser des valeurs négatives. 0 désactive le scrolling parallax pour ce fond
bg1 Idem, pour le Fond 1
bg2 Idem, pour le Fond 2
bg3 Idem, pour le Fond 3

void PA_LargeScrollX bool  screen,
u8  bg_select,
s32  x
 

Déplacer un grand fond à scrolling horizontalement.Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
x Valeur X à déplacer

inline void PA_LargeScrollXY bool  screen,
u8  bg_select,
s32  x,
s32  y
[inline]
 

Déplacer un grand fond à scrolling horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
x Valeur X à déplacer
y Valeur Y à déplacer

void PA_LargeScrollY bool  screen,
u8  bg_select,
s32  y
 

Déplacer un grand fond à scrolling verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
y Valeur Y à déplacer

void PA_LoadBgMap bool  screen,
u8  bg_select,
void *  bg_map,
u8  bg_size
 

Charge la carte d'un fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_map Nom du tableau contenant les infos sur la map (exemple : (void*)ship_Map) n'oublie pas le void...
bg_size Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc... Por un fond rotatif, il suffit d'utiliser BG_ROT_128X128...

void PA_LoadBgTilesEx bool  screen,
u8  bg_select,
void *  bg_tiles,
u16  size
 

Charger un tileset en mémoire avec une taille donnée

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
size Taille en 16 bits...

inline void PA_ParallaxScrollX bool  screen,
s32  x
[inline]
 

Déplacer les fonds activés pour le parallax...

Paramètres:
screen Choix de l'écran (0 ou 1)
x Valeur X à déplacer

inline void PA_ParallaxScrollXY bool  screen,
s32  x,
s32  y
[inline]
 

Déplacer les fonds activés pour le parallax...

Paramètres:
screen Choix de l'écran (0 ou 1)
x Valeur X à déplacer
y Valeur Y à déplacer

inline void PA_ParallaxScrollY bool  screen,
s32  y
[inline]
 

Déplacer les fonds activés pour le parallax...

Paramètres:
screen Choix de l'écran (0 ou 1)
y Valeur Y à déplacer

inline void PA_SetBgPrio bool  screen,
u8  bg,
u8  prio
[inline]
 

Changer la priorité d'un fond

Paramètres:
screen Choix de l'écran (0 ou 1)
bg Numéro du fond...
prio Niveau de priorité, de 0 à 3, 0 étant priorité la plus élevée

inline void PA_SetLargeMapTile bool  screen,
u8  bg_select,
s32  x,
s32  y,
u32  tile_info
[inline]
 

Change les infos tiles utilisée pour une tile donnée dans la map, seulement pour les grands fonds (512 de large ou haut)

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_info Nouveau numéro de tile que l'on veut mettre (tile + palette + flips...)


Généré le Fri Oct 28 23:18:14 2005 pour PA_lib par  doxygen 1.3.9.1
@ 1.1.1.1 log @Initial import of PalibDoc, begin on PAlib0.64b @ text @@