X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=5bbe467ef211387f4651ea1647b7b05ea69fbd02;hb=46117e2d3c0ed234252e1e39a62617e6e77c09b5;hp=e2dba46087f486de974661359bdab8560f7feb38;hpb=298d3f89546bb5ac472c501c940603dbb49db2fb;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index e2dba460..5bbe467e 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4056,8 +4056,11 @@ static void getTypeNameValues(char *name, struct TextPosInfo *pos, int *xpos) *xpos = strlen(name); } -static void setTypeNameValues(char *name, int *font, boolean success) +static void setTypeNameValues(char *name, struct TextPosInfo *pos, + boolean success) { + TreeInfo *node = type_name_node; + if (!success) strcpy(name, type_name_last); @@ -4066,18 +4069,13 @@ static void setTypeNameValues(char *name, int *font, boolean success) if (setup.multiple_users) { - if (type_name_node == NULL) // should not happen + if (node == NULL) // should not happen return; if (success) - { - type_name_node->color = FC_RED; - - if (strEqual(name, EMPTY_PLAYER_NAME)) - type_name_node->color = FC_BLUE; - } + node->color = (strEqual(name, EMPTY_PLAYER_NAME) ? FC_BLUE : FC_RED); - *font = FONT_TEXT_1 + type_name_node->color; + pos->font = FONT_TEXT_1 + node->color; } if (!success) @@ -4090,14 +4088,14 @@ static void setTypeNameValues(char *name, int *font, boolean success) if (setup.multiple_users) { - int edit_user_nr = posTreeInfo(type_name_node); + int edit_user_nr = posTreeInfo(node); // change name of edited user in global list of user names setString(&global.user_names[edit_user_nr], name); // change name of edited user in local menu tree structure - setString(&type_name_node->name, name); - setString(&type_name_node->name_sorting, name); + setString(&node->name, name); + setString(&node->name_sorting, name); // save setup of currently active user (may differ from edited user) SaveSetup(); @@ -4165,13 +4163,13 @@ static void HandleTypeNameExt(boolean initialize, Key key) } else if (key == KSYM_Return) { - setTypeNameValues(name, &font_nr, TRUE); + setTypeNameValues(name, pos, TRUE); is_active = FALSE; } else if (key == KSYM_Escape) { - setTypeNameValues(name, &font_nr, FALSE); + setTypeNameValues(name, pos, FALSE); is_active = FALSE; } @@ -4191,7 +4189,7 @@ static void HandleTypeNameExt(boolean initialize, Key key) pos->width = strlen(name) * font_width; sx = mSX + ALIGNED_TEXT_XPOS(pos); - DrawText(sx, sy, name, font_nr); + DrawText(sx, sy, name, pos->font); StopTextInput(); } @@ -4735,7 +4733,7 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, { if (mx >= sx1_edit_name && mx <= sx2_edit_name) { - SetGameStatus(GAME_MODE_PSEUDO_TYPENAME); + SetGameStatus(GAME_MODE_PSEUDO_TYPENAMES); DrawTypeName();