PA_Text.h

Aller à la documentation de ce fichier.
00001 #ifndef _PA_TEXT
00002 #define _PA_TEXT
00003 
00004 
00005 #ifdef __cplusplus
00006 extern "C" {
00007 #endif
00008 
00009 #include "PA_BgTiles.h"
00010 #include "../../../lib/arm9/PA/Text/all_gfx.h" // Include the text !
00011 
00012 
00013 #define PA_InitCustomTextEx(screen, bg_select, tiles, map, pal) {\
00014    PAbgtext[screen] = bg_select;\
00015    PA_LoadSimpleBg(screen, bg_select, tiles, Blank, BG_256X256, 0, 1);\
00016    PA_LoadBgPal(screen, bg_select, (void*)pal);\
00017    PA_textmap[screen] = (u16*)map;PA_textpal[screen] = (u16*)pal;PAtext_pal[screen]=0;\
00018    u32 PAtexttempvar = 0; for (PAtexttempvar = 0; PAtexttempvar < 32*24; PAtexttempvar++) PA_SetTileLetter(screen, PAtexttempvar, 0, 0);   }
00019 
00020 void PA_CreateTextPal(u8 screen, u8 pal_number, u16 r, u16 g, u16 b);
00021 
00022 extern u8 pa_printx[2];
00023 extern u8 pa_printy[2];
00024 extern s16 pa_printscroll[2];
00025 
00026 void PA_PrintYPlus(u8 screen);
00027 
00028 
00035 //#include "../PA.h"
00036 
00037 #define TEXT_WHITE 0
00038 #define TEXT_RED 1
00039 #define TEXT_GREEN 2
00040 #define TEXT_BLUE 3
00041 #define TEXT_MAGENTA 4
00042 #define TEXT_CYAN 5
00043 #define TEXT_YELLOW 6
00044 #define TEXT_LGRAY 7
00045 #define TEXT_DGRAY 8
00046 #define TEXT_BLACK 9
00047 
00048 
00050 // Système pour le texte
00052 
00053 
00054 extern u16 textcol[2]; // Garde en mémoire la couleur du texte
00055 extern u8 PAbgtext[2];
00056 
00057 
00058 extern u16 *PA_textmap[2]; //Pointeur vers la map et les tiles...
00059 extern u8 *PA_texttiles[2];
00060 extern u16 *PA_textpal[2];
00061 
00062 extern s8 PA_font[2];  // 0 pour normal, 1 pour dégradé, -1 pour custom
00063 
00064 
00065 
00066 
00067 // Texte à taille variable
00068 //#ifdef TEXT_ALLSIZES
00069        #include "text0.h" // La police à taille variable...
00070        #include "text1.h" // La police à taille variable...
00071        #include "text2.h" // La police à taille variable...
00072        #include "text3.h" // La police à taille variable...
00073        #include "text4.h" // La police à taille variable...
00074        extern const u8 *textData[10];
00075        extern u8 policeheight[10];
00076        extern u16 policewidth[10];
00077        extern u8 *policesize[10];  
00078 //#endif
00079 
00080 
00081        extern u8 *text_tiles[10];
00082        extern u16 *text_maps[10];  
00083 
00084        extern u8 *pa8bitdefaultsize[10];
00085        extern u8 police8bitheight[10];
00086 
00087 typedef void(*letterfp)(u8 size, u8 screen, u16 x, u16 y, char lettertemp, u8 color);
00088 
00089 
00090 
00091 
00092 extern letterfp letters[5];
00093 
00094 
00095 extern u16 PAtext_pal[2];
00096 
00097 
00098 typedef struct{
00099        u8 x1, x2, y1, y2;
00100 } textborders;
00101 extern textborders PA_TextBox[2];
00102 
00103 
00104 
00105 
00106 
00126 void PA_InitText(u8 screen, u8 bg_select);
00127 
00128 
00146 #define PA_SetTileLetter(screen, x, y, letter) PA_SetMapTileAll(screen, PAbgtext[screen], x, y, (PA_textmap[screen][(u16)letter]&((1<<12)-1)) + (PAtext_pal[screen] << 12))
00147 
00148 
00149 
00161 extern inline void PA_SetTextTileCol(u8 screen, u8 color)
00162 {
00163        PAtext_pal[screen] = color;
00164 }
00165 
00166 
00167 
00168 
00186 void PA_OutputText(u8 screen, u16 x, u16 y, char* text, ...);
00187 
00205 u16 PA_OutputSimpleText(u8 screen, u16 x, u16 y, const char *text);
00206 
00233 u32 PA_BoxText(u8 screen, u16 basex, u16 basey, u16 maxx, u16 maxy, const char *text, s32 limit);
00234 
00261 u32 PA_BoxTextNoWrap(u8 screen, u16 basex, u16 basey, u16 maxx, u16 maxy, const char *text, u32 limit);
00262 
00263 
00282 extern inline void PA_SetTextCol(u8 screen, u16 r, u16 g, u16 b){
00283        PA_CreateTextPal(screen, 0, r, g, b);
00284 }
00285 
00286 
00287 
00288 //void PA_InitCustomTextEx(u8 screen, u8 bg_select, void *tiles, void *map, void *pal);
00289 
00290 
00307 #define PA_InitCustomText(screen, bg_select, text) PA_InitCustomTextEx(screen, bg_select, text##_Tiles, text##_Map, text##_Pal)
00308 
00318 #define PA_ShowFont(screen) PA_LoadBgMap(screen, PAbgtext[screen], (void*)PA_textmap[screen], BG_256X256)
00319 
00320 
00321 
00322 
00323 
00359 s16 PA_SmartText(u8 screen, s16 basex, s16 basey, s16 maxx, s16 maxy, char* text, u8 color, u8 size, u8 transp,  s32 limit);
00360 
00361 
00362 
00395 s16 PA_CenterSmartText(u8 screen, s16 basex, s16 basey, s16 maxx, s16 maxy, char* text, u8 color, u8 size, u8 transp);
00396 
00397 
00409 #define PA_8bitCustomFont(bit8_slot, bit8_font){\
00410        text_maps[bit8_slot] = (u16*)(void*)bit8_font##_Map;           \
00411        text_tiles[bit8_slot] = (u8*)bit8_font##_Tiles;  \
00412        pa8bitdefaultsize[bit8_slot] = (u8*)bit8_font##_Sizes;  \
00413        police8bitheight[bit8_slot] = bit8_font##_Height;\
00414 }
00415 
00416 
00417 
00418 
00419 /*
00431 extern inline u8 PA_CompareText(char *text1, char *text2){
00432        u8 ok = 1; // Devrait etre bon
00433        u8 i = 0; 
00434        while(ok && text2[i]){
00435               if (text1[i] != text2[i]) ok = 0;
00436               i++;
00437        }
00438        return ok;
00439 }*/
00440 
00441 
00453 extern inline void PA_CopyText(char *text1, char *text2){
00454 u8 i = 0;
00455 text1[i] = text2[i];
00456        do{
00457               i++;
00458               text1[i] = text2[i];
00459        }
00460        while (text2[i]);
00461 }
00462 
00463 
00464 
00465 
00486 void PA_InitTextBorders(u8 screen, u8 x1, u8 y1, u8 x2, u8 y2);
00487 
00488 
00497 void PA_EraseTextBox(u8 screen);
00498 
00499 
00500 
00515 extern inline u32 PA_SimpleBoxText(u8 screen, const char *text, u32 limit){
00516 return PA_BoxText(screen, PA_TextBox[screen].x1+1, PA_TextBox[screen].y1+1, PA_TextBox[screen].x2-1, PA_TextBox[screen].y2-1, text, limit);
00517 }
00518 
00527 void PA_ClearTextBg(u8 screen);
00528 
00529 
00530 
00531 
00543 void PA_Print(u8 screen, char* text, ...);
00544 
00545 
00557 extern inline void PA_PrintLetter(u8 screen, char letter){
00558        PA_SetTileLetter(screen, pa_printx[screen], pa_printy[screen]&31, letter);
00559        pa_printx[screen]++;
00560        if(pa_printx[screen] >= 32){
00561               PA_PrintYPlus(screen);
00562        }   
00563 }
00564 
00565 
00566 void PA_OutputTextSpecial0(u8 screen, int x1, int y,char *text);
00567 void PA_OutputTextSpecial1(u8 screen, int x1, int y,char *text);
00568 void PA_OutputTextSpecial2(u8 screen, int x1, int y,char *text);
00569 void PA_OutputTextSpecial3(u8 screen, int x1, int y,char *text);
00570 void PA_OutputTextSpecial4(u8 screen, int x1, int y,char *text);
00571 void PA_OutputTextSpecial5(u8 screen, int x1, int y,char *text);
00572  // end of Text
00574 
00575 
00576 #ifdef __cplusplus
00577 }
00578 #endif
00579 
00580 
00581 
00582 #endif
00583 
00584 
00585 

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