only lock surfaces if SDL_MUSTLOCK() says we must
comented out alpha fading thing on 'game over' and other messages
Font = (SFont_Font *) malloc(sizeof(SFont_Font));
Font->Surface = Surface;
Font = (SFont_Font *) malloc(sizeof(SFont_Font));
Font->Surface = Surface;
- SDL_LockSurface(Surface);
+ if(SDL_MUSTLOCK(Surface)) { SDL_LockSurface(Surface); }
pink = SDL_MapRGB(Surface->format, 255, 0, 255);
while (x < Surface->w) {
pink = SDL_MapRGB(Surface->format, 255, 0, 255);
while (x < Surface->w) {
Font->MaxPos = x-1;
pixel = GetPixel(Surface, 0, Surface->h-1);
Font->MaxPos = x-1;
pixel = GetPixel(Surface, 0, Surface->h-1);
- SDL_UnlockSurface(Surface);
+ if(SDL_MUSTLOCK(Surface)) { SDL_UnlockSurface(Surface); }
SDL_SetColorKey(Surface, SDL_SRCCOLORKEY, pixel);
return Font;
SDL_SetColorKey(Surface, SDL_SRCCOLORKEY, pixel);
return Font;
int row_inc;
double theta, r;
int row_inc;
double theta, r;
pixel = s->pixels;
row_inc = s->pitch/sizeof(uint16_t) - s->w;
colorkey = s->format->colorkey;
pixel = s->pixels;
row_inc = s->pitch/sizeof(uint16_t) - s->w;
colorkey = s->format->colorkey;
+ if(SDL_MUSTLOCK(s)) { SDL_LockSurface(s); }
for(i=0; i<n; i++) {
pixel = s->pixels;
for(i=0; i<n; i++) {
pixel = s->pixels;
bdot[bd2].dy = 45*r*sin(theta) + dy;
bdot[bd2].x = x + xbang;
bdot[bd2].y = y + ybang;
bdot[bd2].dy = 45*r*sin(theta) + dy;
bdot[bd2].x = x + xbang;
bdot[bd2].y = y + ybang;
- bdot[bd2].c = (i < n-3) ? 0 : c;
- bdot[bd2].life = 100;
+ //bdot[bd2].c = (i < n-3) ? 0 : c;
+ bdot[bd2].life = frnd() * 99;
bdot[bd2].decay = frnd()*3 + 1;
bdot[bd2].active = 1;
bdot[bd2].decay = frnd()*3 + 1;
bdot[bd2].active = 1;
+ if(SDL_MUSTLOCK(s)) { SDL_UnlockSurface(s); }
if(!bdot[i].active) continue;
// decrement life and maybe kill
if(!bdot[i].active) continue;
// decrement life and maybe kill
- bdot[i].life -= bdot[i].decay;
+ bdot[i].life -= bdot[i].decay * ticks/2.0;
if(bdot[i].life < 0) { bdot[i].active = 0; continue; }
// move and clip
if(bdot[i].life < 0) { bdot[i].active = 0; continue; }
// move and clip
edot[i].life -= t_frame*3;
if(edot[i].life < 0 || edot[i].x<0 || edot[i].x >= XSIZE || edot[i].y < 0 || edot[i].y >= YSIZE) {
edot[i].active = 0;
edot[i].life -= t_frame*3;
if(edot[i].life < 0 || edot[i].x<0 || edot[i].x >= XSIZE || edot[i].y < 0 || edot[i].y >= YSIZE) {
edot[i].active = 0;
void
draw_dots(SDL_Surface *s) {
void
draw_dots(SDL_Surface *s) {
+ if(SDL_MUSTLOCK(s)) { SDL_LockSurface(s); }
draw_dust(s);
draw_engine_dots(s);
draw_bang_dots(s);
draw_dust(s);
draw_engine_dots(s);
draw_bang_dots(s);
+ if(SDL_MUSTLOCK(s)) { SDL_UnlockSurface(s); }
dest.x = (XSIZE-surf_b_game->w)/2;
dest.y = (YSIZE-surf_b_game->h)/2-40;
dest.x = (XSIZE-surf_b_game->w)/2;
dest.y = (YSIZE-surf_b_game->h)/2-40;
- SDL_SetAlpha(surf_b_game, SDL_SRCALPHA, (int)(a_game*(200 + 55*cos(fadetimer))));
+ //SDL_SetAlpha(surf_b_game, SDL_SRCALPHA, (int)(a_game*(200 + 55*cos(fadetimer))));
SDL_BlitSurface(surf_b_game,NULL,surf_screen,&dest);
dest.x = (XSIZE-surf_b_over->w)/2;
dest.y = (YSIZE-surf_b_over->h)/2 + 40;
SDL_BlitSurface(surf_b_game,NULL,surf_screen,&dest);
dest.x = (XSIZE-surf_b_over->w)/2;
dest.y = (YSIZE-surf_b_over->h)/2 + 40;
- SDL_SetAlpha(surf_b_over, SDL_SRCALPHA, (int)(a_over*(200 + 55*sin(fadetimer))));
+ //SDL_SetAlpha(surf_b_over, SDL_SRCALPHA, (int)(a_over*(200 + 55*sin(fadetimer))));
SDL_BlitSurface(surf_b_over,NULL,surf_screen,&dest);
if(new_high_score(score)) {
SDL_BlitSurface(surf_b_over,NULL,surf_screen,&dest);
if(new_high_score(score)) {
dest.x = (XSIZE-surf_b_variations->w)/2 + cos(fadetimer/6.5)*10;
dest.y = (YSIZE/2-surf_b_variations->h)/2 + sin(fadetimer/5.0)*10;
dest.x = (XSIZE-surf_b_variations->w)/2 + cos(fadetimer/6.5)*10;
dest.y = (YSIZE/2-surf_b_variations->h)/2 + sin(fadetimer/5.0)*10;
- SDL_SetAlpha(surf_b_variations, SDL_SRCALPHA, (int)(200 + 55*sin(fadetimer)));
+ //SDL_SetAlpha(surf_b_variations, SDL_SRCALPHA, (int)(200 + 55*sin(fadetimer)));
SDL_BlitSurface(surf_b_variations,NULL,surf_screen,&dest);
dest.x = (XSIZE-surf_b_on->w)/2 + cos((fadetimer + 1.0)/6.5)*10;
dest.y = (YSIZE/2-surf_b_on->h)/2 + surf_b_variations->h + 20 + sin((fadetimer + 1.0)/5.0)*10;
SDL_BlitSurface(surf_b_variations,NULL,surf_screen,&dest);
dest.x = (XSIZE-surf_b_on->w)/2 + cos((fadetimer + 1.0)/6.5)*10;
dest.y = (YSIZE/2-surf_b_on->h)/2 + surf_b_variations->h + 20 + sin((fadetimer + 1.0)/5.0)*10;
- SDL_SetAlpha(surf_b_on, SDL_SRCALPHA, (int)(200 + 55*sin(fadetimer-1.0)));
+ //SDL_SetAlpha(surf_b_on, SDL_SRCALPHA, (int)(200 + 55*sin(fadetimer-1.0)));
SDL_BlitSurface(surf_b_on,NULL,surf_screen,&dest);
dest.x = (XSIZE-surf_b_rockdodger->w)/2 + cos((fadetimer + 2.0)/6.5)*10;
dest.y = (YSIZE/2-surf_b_rockdodger->h)/2 + surf_b_variations->h + surf_b_on->h + 40 + sin((fadetimer + 2.0)/5)*10;
SDL_BlitSurface(surf_b_on,NULL,surf_screen,&dest);
dest.x = (XSIZE-surf_b_rockdodger->w)/2 + cos((fadetimer + 2.0)/6.5)*10;
dest.y = (YSIZE/2-surf_b_rockdodger->h)/2 + surf_b_variations->h + surf_b_on->h + 40 + sin((fadetimer + 2.0)/5)*10;
- SDL_SetAlpha(surf_b_rockdodger, SDL_SRCALPHA, (int)(200 + 55*sin(fadetimer-2.0)));
+ //SDL_SetAlpha(surf_b_rockdodger, SDL_SRCALPHA, (int)(200 + 55*sin(fadetimer-2.0)));
SDL_BlitSurface(surf_b_rockdodger,NULL,surf_screen,&dest);
text = msgs[g_easy][(int)(fadetimer/35)%NSEQUENCE];
SDL_BlitSurface(surf_b_rockdodger,NULL,surf_screen,&dest);
text = msgs[g_easy][(int)(fadetimer/35)%NSEQUENCE];
if(!parse_opts(argc, argv)) return 1;
if(init()) {
if(!parse_opts(argc, argv)) return 1;
if(init()) {
- printf ("ta: '%s'\n",initerror);
+ printf ("vor: SDL error: '%s'\n",initerror);
- SDL_LockSurface(s->image);
+ if(SDL_MUSTLOCK(s->image)) { SDL_LockSurface(s->image); }
px = s->image->pixels;
transp = s->image->format->colorkey;
p = s->mask;
px = s->image->pixels;
transp = s->image->format->colorkey;
p = s->mask;
}
px = (uint16_t *) ((uint8_t *) px + s->image->pitch - 2*s->image->w);
}
}
px = (uint16_t *) ((uint8_t *) px + s->image->pitch - 2*s->image->w);
}
- SDL_UnlockSurface(s->image);
+ if(SDL_MUSTLOCK(s->image)) { SDL_UnlockSurface(s->image); }