| 2150 | } |
| 2151 | |
| 2152 | void CGameScreen::SelectObject() |
| 2153 | { |
| 2154 | const auto oldScale = g_GlobalScale; |
| 2155 | g_GlobalScale = 1.0; |
| 2156 | g_SelectedObject.Clear(); |
| 2157 | g_StatusbarUnderMouse = 0; |
| 2158 | g_GumpManager.Select(false); |
| 2159 | if (g_SelectedObject.Gump != nullptr) |
| 2160 | { |
| 2161 | if (g_SelectedObject.Object->IsText()) |
| 2162 | { |
| 2163 | ((CRenderTextObject *)g_SelectedObject.Object)->ToTop(); |
| 2164 | } |
| 2165 | } |
| 2166 | else if (m_GameScreenGump.Select() == nullptr) |
| 2167 | { |
| 2168 | if (g_DeathScreenTimer == 0u) |
| 2169 | { |
| 2170 | DrawGameWindowText(false); |
| 2171 | if (g_SelectedObject.Object != nullptr && g_SelectedObject.Object->IsText()) |
| 2172 | { |
| 2173 | g_WorldTextRenderer.ToTop((CRenderTextObject *)g_SelectedObject.Object); |
| 2174 | } |
| 2175 | } |
| 2176 | |
| 2177 | if (g_SelectedObject.Object == nullptr) //Если ничего не выбралось - пройдемся по объектам |
| 2178 | { |
| 2179 | //Если курсор мыши в игровом окне - просканируем его |
| 2180 | if (g_MouseManager.Position.X < g_RenderBounds.GameWindowPosX || |
| 2181 | g_MouseManager.Position.Y < g_RenderBounds.GameWindowPosY || |
| 2182 | g_MouseManager.Position.X > |
| 2183 | (g_RenderBounds.GameWindowPosX + g_RenderBounds.GameWindowWidth) || |
| 2184 | g_MouseManager.Position.Y > |
| 2185 | (g_RenderBounds.GameWindowPosY + g_RenderBounds.GameWindowHeight)) |
| 2186 | { |
| 2187 | // do nothing |
| 2188 | } |
| 2189 | else |
| 2190 | { |
| 2191 | g_GlobalScale = oldScale; |
| 2192 | CPoint2Di oldMouse = g_MouseManager.Position; |
| 2193 | |
| 2194 | //g_MouseManager.Position = CPoint2Di((int)((oldMouse.X - (g_RenderBounds.GameWindowScaledOffsetX / g_GlobalScale)) * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetX, (int)((oldMouse.Y - (g_RenderBounds.GameWindowScaledOffsetY / g_GlobalScale)) * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetY); |
| 2195 | |
| 2196 | //g_MouseManager.Position = CPoint2Di((int)((oldMouse.X * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetX / g_GlobalScale), (int)((oldMouse.Y * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetY / g_GlobalScale)); |
| 2197 | |
| 2198 | //int mouseX = (int)((oldMouse.X * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetX / g_GlobalScale); |
| 2199 | // int mouseY = (int)((oldMouse.Y * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetY / g_GlobalScale); |
| 2200 | |
| 2201 | /*g_MouseManager.Position = CPoint2Di |
| 2202 | ( |
| 2203 | //(int)((oldMouse.X * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetX) |
| 2204 | mouseX |
| 2205 | , |
| 2206 | //(int)((oldMouse.Y * g_GlobalScale) + g_RenderBounds.GameWindowScaledOffsetY) |
| 2207 | mouseY |
| 2208 | );*/ |
| 2209 |
no test coverage detected