wip
This commit is contained in:
@@ -76,6 +76,10 @@ namespace Game
|
|||||||
needReset |= PuzzleTiles.Setup(storagePtr, needReset);
|
needReset |= PuzzleTiles.Setup(storagePtr, needReset);
|
||||||
needReset |= UIQuads.Setup(storagePtr, needReset);
|
needReset |= UIQuads.Setup(storagePtr, needReset);
|
||||||
|
|
||||||
|
UIQuads.IsEnabled = false;
|
||||||
|
Tests.IsEnabled = false;
|
||||||
|
Cubes.IsEnabled = false;
|
||||||
|
|
||||||
Puzzle::Setup();
|
Puzzle::Setup();
|
||||||
|
|
||||||
bx::Error err;
|
bx::Error err;
|
||||||
@@ -148,14 +152,13 @@ namespace Game
|
|||||||
{
|
{
|
||||||
Tests.Get(Tests.New()).Setup();
|
Tests.Get(Tests.New()).Setup();
|
||||||
}
|
}
|
||||||
if (PuzzleTiles.Count == 0)
|
for (int32_t i = 0; i < BX_COUNTOF(Puzzles); ++i)
|
||||||
{
|
{
|
||||||
for (uint32_t puzI = 0; puzI < BX_COUNTOF(Puzzles); ++puzI)
|
if (Puzzles[i].Data.ID != UINT16_MAX && !Puzzles[i].IsSetup)
|
||||||
{
|
{
|
||||||
Puzzles[puzI].Setup();
|
Puzzles[i].Setup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdatePlayerInputMode();
|
UpdatePlayerInputMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,32 +304,11 @@ namespace Game
|
|||||||
|
|
||||||
void WorldPuzzle::Setup()
|
void WorldPuzzle::Setup()
|
||||||
{
|
{
|
||||||
Data.PlacedCardCount = 16;
|
auto& level = GetInstance().GameLevel;
|
||||||
for (int32_t i = 0; i < 16; ++i)
|
for (int32_t i = 0; i < Puzzle::Config::MaxCardsInPuzzle; ++i)
|
||||||
{
|
{
|
||||||
Data.PlacedCards[i].RefCard = {0};
|
TileHandles[i] = level.PuzzleTiles.New();
|
||||||
Data.PlacedCards[i].Position = {int8_t(i % 4), int8_t(i / 4)};
|
UIPlacedCards[i] = level.UIQuads.New();
|
||||||
}
|
|
||||||
|
|
||||||
for (uint32_t cardI = 0; cardI < Data.PlacedCardCount; ++cardI)
|
|
||||||
{
|
|
||||||
const Generated::PlacedPuzzleCard& card = Data.PlacedCards[cardI];
|
|
||||||
Level& level = GetInstance().GameLevel;
|
|
||||||
TileHandles[cardI] = level.PuzzleTiles.New();
|
|
||||||
UIPlacedCards[cardI] = level.UIQuads.New();
|
|
||||||
|
|
||||||
bx::Vec3 Pos = {
|
|
||||||
WorldPosition.x + card.Position.X * WorldCardSize.x,
|
|
||||||
WorldPosition.y,
|
|
||||||
WorldPosition.z + card.Position.Y * WorldCardSize.y,
|
|
||||||
};
|
|
||||||
PuzzleTileEntity& tile = level.PuzzleTiles.Get(TileHandles[cardI]);
|
|
||||||
tile.EData.Transform.Position = Pos;
|
|
||||||
tile.EData.MaterialHandle = 0;
|
|
||||||
|
|
||||||
UIQuadEntity& quad = level.UIQuads.Get(UIPlacedCards[cardI]);
|
|
||||||
quad.EData.MaterialHandle = 0;
|
|
||||||
quad.EData.ModelHandle = GameRendering::Get().GetModelHandleFromPath("models/plane.glb");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -336,18 +318,23 @@ namespace Game
|
|||||||
Vec3 cameraPos = camTransform.GetPosition() * -1;
|
Vec3 cameraPos = camTransform.GetPosition() * -1;
|
||||||
Level& level = GetInstance().GameLevel;
|
Level& level = GetInstance().GameLevel;
|
||||||
|
|
||||||
for (int32_t cardI = 0; cardI < Data.PlacedCardCount; ++cardI)
|
for (int8_t y = 0; y < Data.WidthTiles / Puzzle::Config::CardSize; ++y)
|
||||||
{
|
{
|
||||||
Generated::PlacedPuzzleCard& card = Data.PlacedCards[cardI];
|
for (int8_t x = 0; x < Data.WidthTiles / Puzzle::Config::CardSize; ++x)
|
||||||
if (!Puzzle::IsValid(card.RefCard)) continue;
|
{
|
||||||
const Generated::StaticPuzzleCard& cData = Puzzle::GetCard(card.RefCard);
|
Generated::PlacedPuzzleCard& card = Data.PlacedCards[y * Puzzle::Config::MaxPuzzleSizeCards + x];
|
||||||
level.PuzzleTiles.Get(TileHandles[cardI]).EData.ModelHandle = cData.ModelHandle;
|
if (!Puzzle::IsValid(card.RefCard))
|
||||||
|
const Generated::StaticPuzzleCard& cData = Puzzle::GetCard(card.RefCard);
|
||||||
|
auto& tile = level.PuzzleTiles.Get(TileHandles[y * Puzzle::Config::MaxPuzzleSizeCards + x]);
|
||||||
|
tile.EData.ModelHandle = Puzzle::GetStaticPuzzleData().Cards[card.RefCard.Idx].ModelHandle;
|
||||||
|
tile.EData.Transform.SetPosition({(float)card.Position.X, (float)card.Position.Y, 0.0f});
|
||||||
|
|
||||||
auto& quad = level.UIQuads.Get(UIPlacedCards[cardI]);
|
auto& quad = level.UIQuads.Get(UIPlacedCards[y * Puzzle::Config::MaxPuzzleSizeCards + x]);
|
||||||
Vec3 fw = {0, -1, 0};
|
Vec3 fw = {0, -1, 0};
|
||||||
// quad.EData.Transform.SetPosition(cameraPos + Vec3{0, -2, 0});
|
// quad.EData.Transform.SetPosition(cameraPos + Vec3{0, -2, 0});
|
||||||
quad.EData.Transform.SetPosition({});
|
quad.EData.Transform.SetPosition({});
|
||||||
quad.EData.Transform.Rotation = camTransform.Rotation;
|
quad.EData.Transform.Rotation = camTransform.Rotation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace Game
|
} // namespace Game
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ namespace Game
|
|||||||
Vec3 WorldPosition;
|
Vec3 WorldPosition;
|
||||||
PuzzleTileEntityHandle TileHandles[Puzzle::Config::MaxCardsInPuzzle];
|
PuzzleTileEntityHandle TileHandles[Puzzle::Config::MaxCardsInPuzzle];
|
||||||
UIQuadEntityHandle UIPlacedCards[Puzzle::Config::MaxCardsInPuzzle];
|
UIQuadEntityHandle UIPlacedCards[Puzzle::Config::MaxCardsInPuzzle];
|
||||||
|
bool IsSetup = false;
|
||||||
|
|
||||||
void Setup();
|
void Setup();
|
||||||
void Update();
|
void Update();
|
||||||
|
|||||||
@@ -89,15 +89,14 @@ type PlacedPuzzleCard
|
|||||||
|
|
||||||
type PuzzleData
|
type PuzzleData
|
||||||
{
|
{
|
||||||
u16 ID
|
u16 ID
|
||||||
str PuzzleName Arr(64)
|
str PuzzleName Arr(64)
|
||||||
u8 WidthTiles
|
u8 WidthTiles
|
||||||
u8 HeightTiles
|
u8 HeightTiles
|
||||||
u32 AvailableCardCount
|
u32 AvailableCardCount
|
||||||
PuzzleCardStack AvailableCards Arr(16)
|
PuzzleCardStack AvailableCards Arr(16)
|
||||||
u32 PlacedCardCount
|
PlacedPuzzleCard PlacedCards Arr(256)
|
||||||
PlacedPuzzleCard PlacedCards Arr(256)
|
|
||||||
PuzzleElementType BackgroundTiles Arr(1024)
|
PuzzleElementType BackgroundTiles Arr(1024)
|
||||||
u32 GoalPositionCount
|
u32 GoalPositionCount
|
||||||
PuzPos GoalPositions Arr(16)
|
PuzPos GoalPositions Arr(16)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -343,7 +343,7 @@ namespace Game
|
|||||||
bgfx::Init init;
|
bgfx::Init init;
|
||||||
init.type = bgfx::RendererType::Direct3D12;
|
init.type = bgfx::RendererType::Direct3D12;
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
init.debug = true;
|
// init.debug = true;
|
||||||
#endif
|
#endif
|
||||||
init.platformData.nwh = shared.Window.Handle;
|
init.platformData.nwh = shared.Window.Handle;
|
||||||
init.platformData.ndt = nullptr;
|
init.platformData.ndt = nullptr;
|
||||||
|
|||||||
@@ -257,7 +257,6 @@ namespace Generated
|
|||||||
isOk = Save(&obj[i].HeightTiles, 1, serializer) && isOk;
|
isOk = Save(&obj[i].HeightTiles, 1, serializer) && isOk;
|
||||||
isOk = Save(&obj[i].AvailableCardCount, 1, serializer) && isOk;
|
isOk = Save(&obj[i].AvailableCardCount, 1, serializer) && isOk;
|
||||||
isOk = Save(obj[i].AvailableCards, 16, serializer) && isOk;
|
isOk = Save(obj[i].AvailableCards, 16, serializer) && isOk;
|
||||||
isOk = Save(&obj[i].PlacedCardCount, 1, serializer) && isOk;
|
|
||||||
isOk = Save(obj[i].PlacedCards, 256, serializer) && isOk;
|
isOk = Save(obj[i].PlacedCards, 256, serializer) && isOk;
|
||||||
isOk = Save(obj[i].BackgroundTiles, 1024, serializer) && isOk;
|
isOk = Save(obj[i].BackgroundTiles, 1024, serializer) && isOk;
|
||||||
isOk = Save(&obj[i].GoalPositionCount, 1, serializer) && isOk;
|
isOk = Save(&obj[i].GoalPositionCount, 1, serializer) && isOk;
|
||||||
@@ -276,7 +275,6 @@ namespace Generated
|
|||||||
isOk = Load(&obj[i].HeightTiles, 1, serializer) && isOk;
|
isOk = Load(&obj[i].HeightTiles, 1, serializer) && isOk;
|
||||||
isOk = Load(&obj[i].AvailableCardCount, 1, serializer) && isOk;
|
isOk = Load(&obj[i].AvailableCardCount, 1, serializer) && isOk;
|
||||||
isOk = Load(obj[i].AvailableCards, 16, serializer) && isOk;
|
isOk = Load(obj[i].AvailableCards, 16, serializer) && isOk;
|
||||||
isOk = Load(&obj[i].PlacedCardCount, 1, serializer) && isOk;
|
|
||||||
isOk = Load(obj[i].PlacedCards, 256, serializer) && isOk;
|
isOk = Load(obj[i].PlacedCards, 256, serializer) && isOk;
|
||||||
isOk = Load(obj[i].BackgroundTiles, 1024, serializer) && isOk;
|
isOk = Load(obj[i].BackgroundTiles, 1024, serializer) && isOk;
|
||||||
isOk = Load(&obj[i].GoalPositionCount, 1, serializer) && isOk;
|
isOk = Load(&obj[i].GoalPositionCount, 1, serializer) && isOk;
|
||||||
|
|||||||
@@ -131,14 +131,13 @@ namespace Generated
|
|||||||
};
|
};
|
||||||
struct PuzzleData
|
struct PuzzleData
|
||||||
{
|
{
|
||||||
static constexpr uint32_t Hash = 2775382112;
|
static constexpr uint32_t Hash = 657000000;
|
||||||
uint16_t ID = {};
|
uint16_t ID = {};
|
||||||
char PuzzleName[64] = {};
|
char PuzzleName[64] = {};
|
||||||
uint8_t WidthTiles = {};
|
uint8_t WidthTiles = {};
|
||||||
uint8_t HeightTiles = {};
|
uint8_t HeightTiles = {};
|
||||||
uint32_t AvailableCardCount = {};
|
uint32_t AvailableCardCount = {};
|
||||||
PuzzleCardStack AvailableCards[16] = {};
|
PuzzleCardStack AvailableCards[16] = {};
|
||||||
uint32_t PlacedCardCount = {};
|
|
||||||
PlacedPuzzleCard PlacedCards[256] = {};
|
PlacedPuzzleCard PlacedCards[256] = {};
|
||||||
PuzzleElementType::Enum BackgroundTiles[1024] = {};
|
PuzzleElementType::Enum BackgroundTiles[1024] = {};
|
||||||
uint32_t GoalPositionCount = {};
|
uint32_t GoalPositionCount = {};
|
||||||
|
|||||||
Reference in New Issue
Block a user