//----- (0044D2FD) -------------------------------------------------------- void GUIFont::_44D2FD_prolly_draw_credits_entry( GUIFont *pSecondFont, int uFrameX, int uFrameY, unsigned int w, unsigned int h, unsigned __int16 firstColor, unsigned __int16 secondColor, const char *pString, unsigned __int16 *pPixels, unsigned int uPixelsWidth ) { char *work_string; // eax@1 unsigned __int16 *curr_pixel_pos; // esi@1 GUIFont *currentFont; // edi@4 signed int start_str_pos; // ecx@4 signed int line_w; // eax@6 GUIWindow draw_window; // [sp+Ch] [bp-5Ch]@ int currentColor; // [sp+74h] [bp+Ch]@4 int half_frameX; // [sp+80h] [bp+18h]@2 draw_window.uFrameHeight = h; draw_window.uFrameW = uFrameY + h - 1; draw_window.uFrameWidth = w; draw_window.uFrameZ = uFrameX + w - 1; ui_current_text_color = firstColor; draw_window.uFrameX = uFrameX; draw_window.uFrameY = uFrameY; work_string = GUIFont::FitTwoFontStringINWindow(pString, this, pSecondFont, &draw_window, 0, 1); work_string = strtok(work_string, "\n"); curr_pixel_pos = &pPixels[uPixelsWidth * uFrameY]; if ( work_string ) { half_frameX = uFrameX >> 1; while ( 1 ) { currentFont = this; ui_current_text_color = firstColor; start_str_pos = 0; currentColor = firstColor; if ( *work_string == '_' ) { currentFont = pSecondFont; currentColor = secondColor; ui_current_text_color = secondColor; start_str_pos = 1; } line_w = (signed int)(w - currentFont->GetLineWidth(&work_string[start_str_pos]))/2; if ( line_w < 0 ) line_w = 0; currentFont->DrawTextLineToBuff(currentColor, secondColor, &curr_pixel_pos[line_w + half_frameX], work_string, uPixelsWidth); curr_pixel_pos += uPixelsWidth * (currentFont->uFontHeight - 3); work_string = strtok(0, "\n"); if ( !work_string ) break; } } }