void CCredit::Draw() { // Sanity checks... if (m_Strings.size() <= 0) return; FPStringArray::iterator iter = m_Strings.begin(); while (iter != m_Strings.end()) { CUIFormattedPolyString* pStr = (*iter); float x; float y; pStr->GetPosition(&x,&y); //drop shadow pStr->SetPosition(x+2.0f,y+2.0f); pStr->SetColor(argbBlack); pStr->Render(); pStr->SetPosition(x,y); pStr->SetColor(argbWhite); pStr->Render(); iter++; } }
void CCredit::FormatStrings() { float x = (float)m_Pos.x * g_pInterfaceResMgr->GetXRatio(); float y = (float)m_Pos.y * g_pInterfaceResMgr->GetYRatio(); FPStringArray::iterator iter = m_Strings.begin(); while (iter != m_Strings.end()) { CUIFormattedPolyString* pStr = *iter; uint8 nSize = (uint8)(16.0f * g_pInterfaceResMgr->GetXRatio()); if (m_bBig) nSize = (uint8)(24.0f * g_pInterfaceResMgr->GetYRatio()); pStr->SetCharScreenHeight(nSize); pStr->SetColor(argbWhite); pStr->SetAlignmentH(m_hAlign); pStr->SetPosition(x,y); y += (float)pStr->GetHeight(); iter++; } float offset = y - ((float)m_Pos.y * g_pInterfaceResMgr->GetYRatio()); switch (m_ePosition) { case CP_CENTER: offset /= 2.0f; break; case CP_UR: case CP_UL: offset = 0.0f; break; } if (offset > 0.0f) { FPStringArray::iterator iter = m_Strings.begin(); while (iter != m_Strings.end()) { CUIFormattedPolyString* pStr = *iter; float x,y; pStr->GetPosition(&x,&y); y -= offset; pStr->SetPosition(x,y); iter++; } } }