diff --git a/src/k_menudraw.c b/src/k_menudraw.c index cadb433a82ffd406cc74f9dbd7beb1645b6fd2f9..d0b6e86fd228e8d355941926a25789f339a68a32 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -2122,6 +2122,9 @@ static void M_DrawCharSelectPreview(UINT8 num) if (p->showextra == true) { INT32 randomskin = 0; + char variadicInfoBuffer[(MAXCOLORNAME*2) + 1 + 2 + 1];//+1 for spacing, +2 for brackets, +1 for null terminator + UINT16 folcol; + switch (p->mdepth) { case CSSTEP_ALTS: // Select clone @@ -2150,7 +2153,12 @@ static void M_DrawCharSelectPreview(UINT8 num) case CSSTEP_COLORS: // Select color if (p->color < numskincolors) { - V_DrawThinString(x-3, y+2, 0, skincolors[p->color].name); + if(p->color == SKINCOLOR_NONE) //'default' handling + sprintf(variadicInfoBuffer, "%s (%s)", skincolors[p->color].name, skincolors[skins[p->skin].prefcolor].name); + else + sprintf(variadicInfoBuffer, "%s", skincolors[p->color].name); + + V_DrawThinString(x-3, y+2, 0, variadicInfoBuffer); } else { @@ -2180,17 +2188,26 @@ static void M_DrawCharSelectPreview(UINT8 num) } break; case CSSTEP_FOLLOWERCOLORS: + folcol = K_GetEffectiveFollowerColor(p->followercolor, &followers[p->followern], p->color, &skins[p->skin]); + if (p->followercolor == FOLLOWERCOLOR_MATCH) { - V_DrawThinString(x-3, y+2, 0, "Match"); + sprintf(variadicInfoBuffer, "Match (%s)", skincolors[folcol].name); + V_DrawThinString(x-3, y+2, 0, variadicInfoBuffer); } else if (p->followercolor == FOLLOWERCOLOR_OPPOSITE) { - V_DrawThinString(x-3, y+2, 0, "Opposite"); + sprintf(variadicInfoBuffer, "Opposite (%s)", skincolors[folcol].name); + V_DrawThinString(x-3, y+2, 0, variadicInfoBuffer); } else if (p->followercolor < numskincolors) { - V_DrawThinString(x-3, y+2, 0, skincolors[p->followercolor].name); + if(p->followercolor == SKINCOLOR_NONE) //'default' handling + sprintf(variadicInfoBuffer, "%s (%s)", skincolors[p->followercolor].name, skincolors[folcol].name); + else + sprintf(variadicInfoBuffer, "%s", skincolors[p->followercolor].name); + + V_DrawThinString(x-3, y+2, 0, variadicInfoBuffer); } else {