In PythonTextTail.h search:
CGraphicObjectInstance * pOwner{};
DWORD dwVirtualID{};
add below
DWORD dwGuildID{};
search
void SetCharacterTextTailGuildText(DWORD dwVID, const char* c_szText);
add below
void UpdateGuildNameByID(DWORD dwGuildID, const char* c_szName);
In PythonTextTail.cpp inside RegisterCharacterTextTail search:
if (0 != dwGuildID)
{
pTextTail->pMarkInstance = CGraphicMarkInstance::New();
DWORD dwMarkID = CGuildMarkManager::Instance().GetMarkID(dwGuildID);
if (dwMarkID != CGuildMarkManager::INVALID_MARK_ID)
{
std::string markImagePath;
if (CGuildMarkManager::Instance().GetMarkImageFilename(dwMarkID / CGuildMarkImage::MARK_TOTAL_COUNT, markImagePath))
{
pTextTail->pMarkInstance->SetImageFileName(markImagePath.c_str());
pTextTail->pMarkInstance->Load();
pTextTail->pMarkInstance->SetIndex(dwMarkID % CGuildMarkImage::MARK_TOTAL_COUNT);
}
}
std::string strGuildName;
if (!CPythonGuild::Instance().GetGuildName(dwGuildID, &strGuildName))
strGuildName = "Noname";
CGraphicTextInstance *& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
prGuildNameInstance = CGraphicTextInstance::New();
prGuildNameInstance->SetTextPointer(ms_pFont);
prGuildNameInstance->SetOutline(true);
prGuildNameInstance->SetHorizonalAlign(CGraphicTextInstance::HORIZONTAL_ALIGN_CENTER);
prGuildNameInstance->SetVerticalAlign(CGraphicTextInstance::VERTICAL_ALIGN_BOTTOM);
prGuildNameInstance->SetValue(strGuildName.c_str());
prGuildNameInstance->SetColor(c_TextTail_Guild_Name_Color.r, c_TextTail_Guild_Name_Color.g, c_TextTail_Guild_Name_Color.b);
prGuildNameInstance->Update();
}
m_CharacterTextTailMap.insert(TTextTailMap::value_type(dwVirtualID, pTextTail));
replace with:
pTextTail->dwGuildID = dwGuildID;
if (0 != dwGuildID)
{
pTextTail->pMarkInstance = CGraphicMarkInstance::New();
DWORD dwMarkID = CGuildMarkManager::Instance().GetMarkID(dwGuildID);
if (dwMarkID != CGuildMarkManager::INVALID_MARK_ID)
{
std::string markImagePath;
if (CGuildMarkManager::Instance().GetMarkImageFilename(dwMarkID / CGuildMarkImage::MARK_TOTAL_COUNT, markImagePath))
{
pTextTail->pMarkInstance->SetImageFileName(markImagePath.c_str());
pTextTail->pMarkInstance->Load();
pTextTail->pMarkInstance->SetIndex(dwMarkID % CGuildMarkImage::MARK_TOTAL_COUNT);
}
}
std::string strGuildName;
if (!CPythonGuild::Instance().GetGuildName(dwGuildID, &strGuildName))
{
prGuildNameInstance->SetValue(strGuildName.c_str());
prGuildNameInstance->Update();
}
}
m_CharacterTextTailMap.insert(TTextTailMap::value_type(dwVirtualID, pTextTail));
In PythonGuild.cpp add:
#include "PythonTextTail.h"
In RegisterGuildName function:
void CPythonGuild::RegisterGuildName(DWORD dwID, const char * c_szName)
{
m_GuildNameMap.insert(make_pair(dwID, std::string(c_szName)));
}
replace with:
void CPythonGuild::RegisterGuildName(DWORD dwID, const char * c_szName)
{
m_GuildNameMap[dwID] = std::string(c_szName);
CPythonTextTail::Instance().UpdateGuildNameByID(dwID, c_szName);
}
add under RegisterGuildName function:
void CPythonTextTail::UpdateGuildNameByID(DWORD dwGuildID, const char* c_szName)
{
for (TTextTailMap::iterator it = m_CharacterTextTailMap.begin(); it != m_CharacterTextTailMap.end(); ++it)
{
TTextTail* pTextTail = it->second;
if (!pTextTail)
continue;
if (pTextTail->dwGuildID != dwGuildID)
continue;
if (!pTextTail->pGuildNameTextInstance)
continue;
pTextTail->pGuildNameTextInstance->SetValue(c_szName);
pTextTail->pGuildNameTextInstance->Update();
}
}
In GetGuildName function:
bool CPythonGuild::GetGuildName(DWORD dwID, std::string * pstrGuildName)
{
if (m_GuildNameMap.end() == m_GuildNameMap.find(dwID))
return false;
*pstrGuildName = m_GuildNameMap[dwID];
return true;
}
replace with:
bool CPythonGuild::GetGuildName(DWORD dwID, std::string * pstrGuildName)
{
if (dwID == m_GuildInfo.dwGuildID && m_GuildInfo.szGuildName[0] != '\0')
{
*pstrGuildName = m_GuildInfo.szGuildName;
return true;
}
if (m_GuildNameMap.end() == m_GuildNameMap.find(dwID))
return false;
*pstrGuildName = m_GuildNameMap[dwID];
return true;
}