void help_draw(void) { spClearTarget(LL_BG); const int B1 = spMax(spGetSizeFactor()>>16,1); const int B2 = spMax(spGetSizeFactor()>>15,1); spFontDrawMiddle( spGetWindowSurface()->w/2, 2, 0, "How to Play", help_font ); int h = spGetWindowSurface()->h - 4 - 4*help_font->maxheight; spFontDrawTextBlock(left,2+spGetWindowSurface()->w/6,2*help_font->maxheight+2, 0,help_block,h,help_scroll,help_font); if (help_scroll != SP_ONE) { const char button_text[] = "[v]"; help_button[2].w = spFontWidth( button_text, help_font ); help_button[2].h = help_font->maxheight; help_button[2].x = 2+spGetWindowSurface()->w*5/6; help_button[2].y = spGetWindowSurface()->h-2-2*help_font->maxheight; int width = help_button[2].w; int height = help_font->maxheight; draw_edgy_rectangle(help_button[2].x,help_button[2].y,&width,&height,B1,B2); spFontDraw( help_button[2].x, help_button[2].y, 0, button_text, help_font ); } else { help_button[2].x = -1; help_button[2].y = -1; help_button[2].w = -1; help_button[2].h = -1; } if (help_scroll != 0) { const char button_text[] = "[^]"; help_button[1].w = spFontWidth( button_text, help_font ); help_button[1].h = help_font->maxheight; help_button[1].x = 2+spGetWindowSurface()->w*5/6; help_button[1].y = 2+ help_font->maxheight; int width = help_button[1].w; int height = help_font->maxheight; draw_edgy_rectangle(help_button[1].x,help_button[1].y,&width,&height,B1,B2); spFontDraw( help_button[1].x, help_button[1].y, 0, button_text, help_font ); } else { help_button[1].x = -1; help_button[1].y = -1; help_button[1].w = -1; help_button[1].h = -1; } const char button_text[] = "{jump}Okay"; help_button[0].w = spFontWidth( button_text, help_font ); help_button[0].h = help_font->maxheight; help_button[0].x = spGetWindowSurface()->w/2 - help_button[0].w/2; help_button[0].y = spGetWindowSurface()->h-B2*2-help_font->maxheight; int width = help_button[0].w; int height = help_font->maxheight; draw_edgy_rectangle(help_button[0].x,help_button[0].y,&width,&height,B1,B2); spFontDraw( help_button[0].x, help_button[0].y, 0, button_text, help_font ); spFlip(); }
void resize( Uint16 w, Uint16 h ) { screen = spGetWindowSurface(); spSelectRenderTarget(screen); spFontSetShadeColor(0); //Font Loading if ( font ) { if (spGetSizeFactor() > SP_ONE) { spFontReload( font , "./data/DejaVuSans-Bold.ttf", 8 * spGetSizeFactor() >> SP_ACCURACY); spFontReload( font_dark, "./data/DejaVuSans-Bold.ttf", 8 * spGetSizeFactor() >> SP_ACCURACY); } else {
void ShmupStage::Resume() { switch( stageFlag ) { case 0: stageFlag = 1; gameStack->Push( (Stage*)(new Splash3Stage()) ); break; case 1: stageFlag = 2; //gameStack->Push( (Stage*)(new Splash3Stage()) ); Craft* tmpPlayer; tmpPlayer = new Craft( (char*)curGame->CraftConfigs->ItemAt( 0 ) ); tmpPlayer->CraftFacing = FACING_RIGHT; tmpPlayer->PositionX = 40; tmpPlayer->PositionY = 200; tmpPlayer->ShieldUpgrades = 1; curGame->SetPlayer( (Craft*)tmpPlayer ); SlotIdx[0] = 1; SlotIdx[1] = 0; SlotIdx[2] = 0; curGame->Player->LoadWeapon( 0, new Weapon( (char*)curGame->WeaponConfigs->ItemAt( 0 ) ) ); curGame->LoadLevel( 0, true ); curGame->State = GAME_STATE_INGAME; font = spFontLoad( "resource/standard.ttf", 17 * spGetSizeFactor() >> SP_ACCURACY ); spFontAdd( font, SP_FONT_GROUP_ASCII, 0 ); //whole ASCII spFontAddBorder( font, 65535 ); break; } }
void draw_border(int x1,int y1,int x2,int y2,Uint16 color) { SDL_LockSurface(spGetWindowSurface()); Uint16* pixel = (Uint16*)spGetWindowSurface()->pixels; int x,y; int r = 6 * spGetSizeFactor() >> SP_ACCURACY; spHorizentalLine(pixel,x1+r,y1,x2-x1-2*r,color,1,spGetWindowSurface()->w,spGetWindowSurface()->h); spHorizentalLine(pixel,x1+r,y2,x2-x1-2*r,color,1,spGetWindowSurface()->w,spGetWindowSurface()->h); for (x = x1; x<=x2; x++) { //Jumping over emptiness: if (x-x1 == r) x = (x2-r); for (y = y1; y<=y2; y++) if (x >= 0 && y >= 0 && x<spGetWindowSurface()->w && y<spGetWindowSurface()->h) { //left, top edge if (x-x1 < r && y-y1 < r) { int value = (r-x+x1)*(r-x+x1)+(r-y+y1)*(r-y+y1); if ( value > (r-1)*(r-1) && value < r*r) pixel[x+y*spGetWindowSurface()->w] = color; } else //right, top edge if (x2-x < r && y-y1 < r) { int value = (r-x2+x)*(r-x2+x)+(r-y+y1)*(r-y+y1); if ( value > (r-1)*(r-1) && value < r*r) pixel[x+y*spGetWindowSurface()->w] = color; } else //left, bottom edge if (x-x1 < r && y2-y < r) { int value = (r-x+x1)*(r-x+x1)+(r-y2+y)*(r-y2+y); if ( value > (r-1)*(r-1) && value < r*r) pixel[x+y*spGetWindowSurface()->w] = color; } else //right, bottom edge if (x2-x < r && y2-y < r) { int value = (r-x2+x)*(r-x2+x)+(r-y2+y)*(r-y2+y); if ( value > (r-1)*(r-1) && value < r*r) pixel[x+y*spGetWindowSurface()->w] = color; } else if (x == x1 | y == y1 | x == x2 | y == y2) pixel[x+y*spGetWindowSurface()->w] = color; } } SDL_UnlockSurface(spGetWindowSurface()); }
void draw_filled_border(int x1,int y1,int x2,int y2,Uint16 color) { SDL_LockSurface(spGetWindowSurface()); Uint16* pixel = (Uint16*)spGetWindowSurface()->pixels; int x,y; int r = 6 * spGetSizeFactor() >> SP_ACCURACY; for (x = x1; x<=x2; x++) for (y = y1; y<=y2; y++) if (x >= 0 && y >= 0 && x<spGetWindowSurface()->w && y<spGetWindowSurface()->h) { /*//left, top edge if (x-x1 < r && y-y1 < r) { int value = (r-x+x1)*(r-x+x1)+(r-y+y1)*(r-y+y1); if (value < r*r && ((x+(y&3))&3)) pixel[x+y*spGetWindowSurface()->w] = color; } else //right, top edge if (x2-x < r && y-y1 < r) { int value = (r-x2+x)*(r-x2+x)+(r-y+y1)*(r-y+y1); if (value < r*r && ((x+(y&3))&3)) pixel[x+y*spGetWindowSurface()->w] = color; } else //left, bottom edge if (x-x1 < r && y2-y < r) { int value = (r-x+x1)*(r-x+x1)+(r-y2+y)*(r-y2+y); if (value < r*r && ((x+(y&3))&3)) pixel[x+y*spGetWindowSurface()->w] = color; } else //right, bottom edge if (x2-x < r && y2-y < r) { int value = (r-x2+x)*(r-x2+x)+(r-y2+y)*(r-y2+y); if (value < r*r && ((x+(y&3))&3)) pixel[x+y*spGetWindowSurface()->w] = color; } else*/ if ((x+(y&3))&3) pixel[x+y*spGetWindowSurface()->w] = color; } SDL_UnlockSurface(spGetWindowSurface()); }
void resize(Uint16 w,Uint16 h) { //Font Loading if ( font ) spFontDelete( font ); font = spFontLoad( "./font/StayPuft.ttf", 17 * spGetSizeFactor() >> SP_ACCURACY ); spFontAdd( font, SP_FONT_GROUP_ASCII, 0 ); //whole ASCII spFontAddBorder( font, 65535 ); spFontAddButton( font, 'A', SP_BUTTON_A_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'B', SP_BUTTON_B_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'X', SP_BUTTON_X_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'Y', SP_BUTTON_Y_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'L', SP_BUTTON_L_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'R', SP_BUTTON_R_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'S', SP_BUTTON_START_NAME, 65535, spGetRGB( 64, 64, 64 ) ); spFontAddButton( font, 'E', SP_BUTTON_SELECT_NAME, 65535, spGetRGB( 64, 64, 64 ) ); }
void resize(Uint16 w,Uint16 h) { //Setup of the new/resized window spSelectRenderTarget(spGetWindowSurface()); spSetPerspective(50.0,(float)spGetWindowSurface()->w/(float)spGetWindowSurface()->h,1.0,100); spBundlePointer translation = settings_get_translation(); spFontShadeButtons(1); //Font Loading spFontSetShadeColor(FONT_BORDER_1); if (font) spFontDelete(font); font = spFontLoad(FONT_LOCATION,FONT_SIZE*spGetSizeFactor()>>SP_ACCURACY); spFontAdd(font,SP_FONT_GROUP_ASCII,FONT_COLOR_1);//whole ASCII spFontAddEveryLetterOfTextBundle(font,translation,FONT_COLOR_1); spFontAddBorder(font,FONT_BORDER_1); spFontMulWidth(font,15<<SP_ACCURACY-4); spFontAddButton( font, 'A', SP_BUTTON_LEFT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'B', SP_BUTTON_RIGHT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'X', SP_BUTTON_DOWN_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'Y', SP_BUTTON_UP_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'L', SP_BUTTON_L_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'R', SP_BUTTON_R_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'S', SP_BUTTON_START_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( font, 'E', SP_BUTTON_SELECT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); settings_set_font(font); spFontSetShadeColor(FONT_BORDER_2); if (small_font) spFontDelete(small_font); small_font = spFontLoad(FONT_LOCATION,FONT_SMALL_SIZE*spGetSizeFactor()>>SP_ACCURACY); spFontAdd(small_font,SP_FONT_GROUP_ASCII,FONT_COLOR_2);//whole ASCII //spFontAdd(small_font,SP_FONT_GROUP_GERMAN,0);//some German letters spFontAddEveryLetterOfTextBundle(small_font,translation,FONT_COLOR_2); spFontAddBorder(small_font,FONT_BORDER_2); spFontMulWidth(small_font,15<<SP_ACCURACY-4); spFontAddButton( small_font, 'A', SP_BUTTON_LEFT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'B', SP_BUTTON_RIGHT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'X', SP_BUTTON_DOWN_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'Y', SP_BUTTON_UP_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'L', SP_BUTTON_L_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'R', SP_BUTTON_R_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'S', SP_BUTTON_START_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( small_font, 'E', SP_BUTTON_SELECT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); settings_set_small_font(small_font); spFontSetShadeColor(FONT_BORDER_1); if (middle_font) spFontDelete(middle_font); middle_font = spFontLoad(FONT_LOCATION,FONT_MIDDLE_SIZE*spGetSizeFactor()>>SP_ACCURACY); spFontAdd(middle_font,SP_FONT_GROUP_ASCII,FONT_COLOR_1);//whole ASCII //spFontAdd(middle_font,SP_FONT_GROUP_GERMAN,0);//some German letters spFontAddEveryLetterOfTextBundle(middle_font,translation,FONT_COLOR_1); spFontAddBorder(middle_font,FONT_BORDER_1); spFontMulWidth(middle_font,15<<SP_ACCURACY-4); spFontAddButton( middle_font, 'A', SP_BUTTON_LEFT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'B', SP_BUTTON_RIGHT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'X', SP_BUTTON_DOWN_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'Y', SP_BUTTON_UP_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'L', SP_BUTTON_L_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'R', SP_BUTTON_R_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'S', SP_BUTTON_START_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); spFontAddButton( middle_font, 'E', SP_BUTTON_SELECT_NAME, spGetRGB(230,230,230), spGetRGB(64,64,64)); settings_set_middle_font(middle_font); spFontSetShadeColor(FONT_BORDER_1); if (countdown_font) spFontDelete(countdown_font); countdown_font = spFontLoad(FONT_LOCATION,FONT_COUNTDOWN_SIZE*spGetSizeFactor()>>SP_ACCURACY); spFontAdd(countdown_font,"0123",FONT_COLOR_1); spFontAddBorder(countdown_font,FONT_BORDER_1); settings_set_countdown_font(countdown_font); spFontSetShadeColor(FONT_BORDER_1); if (highscore_font) spFontDelete(highscore_font); highscore_font = spFontLoad(FONT_LOCATION,FONT_HIGHSCORE_SIZE*spGetSizeFactor()>>SP_ACCURACY); spFontAdd(highscore_font,"ABCDEFGHIJKLMNOPQRSTUVWXYZ",FONT_COLOR_1); spFontAddBorder(highscore_font,FONT_BORDER_1); settings_set_highscore_font(highscore_font); //Particles resize_particle(w,h); init_stars(); }