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.23; author jandujar; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.11.02.08.30.23; author jandujar; state Exp; branches ; next ; desc @@ 1.1 log @Initial revision @ text @
00001 #ifndef _PA_Window 00002 #define _PA_Window 00003 00011 // utilisé pour activer ou non les fenetres... 00012 #define WIN_BG0 1 00013 #define WIN_BG1 2 00014 #define WIN_BG2 4 00015 #define WIN_BG3 8 00016 #define WIN_OBJ 16 00017 #define WIN_SFX 32 00018 00019 00020 #define DISPCNTL(screen) _REG16(0x04000000 + (screen * 0x1000)) 00021 #define DISPCNTH(screen) _REG16(0x04000002 + (screen * 0x1000)) 00022 00023 #define WINDOW0 (1 << 13) 00024 #define WINDOW1 (1 << 14) 00025 #define WINDOWOBJ (1 << 15) 00026 00027 00028 00029 #define WIN0X(screen) _REG16(0x04000040 + (screen * 0x1000)) 00030 #define WIN0Y(screen) _REG16(0x04000044 + (screen * 0x1000)) 00031 #define WIN1X(screen) _REG16(0x04000042 + (screen * 0x1000)) 00032 #define WIN1Y(screen) _REG16(0x04000046 + (screen * 0x1000)) 00033 00034 00035 00036 #define WININ(screen) _REG16(0x04000048 + (screen * 0x1000)) 00037 #define WINOUT(screen) _REG16(0x0400004A + (screen * 0x1000)) 00038 00039 00040 extern const s16 winfades[][4]; 00041 00042 00043 00070 extern inline void PA_SetWin0XY(bool screen, u8 x1, u8 y1, u8 x2, u8 y2) { 00071 WIN0X(screen) = x2 + ((x1) << 8); 00072 WIN0Y(screen) = y2 + ((y1) << 8); 00073 } 00074 00075 00076 00097 #define PA_SetWin1XY(screen, x1, y1, x2, y2) {WIN1X(screen) = x2 + ((x1) << 8); WIN1Y(screen) = y2 + ((y1) << 8);} 00098 00099 00100 00112 #define PA_EnableWin0(screen, bg_sprites) {DISPCNTL(screen) |= WINDOW0; WININ(screen) &= 255; WININ(screen) |= bg_sprites;} 00113 00122 #define PA_DisableWin0(screen) DISPCNTL(screen) &= ~WINDOW0 00123 00124 00136 #define PA_EnableWin1(screen, bg_sprites) {DISPCNTL(screen) |= WINDOW1; WININ(screen) &= 255; WININ(screen) |= (bg_sprites << 8);} 00137 00138 00147 #define PA_DisableWin1(screen) DISPCNTL(screen) &= ~WINDOW1 00148 00149 00161 #define PA_EnableWinObj(screen, bg_sprites) {DISPCNTL(screen) |= WINDOWOBJ; WINOUT(screen) &= 255; WINOUT |= (bg_sprites << 8);} 00162 00163 00172 #define PA_DisableWinObj(screen) DISPCNTL(screen) &= ~WINDOWOBJ 00173 00174 00186 #define PA_SetOutWin(screen, bg_sprites) {WINOUT(screen) &= ~255; WINOUT(screen) |= bg_sprites;} 00187 00188 00189 00190 00191 00206 extern inline void PA_WindowFade(bool screen, u8 type, u8 time){ 00207 PA_EnableWin0(screen, WIN_BG0 | WIN_BG1 | WIN_BG2 | WIN_BG3 | WIN_OBJ); 00208 PA_SetWin0XY(screen, (time*winfades[type][0]), 00209 (time*winfades[type][1]), 00210 (time*winfades[type][2]) + 256, 00211 (time*winfades[type][3]) + 192); 00212 if (time == 0) PA_DisableWin0(screen); 00213 } 00214 00215 00216 00217 00218 00219 00220 00221 00222 00223 00224 00225 00226 // end of Window 00229 00230 00231 00232 00233 #endif 00234