| 83 | } |
| 84 | |
| 85 | void CRenderStaticObject::UpdateTextCoordinates() |
| 86 | { |
| 87 | int offset = 0; |
| 88 | |
| 89 | if (IsGameObject() && ((CGameObject *)this)->Container != 0xFFFFFFFF) |
| 90 | { |
| 91 | for (CTextData *item = (CTextData *)m_TextControl->Last(); item != nullptr; |
| 92 | item = (CTextData *)item->m_Prev) |
| 93 | { |
| 94 | CTextData &text = *item; |
| 95 | |
| 96 | if ((offset == 0) && text.Timer < g_Ticks) |
| 97 | { |
| 98 | continue; |
| 99 | } |
| 100 | |
| 101 | offset += text.m_TextSprite.Height; |
| 102 | |
| 103 | text.RealDrawX = text.GetX() - (text.m_TextSprite.Width / 2); |
| 104 | text.RealDrawY = text.GetY() - offset; |
| 105 | } |
| 106 | } |
| 107 | else |
| 108 | { |
| 109 | int y = DrawY - (m_TiledataPtr->Height + 20); |
| 110 | |
| 111 | for (CTextData *item = (CTextData *)m_TextControl->Last(); item != nullptr; |
| 112 | item = (CTextData *)item->m_Prev) |
| 113 | { |
| 114 | CTextData &text = *item; |
| 115 | |
| 116 | if ((offset == 0) && text.Timer < g_Ticks) |
| 117 | { |
| 118 | continue; |
| 119 | } |
| 120 | |
| 121 | offset += text.m_TextSprite.Height; |
| 122 | |
| 123 | text.RealDrawX = DrawX - (text.m_TextSprite.Width / 2); |
| 124 | text.RealDrawY = y - offset; |
| 125 | } |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | void CRenderStaticObject::FixTextCoordinates() |
| 130 | { |