From 8efa99463c2efa772fe7af2e65e6931d7c83e9d6 Mon Sep 17 00:00:00 2001 From: nathan Date: Fri, 19 Sep 2025 03:51:12 -0600 Subject: Samantha --- src/assets.c | 3 ++- src/assets.h | 5 +++-- src/entity.c | 20 +++++++------------- src/entity.h | 6 +++--- src/world.c | 7 ++++++- src/world.h | 2 +- 6 files changed, 22 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/assets.c b/src/assets.c index 4072988..c6efaeb 100644 --- a/src/assets.c +++ b/src/assets.c @@ -18,7 +18,8 @@ const char shaderAssetNames[SHADER_ASSET_COUNT][FT_NAMEMAX] = { }; const char modelAssetPaths[MODEL_ASSET_COUNT][FT_NAMEMAX] = { - "UtilityPole.obj" + "UtilityPole.obj", + "Samantha.obj" }; void initShaderAssets(Shader shaders[SHADER_ASSET_COUNT]) diff --git a/src/assets.h b/src/assets.h index de849b0..8404cd2 100644 --- a/src/assets.h +++ b/src/assets.h @@ -6,7 +6,7 @@ #define TEXTURE_ASSET_COUNT 5 #define IMAGE_ASSET_COUNT 1 #define SHADER_ASSET_COUNT 2 -#define MODEL_ASSET_COUNT 1 +#define MODEL_ASSET_COUNT 2 extern const char textureAssetPaths[TEXTURE_ASSET_COUNT][FT_NAMEMAX]; extern const char imageAssetPaths[IMAGE_ASSET_COUNT][FT_NAMEMAX]; @@ -37,7 +37,8 @@ enum { // Model asset ids. enum { - UTILITY_POLE_MODEL + UTILITY_POLE_MODEL, + SAMANTHA_MODEL }; typedef struct { diff --git a/src/entity.c b/src/entity.c index 711a701..8017de0 100644 --- a/src/entity.c +++ b/src/entity.c @@ -49,12 +49,10 @@ Entity createEntity(EntityId id, Vector3 position) }; break; - case SAMANTHAS_SPOT: + case SAMANTHA: entity.box = (BoundingBox){ - .min = (Vector3){-SAMANTHAS_SPOT_SIZE, -SAMANTHAS_SPOT_HEIGHT, - -SAMANTHAS_SPOT_SIZE}, - .max = (Vector3){SAMANTHAS_SPOT_SIZE, SAMANTHAS_SPOT_HEIGHT, - SAMANTHAS_SPOT_SIZE} + .min = (Vector3){-SAMANTHA_WIDTH, -SAMANTHA_HEIGHT, -SAMANTHA_WIDTH}, + .max = (Vector3){SAMANTHA_WIDTH, SAMANTHA_HEIGHT, SAMANTHA_WIDTH} }; break; @@ -70,7 +68,7 @@ Entity createEntity(EntityId id, Vector3 position) // TODO: Mesh instance the utility poles and make a 3d model void updateEntity(Entity* entity, Game* game) { - DrawBoundingBox(entity->box, RED); + // DrawBoundingBox(entity->box, RED); switch (entity->id) { @@ -99,13 +97,9 @@ void updateEntity(Entity* entity, Game* game) Vector3Add(entity->position, (Vector3){0.0, POND_HEIGHT * 2.0, 0.0}), (Vector2){POND_SIZE * 2.5, POND_SIZE * 2.5}, BLUE); break; - case UTILITY_POLE: - /* DrawCylinder(Vector3Subtract(entity->position, */ - /* (Vector3){0.0, UTILITY_POLE_HEIGHT}), */ - /* UTILITY_POLE_RADIUS, UTILITY_POLE_RADIUS, */ - /* UTILITY_POLE_HEIGHT * 2.0, 6, BROWN); */ - /* DrawModel(game->assets.models[UTILITY_POLE_MODEL], entity->position, 1.0, */ - /* BROWN); */ + case SAMANTHA: + DrawModel(game->assets.models[SAMANTHA_MODEL], entity->position, 1.0, + WHITE); break; default: break; diff --git a/src/entity.h b/src/entity.h index 4f673f9..3a2fd15 100644 --- a/src/entity.h +++ b/src/entity.h @@ -17,8 +17,8 @@ #define UTILITY_POLE_HEIGHT 100.0 #define UTILITY_POLE_RADIUS 3.0 -#define SAMANTHAS_SPOT_SIZE 20.0 -#define SAMANTHAS_SPOT_HEIGHT 5.0 +#define SAMANTHA_WIDTH 1.0 +#define SAMANTHA_HEIGHT 1.0 typedef int8_t EntityId; @@ -31,7 +31,7 @@ enum { FLOWER, POND, UTILITY_POLE, - SAMANTHAS_SPOT + SAMANTHA }; typedef struct { diff --git a/src/world.c b/src/world.c index bf486e3..026a5ed 100644 --- a/src/world.c +++ b/src/world.c @@ -674,9 +674,14 @@ World createWorld(Seed seed, const Assets* assets) // Items. start = end; - end = WORLD_ENTITY_MAX; + end = WORLD_ENTITY_MAX - 1; seed = generateWorldItems(&world, seed, start, end); + // Test Samantha. + Entity samantha = createEntity(SAMANTHA, Vector3Scale(world.size, 0.5)); + placeEntityOnGround(&samantha, &world); + world.entities[WORLD_ENTITY_MAX - 1] = samantha; + // Generate BVH. double currentTime = GetTime(); buildWorldBVH(&world); diff --git a/src/world.h b/src/world.h index 0cdaf30..9e5c4c4 100644 --- a/src/world.h +++ b/src/world.h @@ -5,7 +5,7 @@ #ifndef WORLD_H #define WORLD_H -#define WORLD_ENTITY_MAX 5000 +#define WORLD_ENTITY_MAX 5001 #define WORLD_PLANT_COUNT 2500 #define WORLD_UTILITY_POLE_COUNT 25 #define WORLD_PLACE_COUNT 1 -- cgit v1.2.3