diff --git a/doc/fixes37.0 b/doc/fixes37.0 index d84be9cdd..2def97986 100644 --- a/doc/fixes37.0 +++ b/doc/fixes37.0 @@ -972,6 +972,8 @@ Qt: searching a text window for something that wasn't found and then searching for some other target could crash Qt: changes in glyph handling in the core introduced a bug in the "paper doll" display for inventory subset +Qt: during role selection, icons for role and race showed giant ant tile after + the glyph overhaul changes tty: redraw unexplored locations as S_unexplored rather than after map has been partially overwritten by popup menu or text display tty: previous change resulted in remnants of previous level being shown on diff --git a/win/Qt/qt_plsel.cpp b/win/Qt/qt_plsel.cpp index c9fd09756..4650cbdf9 100644 --- a/win/Qt/qt_plsel.cpp +++ b/win/Qt/qt_plsel.cpp @@ -270,11 +270,15 @@ NetHackQtPlayerSelector::NetHackQtPlayerSelector(NetHackQtKeyBuffer& ks UNUSED) ; role->setRowCount(nrole); for (i=0; roles[i].name.m; i++) { - QTableWidgetItem *item = new QTableWidgetItem( - QIcon(qt_settings->glyphs().glyph(roles[i].malenum, fem)), - roles[i].name.m); - item->setFlags(Qt::ItemIsEnabled|Qt::ItemIsSelectable); - role->setItem(i, 0, item); + glyph_info gi; + int glyph = monnum_to_glyph(roles[i].malenum, fem); + map_glyphinfo(0, 0, glyph, 0, &gi); + + QTableWidgetItem *item = new QTableWidgetItem( + QIcon(qt_settings->glyphs().glyph(glyph, gi.gm.tileidx, fem)), + (fem && roles[i].name.f) ? roles[i].name.f : roles[i].name.m); + item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); + role->setItem(i, 0, item); } connect(role, SIGNAL(currentCellChanged(int, int, int, int)), this, SLOT(selectRole(int, int, int, int))); @@ -286,11 +290,15 @@ NetHackQtPlayerSelector::NetHackQtPlayerSelector(NetHackQtKeyBuffer& ks UNUSED) ; race->setRowCount(nrace); for (i=0; races[i].noun; i++) { - QTableWidgetItem *item = new QTableWidgetItem( - QIcon(qt_settings->glyphs().glyph(races[i].malenum, fem)), - races[i].noun); - item->setFlags(Qt::ItemIsEnabled|Qt::ItemIsSelectable); - race->setItem(i, 0, item); + glyph_info gi; + int glyph = monnum_to_glyph(races[i].malenum, fem); + map_glyphinfo(0, 0, glyph, 0, &gi); + + QTableWidgetItem *item = new QTableWidgetItem( + QIcon(qt_settings->glyphs().glyph(glyph, gi.gm.tileidx, fem)), + races[i].noun); + item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); + race->setItem(i, 0, item); } connect(race, SIGNAL(currentCellChanged(int, int, int, int)), this, SLOT(selectRace(int, int, int, int)));