diff --git a/src/game/Level.cpp b/src/game/Level.cpp index 5f055e7..8dcc1b4 100644 --- a/src/game/Level.cpp +++ b/src/game/Level.cpp @@ -107,9 +107,8 @@ namespace Game if (rendering.SetupData.UseImgui) { auto& IO = ImGui::GetIO(); - IO.ConfigFlags = FlagBool(IO.ConfigFlags, - ImGuiConfigFlags_NoMouse | ImGuiConfigFlags_NoKeyboard, - GetInstance().Player.InteractionM == InteractionMode::Walk); + IO.ConfigFlags = + FlagBool(IO.ConfigFlags, ImGuiConfigFlags_NoMouse | ImGuiConfigFlags_NoKeyboard, captureMouse); } rendering.UIVisible = IsGaming ? UIVisibilityState::Game : UIVisibilityState::Debug; } diff --git a/src/game/UI.cpp b/src/game/UI.cpp index 909af5d..7c0614a 100644 --- a/src/game/UI.cpp +++ b/src/game/UI.cpp @@ -114,6 +114,16 @@ namespace Game } } + Vec3 CalcBoardOffset(const Gen::PuzzleData& puzData) + { + return Vec3{ + (float)(puzData.WidthTiles) / 2.0f - 0.5f, + (float)(puzData.HeightTiles) / 2.0f - 0.5f, + 0.0f, + } * + WorldPuzzleUI::UICardScale * WorldPuzzleUI::UICardScale; + } + void WorldPuzzleUI::UpdateAvailableCards(Gen::PuzzleData& Data) { auto& level = GetInstance().GameLevel; @@ -159,8 +169,9 @@ namespace Game dragPos += StaticData.ZAxis * -0.01f; quad.EData.Transform.Position = dragPos; + Vec3 boardOffset = CalcBoardOffset(Data) / WorldPuzzleUI::UICardScale; Vec3 boardPos = GlobalToLocalPoint(StaticData.UITransform, quadPlaneIntersectPos); - Vec3 boardTilePos = boardPos / UICardOffset; + Vec3 boardTilePos = (boardPos + boardOffset) / UICardOffset; int32_t xPos = (int32_t)bx::round(boardTilePos.x); int32_t yPos = (int32_t)bx::round(boardTilePos.y); @@ -190,17 +201,6 @@ namespace Game } } - Vec3 CalcBoardOffset(const Gen::PuzzleData& puzData) - { - return {}; - return Vec3{ - (float)(puzData.WidthTiles) / (2.0f * Puzzle::Config::CardSize), - (float)(puzData.HeightTiles) / (2.0f * Puzzle::Config::CardSize), - 0.0f, - } * - 2.0f * WorldPuzzleUI::UICardScale * WorldPuzzleUI::UICardScale; - } - void WorldPuzzleUI::UpdateBoardCards(Gen::PuzzleData& Data) { auto& level = GetInstance().GameLevel; diff --git a/src/game/data/static/puzzle.dat b/src/game/data/static/puzzle.dat index d621fa8..71e2da1 100644 Binary files a/src/game/data/static/puzzle.dat and b/src/game/data/static/puzzle.dat differ