- to make ultifd happy, fixed overlapping labels in lobbies
This commit is contained in:
parent
8e6609fdac
commit
b52ca80388
|
@ -543,6 +543,28 @@ void MenuStateConnectedGame::render() {
|
||||||
// Get a reference to the player texture cache
|
// Get a reference to the player texture cache
|
||||||
std::map<int,Texture2D *> &crcPlayerTextureCache = CacheManager::getCachedItem< std::map<int,Texture2D *> >(GameConstants::playerTextureCacheLookupKey);
|
std::map<int,Texture2D *> &crcPlayerTextureCache = CacheManager::getCachedItem< std::map<int,Texture2D *> >(GameConstants::playerTextureCacheLookupKey);
|
||||||
|
|
||||||
|
// START - this code ensure player title and player names don't overlap
|
||||||
|
int offsetPosition=0;
|
||||||
|
for(int i=0; i < GameConstants::maxPlayers; ++i) {
|
||||||
|
//labelPlayers[i].registerGraphicComponent(containerName,"labelPlayers" + intToStr(i));
|
||||||
|
//labelPlayers[i].init(xoffset+50, setupPos-30-i*rowHeight);
|
||||||
|
|
||||||
|
const Metrics &metrics= Metrics::getInstance();
|
||||||
|
const FontMetrics *fontMetrics= CoreData::getInstance().getMenuFontNormal()->getMetrics();
|
||||||
|
if(fontMetrics == NULL) {
|
||||||
|
throw runtime_error("fontMetrics == NULL");
|
||||||
|
}
|
||||||
|
int curWidth = (metrics.toVirtualX(fontMetrics->getTextWidth(labelPlayers[i].getText())));
|
||||||
|
|
||||||
|
if(labelPlayers[i].getX() + curWidth >= labelPlayerNames[i].getX()) {
|
||||||
|
int newOffsetPosition = labelPlayers[i].getX() + curWidth + 2;
|
||||||
|
if(offsetPosition < newOffsetPosition) {
|
||||||
|
offsetPosition = newOffsetPosition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// END
|
||||||
|
|
||||||
for(int i = 0; i < GameConstants::maxPlayers; ++i) {
|
for(int i = 0; i < GameConstants::maxPlayers; ++i) {
|
||||||
if(crcPlayerTextureCache[i] != NULL) {
|
if(crcPlayerTextureCache[i] != NULL) {
|
||||||
// Render the player # label the player's color
|
// Render the player # label the player's color
|
||||||
|
@ -560,6 +582,10 @@ void MenuStateConnectedGame::render() {
|
||||||
renderer.renderLabel(&labelPlayers[i]);
|
renderer.renderLabel(&labelPlayers[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(offsetPosition > 0) {
|
||||||
|
labelPlayerNames[i].setX(offsetPosition);
|
||||||
|
}
|
||||||
|
|
||||||
renderer.renderListBox(&listBoxControls[i]);
|
renderer.renderListBox(&listBoxControls[i]);
|
||||||
if(listBoxControls[i].getSelectedItemIndex()!=ctClosed){
|
if(listBoxControls[i].getSelectedItemIndex()!=ctClosed){
|
||||||
renderer.renderListBox(&listBoxFactions[i]);
|
renderer.renderListBox(&listBoxFactions[i]);
|
||||||
|
|
|
@ -347,6 +347,7 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu, b
|
||||||
//listBoxEnableServerControlledAI.pushBackItem(lang.get("No"));
|
//listBoxEnableServerControlledAI.pushBackItem(lang.get("No"));
|
||||||
//listBoxEnableServerControlledAI.setSelectedItemIndex(0);
|
//listBoxEnableServerControlledAI.setSelectedItemIndex(0);
|
||||||
|
|
||||||
|
|
||||||
//list boxes
|
//list boxes
|
||||||
xoffset=120;
|
xoffset=120;
|
||||||
int rowHeight=27;
|
int rowHeight=27;
|
||||||
|
@ -1140,6 +1141,28 @@ void MenuStateCustomGame::render() {
|
||||||
// Get a reference to the player texture cache
|
// Get a reference to the player texture cache
|
||||||
std::map<int,Texture2D *> &crcPlayerTextureCache = CacheManager::getCachedItem< std::map<int,Texture2D *> >(GameConstants::playerTextureCacheLookupKey);
|
std::map<int,Texture2D *> &crcPlayerTextureCache = CacheManager::getCachedItem< std::map<int,Texture2D *> >(GameConstants::playerTextureCacheLookupKey);
|
||||||
|
|
||||||
|
// START - this code ensure player title and player names don't overlap
|
||||||
|
int offsetPosition=0;
|
||||||
|
for(int i=0; i < GameConstants::maxPlayers; ++i) {
|
||||||
|
//labelPlayers[i].registerGraphicComponent(containerName,"labelPlayers" + intToStr(i));
|
||||||
|
//labelPlayers[i].init(xoffset+50, setupPos-30-i*rowHeight);
|
||||||
|
|
||||||
|
const Metrics &metrics= Metrics::getInstance();
|
||||||
|
const FontMetrics *fontMetrics= CoreData::getInstance().getMenuFontNormal()->getMetrics();
|
||||||
|
if(fontMetrics == NULL) {
|
||||||
|
throw runtime_error("fontMetrics == NULL");
|
||||||
|
}
|
||||||
|
int curWidth = (metrics.toVirtualX(fontMetrics->getTextWidth(labelPlayers[i].getText())));
|
||||||
|
|
||||||
|
if(labelPlayers[i].getX() + curWidth >= labelPlayerNames[i].getX()) {
|
||||||
|
int newOffsetPosition = labelPlayers[i].getX() + curWidth + 2;
|
||||||
|
if(offsetPosition < newOffsetPosition) {
|
||||||
|
offsetPosition = newOffsetPosition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// END
|
||||||
|
|
||||||
for(int i = 0; i < GameConstants::maxPlayers; ++i) {
|
for(int i = 0; i < GameConstants::maxPlayers; ++i) {
|
||||||
if(crcPlayerTextureCache[i] != NULL) {
|
if(crcPlayerTextureCache[i] != NULL) {
|
||||||
// Render the player # label the player's color
|
// Render the player # label the player's color
|
||||||
|
@ -1157,6 +1180,9 @@ void MenuStateCustomGame::render() {
|
||||||
renderer.renderLabel(&labelPlayers[i]);
|
renderer.renderLabel(&labelPlayers[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(offsetPosition > 0) {
|
||||||
|
labelPlayerNames[i].setX(offsetPosition);
|
||||||
|
}
|
||||||
renderer.renderLabel(&labelPlayerNames[i]);
|
renderer.renderLabel(&labelPlayerNames[i]);
|
||||||
|
|
||||||
renderer.renderListBox(&listBoxControls[i]);
|
renderer.renderListBox(&listBoxControls[i]);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user