Start adding inventory support

This commit is contained in:
octospacc 2022-08-04 22:24:42 +02:00
parent c426420870
commit a02e5a5675
3 changed files with 26 additions and 2 deletions

View File

@ -156,7 +156,21 @@ void EventHandle() {
}
void DrawInventory() {
DebugMsg = TTF_RenderText_Blended( DebugFont, "Inventory", DebugTextColor );
DrawSurf( ScreenWidth/2 - 4*9, 8, DebugMsg, NULL, Screen );
int s;
int y = 0;
for ( int i = 0; i < BlocksetNum-1; i++ ) {
s += 1;
int x = ScreenWidth/16 + s*BlockSize + s*BlockSize/4;
if ( x >= ScreenWidth - BlockSize - BlockSize/4 ) {
y += BlockSize + BlockSize/4;
x = ScreenWidth/16;
s = 0;
}
DrawSurf( x, y, BlocksImg, &Blocks[i+1].Img, Screen );
}
DrawOutlineRect ( SDL_Surface * Dst );
}
void DrawMap() { // TODO: Reoptimize this to draw only visible blocks
@ -351,7 +365,7 @@ int main( int argc, char* args[] ) {
}
if ( Recalc ) {
EventHandle();
SDL_FillRect( Screen, &Screen->clip_rect, SDL_MapRGB( Screen->format, 0xFF, 0xFF, 0xFF ) );
FillSurfRGB ( 0xFF, 0xFF, 0xFF, Screen );
if ( InGame && !InInventory ) {
SetCamera();
DrawMap();

View File

@ -28,6 +28,14 @@ void DrawSurf ( int x, int y, SDL_Surface * Src, SDL_Rect * Clip, SDL_Surface *
SDL_BlitSurface( Src, Clip, Dst, &Offset );
}
void FillSurfRGB ( int R, int G, int B, SDL_Surface * Dst ) {
SDL_FillRect( Dst, &Dst->clip_rect, SDL_MapRGB( Dst->format, R, G, B ) );
}
void DrawOutlineRect ( SDL_Surface * Dst ) {
SDL_FillRect( Dst, 8, 8, 4, 16, SDL_MapRGB( Dst->format, 0x00, 0x00, 0x00 ) );
}
SDL_Surface * ScreenSet ( int Width, int Height, int Bits, SDL_Surface * Screen ) {
Screen = SDL_SetVideoMode ( Width, Height, Bits,
#ifdef Target_PocketGo

View File

@ -3,6 +3,8 @@
SDL_Surface * LoadImage ( char * FilePath );
void DrawSurf ( int x, int y, SDL_Surface * Src, SDL_Rect * Clip, SDL_Surface * Dst );
void FillSurfRGB ( int R, int G, int B, SDL_Surface * Dst );
void DrawOutlineRect ( SDL_Surface * Dst );
SDL_Surface * ScreenSet ( int Width, int Height, int Bits, SDL_Surface * Screen );
bool FlipScreen( SDL_Surface * Screen );