PA_Text.h

Go to the documentation of this file.
00001 #ifndef _PA_Text
00002 #define _PA_Text
00003 
00004 
00005 
00006 #define PA_InitCustomTextEx(screen, bg_select, tiles, map, pal) {\
00007    PAbgtext[screen] = bg_select;\
00008    PA_LoadSimpleBg(screen, bg_select, tiles, Blank, BG_256X256, 0, 1);\
00009    PA_LoadBgPal(screen, bg_select, (void*)pal);\
00010    PA_textmap[screen] = (u16*)map;PA_textpal[screen] = (u16*)pal;PAtext_pal[screen]=0;\
00011    u32 PAtexttempvar = 0; for (PAtexttempvar = 0; PAtexttempvar < 32*24; PAtexttempvar++) PA_SetTileLetter(screen, PAtexttempvar, 0, 0);   }
00012 
00013 void PA_CreateTextPal(bool screen, u8 pal_number, u16 r, u16 g, u16 b);
00014 
00015 
00022 //#include "../PA.h"
00023 #include "PA_Tile.h"
00024 
00025 #include "../../../lib/arm9/PA/Text/all_gfx.h" // Include the text !
00026 
00027 
00029 // Système pour le texte
00031 
00032 
00033 extern u16 textcol[2]; // Garde en mémoire la couleur du texte
00034 extern u8 PAbgtext[2];
00035 
00036 
00037 extern u16 *PA_textmap[2]; //Pointeur vers la map et les tiles...
00038 extern u8 *PA_texttiles[2];
00039 extern u16 *PA_textpal[2];
00040 
00041 extern s8 PA_font[2];  // 0 pour normal, 1 pour dégradé, -1 pour custom
00042 
00043 
00044 
00045 
00046 // Texte à taille variable
00047 #ifdef TEXT_ALLSIZES
00048        #include "text0.h" // La police à taille variable...
00049        #include "text1.h" // La police à taille variable...
00050        #include "text2.h" // La police à taille variable...
00051        #include "text3.h" // La police à taille variable...
00052        #include "text4.h" // La police à taille variable...
00053        extern const u8 *textData[5];
00054        extern const u8 policeheight[5];
00055        extern const u16 policewidth[5];
00056        extern const u8 policesize[5][256];       
00057 #endif
00058 
00059 
00060 typedef void(*letterfp)(u8 size, bool screen, u16 x, u16 y, char lettertemp, u8 color);
00061 
00062 
00063 
00064 
00065 extern letterfp letters[5];
00066 
00067 
00068 extern u16 PAtext_pal[2];
00069 
00070 
00071 
00072 
00073 
00093 void PA_InitText(bool screen, u8 bg_select);
00094 
00095 
00113 extern inline void PA_SetTileLetter(bool screen, u16 x, u16 y, char letter) {
00114        PA_SetMapTileAll(screen, PAbgtext[screen], x, y, (PA_textmap[screen][(u16)letter]&((1<<12)-1)) + (PAtext_pal[screen] << 12));
00115 }
00116 
00117 
00129 extern inline void PA_SetTextTileCol(bool screen, u8 color)
00130 {
00131        PAtext_pal[screen] = color;
00132 }
00133 
00134 
00135 
00136 
00154 void PA_OutputText(bool screen, u16 x, u16 y, char* text, ...);
00155 
00173 u16 PA_OutputSimpleText(bool screen, u16 x, u16 y, const char *text);
00174 
00201 u32 PA_BoxText(bool screen, u16 basex, u16 basey, u16 maxx, u16 maxy, const char *text, u32 limit);
00202 
00229 u32 PA_BoxTextNoWrap(bool screen, u16 basex, u16 basey, u16 maxx, u16 maxy, const char *text, u32 limit);
00230 
00231 
00250 extern inline void PA_SetTextCol(bool screen, u16 r, u16 g, u16 b){
00251        PA_CreateTextPal(screen, 0, r, g, b);
00252 }
00253 
00254 
00255 
00256 //void PA_InitCustomTextEx(bool screen, u8 bg_select, void *tiles, void *map, void *pal);
00257 
00258 
00275 #define PA_InitCustomText(screen, bg_select, text) PA_InitCustomTextEx(screen, bg_select, text##_Tiles, text##_Map, text##_Pal)
00276 
00286 #define PA_ShowFont(screen) PA_LoadBgMap(screen, PAbgtext[screen], (void*)PA_textmap[screen], BG_256X256)
00287 
00288 
00289 
00290 
00291 
00327 s16 PA_SmartText(bool screen, s16 basex, s16 basey, s16 maxx, s16 maxy, char* text, u8 color, u8 size, u8 transp,  s32 limit);
00328 
00329 
00330 
00363 s16 PA_CenterSmartText(bool screen, s16 basex, s16 basey, s16 maxx, s16 maxy, char* text, u8 color, u8 size, u8 transp);
00364 
00365 
00366 
00378 extern inline bool PA_CompareText(char *text1, char *text2){
00379        bool ok = 1; // Devrait etre bon
00380        u8 i = 0; 
00381        while(ok && text2[i]){
00382               if (text1[i] != text2[i]) ok = 0;
00383               i++;
00384        }
00385        return ok;
00386 }
00387 
00388 
00400 extern inline void PA_CopyText(char *text1, char *text2){
00401 u8 i = 0;
00402 text1[i] = text2[i];
00403        do{
00404               i++;
00405               text1[i] = text2[i];
00406        }
00407        while (text2[i]);
00408 }
00409 
00410 
00411 
00412 void PA_OutputTextSpecial0(bool screen, int x1, int y,char *text);
00413 void PA_OutputTextSpecial1(bool screen, int x1, int y,char *text);
00414 void PA_OutputTextSpecial2(bool screen, int x1, int y,char *text);
00415 void PA_OutputTextSpecial3(bool screen, int x1, int y,char *text);
00416 void PA_OutputTextSpecial4(bool screen, int x1, int y,char *text);
00417 void PA_OutputTextSpecial5(bool screen, int x1, int y,char *text);
00418  // end of Text
00420 
00421 
00422 #endif
00423 
00424 
00425 

Generated on Sun Jan 22 11:46:39 2006 for PAlib by  doxygen 1.3.9.1