reset
This commit is contained in:
BIN
assets/textures/reset.png
LFS
Normal file
BIN
assets/textures/reset.png
LFS
Normal file
Binary file not shown.
@@ -383,6 +383,7 @@ namespace Game
|
|||||||
quad.EData.ModelH = GameRendering::Get().GetModelHandleFromPath("models/plane.glb");
|
quad.EData.ModelH = GameRendering::Get().GetModelHandleFromPath("models/plane.glb");
|
||||||
}
|
}
|
||||||
SolvedQuad = level.UIQuads.New();
|
SolvedQuad = level.UIQuads.New();
|
||||||
|
ResetQuad = level.UIQuads.New();
|
||||||
IsSetup = true;
|
IsSetup = true;
|
||||||
LOG("finished setup!");
|
LOG("finished setup!");
|
||||||
}
|
}
|
||||||
@@ -450,6 +451,7 @@ namespace Game
|
|||||||
UpdateMatrix(tileOriginTransform);
|
UpdateMatrix(tileOriginTransform);
|
||||||
|
|
||||||
Vec3 mousePosWorld = GetMousePosWorld();
|
Vec3 mousePosWorld = GetMousePosWorld();
|
||||||
|
Vec3 quadPlaneIntersectPos;
|
||||||
|
|
||||||
Puzzle::PuzzleSolver solver;
|
Puzzle::PuzzleSolver solver;
|
||||||
EntityRenderData solvedData;
|
EntityRenderData solvedData;
|
||||||
@@ -462,10 +464,24 @@ namespace Game
|
|||||||
: solvedData.TextureHandle;
|
: solvedData.TextureHandle;
|
||||||
solvedQuad.EData.Transform.Position = tileOriginTransform.Position;
|
solvedQuad.EData.Transform.Position = tileOriginTransform.Position;
|
||||||
solvedQuad.EData.Transform.Rotation = camTransform.Rotation;
|
solvedQuad.EData.Transform.Rotation = camTransform.Rotation;
|
||||||
solvedQuad.EData.Transform.Scale = solvedData.Transform.Scale;
|
|
||||||
TranslateLocal(solvedQuad.EData.Transform, solvedData.Transform.Position);
|
TranslateLocal(solvedQuad.EData.Transform, solvedData.Transform.Position);
|
||||||
Rotate(solvedQuad.EData.Transform, Vec3{bx::kPi * 0.5f, 0.0f, (1.0f - 0 * 0.5f) * bx::kPi});
|
Rotate(solvedQuad.EData.Transform, Vec3{bx::kPi * 0.5f, 0.0f, (1.0f - 0 * 0.5f) * bx::kPi});
|
||||||
|
|
||||||
|
EntityRenderData resetData;
|
||||||
|
resetData.LoadFromSaved(GetInstance().Player.Config.TabletResetRenderData);
|
||||||
|
auto& resetQuad = level.UIQuads.Get(ResetQuad);
|
||||||
|
resetQuad.EData = resetData;
|
||||||
|
resetQuad.EData.Visible = IsActive;
|
||||||
|
resetQuad.EData.Transform.Position = tileOriginTransform.Position;
|
||||||
|
resetQuad.EData.Transform.Rotation = camTransform.Rotation;
|
||||||
|
TranslateLocal(resetQuad.EData.Transform, resetData.Transform.Position);
|
||||||
|
Rotate(resetQuad.EData.Transform, Vec3{bx::kPi * 0.5f, 0.0f, (1.0f - 0 * 0.5f) * bx::kPi});
|
||||||
|
if (GetMouseButtonPressedNow(MouseButton::Left) &&
|
||||||
|
IsQuadHovered(resetQuad.EData.Transform, mousePosWorld, quadPlaneIntersectPos))
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
// Available Cards
|
// Available Cards
|
||||||
for (int32_t i = 0; i < Puzzle::Config::MaxAvailableStacks; ++i)
|
for (int32_t i = 0; i < Puzzle::Config::MaxAvailableStacks; ++i)
|
||||||
{
|
{
|
||||||
@@ -492,7 +508,6 @@ namespace Game
|
|||||||
|
|
||||||
if (j == 0)
|
if (j == 0)
|
||||||
{
|
{
|
||||||
Vec3 quadPlaneIntersectPos;
|
|
||||||
if (IsQuadHovered(quad.EData.Transform, mousePosWorld, quadPlaneIntersectPos) &&
|
if (IsQuadHovered(quad.EData.Transform, mousePosWorld, quadPlaneIntersectPos) &&
|
||||||
DraggedAvailableCardIdx == UINT16_MAX && DraggedCard.X == -1 &&
|
DraggedAvailableCardIdx == UINT16_MAX && DraggedCard.X == -1 &&
|
||||||
GetMouseButtonPressedNow(MouseButton::Left))
|
GetMouseButtonPressedNow(MouseButton::Left))
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ namespace Game
|
|||||||
UIQuadEntityHandle UIPlacedCards[Puzzle::Config::MaxCardsInPuzzle];
|
UIQuadEntityHandle UIPlacedCards[Puzzle::Config::MaxCardsInPuzzle];
|
||||||
UIQuadEntityHandle UIAvailableCards[Puzzle::Config::MaxAvailableStacks * UIAvailableCardMaxStackPreview];
|
UIQuadEntityHandle UIAvailableCards[Puzzle::Config::MaxAvailableStacks * UIAvailableCardMaxStackPreview];
|
||||||
UIQuadEntityHandle SolvedQuad;
|
UIQuadEntityHandle SolvedQuad;
|
||||||
|
UIQuadEntityHandle ResetQuad;
|
||||||
Gen::PuzPos DraggedCard{-1, -1};
|
Gen::PuzPos DraggedCard{-1, -1};
|
||||||
uint16_t DraggedAvailableCardIdx = UINT16_MAX;
|
uint16_t DraggedAvailableCardIdx = UINT16_MAX;
|
||||||
bool IsSetup = false;
|
bool IsSetup = false;
|
||||||
@@ -165,6 +166,7 @@ namespace Game
|
|||||||
|
|
||||||
void Setup();
|
void Setup();
|
||||||
void Update();
|
void Update();
|
||||||
|
void Reset(); // TODO!
|
||||||
};
|
};
|
||||||
|
|
||||||
class Level
|
class Level
|
||||||
|
|||||||
@@ -52,12 +52,12 @@ namespace Tools
|
|||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ModelDropdown(Gen::ModelHandle& modelHandle, const char* name)
|
bool ModelDropdown(Gen::ModelHandle& modelHandle, const char* title)
|
||||||
{
|
{
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
auto& R = Game::GameRendering::Get();
|
auto& R = Game::GameRendering::Get();
|
||||||
const char* assetName = GetAssetPath(modelHandle.Asset);
|
const char* assetName = GetAssetPath(modelHandle.Asset);
|
||||||
if (ImGui::BeginCombo(name, assetName))
|
if (ImGui::BeginCombo(title, assetName))
|
||||||
{
|
{
|
||||||
for (int32_t i = 0; i < R.ModelCount; ++i)
|
for (int32_t i = 0; i < R.ModelCount; ++i)
|
||||||
{
|
{
|
||||||
@@ -72,12 +72,12 @@ namespace Tools
|
|||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextureDropdown(Gen::TextureHandle& texHandle)
|
bool TextureDropdown(Gen::TextureHandle& texHandle, const char* title)
|
||||||
{
|
{
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
auto& R = Game::GameRendering::Get();
|
auto& R = Game::GameRendering::Get();
|
||||||
const char* name = GetAssetPath(texHandle.Asset);
|
const char* name = GetAssetPath(texHandle.Asset);
|
||||||
if (ImGui::BeginCombo("Texture", name))
|
if (ImGui::BeginCombo(title, name))
|
||||||
{
|
{
|
||||||
for (int32_t i = 0; i < R.MaxTextures; ++i)
|
for (int32_t i = 0; i < R.MaxTextures; ++i)
|
||||||
{
|
{
|
||||||
@@ -305,7 +305,9 @@ namespace Tools
|
|||||||
bTabletChanged |= Tools::EntityDataSettings(player.Config.TabletBackgroundRenderData);
|
bTabletChanged |= Tools::EntityDataSettings(player.Config.TabletBackgroundRenderData);
|
||||||
ImGui::Text("Status");
|
ImGui::Text("Status");
|
||||||
bTabletChanged |= Tools::EntityDataSettings(player.Config.TabletStatusRenderData);
|
bTabletChanged |= Tools::EntityDataSettings(player.Config.TabletStatusRenderData);
|
||||||
bTabletChanged |= Tools::TextureDropdown(player.Config.TabletStatusSolvedTexture);
|
bTabletChanged |= Tools::TextureDropdown(player.Config.TabletStatusSolvedTexture, "Solved Texture");
|
||||||
|
ImGui::Text("Reset");
|
||||||
|
bTabletChanged |= Tools::EntityDataSettings(player.Config.TabletResetRenderData);
|
||||||
if (bTabletChanged)
|
if (bTabletChanged)
|
||||||
{
|
{
|
||||||
Serializer s;
|
Serializer s;
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
namespace Tools
|
namespace Tools
|
||||||
{
|
{
|
||||||
bool EntityDataSettings(Gen::SavedEntityRenderData& data);
|
bool EntityDataSettings(Gen::SavedEntityRenderData& data);
|
||||||
bool ModelDropdown(Gen::ModelHandle& modelHandle, const char* name = "Model");
|
bool ModelDropdown(Gen::ModelHandle& modelHandle, const char* title = "Model");
|
||||||
bool TextureDropdown(Gen::TextureHandle& texHandle);
|
bool TextureDropdown(Gen::TextureHandle& texHandle, const char* title = "Texture");
|
||||||
bool MaterialDropdown(Gen::EMaterial::Enum& material);
|
bool MaterialDropdown(Gen::EMaterial::Enum& material);
|
||||||
bool TransformUI(Gen::Transform& transform);
|
bool TransformUI(Gen::Transform& transform);
|
||||||
void RenderDebugUI(Game::GameRendering& rendering);
|
void RenderDebugUI(Game::GameRendering& rendering);
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -171,4 +171,5 @@ type SavedPlayerConfig
|
|||||||
SavedEntityRenderData TabletBackgroundRenderData
|
SavedEntityRenderData TabletBackgroundRenderData
|
||||||
SavedEntityRenderData TabletStatusRenderData
|
SavedEntityRenderData TabletStatusRenderData
|
||||||
TextureHandle TabletStatusSolvedTexture
|
TextureHandle TabletStatusSolvedTexture
|
||||||
|
SavedEntityRenderData TabletResetRenderData
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2453,6 +2453,7 @@ namespace Gen
|
|||||||
isOk = Save(&obj[i].TabletBackgroundRenderData, 1, serializer) && isOk;
|
isOk = Save(&obj[i].TabletBackgroundRenderData, 1, serializer) && isOk;
|
||||||
isOk = Save(&obj[i].TabletStatusRenderData, 1, serializer) && isOk;
|
isOk = Save(&obj[i].TabletStatusRenderData, 1, serializer) && isOk;
|
||||||
isOk = Save(&obj[i].TabletStatusSolvedTexture, 1, serializer) && isOk;
|
isOk = Save(&obj[i].TabletStatusSolvedTexture, 1, serializer) && isOk;
|
||||||
|
isOk = Save(&obj[i].TabletResetRenderData, 1, serializer) && isOk;
|
||||||
}
|
}
|
||||||
return isOk;
|
return isOk;
|
||||||
}
|
}
|
||||||
@@ -2472,6 +2473,7 @@ namespace Gen
|
|||||||
isOk = Load(&obj[i].TabletBackgroundRenderData, 1, serializer) && isOk;
|
isOk = Load(&obj[i].TabletBackgroundRenderData, 1, serializer) && isOk;
|
||||||
isOk = Load(&obj[i].TabletStatusRenderData, 1, serializer) && isOk;
|
isOk = Load(&obj[i].TabletStatusRenderData, 1, serializer) && isOk;
|
||||||
isOk = Load(&obj[i].TabletStatusSolvedTexture, 1, serializer) && isOk;
|
isOk = Load(&obj[i].TabletStatusSolvedTexture, 1, serializer) && isOk;
|
||||||
|
isOk = Load(&obj[i].TabletResetRenderData, 1, serializer) && isOk;
|
||||||
}
|
}
|
||||||
// if we're not ok here, something went really wrong
|
// if we're not ok here, something went really wrong
|
||||||
assert(isOk);
|
assert(isOk);
|
||||||
@@ -2511,6 +2513,10 @@ namespace Gen
|
|||||||
{
|
{
|
||||||
WriteDestinations[i] = offsetof(SavedPlayerConfig, TabletStatusSolvedTexture);
|
WriteDestinations[i] = offsetof(SavedPlayerConfig, TabletStatusSolvedTexture);
|
||||||
}
|
}
|
||||||
|
if (bx::strCmp(memberName, "TabletResetRenderData") == 0 && bx::strCmp(memberTypeName, "SavedEntityRenderData") == 0)
|
||||||
|
{
|
||||||
|
WriteDestinations[i] = offsetof(SavedPlayerConfig, TabletResetRenderData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start reading in file order, skipping things that we don't know by name and type
|
// Start reading in file order, skipping things that we don't know by name and type
|
||||||
@@ -2549,6 +2555,12 @@ namespace Gen
|
|||||||
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (bx::strCmp(memberName, "TabletResetRenderData") == 0)
|
||||||
|
{
|
||||||
|
auto* fieldPtr = reinterpret_cast<SavedEntityRenderData*>(objBasePtr + WriteDestinations[j]);
|
||||||
|
isOk = Load(fieldPtr, 1, serializer) && isOk;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ namespace Gen
|
|||||||
SavedEntityRenderData TabletBackgroundRenderData = {};
|
SavedEntityRenderData TabletBackgroundRenderData = {};
|
||||||
SavedEntityRenderData TabletStatusRenderData = {};
|
SavedEntityRenderData TabletStatusRenderData = {};
|
||||||
TextureHandle TabletStatusSolvedTexture = {};
|
TextureHandle TabletStatusSolvedTexture = {};
|
||||||
|
SavedEntityRenderData TabletResetRenderData = {};
|
||||||
};
|
};
|
||||||
bool Save(const PuzzleElementType::Enum* obj, uint32_t count, Serializer& serializer);
|
bool Save(const PuzzleElementType::Enum* obj, uint32_t count, Serializer& serializer);
|
||||||
bool Load(PuzzleElementType::Enum* obj, uint32_t count, Deserializer& serializer);
|
bool Load(PuzzleElementType::Enum* obj, uint32_t count, Deserializer& serializer);
|
||||||
@@ -350,11 +351,11 @@ namespace Gen
|
|||||||
TypeDef{sizeof(PlacedPuzzleCard), 3555575973, "PlacedPuzzleCard", 4, {24, 21, 4, 8}, {0, 0, 0, 0}, {{313, 7}, {320, 8}, {328, 8}, {336, 8}}},
|
TypeDef{sizeof(PlacedPuzzleCard), 3555575973, "PlacedPuzzleCard", 4, {24, 21, 4, 8}, {0, 0, 0, 0}, {{313, 7}, {320, 8}, {328, 8}, {336, 8}}},
|
||||||
TypeDef{sizeof(PuzzleData), 3349686056, "PuzzleData", 10, {5, 11, 4, 4, 6, 27, 28, 32, 6, 21}, {0, 64, 0, 0, 0, 16, 256, 1024, 0, 16}, {{344, 2}, {346, 10}, {356, 10}, {366, 11}, {377, 18}, {395, 14}, {409, 11}, {420, 15}, {435, 17}, {452, 13}}},
|
TypeDef{sizeof(PuzzleData), 3349686056, "PuzzleData", 10, {5, 11, 4, 4, 6, 27, 28, 32, 6, 21}, {0, 64, 0, 0, 0, 16, 256, 1024, 0, 16}, {{344, 2}, {346, 10}, {356, 10}, {366, 11}, {377, 18}, {395, 14}, {409, 11}, {420, 15}, {435, 17}, {452, 13}}},
|
||||||
TypeDef{sizeof(SavedEntityRenderData), 3172756855, "SavedEntityRenderData", 7, {14, 14, 17, 33, 20, 19, 8}, {0, 0, 0, 0, 0, 0, 0}, {{465, 9}, {474, 14}, {488, 2}, {490, 8}, {498, 7}, {505, 5}, {510, 7}}},
|
TypeDef{sizeof(SavedEntityRenderData), 3172756855, "SavedEntityRenderData", 7, {14, 14, 17, 33, 20, 19, 8}, {0, 0, 0, 0, 0, 0, 0}, {{465, 9}, {474, 14}, {488, 2}, {490, 8}, {498, 7}, {505, 5}, {510, 7}}},
|
||||||
TypeDef{sizeof(SavedPlayerConfig), 692059165, "SavedPlayerConfig", 3, {30, 30, 20}, {0, 0, 0}, {{517, 26}, {543, 22}, {565, 25}}},
|
TypeDef{sizeof(SavedPlayerConfig), 2457294139, "SavedPlayerConfig", 4, {30, 30, 20, 30}, {0, 0, 0, 0}, {{517, 26}, {543, 22}, {565, 25}, {590, 21}}},
|
||||||
TypeDef{sizeof(PuzzleElementType::Enum), 2983807453, "PuzzleElementType", 0, {}, {}, {}},
|
TypeDef{sizeof(PuzzleElementType::Enum), 2983807453, "PuzzleElementType", 0, {}, {}, {}},
|
||||||
TypeDef{sizeof(EMaterial::Enum), 2024002654, "EMaterial", 0, {}, {}, {}},
|
TypeDef{sizeof(EMaterial::Enum), 2024002654, "EMaterial", 0, {}, {}, {}},
|
||||||
};
|
};
|
||||||
char MemberNameBuffer[64*64*64]{"xyxyzxyzwMMMMIPositionRotationScaleIdxModelIdxAssetTextureIdxAssetXYModelConnectionDirectionElementsBaseModelHandleNorthCoverHandleEastCoverHandleSouthCoverHandleWestCoverHandleSocketsModelTextureHandleBoardTextureHandleIdxTileBaseColorTileDotColorTestDisabledCardTintCardsVisualsRefCardMaxAvailableCountUsedCountRefCardPositionRotationIsLockedIDPuzzleNameWidthTilesHeightTilesAvailableCardCountAvailableCardsPlacedCardsBackgroundTilesGoalPositionCountGoalPositionsBaseColorHighlightColorTFMaterialTextureModelVisibleTabletBackgroundRenderDataTabletStatusRenderDataTabletStatusSolvedTexture"};
|
char MemberNameBuffer[64*64*64]{"xyxyzxyzwMMMMIPositionRotationScaleIdxModelIdxAssetTextureIdxAssetXYModelConnectionDirectionElementsBaseModelHandleNorthCoverHandleEastCoverHandleSouthCoverHandleWestCoverHandleSocketsModelTextureHandleBoardTextureHandleIdxTileBaseColorTileDotColorTestDisabledCardTintCardsVisualsRefCardMaxAvailableCountUsedCountRefCardPositionRotationIsLockedIDPuzzleNameWidthTilesHeightTilesAvailableCardCountAvailableCardsPlacedCardsBackgroundTilesGoalPositionCountGoalPositionsBaseColorHighlightColorTFMaterialTextureModelVisibleTabletBackgroundRenderDataTabletStatusRenderDataTabletStatusSolvedTextureTabletResetRenderData"};
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr MetadataTable Metadata;
|
constexpr MetadataTable Metadata;
|
||||||
|
|||||||
BIN
src/textures/reset.ktx
LFS
Normal file
BIN
src/textures/reset.ktx
LFS
Normal file
Binary file not shown.
Reference in New Issue
Block a user