PA_TileDual.h

Go to the documentation of this file.
00001 #ifndef _PA_TileDual
00002 #define _PA_TileDual
00003 
00004 
00011 #include "PA_Tile.h"
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00034 extern inline void PA_DualHideBg(u8 bg_select){
00035        PA_HideBg(0, bg_select);
00036        PA_HideBg(1, bg_select);    
00037 }
00038 
00048 extern inline void PA_DualShowBg(u8 bg_select){
00049        PA_ShowBg(0, bg_select);
00050        PA_ShowBg(1, bg_select);
00051 }
00052 
00053 
00054 
00061 extern inline void PA_DualResetBg(void){
00062        PA_ResetBg(0);
00063        PA_ResetBg(1);
00064 }
00065 
00066 
00067 
00068 
00069 
00079 extern inline void PA_DualDeleteBg(u8 bg_select){
00080        PA_DeleteBg(0, bg_select);
00081        PA_DeleteBg(1, bg_select);
00082 }
00083 
00084 
00085 
00111 #define PA_DualLoadSimpleBg(bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode) {\
00112 PA_LoadSimpleBg(0, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode);\
00113 PA_LoadSimpleBg(1, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode);\
00114 PA_DualBGScrollY(bg_select, 0);}
00115 
00116 
00117 
00139 #define PA_DualLoadRotBg(bg_select, bg_tiles, bg_map, bg_size, wraparound) {\
00140 PA_LoadRotBg(0, bg_select, bg_tiles, bg_map, bg_size, wraparound);\
00141 PA_LoadRotBg(1, bg_select, bg_tiles, bg_map, bg_size, wraparound);\
00142 PA_DualBGScrollY(bg_select, 0);}
00143 
00144 
00145 
00146 extern inline void PA_DualSetBgRot(u8 bg_select, s32 x_scroll, s32 y_scroll, s32 x_rotcentre, s32 y_rotcentre, s16 bg_angle, s32 bg_zoom){
00147 PA_SetBgRot(0, bg_select, x_scroll, y_scroll, x_rotcentre, y_rotcentre, bg_angle, bg_zoom);
00148 PA_SetBgRot(1, bg_select, x_scroll, y_scroll, x_rotcentre, y_rotcentre, bg_angle, bg_zoom);
00149 }
00150 
00151 
00152 
00181 #define PA_DualLoadBg(bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode) {\
00182 PA_LoadBg(0, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode);\
00183 PA_LoadBg(1, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode);\
00184 PA_DualBGScrollY(bg_select, 0);}
00185 
00186 
00187 
00200 extern inline void PA_DualBGScrollX(u8 bg_number, s16 x){
00201        PA_BGScrollX(0, bg_number, x);
00202        PA_BGScrollX(1, bg_number, x);
00203 }
00204 
00205 
00206 
00207 
00220 extern inline void PA_DualBGScrollY(u8 bg_number, s16 y){
00221        PA_BGScrollY(0, bg_number, y);
00222        PA_BGScrollY(1, bg_number, y+192);
00223 }
00224 
00225 
00226 
00227 
00243 extern inline void PA_DualBGScrollXY(u8 bg_number, s16 x, s16 y) {
00244        PA_DualBGScrollX(bg_number, x); 
00245        PA_DualBGScrollY(bg_number, y);
00246 }
00247 
00248 
00249 
00250 
00251 
00252 
00253 
00254 
00255 
00256 
00281 #define PA_DualLoadLargeBg(bg_select, bg_tiles, bg_map, color_mode, lx, ly){\
00282 PA_LoadLargeBg(0, bg_select, bg_tiles, bg_map, color_mode, lx, ly);\
00283 PA_LoadLargeBg(1, bg_select, bg_tiles, bg_map, color_mode, lx, ly);\
00284 PA_DualInfLargeScrollY(bg_select, 0);}
00285 
00286 
00287 
00288 
00289 
00317 #define PA_DualLoadLargeBgEx(bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly) {\
00318 PA_LoadLargeBgEx(0, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly);\
00319 PA_LoadLargeBgEx(1, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly);\
00320 PA_DualInfLargeScrollY(bg_select, 0);}
00321 
00322 
00323 
00324 
00337 extern inline void PA_DualInfLargeScrollX(u8 bg_select, s32 x){
00338        PA_InfLargeScrollX(0, bg_select, x);
00339        PA_InfLargeScrollX(1, bg_select, x);
00340 }
00341 
00342 
00343 
00356 extern inline void PA_DualInfLargeScrollY(u8 bg_select, s32 y){
00357        PA_InfLargeScrollY(0, bg_select, y);
00358        PA_InfLargeScrollY(1, bg_select, y+192);
00359 }
00360 
00361 
00377 extern inline void PA_DualInfLargeScrollXY(u8 bg_select, s32 x, s32 y){
00378        PA_DualInfLargeScrollX(bg_select, x);
00379        PA_DualInfLargeScrollY(bg_select, y);
00380 }
00381 
00394 extern inline void PA_DualLargeScrollX(u8 bg_select, s32 x){
00395        PA_LargeScrollX(0, bg_select, x);
00396        PA_LargeScrollX(1, bg_select, x);
00397 }
00398 
00411 extern inline void PA_DualLargeScrollY(u8 bg_select, s32 y){
00412        PA_LargeScrollY(0, bg_select, y);
00413        PA_LargeScrollY(1, bg_select, y+192);
00414 }
00415 
00416 
00432 extern inline void PA_DualLargeScrollXY(u8 bg_select, s32 x, s32 y){
00433        PA_DualLargeScrollX(bg_select, x);
00434        PA_DualLargeScrollY(bg_select, y);
00435 }
00436 
00437 
00438 
00457 extern inline void PA_DualInitParallaxX(s32 bg0, s32 bg1, s32 bg2, s32 bg3) {
00458         PA_InitParallaxX(0, bg0, bg1, bg2, bg3);
00459         PA_InitParallaxX(1, bg0, bg1, bg2, bg3);
00460 }
00461 
00462 
00463 
00482 extern inline void PA_DualInitParallaxY(s32 bg0, s32 bg1, s32 bg2, s32 bg3) {
00483        PA_InitParallaxY(0, bg0, bg1, bg2, bg3);
00484        PA_InitParallaxY(1, bg0, bg1, bg2, bg3);  
00485 }
00486 
00487 
00488 
00498 extern inline void PA_DualParallaxScrollX(s32 x){
00499 u8 i;
00500        for(i = 0; i < 4; i++) {
00501               if (PA_parallaxX[0][i])  {
00502                      if(scrollpos[0][i].infscroll) PA_DualInfLargeScrollX(i, (PA_parallaxX[0][i] * x) >> 8); // Si bg en scrolling infini
00503                      else PA_DualBGScrollX(i, (PA_parallaxX[0][i] * x) >> 8); // Sinon scrolling normal
00504               }
00505        }
00506 }
00507 
00508 
00518 extern inline void PA_DualParallaxScrollY(s32 y){
00519 u8 i;
00520        for(i = 0; i < 4; i++) {
00521               if (PA_parallaxY[0][i])  {
00522                      if(scrollpos[0][i].infscroll) PA_DualInfLargeScrollY(i, (PA_parallaxY[0][i] * y) >> 8); // Si bg en scrolling infini
00523                      else PA_DualBGScrollY(i, (PA_parallaxY[0][i] * y) >> 8); // Sinon scrolling normal
00524               }
00525        }
00526 }
00527 
00528 
00541 extern inline void PA_DualParallaxScrollXY(s32 x, s32 y){
00542        PA_DualParallaxScrollX(x);
00543        PA_DualParallaxScrollY(y);
00544 }
00545 
00546 
00547 
00560 extern inline void PA_DualSetBgPrio(u8 bg, u8 prio) {
00561        PA_SetBgPrio(0, bg, prio);
00562        PA_SetBgPrio(1, bg, prio);
00563 }
00564 
00565 
00566  // end of Backgrounds
00568 
00569 
00570 
00571 // Pas utilisé en direct par le programmeur
00572 void PA_InitLargeBg(bool screen, u8 bg_select, s32 lx, s32 ly, void* bg_map);
00573 
00574 
00575 
00576 #endif
00577 

Generated on Tue Nov 8 13:21:07 2005 for PAlib by  doxygen 1.3.9.1