Exemple #1
0
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();
}
Exemple #2
0
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
		{
Exemple #3
0
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;
	}
}
Exemple #4
0
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());
}
Exemple #5
0
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());
}
Exemple #6
0
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 ) );
}
Exemple #7
0
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();	
}