From e12753d2ec9db83ec08bb9db63902a82fb245cdd Mon Sep 17 00:00:00 2001 From: "Tomas Chvatal (scarabeus)" Date: Wed, 22 Oct 2008 22:50:54 +0200 Subject: X --- src/client/term.c~ | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 src/client/term.c~ (limited to 'src/client/term.c~') diff --git a/src/client/term.c~ b/src/client/term.c~ new file mode 100644 index 0000000..6cad4d4 --- /dev/null +++ b/src/client/term.c~ @@ -0,0 +1,156 @@ + +#include +#include + +#include "main.h" +#include "list.h" +#include "myTimer.h" +#include "tux.h" +#include "space.h" +#include "arena.h" + +#include "interface.h" +#include "term.h" +#include "font.h" + +static list_t *listText; +static bool_t activeTerm; +static my_time_t lastActive; +static my_time_t lastRefresh; + +void initTerm() +{ + listText = newList(); + + activeTerm = FALSE; + lastActive = getMyTime(); + lastRefresh = lastActive; +} + +static char* getStrGun(int gun) +{ + switch( gun ) + { + case GUN_SIMPLE : return "revolver"; + case GUN_DUAL_SIMPLE : return "dual revolver"; + case GUN_SCATTER : return "scatter"; + case GUN_TOMMY : return "tommy"; + case GUN_LASSER : return "lasser"; + case GUN_MINE : return "mine"; + case GUN_BOMBBALL : return "bombball"; + default : return "none"; + } + + return "gun_unknow"; +} + +static char* getStrBonus(int bonus) +{ + switch( bonus ) + { + case BONUS_SPEED : return "speed"; + case BONUS_SHOT : return "shot"; + case BONUS_TELEPORT : return "teleport"; + case BONUS_GHOST : return "ghost"; + case BONUS_4X : return "4X"; + case BONUS_HIDDEN : return "hidden"; + default : return "none"; + } + + return "bonus_unknow"; +} + +static void action_refreshTerm(space_t *space, tux_t *tux, void *p) +{ + char str[STR_SIZE]; + + sprintf(str, + "name: %s " + "score: %d " + "gun: %s " + "shot: %d " + "bonus: %s", + + tux->name, tux->score, + getStrGun(tux->gun), + tux->shot[tux->gun], + getStrBonus(tux->bonus) + ); + + addList(listText, strdup(str) ); +} + +static void refreshTerm() +{ + arena_t *arena; + + arena = getCurrentArena(); + + destroyListItem(listText, free); + listText = newList(); + + actionSpace(arena->spaceTux, action_refreshTerm, NULL); + + //printf("refresh term..\n"); +} + +void drawTerm() +{ + int i; + + if( activeTerm == FALSE ) + { + return; + } + + for( i = 0 ; i < listText->count ; i++ ) + { + char *line; + + line = (char *) listText->list[i]; + drawFont(line, 10, 10 + i*20, COLOR_WHITE); + } +} + +static void switchTerm() +{ + if( activeTerm == TRUE ) + { + activeTerm = FALSE; + } + else + { + activeTerm = TRUE; + } +} + +void eventTerm() +{ + my_time_t currentTime; + Uint8 *mapa; + + mapa = SDL_GetKeyState(NULL); + + currentTime = getMyTime(); + + if( currentTime - lastRefresh > TERM_REFRESH_TIME_INTERVAL ) + { + lastRefresh = currentTime; + refreshTerm(); + } + + if( mapa[SDLK_TAB] == SDL_PRESSED ) + { + if( currentTime - lastActive > TERM_ACTIVE_TIME_INTERVAL ) + { + lastActive = currentTime; + switchTerm(); + } + } +} + +void quitTerm() +{ + assert( listText != NULL ); + destroyListItem(listText, free); +} -- cgit v1.2.3