From 2200289bbec640665fa2cc33d11a0e7eef32d0eb Mon Sep 17 00:00:00 2001 From: Alexander Matthes Date: Wed, 23 Jul 2014 02:26:10 +0200 Subject: [PATCH] Only AI missing --- Makefile | 4 ++-- ToDo | 1 - data/keyboard320.png | Bin 0 -> 11014 bytes data/keyboardShift320.png | Bin 0 -> 10189 bytes hase.c | 2 +- lobby.c | 2 ++ lobbyGame.c | 33 +++++++++++++++++++++++---------- message.c | 15 +++++++++++++-- trace.c | 4 ++-- 9 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 data/keyboard320.png create mode 100644 data/keyboardShift320.png diff --git a/Makefile b/Makefile index 576df36..1a5b6bd 100644 --- a/Makefile +++ b/Makefile @@ -10,12 +10,12 @@ SDL = `sdl-config --cflags` SPARROW_FOLDER = ../sparrow3d -#TARGET = nativ +TARGET = nativ ifdef TARGET include $(SPARROW_FOLDER)/target-files/$(TARGET).mk -#TARGET = pandora +TARGET = pandora BUILD = ./build/$(TARGET)/hase SPARROW_LIB = $(SPARROW_FOLDER)/build/$(TARGET)/sparrow3d diff --git a/ToDo b/ToDo index 412772f..7dc7ba8 100644 --- a/ToDo +++ b/ToDo @@ -1,4 +1,3 @@ 1 bessere AI -2 Was, wenn er einfach abhaut? Abstürzt? http://pastebin.com/P0q6QE86 diff --git a/data/keyboard320.png b/data/keyboard320.png new file mode 100644 index 0000000000000000000000000000000000000000..fa7387cde9f80c1cd6fa37283a32a0c16e23746e GIT binary patch literal 11014 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 U>!GG_JQYV#PEEG-kwx(T0hX{J2mk;8 literal 0 HcmV?d00001 diff --git a/data/keyboardShift320.png b/data/keyboardShift320.png new file mode 100644 index 0000000000000000000000000000000000000000..159b27add88b0c98eec400c42b658bb6ace885be GIT binary patch literal 10189 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 XN?>+DtHXQXlpUo0SX-rB$tvW3uO8r6 literal 0 HcmV?d00001 diff --git a/hase.c b/hase.c index 6d30edb..d10df1c 100644 --- a/hase.c +++ b/hase.c @@ -639,7 +639,7 @@ int hase(void ( *resize )( Uint16 w, Uint16 h ),pGame game,pPlayer me_list) int result = spLoop(draw,calc,10,resize,NULL); stop_thread(); - if (result) + if (result == 2) { int i; for (i = 0; i < player_count; i ++) diff --git a/lobby.c b/lobby.c index b1e77dc..dc8e943 100644 --- a/lobby.c +++ b/lobby.c @@ -26,6 +26,8 @@ void resize( Uint16 w, Uint16 h ) spFontAddButton( font, 'w', SP_BUTTON_UP_NAME, 65535, spGetRGB(127,127,127) ); // w == up button spFontAddButton( font, 's', SP_BUTTON_DOWN_NAME, 65535, spGetRGB(127,127,127) ); // s == down button spFontMulWidth(font,spFloatToFixed(0.9f)); + + spSetVirtualKeyboard(SP_VIRTUAL_KEYBOARD_IF_NEEDED,0,h-w*48/320,w,w*48/320,spLoadSurface("./data/keyboard320.png"),spLoadSurface("./data/keyboardShift320.png")); } int main(int argc, char **argv) diff --git a/lobbyGame.c b/lobbyGame.c index 6918d50..b984596 100644 --- a/lobbyGame.c +++ b/lobbyGame.c @@ -43,9 +43,9 @@ void lg_draw(void) //Informations int w = screen->w-8-l_w; spFontDrawMiddle(screen->w-2-w/2, 1*lg_font->maxheight, 0, "Game Info", lg_font ); - sprintf(buffer,"Sec. per turn: %i",lg_game->seconds_per_turn); + sprintf(buffer,"Seconds per turn: %i",lg_game->seconds_per_turn); spFontDraw(screen->w-w, 2*lg_font->maxheight, 0, buffer, lg_font ); - sprintf(buffer,"Max. players: %i",lg_game->max_player); + sprintf(buffer,"Maximum players: %i",lg_game->max_player); spFontDraw(screen->w-w, 3*lg_font->maxheight, 0, buffer, lg_font ); spFontDraw(screen->w-w, 4*lg_font->maxheight, 0, "Players:", lg_font ); //player block @@ -54,7 +54,11 @@ void lg_draw(void) if (lg_block) spFontDrawTextBlock(middle,screen->w-w-4, 5*lg_font->maxheight-1, 0,lg_block,h,0,lg_font); //Instructions on the right - spFontDrawMiddle(screen->w-2-w/2, h+5*lg_font->maxheight, 0, "[w]Add pl. [s]Rem. pl.", lg_font ); + #ifdef PANDORA + spFontDrawMiddle(screen->w-2-w/2, h+5*lg_font->maxheight, 0, "[w]Add player [s]Remove player", lg_font ); + #else + spFontDrawMiddle(screen->w-2-w/2, h+5*lg_font->maxheight, 0, "[w]Add player [s]Remove pl.", lg_font ); + #endif if (lg_game->admin_pw == 0) { spFontDrawMiddle(screen->w-2-w/2, h+6*lg_font->maxheight, 0, "The game master will", lg_font ); @@ -62,11 +66,14 @@ void lg_draw(void) } else { - spFontDrawMiddle(screen->w-2-w/2, h+6*lg_font->maxheight, 0, "[d]New level [a]Start", lg_font ); - spFontDrawMiddle(screen->w-2-w/2, h+7*lg_font->maxheight, 0, "[q]Add AI [e]Rem. all AI", lg_font ); + spFontDrawMiddle(screen->w-2-w/2, h+6*lg_font->maxheight, 0, "[q]Add AI [e]Remove all AIs", lg_font ); + spFontDrawMiddle(screen->w-2-w/2, h+7*lg_font->maxheight, 0, "[a]Start game [d]New level", lg_font ); } //Chat spRectangle(screen->w/2, l_w+(4+CHAT_LINES)*lg_font->maxheight/2+4, 0,screen->w-4,CHAT_LINES*lg_font->maxheight,LL_FG); + if (lg_game->local) + spFontDrawMiddle(screen->w/2, l_w+(3+CHAT_LINES)*lg_font->maxheight/2+4, 0,"No chat in local game",lg_font); + else if (lg_chat_block) spFontDrawTextBlock(left,4, l_w+2*lg_font->maxheight+4, 0,lg_chat_block,CHAT_LINES*lg_font->maxheight,lg_scroll,lg_font); //Footline @@ -77,6 +84,9 @@ void lg_draw(void) } else { + if (lg_game->local) + spFontDraw( 2, screen->h-lg_font->maxheight, 0, "[B]Leave and close game", lg_font ); + else if (lg_game->admin_pw == 0) spFontDraw( 2, screen->h-lg_font->maxheight, 0, "[R]Chat [B]Leave game", lg_font ); else @@ -221,7 +231,7 @@ int lg_calc(Uint32 steps) if (lg_chat_block->line_count > CHAT_LINES) lg_scroll = SP_ONE; } - if (spGetInput()->button[SP_BUTTON_START]) + if (!lg_game->local && spGetInput()->button[SP_BUTTON_START]) { spGetInput()->button[SP_BUTTON_START] = 0; char m[256] = ""; @@ -345,7 +355,8 @@ int lg_calc(Uint32 steps) spGetInput()->button[SP_BUTTON_RIGHT] = 0; create_level_string(lg_game->level_string,1536,1536,3,3,3); spDeleteSurface(lg_level); - lg_level = create_level(lg_game->level_string,spGetWindowSurface()->h-3*lg_font->maxheight,spGetWindowSurface()->h-3*lg_font->maxheight,LL_BG); + int l_w = spGetWindowSurface()->h-(4+CHAT_LINES)*lg_font->maxheight; + lg_level = create_level(lg_game->level_string,l_w,l_w,LL_BG); sprintf(lg_level_string,"%s",lg_game->level_string); set_level(lg_game,lg_level_string); } @@ -409,7 +420,7 @@ int lg_reload() } if (lg_block) spDeleteTextBlock(lg_block); - int l_w = spGetWindowSurface()->h-7*lg_font->maxheight; + int l_w = spGetWindowSurface()->h-(4+CHAT_LINES)*lg_font->maxheight; lg_block = spCreateTextBlock(temp,spGetWindowSurface()->w-8-l_w,lg_font); if (lg_level == NULL || strcmp(lg_level_string,lg_game->level_string)) { @@ -451,9 +462,11 @@ void start_lobby_game(spFontPointer font, void ( *resize )( Uint16 w, Uint16 h ) lg_chat_block = NULL; lg_last_chat = NULL; lg_chat_text[0] = 0; - start_chat_listener(lg_player); + if (!lg_game->local) + start_chat_listener(lg_player); int res = spLoop(lg_draw,lg_calc,10,resize,NULL); - stop_chat_listener(lg_player); + if (!lg_game->local) + stop_chat_listener(lg_player); if (lg_block) spDeleteTextBlock(lg_block); if (res == -1) diff --git a/message.c b/message.c index 4e380d9..a266cf3 100644 --- a/message.c +++ b/message.c @@ -19,6 +19,10 @@ void message_draw(void) spSetAlphaPattern4x4(196,0); spRectangle(screen->w/2,screen->h/2,0,screen->w,screen->h,LL_BG); spDeactivatePattern(); + + if (spIsKeyboardPolled() && spGetVirtualKeyboardState() == SP_VIRTUAL_KEYBOARD_ALWAYS) + spBlitSurface(screen->w/2,screen->h-spGetVirtualKeyboard()->h/2,0,spGetVirtualKeyboard()); + char buffer[256]; if (mg_button_count < 0) { @@ -27,6 +31,10 @@ void message_draw(void) spRectangleBorder(screen->w/2,screen->h/2,0,screen->w/2+2*meow,screen->h/2+2*meow,meow,meow,LL_FG); spFontDrawMiddle( screen->w/2, 6*screen->h/23, 0, "Create game", mg_font ); sprintf(buffer,"Name: %s",mg_name); + int x = (screen->w+spFontWidth(buffer,mg_font))/2; + if (mg_sel == 1 && mg_pos == 0 && (SDL_GetTicks() >> 9) & 1) + spLine(x,8*screen->h/23-0*mg_font->maxheight/2, 0, + x,8*screen->h/23+2*mg_font->maxheight/2, 0,65535); spFontDrawMiddle( screen->w/2, 8*screen->h/23, 0, buffer, mg_font ); sprintf(buffer,"Maximum players: %i",*mg_players); spFontDrawMiddle( screen->w/2,10*screen->h/23, 0, buffer, mg_font ); @@ -67,7 +75,10 @@ void message_draw(void) } } else - spFontDrawMiddle( screen->w/2,16*screen->h/23, 0, "[a]Select [w]Create [d]Cancel", mg_font ); + if (*mg_online == -1 && mg_pos == 3) + spFontDrawMiddle( screen->w/2,16*screen->h/23, 0, "[w]Create [d]Cancel", mg_font ); + else + spFontDrawMiddle( screen->w/2,16*screen->h/23, 0, "[a]Select [w]Create [d]Cancel", mg_font ); spFlip(); } else @@ -114,7 +125,7 @@ int message_calc(Uint32 steps) spGetInput()->button[SP_BUTTON_UP] = 0; return 1; } - if (spGetInput()->button[SP_BUTTON_LEFT]) + if (spGetInput()->button[SP_BUTTON_LEFT] && (*mg_online != -1 || mg_pos != 3)) { spGetInput()->button[SP_BUTTON_LEFT] = 0; mg_sel = 1-mg_sel; diff --git a/trace.c b/trace.c index 616691c..239f32f 100644 --- a/trace.c +++ b/trace.c @@ -1,5 +1,5 @@ -#define TRACE_LENGTH 20 -#define TRACE_STEP 100 +#define TRACE_LENGTH 10 +#define TRACE_STEP 150 #define TRACE_UPDATE 5 int trace_count = TRACE_UPDATE-1; typedef struct sTrace