MCPcopy Create free account
hub / github.com/crossuo/crossuo / SelectObject

Method SelectObject

src/ScreenStages/GameScreen.cpp:2152–2245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2150}
2151
2152void 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

Callers 10

ProcessMethod · 0.45
OnLeftMouseButtonDownMethod · 0.45
OnLeftMouseButtonUpMethod · 0.45
OnRightMouseButtonUpMethod · 0.45
RenderMethod · 0.45

Calls 7

ClearMethod · 0.45
SelectMethod · 0.45
IsTextMethod · 0.45
ToTopMethod · 0.45
OnMouseExitMethod · 0.45
OnMouseEnterMethod · 0.45
InitMethod · 0.45

Tested by

no test coverage detected