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
00023 #include "PA_Tile.h"
00024
00025 #include "../../../lib/arm9/PA/Text/all_gfx.h"
00026
00027
00029
00031
00032
00033 extern u16 textcol[2];
00034 extern u8 PAbgtext[2];
00035
00036
00037 extern u16 *PA_textmap[2];
00038 extern u8 *PA_texttiles[2];
00039 extern u16 *PA_textpal[2];
00040
00041 extern s8 PA_font[2];
00042
00043
00044
00045
00046
00047 #ifdef TEXT_ALLSIZES
00048 #include "text0.h"
00049 #include "text1.h"
00050 #include "text2.h"
00051 #include "text3.h"
00052 #include "text4.h"
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
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;
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
00420
00421
00422 #endif
00423
00424
00425