diff --git a/src/m_menu.c b/src/m_menu.c index 70380a973..250c82765 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3809,10 +3809,17 @@ static boolean M_PrepareLevelPlatter(INT32 gt) } else { + char mapname[22+3]; // lvlttl[22] + " 19" + if (actnum) - sprintf(levelselect.rows[row].mapnames[col], "%s %d", mapheaderinfo[mapnum]->lvlttl, actnum); + sprintf(mapname, "%s %d", mapheaderinfo[mapnum]->lvlttl, actnum); else - sprintf(levelselect.rows[row].mapnames[col], "%s", mapheaderinfo[mapnum]->lvlttl); + sprintf(mapname, "%s", mapheaderinfo[mapnum]->lvlttl); + + if (strlen(mapname) >= 17) + sprintf(mapname+17-3, "..."); + + strcpy(levelselect.rows[row].mapnames[col], (const char *)mapname); } } else diff --git a/src/m_menu.h b/src/m_menu.h index 5c07d8ae8..d5a3600a1 100644 --- a/src/m_menu.h +++ b/src/m_menu.h @@ -187,7 +187,7 @@ typedef struct { char header[22+5]; // mapheader_t lvltttl max length + " ZONE" INT32 maplist[3]; - char mapnames[3][22]; + char mapnames[3][17+1]; boolean mapavailable[3]; } levelselectrow_t;