Пример #1
0
/**
 * 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;
		 }
	}

}
Пример #2
0
void Display::clearGfx(){
	consoleSelect(&subConsole);
	consoleClear();
	consoleSelect(&mainConsole);
	consoleClear();
	oamClear(&oamSub, 0, 0);
	oamClear(&oamMain, 17, 110);
}
Пример #3
0
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);
	}
}
Пример #4
0
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);
}
Пример #5
0
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);
	}
}
Пример #6
0
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();
}
Пример #7
0
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);
}
Пример #8
0
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();
}
Пример #9
0
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 !");
}
Пример #10
0
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);
}