X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=f0fca35b2ee9cf9c38feb9a2cf458b321fa068b5;hb=9ac63ed68417dba413c129c1c14c179f2437fd44;hp=29f4e5379ddbb66d80fdcad63ef6ee50acc55816;hpb=dec45cbc9f59f4b109b78d9df8b6376538e67113;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 29f4e537..f0fca35b 100644 --- a/src/screens.c +++ b/src/screens.c @@ -252,6 +252,7 @@ static void DrawChooseLevelSet(void); static void DrawChooseLevelNr(void); static void DrawInfoScreen(void); static void DrawSetupScreen(void); +static void DrawTypeName(void); static void DrawInfoScreen_NotAvailable(char *, char *); static void DrawInfoScreen_HelpAnim(int, int, boolean); @@ -540,7 +541,9 @@ static int align_yoffset = 0; #define DRAW_MODE(s) ((s) >= GAME_MODE_MAIN && \ (s) <= GAME_MODE_SETUP ? (s) : \ (s) == GAME_MODE_PSEUDO_TYPENAME ? \ - GAME_MODE_MAIN : GAME_MODE_DEFAULT) + GAME_MODE_MAIN : \ + (s) == GAME_MODE_PSEUDO_TYPENAMES ? \ + GAME_MODE_NAMES : GAME_MODE_DEFAULT) // (there are no draw offset definitions needed for INFO_MODE_TITLE) #define DRAW_MODE_INFO(i) ((i) >= INFO_MODE_TITLE && \ @@ -680,6 +683,8 @@ static char *main_text_title_1 = NULL; static char *main_text_title_2 = NULL; static char *main_text_title_3 = NULL; +extern char debug_xsn_mode[]; + struct MainControlInfo { int nr; @@ -2078,7 +2083,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) { SetGameStatus(GAME_MODE_PSEUDO_TYPENAME); - HandleTypeName(strlen(setup.player_name), 0); + DrawTypeName(); } } else if (pos == MAIN_CONTROL_LEVELS) @@ -3958,7 +3963,7 @@ void HandleInfoScreen(int mx, int my, int dx, int dy, int button) // type name functions // ============================================================================ -void HandleTypeName(int newxpos, Key key) +static void HandleTypeNameExt(boolean initialize, Key key) { static char last_player_name[MAX_PLAYER_NAME_LEN + 1]; struct MainControlInfo *mci = getMainControlInfo(MAIN_CONTROL_NAME); @@ -3975,11 +3980,11 @@ void HandleTypeName(int newxpos, Key key) DrawBackgroundForFont(startx,starty, pos->width, pos->height, font_active_nr); - if (newxpos) + if (initialize) { strcpy(last_player_name, setup.player_name); - xpos = newxpos; + xpos = strlen(setup.player_name); StartTextInput(startx, starty, pos->width, pos->height); } @@ -4032,6 +4037,16 @@ void HandleTypeName(int newxpos, Key key) } } +static void DrawTypeName(void) +{ + HandleTypeNameExt(TRUE, 0); +} + +void HandleTypeName(Key key) +{ + HandleTypeNameExt(FALSE, key); +} + // ============================================================================ // tree menu functions @@ -6391,6 +6406,7 @@ static struct TokenInfo setup_info_graphics[] = { TYPE_SWITCH, &setup.show_titlescreen,"Show Title Screens:" }, { TYPE_SWITCH, &setup.toons, "Show Menu Animations:" }, { TYPE_SWITCH, &setup.small_game_graphics, "Small Game Graphics:" }, + { TYPE_YES_NO_AUTO, &setup.debug.xsn_mode, debug_xsn_mode }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupMain, "Back" },