/** * Muestra un par de botones con las opciones de continuar juego o salir. * Espera una respuesta táctil válida y hace una animación cuando la recibe. */ void Pausar() { // Espera una entrada táctil del usuario if( !BotonPulsado_Pausa ) BotonPulsado_Pausa = pantallaEncuestaMenu(); // Hace la animación DesplazamientoAnimacion_Pausa += 5; dibujar_botonContinuar(60 - DesplazamientoAnimacion_Pausa, 20); dibujar_botonSalir(60 + DesplazamientoAnimacion_Pausa, 110); if( DesplazamientoAnimacion_Pausa == 160 ) { // Elimina los botones y la transparencia oamClear(&oamMain,122,4); REG_BLDCNT = 0; REG_BLDALPHA = 0; bgHide(Fondo2); if( BotonPulsado_Pausa == 1 ) { ESTADO = AVANZAR_PERSONAJE; } else { // Elimina los elementos del juego oamClear(&oamMain,0,128); oamClear(&oamSub,0,128); CargarMenu(); ESTADO = MENU; } } }
void Display::clearGfx(){ consoleSelect(&subConsole); consoleClear(); consoleSelect(&mainConsole); consoleClear(); oamClear(&oamSub, 0, 0); oamClear(&oamMain, 17, 110); }
void Display::modeSelektor(){ //Displaying bg3, and mode sprites bgSetPriority(this->subbg3, 1); DC_FlushAll(); dmaCopy(greyedBgSubTiles, bgGetGfxPtr(this->subbg3), greyedBgSubTilesLen); dmaCopy(greyedBgSubMap, bgGetMapPtr(this->subbg3), greyedBgSubMapLen); bgShow(subbg3); s8 i; for (i = 0; i < 4; ++i){ modesSprite->display(64 + i, 32 + 128 * (i % 2), 16 + 96 * (i / 2), OBJPRIORITY_0, i); } oamUpdate(&oamSub); input->paused = true; while(!(Cfg::modeSelector && input->pad->select() == DOWN) && input->modeSelektor() != 1){ swiWaitForVBlank(); } Cfg::modeSelector = false; oamClear(&oamSub, 64, 4); if (Cfg::mode == SLIDERS){ dmaCopy(slidersBg3SubTiles, bgGetGfxPtr(this->subbg3), slidersBg3SubTilesLen); dmaCopy(this->slidersBg3Map, bgGetMapPtr(this->subbg3), 1536); } else { bgSetPriority(this->subbg3, 2); bgHide(this->subbg3); } }
void DSGM_ResetSprites(DSGM_Sprite *sprites, int spriteCount) { int i, j; for(i = 0; i < spriteCount; i++) { if(sprites[i].topTiles) { for(j = 0; j < sprites[i].frames; j++) { oamFreeGfx(&oamMain, sprites[i].topTiles[j]); sprites[i].topTiles[j] = NULL; } free(sprites[i].topTiles); sprites[i].topTiles = NULL; } if(sprites[i].bottomTiles) { for(j = 0; j < sprites[i].frames; j++) { oamFreeGfx(&oamSub, sprites[i].bottomTiles[j]); sprites[i].bottomTiles[j] = NULL; } free(sprites[i].bottomTiles); sprites[i].bottomTiles = NULL; } } for(i = 0; i < 32; i++) { DSGM_rotations[DSGM_TOP][i] = 0; DSGM_rotations[DSGM_BOTTOM][i] = 0; DSGM_scales[DSGM_TOP][i].x = 1 << 8; DSGM_scales[DSGM_TOP][i].y = 1 << 8; DSGM_scales[DSGM_BOTTOM][i].x = 1 << 8; DSGM_scales[DSGM_BOTTOM][i].y = 1 << 8; } DSGM_nextFreeSprite[DSGM_TOP] = 0; DSGM_nextFreeSprite[DSGM_BOTTOM] = 0; memset(&DSGM_rotsetTracker, 0, sizeof(DSGM_rotsetTracker)); //DSGM_nextFreeRotset[DSGM_TOP] = 0; //DSGM_nextFreeRotset[DSGM_BOTTOM] = 0; oamClear(&oamMain, 0, 0); oamClear(&oamSub, 0, 0); //oamUpdate(&oamMain); //oamUpdate(&oamSub); }
void Display::editKaossParams(){ CCParam* ccParam = NULL; bgSetPriority(this->subbg3, 1); DC_FlushAll(); dmaCopy(greyedBgSubTiles, bgGetGfxPtr(this->subbg3), greyedBgSubTilesLen); dmaCopy(greyedBgSubMap, bgGetMapPtr(this->subbg3), greyedBgSubMapLen); bgShow(this->subbg3); while(!(Cfg::editParams && input->pad->start() == DOWN)){ for (u8 i = 0; i<3; ++i){ if (i == 0){ echo(0, RED, 5, 7 + 8*(i%8), "X"); ccParam = &Cfg::kaoss.x[Cfg::kaoss.bank]; } if (i == 1){ echo(0, RED, 5, 7 + 8*(i%8), "Y"); ccParam = &Cfg::kaoss.y[Cfg::kaoss.bank]; } if (i == 2){ echo(0, RED, 5, 7 + 8*(i%8), "Z"); ccParam = &Cfg::kaoss.z[Cfg::kaoss.bank]; } echo(0, WHITE, 8, 7 + 8*(i%8), "CC"); paramsEditSprite->display(16+i, 56 + 64*(i%8), 72, OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 10, 6 + 8*(i%8), (*ccParam).cc); paramsEditSprite->display(32+i, 56 + 64*(i%8), 88, OBJPRIORITY_0, 1); echo(0, WHITE, 13, 7 + 8*(i%8), "CH"); paramsEditSprite->display(48+i, 56 + 64*(i%8), 112, OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 15, 6 + 8*(i%8), 1 + (*ccParam).channel); paramsEditSprite->display(64+i, 56 + 64*(i%8), 128, OBJPRIORITY_0, 1); } oamUpdate(&oamSub); input->editKaossParams(); Cfg::editParams = true; swiWaitForVBlank(); } Cfg::editParams = false; save->write(); oamClear(&oamSub, 16, 80); consoleClear(); if (Cfg::mode == SLIDERS){ dmaCopy(slidersBg3SubTiles, bgGetGfxPtr(this->subbg3), slidersBg3SubTilesLen); dmaCopy(slidersBg3Map, bgGetMapPtr(this->subbg3), 1536); } else { bgSetPriority(this->subbg3, 2); bgHide(this->subbg3); } }
void Display::editMixerParams(){ CCParam ccParam; bgSetPriority(this->subbg3, 1); DC_FlushAll(); dmaCopy(greyedBgSubTiles, bgGetGfxPtr(this->subbg3), greyedBgSubTilesLen); dmaCopy(greyedBgSubMap, bgGetMapPtr(this->subbg3), greyedBgSubMapLen); bgShow(this->subbg3); echo(0, RED, 0, 13, "MIXER"); echo(0, RED, 12, 13, "MUTES"); while(!(Cfg::editParams && input->pad->start() == DOWN)){ for (u8 i = 0; i<8; ++i){ ccParam = Cfg::mixer.ccs[i]; echo(0, WHITE, 2, 1 + 4*(i%8), "CC"); paramsEditSprite->display(16+i, 8 + 32*(i%8), 24, OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 4, 4*(i%8), ccParam.cc); paramsEditSprite->display(32+i, 8 + 32*(i%8), 40, OBJPRIORITY_0, 1); echo(0, WHITE, 6, 1 + 4*(i%8), "CH"); paramsEditSprite->display(48+i, 8 + 32*(i%8), 56, OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 8, 4*(i%8), 1 + ccParam.channel); paramsEditSprite->display(64+i, 8 + 32*(i%8), 72, OBJPRIORITY_0, 1); ccParam = Cfg::mixer.mutes[i]; echo(0, WHITE, 14, 1 + 4*(i%8), "CC"); paramsEditSprite->display(24+i, 8 + 32*(i%8), 120, OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 16, 4*(i%8), ccParam.cc); paramsEditSprite->display(40+i, 8 + 32*(i%8), 136, OBJPRIORITY_0, 1); echo(0, WHITE, 18, 1 + 4*(i%8), "CH"); paramsEditSprite->display(56+i, 8 + 32*(i%8), 152, OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 20, 4*(i%8), 1 + ccParam.channel); paramsEditSprite->display(72+i, 8 + 32*(i%8), 168, OBJPRIORITY_0, 1); } oamUpdate(&oamSub); input->editMixerParams(); Cfg::editParams = true; swiWaitForVBlank(); } save->write(); Cfg::editParams = false; oamClear(&oamSub, 16, 80); consoleClear(); }
void Statue::init() { init_timer(1, 30); counter = 0; oamClear(&oamMain, 0, 0); oamEnable(&oamMain); oamInit(&oamMain, SpriteMapping_1D_32, false); dmaCopy(statuePal, SPRITE_PALETTE, sizeof(statuePal)); oamSet( &oamMain, STATUE_SPRITE, 50, 50, /*priority*/1, /*palette*/0, SpriteSize_32x64, SpriteColorFormat_16Color, oamGetGfxPtr(&oamMain, STATUE_TILE), -1, false, false, false, false, false); Game::init(); writeTimed("\x1b[10;10HDetruis!", 1000); }
void Display::editSliderParams(){ CCParam ccParam; u8 color; bgSetPriority(this->subbg3, 1); DC_FlushAll(); dmaCopy(greyedBgSubTiles, bgGetGfxPtr(this->subbg3), greyedBgSubTilesLen); dmaCopy(greyedBgSubMap, bgGetMapPtr(this->subbg3), greyedBgSubMapLen); bgShow(this->subbg3); while(!(Cfg::editParams && input->pad->start() == DOWN)){ for (u8 i = 0; i<16; ++i){ ccParam = Cfg::sliders.ccs[Cfg::sliders.bank][i]; color = Cfg::sliders.colors[Cfg::sliders.bank][i]; echo(0, WHITE, 12*(i/8) , 1 + 4*(i%8), "CC"); paramsEditSprite->display(16+i, 8 + 32*(i%8), 8 + 96*(i/8), OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 2 + 12*(i/8) , 4*(i%8), ccParam.cc); paramsEditSprite->display(32+i, 8 + 32*(i%8), 24 + 96*(i/8), OBJPRIORITY_0, 1); echo(0, WHITE, 4+12*(i/8) , 1 + 4*(i%8), "CH"); paramsEditSprite->display(48+i, 8 + 32*(i%8), 40 + 96*(i/8), OBJPRIORITY_0, 0); iprintf("\x1b[%d;%dH%3d", 6 + 12*(i/8) , 4*(i%8), 1 + ccParam.channel); paramsEditSprite->display(64+i, 8 + 32*(i%8), 56 + 96*(i/8), OBJPRIORITY_0, 1); paramsEditSprite->display(80+i, 8 + 32*(i%8), 72 + 96*(i/8), OBJPRIORITY_0, color + 2); } oamUpdate(&oamSub); input->editSliderParams(); Cfg::editParams = true; swiWaitForVBlank(); } save->write(); Cfg::editParams = false; oamClear(&oamSub, 16, 80); consoleClear(); sliders(); }
void Display::connection_error(){ oamClear(&oamMain, 0, 0); oamClear(&oamSub, 0, 0); echo(1, RED, 10,8, "Could not connect"); echo(1, RED, 11,9, "to DSMI Server !"); }
void Aim::init() { init_timer(3, 0); counter = 0; oamClear(&oamMain, 0, 0); oamEnable(&oamMain); oamInit(&oamMain, SpriteMapping_1D_32, false); dmaCopy(capitalistTiles, oamGetGfxPtr(&oamMain, CAPITALIST_TILE), sizeof(capitalistTiles)); dmaCopy(capitalistPal, SPRITE_PALETTE, sizeof(capitalistPal)); dmaCopy(sovietTiles, oamGetGfxPtr(&oamMain, SOVIET_TILE), sizeof(sovietTiles)); dmaCopy(sovietPal, SPRITE_PALETTE + 16, sizeof(sovietPal)); for (int i = 0; i <= NUM_SOVIET; ++i) { frame[i] = rand() % 8; anim[i] = rand() % 2; oamSet( &oamMain, SOVIET_SPRITE + i, (rand() % 128) + 32, (rand() % 64) + 32, /*priority*/1, /*palette*/1, SpriteSize_64x64, SpriteColorFormat_16Color, NULL, -1, false, false, false, false, false); } for (int i = 0; i < NUM_SOVIET; ++i) { SpriteEntry* ii = oamMain.oamMemory + SOVIET_SPRITE + i; for (int j = i + 1; j <= NUM_SOVIET; ++j) { SpriteEntry* jj = oamMain.oamMemory + SOVIET_SPRITE + j; if (ii->y < jj->y) { int tmp = jj->y; jj->y = ii->y; ii->y = tmp; } } } capitalist_sprite = rand() % NUM_SOVIET; (oamMain.oamMemory + SOVIET_SPRITE + capitalist_sprite)->palette = 0; for (int i = 0; i <= NUM_SOVIET; ++i) { if (i == capitalist_sprite) { (oamMain.oamMemory + SOVIET_SPRITE + i)->gfxIndex = CAPITALIST_TILE + anim[i]*CAPITALIST_TILE_COUNT; } else { (oamMain.oamMemory + SOVIET_SPRITE + i)->gfxIndex = SOVIET_TILE + anim[i]*SOVIET_TILE_COUNT; } } Game::init(); writeTimed("\x1b[5;15HCamoufle le capitaliste!", 1000); bgHide(1); }