Files
commandergenius/project/jni/application/pachi/src/gameover.h
2010-10-29 12:45:35 +03:00

130 lines
4.6 KiB
C

/***************************************************************************
* Pachi el marciano *
* ----------------- *
* (c) Santiago Radeff (coding) *
* (c) Nicolas Radeff (graphics) *
* (c) Peter Hajba (music) *
* *
* T-1000@Bigfoot.com *
****************************************************************************
*******************************************************************
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version *
* 2 of the License, or (at your option) any later version. *
* *
*******************************************************************/
void show_hiscores()
{
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,0,0,0));
SDL_BlitSurface(background,NULL,screen,NULL);
SDL_SetColorKey(scorefont,SDL_SRCCOLORKEY,SDL_MapRGB(scorefont->format,0,0,0));
SDL_SetColorKey(scorefont1,SDL_SRCCOLORKEY,SDL_MapRGB(scorefont1->format,0,0,0));
SDL_SetColorKey(scorefont1,SDL_SRCCOLORKEY,SDL_MapRGB(scorefont1->format,0,0,0));
char plyername[]=" ";
char diflevel[] =" ";
print_text(scorefont1,screen,16,16,30, 55," PACHI EL MARCIANO TOP TEN ");//scorename[a]);
print_text(scorefont1,screen,16,16,30, 95,"NAME STAGE TIME LEVEL SCORE ");//scorename[a]);
print_text(scorefont1,screen,16,16,30,120,"----------------------------------------------");//scorename[a]);
print_text(scorefont1,screen,16,16,30,535,"----------------------------------------------");//scorename[a]);
for(int a=0; a < 10;a++)
{
strncpy(playername,scorename[a],10);
print_text(scorefont,screen,16,16,30,170+(35*a),"%s",playername);//scorename[a]);
print_text(scorefont,screen,16,16,268,170+(35*a),"%d",scorestage[a]);
int mins=int(scoretime[a]/60);
int secs=int(scoretime[a]-(mins*60));
if(secs>9)
print_text(scorefont,screen,16,16,386,170+(35*a),"%d:%d",mins,secs);
else
print_text(scorefont,screen,16,16,386,170+(35*a),"%d:0%d",mins,secs);
if(scoredif[a]==1)
strcpy(diflevel," EASY ");
if(scoredif[a]==2)
strcpy(diflevel,"NORMAL");
if(scoredif[a]==3)
strcpy(diflevel," HARD ");
print_text(scorefont,screen,16,16,502,170+(35*a),"%s",diflevel);
print_text(scorefont,screen,16,16,672,170+(35*a),"%d",scorescore[a]);
}
SDL_Flip(screen);
}
void do_hiscores()
{
load_hiscoredata();
setback();
show_hiscores();
escape_exit=0;
while(escape_exit==0)
{
credits_events();
SDL_Delay(1);
}
unload_hiscoredata();
}
void do_gameover()
{
load_hiscoredata();
char nameplayer[]=" ";
strncpy(playername,nameplayer,10);
namechar=0;
int highscore=0;
for(int a=9; a>=0;a--)
{
if(score>scorescore[a])
{
highscore=1;
scorepos=a;
}
}
if(highscore==1) // si se hizo una buena puntuacion
{
for(int b=8;b>=scorepos;b--)
{
strncpy(scorename[b+1],scorename[b],10);
scorescore[b+1]=scorescore[b];
scorestage[b+1]=scorestage[b];
scoretime [b+1]=scoretime [b];
scoredif [b+1]=scoredif [b];
}
inputloop=1;
SDL_Rect box;
box.x=270;box.y=220;box.w=260;box.h=52;
SDL_FillRect(screen,&box,SDL_MapRGB(screen->format,255,255,255));
box.x=273;box.y=223;box.w=254;box.h=46;
while(inputloop==1)
{
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,0,0,0));
SDL_BlitSurface(background,NULL,screen,NULL);
hiscore_events();
SDL_FillRect(screen,&box,SDL_MapRGB(screen->format,0,0,0));
print_text(scorefont1,screen,16,16,box.x+10,box.y+5,"ENTER YOUR NAME");
print_text(scorefont1,screen,16,16,box.x+51+(namechar*16),box.y+29,".");
print_text(scorefont,screen,16,16,box.x+51,box.y+24,"%s",playername);
SDL_Flip(screen);
}
strncpy(scorename[scorepos],playername,10);
scorescore[scorepos]=score;
scorestage[scorepos]=stage;
scoredif[scorepos]=dificulty;
scoretime[scorepos]=int(playtime/1000);
save_hiscoredata();
}
unload_hiscoredata();
}
void game_over()
{
do_gameover();
do_hiscores();
}