From f4973bdf84344b35bcbbb3b6ab56b1fc7f0a31b0 Mon Sep 17 00:00:00 2001 From: octospacc Date: Mon, 1 Aug 2022 23:55:56 +0200 Subject: [PATCH] Some blocks are now touchable --- Assets/Icon.png | Bin 0 -> 5337 bytes Source/Main.c | 98 +++++++++++++++++++++++------------------------- Source/Util.c | 10 +++++ Source/Util.h | 2 + 4 files changed, 59 insertions(+), 51 deletions(-) create mode 100644 Assets/Icon.png diff --git a/Assets/Icon.png b/Assets/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c967ca1cd52d6e705c3cf783f277ae8cb7cd8037 GIT binary patch literal 5337 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 clip_rect, SDL_MapRGB ( Screen -> format, 0xFF, 0xFF, 0xFF ) ); - return 0; -} - -void SetSuperflatMap() { - for ( int i=0; i < BlocksNum; i++ ) { - Map[i] = 2; - } -} -void SetRandomNoiseMap() { - for ( int i=0; i < BlocksNum; i++ ) { - int r = rand() % BlocksetNum; - if ( r == 1 ) { - r = 2; +void SetSuperflatMap( struct xyz ChunksNum ) { + for ( int y = 0; y < ChunksNum.y; y++ ) { + for ( int z = 0; z < ChunksNum.z; z++ ) { + for ( int x = 0; x < ChunksNum.x; x++ ) { + Map[y][z][x] = 2; + } + } + } +} +void SetRandomNoiseMap( struct xyz ChunksNum ) { + for ( int y = 0; y < ChunksNum.y; y++ ) { + for ( int z = 0; z < ChunksNum.z; z++ ) { + for ( int x = 0; x < ChunksNum.x; x++ ) { + int r = rand() % BlocksetNum; + if ( r == 1 ) { + r = 2; + } + Map[y][z][x] = r; + } } - Map[i] = r; } } -int main ( int argc, char* args[] ) { +int main( int argc, char* args[] ) { + printf("[I] Starting!\n"); srand( time( NULL ) ); if ( !Init() ) { @@ -253,10 +250,10 @@ int main ( int argc, char* args[] ) { ChunksNum.y = ChunkSize; ChunksNum.z = ChunkSize; - SetRandomNoiseMap(); + SetRandomNoiseMap( ChunksNum ); while ( !Quit ) { - while ( SDL_PollEvent ( & Event ) ) { + while ( SDL_PollEvent( & Event ) ) { if ( Event.type == SDL_QUIT ) { Quit = true; } @@ -270,10 +267,10 @@ int main ( int argc, char* args[] ) { DebugMode = !DebugMode; } if ( Event.key.keysym.sym == SDLK_F6 ) { - SetSuperflatMap(); + SetSuperflatMap( ChunksNum ); } if ( Event.key.keysym.sym == SDLK_F7 ) { - SetRandomNoiseMap(); + SetRandomNoiseMap( ChunksNum ); } if ( Event.key.keysym.sym == SDLK_UP ) { @@ -305,14 +302,13 @@ int main ( int argc, char* args[] ) { } EventHandle(); SetCamera(); - DrawMap( Map, ChunksNum ); + DrawMap( ChunksNum ); DrawCursor(); - SelectedBlock = CursorPos.x + 4032 + CursorPos.z; if ( DebugMode ) { DrawDebug(); } - if ( FlipScreen() != 0 ) { + if ( !FlipScreen( Screen ) ) { return 1; } SDL_Delay( 16 ); // TODO: proper framerate management diff --git a/Source/Util.c b/Source/Util.c index 3af71ad..e10960a 100644 --- a/Source/Util.c +++ b/Source/Util.c @@ -1,3 +1,4 @@ +#include #include "SDL/SDL.h" #include "SDL/SDL_image.h" @@ -37,3 +38,12 @@ SDL_Surface * ScreenSet ( int Width, int Height, int Bits, SDL_Surface * Screen ); return Screen; } + +bool FlipScreen( SDL_Surface * Screen ) { + if ( SDL_Flip( Screen ) != 0 ) { + printf("[E] Error updating screen.\n"); + return false; + } + SDL_FillRect( Screen, &Screen->clip_rect, SDL_MapRGB( Screen->format, 0xFF, 0xFF, 0xFF ) ); + return true; +} diff --git a/Source/Util.h b/Source/Util.h index c5506b9..06e8517 100644 --- a/Source/Util.h +++ b/Source/Util.h @@ -1,8 +1,10 @@ #pragma once +#include SDL_Surface * LoadImage ( char * FilePath ); void DrawSurf ( int x, int y, SDL_Surface * Src, SDL_Rect * Clip, SDL_Surface * Dst ); SDL_Surface * ScreenSet ( int Width, int Height, int Bits, SDL_Surface * Screen ); +bool FlipScreen( SDL_Surface * Screen ); struct xyz { int x, y, z;