#include <nds.h>
#include "../PA_Shared.h"
#include "PA_General.h"
Structures de données | |
struct | PA_BgDefaultInfos |
struct | PA_BgInfos |
struct | scrollpositions |
Macros | |
#define | BG_TILEDBG 2 |
#define | BG_ROTBG 3 |
#define | BG_LARGEMAP 4 |
#define | BG_INFINITEMAP 5 |
#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 | 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_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_EasyBgLoad(screen, bg_number, bg_name) |
#define | PA_EasyBgLoadPtr(screen, bg_number, bg_name) PA_EasyBgLoadEx(screen, bg_number, (u32*)bg_name->Info, bg_name->Tiles, bg_name->TileSize, bg_name->Map, bg_name->MapSize, bg_name->Palette) |
Moyen le plus simple de charger un fond créé avec PAGfx... Peut prendre des pointeurs ! | |
Définition de type | |
typedef u8(* | EasyBgPixels )(u8, u8, s32, s32) |
Fonctions | |
void | PA_EasyBgLoadEx (u8 screen, u8 bg_number, u32 *Infos, void *Tiles, u32 TileSize, void *Map, u32 MapSize, void *Palette) |
u8 | PA_GetPAGfxBgSize (u16 width, u16 height) |
u8 | PA_GetPAGfxRotBgSize (u16 width) |
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) |
Charger un tileset en mémoire avec une taille donnée. | |
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 et reinitialiser un fond complètement. | |
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_SetMapTileHflip (u8 screen, u8 bg_select, u8 x, u8 y, u8 hflip) |
Flipper une tile de la carte, horizontalement. | |
void | PA_SetMapTileVflip (u8 screen, u8 bg_select, u8 x, u8 y, u8 vflip) |
void | PA_SetMapTilePal (u8 screen, u8 bg_select, u8 x, u8 y, u8 palette_number) |
Changer la palette de 16 couleurs utilisée par une tile de la carte. Marche uniquement en mode 16 couleurs pour le Bg. | |
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) |
Changer la priorité des fonds pour qu'ils soient dans un ordre donné. | |
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... | |
void | PA_SetBgWrap (u8 screen, u8 bg, u8 wrap) |
Active ou non le wrapping des fonds (rotatifs, 8bit, et 16bit). | |
u8 | PAEasyBgGetPixelTiled (u8 screen, u8 bg_number, s32 x, s32 y) |
u8 | PAEasyBgGetPixelLarge (u8 screen, u8 bg_number, s32 x, s32 y) |
u8 | PAEasyBgGetPixelInf (u8 screen, u8 bg_number, s32 x, s32 y) |
u8 | PANoPixel (u8 screen, u8 bg_number, s32 x, s32 y) |
void | PA_UpdateBgTile (u8 screen, u8 bg_select, u16 tilepos, void *tile) |
void | PA_StoreEasyBgInfos (u8 screen, u8 bg_number, u32 Type, u32 Width, u32 Height, void *Tiles, u32 TileSize, void *Map, u32 MapSize, void *Palette) |
Variables | |
EasyBgPixels | PA_EasyBgPixel [6] |
PA_BgInfos | PA_BgInfo [2][4] |
u8 | charblocks [2][70] |
u16 * | PA_DrawBg [2] |
u16 | bg_sizes [4] |
u8 | bg_place [4] |
u8 | charsetstart [2] |
s32 | PA_parallaxX [2][4] |
s32 | PA_parallaxY [2][4] |
scrollpositions | scrollpos [2][4] |
This file contains all the macros and variables regarding Tile modes, loading tiles and Bg, etc...
#define BG_256X256 0 |
#define BG_256X512 2 |
#define BG_512X256 1 |
#define BG_512X512 3 |
#define BG_COLOR16 0x00 |
#define BG_COLOR256 0x80 |
#define BG_INFINITEMAP 5 |
#define BG_LARGEMAP 4 |
#define BG_ROTBG 3 |
#define BG_TILEDBG 2 |
#define CHAR_SHIFT 2 |
#define CharBaseBlock | ( | screen, | |||
n | ) | (((n)*0x4000) + 0x6000000 + (0x200000 * screen)) |
#define REG_BGCNT | ( | screen, | |||
bg_number | ) | (0x4000008 + (screen * 0x1000) + (bg_number << 1)) |
#define REG_BGSCREEN | ( | screen | ) | (0x04000000 + (screen * 0x1000)) |
#define REG_BGSCREEN0 0x04000000 |
#define REG_BGSCREEN1 0x04001000 |
#define REG_BGSCROLLX 0x4000010 |
#define REG_BGSCROLLY 0x4000012 |
#define SCREEN_SHIFT 8 |
#define SCREEN_TILES 24576 |
#define ScreenBaseBlock | ( | screen, | |||
n | ) | (((n)*0x800) + 0x6000000 + (0x200000 * screen)) |
#define TILE_HFLIP 1024 |
#define TILE_N 1023 |
#define TILE_PAL 61440 |
#define TILE_VFLIP 2048 |
#define WRAPAROUND 0x1 |
typedef u8(* EasyBgPixels)(u8, u8, s32, s32) |
void PA_EasyBgLoadEx | ( | u8 | screen, | |
u8 | bg_number, | |||
u32 * | Infos, | |||
void * | Tiles, | |||
u32 | TileSize, | |||
void * | Map, | |||
u32 | MapSize, | |||
void * | Palette | |||
) |
u8 PA_GetPAGfxBgSize | ( | u16 | width, | |
u16 | height | |||
) | [inline] |
u8 PA_GetPAGfxRotBgSize | ( | u16 | width | ) | [inline] |
void PA_StoreEasyBgInfos | ( | u8 | screen, | |
u8 | bg_number, | |||
u32 | Type, | |||
u32 | Width, | |||
u32 | Height, | |||
void * | Tiles, | |||
u32 | TileSize, | |||
void * | Map, | |||
u32 | MapSize, | |||
void * | Palette | |||
) |
void PA_UpdateBgTile | ( | u8 | screen, | |
u8 | bg_select, | |||
u16 | tilepos, | |||
void * | tile | |||
) | [inline] |
u8 PAEasyBgGetPixelInf | ( | u8 | screen, | |
u8 | bg_number, | |||
s32 | x, | |||
s32 | y | |||
) |
u8 PAEasyBgGetPixelLarge | ( | u8 | screen, | |
u8 | bg_number, | |||
s32 | x, | |||
s32 | y | |||
) |
u8 PAEasyBgGetPixelTiled | ( | u8 | screen, | |
u8 | bg_number, | |||
s32 | x, | |||
s32 | y | |||
) |
u8 PANoPixel | ( | u8 | screen, | |
u8 | bg_number, | |||
s32 | x, | |||
s32 | y | |||
) |
u8 bg_place[4] |
u16 bg_sizes[4] |
u8 charblocks[2][70] |
u8 charsetstart[2] |
PA_BgInfos PA_BgInfo[2][4] |
u16* PA_DrawBg[2] |
s32 PA_parallaxX[2][4] |
s32 PA_parallaxY[2][4] |
scrollpositions scrollpos[2][4] |