Esempio n. 1
0
void drawStatusBar(bool wifiStatus, bool charging, int batteryLevel)
{
	u64 timeInSeconds = osGetTime() / 1000;
	u64 dayTime = timeInSeconds % SECONDS_IN_DAY;
	u8 hour = dayTime / SECONDS_IN_HOUR;
	u8 min = (dayTime % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE;
	u8 seconds = dayTime % SECONDS_IN_MINUTE;

	char timeString[9];
	sprintf(timeString, "%02d:%02d:%02d", hour, min, seconds);
	gfxDrawText(GFX_TOP, GFX_LEFT, NULL, timeString, 240 - 18, 400 / 2 - 16);

	if(wifiStatus)
	{
		gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, (u8*)wifi_full_bin, 18, 20, 240 - 18, 0);
	}
	else
	{
		gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, (u8*)wifi_none_bin, 18, 20, 240 - 18, 0);
	}

	if(charging)
	{
		gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, (u8*)battery_charging_bin, 18, 27, 240 - 18, 400 - 27);
	}
	else
	{
		gfxDrawSpriteAlphaBlend(GFX_TOP, GFX_LEFT, batteryLevels[batteryLevel], 18, 27, 240 - 18, 400 - 27);
	}
}
Esempio n. 2
0
void drawThemeImageCheckAlpha(u8 * image, gfxScreen_t screen, int x, int y, int w, int h, bool hasAlpha) {
    if (hasAlpha) {
        gfxDrawSpriteAlphaBlend(screen, GFX_LEFT, image, w, h, x, y);
    }
    else {
        gfxDrawSprite(screen, GFX_LEFT, image, w, h, x, y);
    }
}
Esempio n. 3
0
void drawButtonRect(gfxScreen_t screen, gfx3dSide_t side, int x, int y, int w, int h, int r, int g, int b) {
    u8 corner[9*9*4];
    
    MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornertopleft_bin, corner, 9, 9);
    gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x+(w-9), y);
    
    MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornertopright_bin, corner, 9, 9);
    gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x+(w-9), y+h-9);
    
    MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornerbottomleft_bin, corner, 9, 9);
    gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x, y);
    
    MAGFXImageWithRGBAndAlphaMask(r, g, b, (u8*)buttoncornerbottomright_bin, corner, 9, 9);
    gfxDrawSpriteAlphaBlend(screen, side, corner, 9, 9, x, y+h-9);
    
    u8 rgb[3] = {r, g, b};
    
    gfxDrawRectangle(screen, side, rgb, x, y+9, w, h-18);
    gfxDrawRectangle(screen, side, rgb, x+9, y, w-18, h);
}
Esempio n. 4
0
//void gfxDrawSpriteAlphaBlend(gfxScreen_t screen, gfx3dSide_t side, u8* spriteData, u16 width, u16 height, s16 x, s16 y);
void render(int full_field[], int full_judgement[], int local_field[], int cur_field, int cur_row, bool cur_visable, int ans[], int win, int cheat, int state, int modeselector){
	//render bgs
	gfxDrawSprite(GFX_TOP,GFX_LEFT, (u8*)top_bin, 240, 400, 0, 0);
	gfxDrawSprite(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_bin, 240, 320, 0, 0);

	//top
	int x;
	int y;
	int z;
	for (x=0; x<7; x++){
		for (y=0; y<4; y++){
			if (full_field[x*4+y]>0)
				gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_colors_bin+(full_field[x*4+y]-1)*1600, 20, 20, 11+x*33, 145+y*30);
		}
	}
	for (x=0; x<7; x++){
		for (y=0; y<2; y++){
			for(z=0;z<2; z++){
				if (full_judgement[y*2+z+x*4] == 1)
					gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_pins_bin+196, 7, 7, 22-8*y+33*x, 262+8*z);
				if (full_judgement[y*2+z+x*4] == 2)
					gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_pins_bin, 7, 7, 22-8*y+33*x, 262+8*z);
			}
		}
	}
	for (x=0; x<7; x++){
		if (cur_row == x){
			gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)black_numbers_bin+336*x, 12, 7, 15+33*x, 128);
			gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_arrow_bin, 10, 7, 15+33*x, 115);
		}else{
			gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)grey_numbers_bin+336*x, 12, 7, 15+33*x, 128);
		}
	}
	if (cur_row == 7){
		gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_gameover_bin, 80, 200, 100, 100);
		for (x=0; x<4; x++){
			gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_colors_bin+(ans[x]-1)*1600, 20, 20, 108, 123+45*x);
		}
	}
	if (win == 1){
		gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_win_bin, 60, 200, 90, 100);
	}
	if (cheat){
		for (y=0; y<4; y++){
			gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_colors_bin+(ans[y]-1)*1600, 20, 20, 0, y*27);
		}
	}
	//bottom
	if (local_field[0] != 0)
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[0]-1), 54, 54, 132, 16);
	if (local_field[1] != 0)
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[1]-1), 54, 54, 132, 94);
	if (local_field[2] != 0)
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[2]-1), 54, 54, 132, 172);
	if (local_field[3] != 0)
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_colors_bin+11664*(local_field[3]-1), 54, 54, 132, 250);

	if (cur_visable && cur_row != 7)
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_circle_bin, 72, 72, 123, 7+78*cur_field);

	if (state == 0){
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselect_bin, 80, 200, 100, 60);
		if (modeselector == 0){
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin, 34, 98, 141, 64);
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+26656, 34, 98, 105, 64);
		}else if (modeselector == 1){
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+13328, 34, 98, 141, 64);
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+26656, 34, 98, 105, 64);
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_difselect_bin, 72, 88, 104, 167);
		}else{
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin, 34, 98, 141, 64);
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_modeselectbuttons_bin+39984, 34, 98, 105, 64);
			gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_difselect_bin, 72, 88, 104, 167);
		}
	}else if (state == 2){
		gfxDrawSpriteAlphaBlend(GFX_TOP,GFX_LEFT, (u8*)top_instruction_bin, 60, 200, 90, 100);
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_currentplayer_bin, 19, 111, 221, 209);
	}else if (state == 3){
		gfxDrawSpriteAlphaBlend(GFX_BOTTOM,GFX_LEFT, (u8*)bottom_currentplayer_bin+8436, 19, 111, 221, 209);
	}
}
Esempio n. 5
0
void btnDrawButton(button * aButton) {
    if (!aButton->visible) {
        return;
    }
    
    if (aButton->buttonType == btnButtonTypeSlider) {
        btnDrawSlider(aButton);
        return;
    }
    
    rgbColour *aRGB;
    
    if (aButton->highlighted) {
        aRGB = tintColour();
        
    }
    else {
        aRGB = inactiveColour();
    }
    
    u8 r = aRGB->r;
    u8 g = aRGB->g;
    u8 b = aRGB->b;
    
    
    if (aButton->buttonType == btnButtonTypeToolbarLeft) {
        if (themeImageExists(themeImageTopLeftButton)) {
            if (aButton->highlighted && themeImageExists(themeImageTopLeftButtonSelected)) {
                drawThemeImage(themeImageTopLeftButtonSelected, aButton->screen, aButton->x-(36-aButton->h), aButton->y);
            }
            else {
                drawThemeImage(themeImageTopLeftButton, aButton->screen, aButton->x-(36-aButton->h), aButton->y);
            }
        }
        else {
            gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowleft_bin, 41, 41, aButton->x-(41-aButton->h), aButton->y, translucencyBarIcons);
            btnDrawMaskedBitmapForButton(aButton, lefttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons);
        }
    }
    else if (aButton->buttonType == btnButtonTypeToolbarRight) {
        if (themeImageExists(themeImageTopRightButton)) {
            if (aButton->highlighted && themeImageExists(themeImageTopRightButtonSelected)) {
                drawThemeImage(themeImageTopRightButtonSelected, aButton->screen, aButton->x-(36-aButton->h), aButton->y-(36-aButton->w));
            }
            else {
                drawThemeImage(themeImageTopRightButton, aButton->screen, aButton->x-(36-aButton->h), aButton->y-(36-aButton->w));
            }
        }
        else {
            gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowright_bin, 41, 41, aButton->x-(41-aButton->h), aButton->y-(41-aButton->w), translucencyBarIcons);
            btnDrawMaskedBitmapForButton(aButton, righttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons);
        }
    }
    else if (aButton->buttonType == btnButtonTypeToolbarBottomRight) {
        if (themeImageExists(themeImageBottomRightButton)) {
            if (aButton->highlighted && themeImageExists(themeImageBottomRightButtonSelected)) {
                drawThemeImage(themeImageBottomRightButtonSelected, aButton->screen, aButton->x, aButton->y-(36-aButton->w));
            }
            else {
                drawThemeImage(themeImageBottomRightButton, aButton->screen, aButton->x, aButton->y-(36-aButton->w));
            }
        }
        else {
            gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowbottomright_bin, 41, 41, aButton->x, aButton->y-(41-aButton->w), translucencyBarIcons);
            btnDrawMaskedBitmapForButton(aButton, bottomrighttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons);
        }
    }
    else if (aButton->buttonType == btnButtonTypeToolbarBottomLeft) {
        if (themeImageExists(themeImageBottomLeftButton)) {
            if (aButton->highlighted && themeImageExists(themeImageBottomLeftButtonSelected)) {
                drawThemeImage(themeImageBottomLeftButtonSelected, aButton->screen, aButton->x, aButton->y);
            }
            else {
                drawThemeImage(themeImageBottomLeftButton, aButton->screen, aButton->x, aButton->y);
            }
        }
        else {
            gfxDrawSpriteAlphaBlendFade(aButton->screen, aButton->side, (u8*)toolbarbuttonshadowbottomleft_bin, 41, 41, aButton->x, aButton->y, translucencyBarIcons);
            btnDrawMaskedBitmapForButton(aButton, bottomlefttoolbarbuttonalphamask_bin, r, g, b, translucencyBarIcons);
        }
    }
    else if (aButton->buttonType == btnButtonTypePageArrowLeft) {
        btnDrawMaskedBitmapForButton(aButton, arrowleftalphamask_bin, r, g, b, translucencyPageControls);
    }
    else if (aButton->buttonType == btnButtonTypePageArrowRight) {
        btnDrawMaskedBitmapForButton(aButton, arrowrightalphamask_bin, r, g, b, translucencyPageControls);
    }
    else if (aButton->buttonType == btnButtonTypeRect) {
        drawButtonRectForButton(aButton, r, g, b);
    }
    else {
        return;
    }
    
    rgbColour * dark = darkTextColour();
    
    if (aButton->selected) {        
        gfxDrawSpriteAlphaBlend(aButton->screen, aButton->side, (u8*)tick_bin, 48, 48, aButton->x, aButton->y);
    }
    
    if (aButton->buttonIcon == btnButtonIconBackArrow) {
        if (themeImageExists(themeImageBackSymbol)) {
            drawThemeImage(themeImageBackSymbol, aButton->screen, aButton->x, aButton->y);
        }
        else {
            btnDrawIcon(aButton, (u8*)backarrow_bin);
        }
    }
    else if (aButton->buttonIcon == btnButtonIconSpanner) {
        if (themeImageExists(themeImageSettingsSymbol)) {
            drawThemeImage(themeImageSettingsSymbol, aButton->screen, aButton->x, aButton->y);
        }
        else {
            btnDrawIcon(aButton, (u8*)spanner_bin);
        }
    }
    else if (aButton->buttonIcon == btnButtonIconQuestionMark) {
        if (themeImageExists(themeImageHelpSymbol)) {
            drawThemeImage(themeImageHelpSymbol, aButton->screen, aButton->x, aButton->y);
        }
        else {
            btnDrawIcon(aButton, (u8*)questionmark_bin);
        }
    }
    else if (aButton->buttonIcon == btnButtonIconFolder) {
        if (themeImageExists(themeImageFoldersSymbol)) {
            drawThemeImage(themeImageFoldersSymbol, aButton->screen, aButton->x, aButton->y);
        }
        else {
            btnDrawIcon(aButton, (u8*)folder_bin);
        }
    }
    else if (aButton->buttonIcon == btnButtonIconHome) {
        if (themeImageExists(themeImageHomeSymbol)) {
            drawThemeImage(themeImageHomeSymbol, aButton->screen, aButton->x, aButton->y);
        }
        else {
            btnDrawIcon(aButton, (u8*)home_bin);
        }
    }
    
    MAFont *font = &MAFontRobotoRegular10;
    
    int lineHeight = font->lineHeight;
    
    int textOffset = 10;
    
    if (strlen(aButton->shortText1) > 0) {
        MADrawTextWrap(aButton->screen, aButton->side, aButton->x + (aButton->w/2), aButton->y+textOffset, aButton->shortText1, font, dark->r, dark->g, dark->b, 0, 0);
    }

    if (strlen(aButton->shortText2) > 0) {
        MADrawTextWrap(aButton->screen, aButton->side, aButton->x + (aButton->w/2) - lineHeight, aButton->y + textOffset, aButton->shortText2, font, dark->r, dark->g, dark->b, 0, 0);
    }

    if (strlen(aButton->longText) > 0) {
        MADrawTextWrap(aButton->screen, aButton->side, aButton->x + (aButton->w/2) - (lineHeight/2), aButton->y + textOffset, aButton->longText, font, dark->r, dark->g, dark->b, 0, 0);
    }

}