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.33; author jandujar; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.11.02.08.30.33; author jandujar; state Exp; branches ; next ; desc @@ 1.1 log @Initial revision @ text @ PA_lib: Référence du fichier PA_Tile.h

Référence du fichier PA_Tile.h

Everything concerning the Bg Tile modes. Plus de détails...

Aller au code source de ce fichier.

Structures de données

struct  scrollpositions

Macros

#define CharBaseBlock(screen, n)   (((n)*0x4000) + 0x6000000 + (0x200000 * screen))
#define ScreenBaseBlock(screen, n)   (((n)*0x800) + 0x6000000 + (0x200000 * screen))
#define BG_COLOR16   0x00
#define BG_COLOR256   0x80
#define CHAR_SHIFT   2
#define SCREEN_SHIFT   8
#define WRAPAROUND   0x1
#define SCREEN_TILES   24576
#define REG_BGSCREEN0   0x04000000
#define REG_BGSCREEN1   0x04001000
#define REG_BGSCREEN(screen)   (0x04000000 + (screen * 0x1000))
#define REG_BGCNT(screen, bg_number)   (0x4000008 + (screen * 0x1000) + (bg_number << 1))
#define REG_BGSCROLLX   0x4000010
#define REG_BGSCROLLY   0x4000012
#define BG_256X256   0
#define BG_512X256   1
#define BG_256X512   2
#define BG_512X512   3
#define BG_ROT_128X128   0
#define BG_ROT_256X256   1
#define BG_ROT_512X512   2
#define BG_ROT_1024X1024   3
#define TILE_N   1023
#define TILE_PAL   61440
#define TILE_HFLIP   1024
#define TILE_VFLIP   2048
#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_LoadRotBgMap (bool screen, u8 bg_select, void *bg_map, u8 bg_size)
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
void PA_InitLargeBg (bool screen, u8 bg_select, s32 lx, s32 ly, void *bg_map)

Variables

u32 PA_bgmap [2][4]
u8 tilesetchar [2][4]
u16 bg_sizes [4]
u8 bg_place [4]
u16 * PA_DrawBg [2]
bool charblocks [2][70]
u16 tilesetsize [2][4]
u16 mapsize [2][4]
u8 mapchar [2][4]
u8 charsetstart [2]
s32 PA_parallaxX [2][4]
s32 PA_parallaxY [2][4]
scrollpositions scrollpos [2][4]


Description détaillée

Everything concerning the Bg Tile modes.

This file contains all the macros and variables regarding Tile modes (0-2), loading tiles and Bg, etc...


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