diff options
Diffstat (limited to 'src/player.c')
-rw-r--r-- | src/player.c | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/src/player.c b/src/player.c index 18d18bc..5b68f0a 100644 --- a/src/player.c +++ b/src/player.c @@ -18,37 +18,6 @@ Player createPlayer() }; } -// TODO: clean this all up -float getHeightOnMap(int x, int y, Model* map) -{ - int v = (y * 1023 + x) * 18; - float height = 0.0; - float c = 0.0; - - for (int n = 1; n < 18; n += 3) - { - height += map->meshes[0].vertices[v + n]; - ++c; - } - - return height / c; -} - -// TODO: subpixel hackery -// This is only for testing ideas. -void idkkk(Player* player, Game* game) -{ - Vector3 position = player->position; - Image* map = &game->assets.images[HEIGHT_MAP_IMAGE]; - - float toMapX = map->width / 1000.0; - float toMapY = map->height / 1000.0; - int pixelX = roundf(position.x * toMapX); - int pixelY = roundf(position.z * toMapY); - - player->position.y = getHeightOnMap(pixelX, pixelY, &game->heightmap) + 2.0; -} - // TODO: move magic numbers to settings void updatePlayer(Player* player, Game* game) { @@ -104,5 +73,6 @@ void updatePlayer(Player* player, Game* game) camera->position = player->position; camera->target = Vector3Add(player->position, player->direction); - idkkk(player, game); + player->position.y = getWorldHeightAtLocation(game->world, player->position.x, + player->position.z) + PLAYER_HEIGHT; } |