X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=ball%2Fst_name.c;h=3cd7a2b57c384d73e6e095c48ac52b9eaf2ae1e7;hb=afcca7618054cd6c5e900cb32f71466c45edb0cd;hp=76e51d872f94a44ed3b3eb7ec56afec5761dc139;hpb=e577d408191d1b90d9a8a7766d644e3c1934b1d2;p=neverball diff --git a/ball/st_name.c b/ball/st_name.c index 76e51d8..3cd7a2b 100644 --- a/ball/st_name.c +++ b/ball/st_name.c @@ -32,26 +32,16 @@ extern struct state st_name; static struct state *ok_state, *cancel_state; static char player[MAXNAM]; -void name_default(void) -{ - char *login = getenv("LOGNAME"); - - if (login == NULL || login[0] == '\0') - login = _("Player"); - - strncpy(player, login, MAXNAM); - player[MAXNAM-1] = '\0'; - player[0] = toupper(player[0]); -} - int goto_name(struct state *ok, struct state *cancel) { config_get_s(CONFIG_PLAYER, player, MAXNAM); + if (player[0] == '\0') - name_default(); - + strcpy(player, " "); + ok_state = ok; cancel_state = cancel; + return goto_state(&st_name); } @@ -63,24 +53,23 @@ static int name_id; static int name_action(int i) { - size_t l; + size_t l = strlen(player); audio_play(AUD_MENU, 1.0f); - l = strlen(player); - switch (i) { case NAME_OK: if (l == 0) return 1; + config_set_s(CONFIG_PLAYER, player); return goto_state(ok_state); - + case NAME_BACK: case NAME_CANCEL: return goto_state(cancel_state); - + case GUI_BS: if (l > 0) { @@ -94,6 +83,7 @@ static int name_action(int i) { player[l + 0] = (char) i; player[l + 1] = '\0'; + gui_set_label(name_id, player); } } @@ -112,9 +102,14 @@ static int name_enter(void) gui_space(id); gui_space(id); - + name_id = gui_label(id, player, GUI_MED, GUI_ALL, gui_yel, gui_yel); + /* Clear dummy text. */ + + if (strcmp(player, " ") == 0) + strcpy(player, ""); + gui_space(id); gui_keyboard(id); @@ -126,7 +121,7 @@ static int name_enter(void) gui_layout(id, 0, 0); } - + SDL_EnableUNICODE(1); return id;