fp: Use meters for calculations

This commit is contained in:
2023-09-26 00:07:39 +10:00
parent dcf47a106a
commit 7a2bebf3c3
6 changed files with 75 additions and 44 deletions
+33 -3
View File
@@ -3,6 +3,36 @@
#include "feely_pona_unity.h"
#endif
static Dqn_f32 FP_Game_PixelsToMeters(FP_Game const *game)
{
Dqn_f32 result = game ? (1.f / game->meters_to_pixels) : 10.f;
return result;
}
static Dqn_f32 FP_Game_MetersToPixels(FP_Game const *game)
{
Dqn_f32 result = game ? game->meters_to_pixels : 1 / 10.f;
return result;
}
static Dqn_V2 FP_Game_MetersToPixelsV2(FP_Game const *game, Dqn_V2 pos)
{
Dqn_V2 result = pos * FP_Game_MetersToPixels(game);
return result;
}
static Dqn_f32 FP_Game_MetersToPixelsNx1(FP_Game const *game, Dqn_f32 val)
{
Dqn_f32 result = val * FP_Game_MetersToPixels(game);
return result;
}
static Dqn_V2 FP_Game_MetersToPixelsNx2(FP_Game const *game, Dqn_f32 x, Dqn_f32 y)
{
Dqn_V2 result = Dqn_V2_InitNx2(x, y) * FP_Game_MetersToPixels(game);
return result;
}
static bool operator==(FP_GameEntityHandle const &lhs, FP_GameEntityHandle const &rhs)
{
bool result = lhs.id == rhs.id;
@@ -203,9 +233,9 @@ static FP_GameEntity *FP_Game_MakeEntityPointerFV(FP_Game *game, DQN_FMT_STRING_
result->handle.id = (game->entities.size - 1) & FP_GAME_ENTITY_HANDLE_INDEX_MASK;
}
result->size_scale = Dqn_V2_InitNx1(1);
result->parent = FP_Game_ActiveParentEntityPointer(game);
result->name = TELY_ChunkPool_AllocFmtFV(game->chunk_pool, fmt, args);
result->sprite_height.meters = 1;
result->parent = FP_Game_ActiveParentEntityPointer(game);
result->name = TELY_ChunkPool_AllocFmtFV(game->chunk_pool, fmt, args);
// NOTE: Attach entity as a child to the parent
FP_GameEntity *parent = result->parent;