Normal Tiled Background Modes


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_LoadTiledBg(screen, bg_number, bg_name)
 On ne pourra jamais rendre ca plus simple... Charge un fond de type TiledBg converti avec PAGfx, en mettant les tiles, la map, et meme la palette ! Seulement en mode 256 couleurs
#define PA_LoadSimpleBg(screen, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode)
 Facon simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap
#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_SetMapTileAll(screen, bg_select, x, y, tile_info)   *(u16*)(PA_BgInfo[screen][bg_select].Map + ((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_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_BgInfo[screen][bg_select].Map + ((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_EasyBgLoad(screen, bg_number, bg_name)
 Moyen le plus simple de charger un fond créé avec PAGfx

Fonctions

void PA_ResetBgSys (void)
 Reinitialise le systeme de fonds
void PA_ResetBgSysScreen (u8 screen)
 Reinitialise le systeme de fonds pour 1 écran
void PA_InitBg (u8 screen, u8 bg_select, u8 bg_size, u8 wraparound, u8 color_mode)
 Initialise un fond. A faire uniquement après avoir chargé un tileset et une map.
void PA_LoadBgTilesEx (u8 screen, u8 bg_select, void *bg_tiles, u32 size)
void PA_ReLoadBgTiles (u8 screen, u8 bg_select, void *bg_tiles)
 ReCharger un tileset en mémoire
void PA_DeleteTiles (u8 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 (u8 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 (u8 screen, u8 bg_select)
 Effacer un fond complètement (tiles + map + cacher)
void PA_LoadBgMap (u8 screen, u8 bg_select, void *bg_map, u8 bg_size)
 Charge la carte d'un fond
void PA_BGScrollX (u8 screen, u8 bg_number, s32 x)
 Scroll horizontal d'un fond de type Tiled
void PA_BGScrollY (u8 screen, u8 bg_number, s32 y)
 Scroll vertical d'un fond de type Tiled
void PA_BGScrollXY (u8 screen, u8 bg_number, s32 x, s32 y)
void PA_SetMapTile (u8 screen, u8 bg_select, s16 x, s16 y, s16 tile_number)
 Change la tile gfx utilisée pour une tile donnée dans la map
void PA_SetLargeMapTile (u8 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_SetMapTileEx (u8 screen, u8 bg_select, s16 x, s16 y, u16 tile_number, u8 hflip, u8 vflip, u8 palette_number)
void PA_SetBgPrio (u8 screen, u8 bg, u8 prio)
 Changer la priorité d'un fond
void PA_CreateBgFromTiles (u8 screen, u8 bg_select, u8 bg_tiles, void *bg_map, u8 bg_size)
void PA_SetBgPrioSeq (u8 screen, u8 priority0, u8 priority1, u8 priority2, u8 priority3)
void PA_ClearBg (u8 screen, u8 bg_select)
 Effacer un fond donné (juste la map)
void PA_EasyBgScrollX (u8 screen, u8 bg_number, s32 x)
 Scroll horizontal de n'importe quel fond
void PA_EasyBgScrollY (u8 screen, u8 bg_number, s32 y)
 Scroll vertical de n'importe quel fond
void PA_EasyBgScrollXY (u8 screen, u8 bg_number, s32 x, s32 y)
 Scroll horizontal et vertical de n'importe quel fond
u8 PA_EasyBgGetPixel (u8 screen, u8 bg_number, s32 x, s32 y)
 Renvoie le numéro dans la palette du pixel à l'écran...
u16 PA_EasyBgGetPixelCol (u8 screen, u8 bg_number, s32 x, s32 y)
 Renvoie la couleur (valeur u16) du pixel à l'écran...

Description détaillée

Load a background, scroll it, etc...

Documentation des macro

#define PA_EasyBgLoad screen,
bg_number,
bg_name   ) 
 

Valeur:

PA_BgInfo[screen][bg_number].BgMode = bg_name##_Info[0];\
       PA_StoreEasyBgInfos(screen, bg_number, bg_name##_Info[0], bg_name##_Info[1], bg_name##_Info[2], (void*)bg_name##_Tiles, SIZEOF_16BIT(bg_name##_Tiles), (void*)bg_name##_Map, SIZEOF_16BIT(bg_name##_Map), (void*)bg_name##_Pal);\
       if(PA_BgInfo[screen][bg_number].BgMode == BG_TILEDBG){  PA_LoadTiledBg(screen, bg_number, bg_name);}\
       else{PA_LoadPAGfxLargeBg(screen, bg_number, bg_name);}
Moyen le plus simple de charger un fond créé avec PAGfx

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

#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, 0, 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_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, 0, color_mode);\
PA_BGScrollXY(screen, bg_select, 0, 0);}
Facon 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_LoadTiledBg screen,
bg_number,
bg_name   ) 
 

Valeur:

{\
       PA_LoadBgPal(screen, bg_number, (void*)bg_name##_Pal); \
       PA_LoadSimpleBg(screen, bg_number, bg_name##_Tiles, bg_name##_Map, PA_GetPAGfxBgSize(bg_name##_Info[1], bg_name##_Info[2]), 0, 1);}
On ne pourra jamais rendre ca plus simple... Charge un fond de type TiledBg converti avec PAGfx, en mettant les tiles, la map, et meme la palette ! Seulement en mode 256 couleurs

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

#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_SetMapTileAll screen,
bg_select,
x,
y,
tile_info   )     *(u16*)(PA_BgInfo[screen][bg_select].Map + ((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_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_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_BgInfo[screen][bg_select].Map + ((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_BGScrollX u8  screen,
u8  bg_number,
s32  x
[inline]
 

Scroll horizontal d'un fond de type Tiled

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...

inline void PA_BGScrollY u8  screen,
u8  bg_number,
s32  y
[inline]
 

Scroll vertical d'un fond de type Tiled

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...

inline void PA_ClearBg u8  screen,
u8  bg_select
[inline]
 

Effacer un fond donné (juste la map)

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

inline void PA_DeleteBg u8  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 u8  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 u8  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)

inline u8 PA_EasyBgGetPixel u8  screen,
u8  bg_number,
s32  x,
s32  y
[inline]
 

Renvoie le numéro dans la palette du pixel à l'écran...

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 du pixel à l'écran
y Valeur Y du pixel à l'écran

inline u16 PA_EasyBgGetPixelCol u8  screen,
u8  bg_number,
s32  x,
s32  y
[inline]
 

Renvoie la couleur (valeur u16) du pixel à l'écran...

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 du pixel à l'écran
y Valeur Y du pixel à l'écran

void PA_EasyBgScrollX u8  screen,
u8  bg_number,
s32  x
 

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...

inline void PA_EasyBgScrollXY u8  screen,
u8  bg_number,
s32  x,
s32  y
[inline]
 

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...

void PA_EasyBgScrollY u8  screen,
u8  bg_number,
s32  y
 

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...

void PA_InitBg u8  screen,
u8  bg_select,
u8  bg_size,
u8  wraparound,
u8  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... Pour 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

void PA_LoadBgMap u8  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...

void PA_ReLoadBgTiles u8  screen,
u8  bg_select,
void *  bg_tiles
 

ReCharger 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)

void PA_ResetBgSysScreen u8  screen  ) 
 

Reinitialise le systeme de fonds pour 1 écran

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

inline void PA_SetBgPrio u8  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 u8  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...)

inline void PA_SetMapTile u8  screen,
u8  bg_select,
s16  x,
s16  y,
s16  tile_number
[inline]
 

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


Généré le Tue Jan 30 23:10:50 2007 pour PAlib par  doxygen 1.3.9.1