Versió 1.1

This commit is contained in:
jaildoctor
2009-03-06 13:03:27 +00:00
commit ad553db1ae
34 changed files with 3491 additions and 0 deletions

110
MarcadorProcesor.cpp Normal file
View File

@@ -0,0 +1,110 @@
#include "MarcadorProcesor.h"
#include "const.h"
MarcadorProcesor::MarcadorProcesor(DrawManager *pDrawManager)
{
drawManager = pDrawManager;
numAroundersArrivats = 0;
numAroundersEixits = 0;
numAroundersMorts = 0;
boto = drawManager->LoadBitmap("boto.gif", true);
velocitat = 70;
contador = SDL_GetTicks();
}
MarcadorProcesor::~MarcadorProcesor(void)
{
SDL_FreeSurface(boto);
}
void MarcadorProcesor::Pintar(SDL_Surface *font, int accio, int prevista) {
drawManager->Print(23,188, font, 7, 5, formatejar(numParar));
drawManager->Print(39,188, font, 7, 5, formatejar(numCavar));
drawManager->Print(55,188, font, 7, 5, formatejar(numEscalar));
drawManager->Print(71,188, font, 7, 5, formatejar(numPerforar));
drawManager->Print(87,188, font, 7, 5, formatejar(numEscalera));
drawManager->Print(103,188, font, 7, 5, formatejar(numPasarela));
drawManager->Print(119,188, font, 7, 5, formatejar(numCorda));
drawManager->Print(301,171, font, 7, 5, formatejar(numAroundersEixits-numAroundersArrivats-numAroundersMorts));
drawManager->Print(301,177, font, 7, 5, formatejar(numArounders));
drawManager->Print(301,183, font, 7, 5, formatejar(AroundersNec));
drawManager->Print(301,189, font, 7, 5, formatejar(numAroundersArrivats));
if (accio >= 10) accio = 0;
if (prevista >= 10) prevista = 0;
drawManager->Blit((accio*16)+5, 171, boto);
if (prevista != accio && prevista != 0) {
if ((SDL_GetTicks()-contador) <= 200) {
drawManager->Blit((prevista*16)+5, 171, boto);
} else {
if ((SDL_GetTicks()-contador) >= 400) contador = SDL_GetTicks();
}
}
if (velocitat < 70) {
drawManager->Blit((ACCIO_SUICIDI2*16)+5, 171, boto);
}
}
int MarcadorProcesor::Procesar(int mouseX, int mouseY) {
int accio = -1;
if (mouseY >= 171 && mouseY <= 187 && mouseX >= 5 && mouseX <= 165) {
accio = (mouseX-5) / 16;
switch(accio) {
case ACCIO_PARAR:
if (numParar == 0) accio = -1;
break;
case ACCIO_CAVAR:
if (numCavar == 0) accio = -1;
break;
case ACCIO_ESCALAR:
if (numEscalar == 0) accio = -1;
break;
case ACCIO_PERFORAR:
if (numPerforar == 0) accio = -1;
break;
case ACCIO_ESCALERA:
if (numEscalera == 0) accio = -1;
break;
case ACCIO_PASARELA:
if (numPasarela == 0) accio = -1;
break;
case ACCIO_CORDA:
if (numCorda == 0) accio = -1;
break;
case ACCIO_SUICIDI2:
if (velocitat == 70) {
velocitat = 10;
} else {
velocitat = 70;
}
accio = -1;
break;
}
}
return accio;
}
char *MarcadorProcesor::formatejar(int numero) {
char *resultat;
resultat = (char *) malloc(3);
if (numero > 9) {
resultat[0] = (numero / 10) + 48;
resultat[1] = (numero % 10) + 48;
} else {
resultat[0] = 48;
resultat[1] = (numero % 10) + 48;
}
resultat[2] = '\0';
return resultat;
}