Pachi: fixed monsters not shown on G1

This commit is contained in:
pelya
2010-11-02 13:59:22 +02:00
parent 194f420523
commit 1bdd3e133c
5 changed files with 40 additions and 12 deletions

View File

@@ -19,8 +19,8 @@ RedefinedKeys="SPACE RETURN"
AppTouchscreenKeyboardKeysAmount=1
AppTouchscreenKeyboardKeysAmountAutoFire=0
MultiABI=n
AppVersionCode=102
AppVersionName="1.02 - fixed level background not shown"
AppVersionCode=103
AppVersionName="1.03 - fixed monsters not shown on HTC G1"
CompiledLibraries="sdl_mixer"
CustomBuildScript=n
AppCflags='-O2 -finline-functions'

View File

@@ -21,12 +21,12 @@ void load_gamedata()
background=LoadT8(DATADIR"/Tgfx/gamepanel.T8");
backs=LoadT8(DATADIR"/Tgfx/backgrounds.T8", false);
player=LoadT8(DATADIR"/Tgfx/pachi.T8");
monsters=LoadT8(DATADIR"/Tgfx/monsters.T8");
monstersSW=LoadT8(DATADIR"/Tgfx/monsters.T8", false);
tiles=LoadT8(DATADIR"/Tgfx/tiles.T8");
bright=LoadT8(DATADIR"/Tgfx/bright.T8");
left=LoadT8(DATADIR"/Tgfx/left.T8");
right=LoadT8(DATADIR"/Tgfx/right.T8");
menufont=LoadT8(DATADIR"/fonts/font32v.T8");
menufont=LoadT8(DATADIR"/fonts/font32v.T8", false);
LoadT(&scorefont,DATADIR"/fonts/font16b.T");
LoadT(&scorefont1,DATADIR"/fonts/font16a.T");
LoadT(&scorefont2,DATADIR"/fonts/font16c.T");
@@ -35,7 +35,6 @@ void load_gamedata()
screenbak = SDL_DisplayFormat(temp);
SDL_FreeSurface(temp);
SDL_SetColorKey(menufont, SDL_SRCCOLORKEY, SDL_MapRGB(menufont->format,0,255,0));
SDL_SetColorKey(monsters, SDL_SRCCOLORKEY, SDL_MapRGB(monsters->format,0,255,0));
SDL_SetColorKey(player, SDL_SRCCOLORKEY, SDL_MapRGB(player->format,0,0,0)); // el negro es transparente
SDL_SetColorKey(tiles, SDL_SRCCOLORKEY, SDL_MapRGB(tiles->format,0,255,0));
SDL_SetColorKey(bright, SDL_SRCCOLORKEY, SDL_MapRGB(bright->format,0,255,0));
@@ -61,7 +60,7 @@ void unload_gamedata()
SDL_FreeSurface(backs);
SDL_FreeSurface(player);
SDL_FreeSurface(bright);
SDL_FreeSurface(monsters);
SDL_FreeSurface(monstersSW);
SDL_FreeSurface(screenbak);
SDL_FreeSurface(scorefont);
SDL_FreeSurface(scorefont1);
@@ -73,6 +72,14 @@ void unload_gamedata()
if( currentBack )
SDL_FreeSurface(currentBack);
currentBack = NULL;
for(int n=0;n<M_max4room;n++)
{
if(monsters[n])
SDL_FreeSurface(monsters[n]);
monsters[n] = NULL;
}
Mix_FreeChunk(exitlevel);
Mix_FreeChunk(jump);
@@ -195,8 +202,8 @@ void unload_helpgfx()
void load_menudata()
{
menufont=LoadT8(DATADIR"/fonts/font32v.T8");
menufont1=LoadT8(DATADIR"/fonts/font32r.T8");
menufont=LoadT8(DATADIR"/fonts/font32v.T8", false);
menufont1=LoadT8(DATADIR"/fonts/font32r.T8", false);
background=LoadT8(DATADIR"/Tgfx/intro.T8");
SDL_SetColorKey(menufont, SDL_SRCCOLORKEY, SDL_MapRGB(menufont->format,0,255,0));
SDL_SetColorKey(menufont1, SDL_SRCCOLORKEY, SDL_MapRGB(menufont1->format,0,255,0));
@@ -228,6 +235,26 @@ void init_monsters()
M_y[n]=getc(mnstr)*R_tileside-M_h+R_tileside;
}
fclose(mnstr);
for(int n=0;n<M_max4room;n++)
{
if(monsters[n])
SDL_FreeSurface(monsters[n]);
monsters[n] = NULL;
if(M_type[n] != 0)
{
SDL_Rect monstersrc;
monstersrc.y = M_type[n] * M_h;
monstersrc.x = 0;
monstersrc.h = M_h;
monstersrc.w = M_frames * 2 * M_w;
monsters[n] = SDL_CreateRGBSurface(SDL_HWSURFACE, monstersrc.w, monstersrc.h, screen->format->BitsPerPixel,
screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, screen->format->Amask);
SDL_BlitSurface(monstersSW, &monstersrc, monsters[n], NULL);
SDL_SetColorKey(monsters[n], SDL_SRCCOLORKEY, SDL_MapRGB(monsters[n]->format,0,255,0));
}
}
}
void load_room()

View File

@@ -195,7 +195,7 @@ void print_monsters()
oldmonsterposreal.x = int(M_x[n]+R_gamearea_x);
oldmonsterposreal.y = int(M_y[n]+R_gamearea_y);
monstersrc.y = M_type[n] * M_h;
monstersrc.y = 0;//M_type[n] * M_h;
monstersrc.x = ((M_frame - 1)+(M_direction[n]*M_frames)) * M_w;
monstersrc.h = M_h;
monstersrc.w = M_w;
@@ -207,7 +207,7 @@ void print_monsters()
monsterposreal.y = monsterpos.y + R_gamearea_y;
//SDL_BlitSurface(screenbak, &oldmonsterpos, screen, &oldmonsterposreal);
SDL_BlitSurface(monsters, &monstersrc, screen, &monsterposreal);
SDL_BlitSurface(monsters[n], &monstersrc, screen, &monsterposreal);
//SDL_UpdateRect(screen,oldmonsterposreal.x,oldmonsterposreal.y,M_w,M_h);
//SDL_UpdateRect(screen,monsterposreal.x,monsterposreal.y,M_w,M_h);
}

View File

@@ -23,7 +23,8 @@ SDL_Surface *left;
SDL_Surface *right;
// --- Monsters
SDL_Surface *monsters;
SDL_Surface *monsters[M_max4room];
SDL_Surface *monstersSW = NULL;
// --- Player
SDL_Surface *player;

View File

@@ -1 +1 @@
alienblaster
pachi