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 
00086 
00087 
00100 #define PA_DualLoadTiledBg(bg_number, bg_name){\
00101        PA_LoadTiledBg(0, bg_number, bg_name);\
00102        PA_LoadTiledBg(1, bg_number, bg_name);\
00103        PA_DualBGScrollY(bg_number, 0);}
00104 
00105 
00106 
00107 
00108 
00109 
00135 #define PA_DualLoadSimpleBg(bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode) {\
00136 PA_LoadSimpleBg(0, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode);\
00137 PA_LoadSimpleBg(1, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode);\
00138 PA_DualBGScrollY(bg_select, 0);}
00139 
00140 
00141 
00163 #define PA_DualLoadRotBg(bg_select, bg_tiles, bg_map, bg_size, wraparound) {\
00164 PA_LoadRotBg(0, bg_select, bg_tiles, bg_map, bg_size, wraparound);\
00165 PA_LoadRotBg(1, bg_select, bg_tiles, bg_map, bg_size, wraparound);\
00166 PA_DualBGScrollY(bg_select, 0);}
00167 
00168 
00169 
00170 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){
00171 PA_SetBgRot(0, bg_select, x_scroll, y_scroll, x_rotcentre, y_rotcentre, bg_angle, bg_zoom);
00172 PA_SetBgRot(1, bg_select, x_scroll, y_scroll, x_rotcentre, y_rotcentre, bg_angle, bg_zoom);
00173 }
00174 
00175 
00176 
00205 #define PA_DualLoadBg(bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode) {\
00206 PA_LoadBg(0, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode);\
00207 PA_LoadBg(1, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode);\
00208 PA_DualBGScrollY(bg_select, 0);}
00209 
00210 
00211 
00224 extern inline void PA_DualBGScrollX(u8 bg_number, s16 x){
00225        PA_BGScrollX(0, bg_number, x);
00226        PA_BGScrollX(1, bg_number, x);
00227 }
00228 
00229 
00230 
00231 
00244 extern inline void PA_DualBGScrollY(u8 bg_number, s16 y){
00245        PA_BGScrollY(0, bg_number, y+PA_ScreenSpace);
00246        PA_BGScrollY(1, bg_number, y);
00247 }
00248 
00249 
00250 
00251 
00267 extern inline void PA_DualBGScrollXY(u8 bg_number, s16 x, s16 y) {
00268        PA_DualBGScrollX(bg_number, x); 
00269        PA_DualBGScrollY(bg_number, y);
00270 }
00271 
00272 
00273 
00274 
00287 #define PA_DualLoadPAGfxLargeBg(bg_number, bg_name){\
00288        PA_LoadPAGfxLargeBg(0, bg_number, bg_name);\
00289        PA_LoadPAGfxLargeBg(1, bg_number, bg_name);\
00290        PA_DualInfLargeScrollY(bg_number, 0);}
00291 
00292 
00293 
00294 
00319 #define PA_DualLoadLargeBg(bg_select, bg_tiles, bg_map, color_mode, lx, ly){\
00320 PA_LoadLargeBg(0, bg_select, bg_tiles, bg_map, color_mode, lx, ly);\
00321 PA_LoadLargeBg(1, bg_select, bg_tiles, bg_map, color_mode, lx, ly);\
00322 PA_DualInfLargeScrollY(bg_select, 0);}
00323 
00324 
00325 
00326 
00327 
00355 #define PA_DualLoadLargeBgEx(bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly) {\
00356 PA_LoadLargeBgEx(0, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly);\
00357 PA_LoadLargeBgEx(1, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly);\
00358 PA_DualInfLargeScrollY(bg_select, 0);}
00359 
00360 
00361 
00362 
00375 extern inline void PA_DualInfLargeScrollX(u8 bg_select, s32 x){
00376        PA_InfLargeScrollX(0, bg_select, x);
00377        PA_InfLargeScrollX(1, bg_select, x);
00378 }
00379 
00380 
00381 
00394 extern inline void PA_DualInfLargeScrollY(u8 bg_select, s32 y){
00395        PA_InfLargeScrollY(0, bg_select, y+PA_ScreenSpace);
00396        PA_InfLargeScrollY(1, bg_select, y);
00397 }
00398 
00399 
00415 extern inline void PA_DualInfLargeScrollXY(u8 bg_select, s32 x, s32 y){
00416        PA_DualInfLargeScrollX(bg_select, x);
00417        PA_DualInfLargeScrollY(bg_select, y);
00418 }
00419 
00432 extern inline void PA_DualLargeScrollX(u8 bg_select, s32 x){
00433        PA_LargeScrollX(0, bg_select, x);
00434        PA_LargeScrollX(1, bg_select, x);
00435 }
00436 
00449 extern inline void PA_DualLargeScrollY(u8 bg_select, s32 y){
00450        PA_LargeScrollY(0, bg_select, y+PA_ScreenSpace);
00451        PA_LargeScrollY(1, bg_select, y);
00452 }
00453 
00454 
00470 extern inline void PA_DualLargeScrollXY(u8 bg_select, s32 x, s32 y){
00471        PA_DualLargeScrollX(bg_select, x);
00472        PA_DualLargeScrollY(bg_select, y);
00473 }
00474 
00475 
00476 
00495 extern inline void PA_DualInitParallaxX(s32 bg0, s32 bg1, s32 bg2, s32 bg3) {
00496         PA_InitParallaxX(0, bg0, bg1, bg2, bg3);
00497         PA_InitParallaxX(1, bg0, bg1, bg2, bg3);
00498 }
00499 
00500 
00501 
00520 extern inline void PA_DualInitParallaxY(s32 bg0, s32 bg1, s32 bg2, s32 bg3) {
00521        PA_InitParallaxY(0, bg0, bg1, bg2, bg3);
00522        PA_InitParallaxY(1, bg0, bg1, bg2, bg3);  
00523 }
00524 
00525 
00526 
00536 extern inline void PA_DualParallaxScrollX(s32 x){
00537 u8 i;
00538        for(i = 0; i < 4; i++) {
00539               if (PA_parallaxX[0][i])  {
00540                      if(scrollpos[0][i].infscroll) PA_DualInfLargeScrollX(i, (PA_parallaxX[0][i] * x) >> 8); // Si bg en scrolling infini
00541                      else PA_DualBGScrollX(i, (PA_parallaxX[0][i] * x) >> 8); // Sinon scrolling normal
00542               }
00543        }
00544 }
00545 
00546 
00556 extern inline void PA_DualParallaxScrollY(s32 y){
00557 u8 i;
00558        for(i = 0; i < 4; i++) {
00559               if (PA_parallaxY[0][i])  {
00560                      if(scrollpos[0][i].infscroll) PA_DualInfLargeScrollY(i, (PA_parallaxY[0][i] * y) >> 8); // Si bg en scrolling infini
00561                      else PA_DualBGScrollY(i, (PA_parallaxY[0][i] * y) >> 8); // Sinon scrolling normal
00562               }
00563        }
00564 }
00565 
00566 
00579 extern inline void PA_DualParallaxScrollXY(s32 x, s32 y){
00580        PA_DualParallaxScrollX(x);
00581        PA_DualParallaxScrollY(y);
00582 }
00583 
00584 
00585 
00598 extern inline void PA_DualSetBgPrio(u8 bg, u8 prio) {
00599        PA_SetBgPrio(0, bg, prio);
00600        PA_SetBgPrio(1, bg, prio);
00601 }
00602 
00603 
00604  // end of Backgrounds
00606 
00607 
00608 
00609 // Pas utilisé en direct par le programmeur
00610 void PA_InitLargeBg(bool screen, u8 bg_select, s32 lx, s32 ly, void* bg_map);
00611 
00612 
00613 
00614 #endif
00615 

Generated on Wed Dec 14 11:50:32 2005 for PAlib by  doxygen 1.3.9.1