diff options
author | nathan <nathansmith@disroot.org> | 2025-09-20 23:17:18 +0000 |
---|---|---|
committer | nathan <nathansmith@disroot.org> | 2025-09-20 23:17:18 +0000 |
commit | ae9fea1a684d86ecfa7c8101f22a73b8099d0b78 (patch) | |
tree | d22bffdfc81397bbf4e01736d2fbf4e87794ea2e | |
parent | 07a21742993aaaf850c5211aaec0f922be5026b8 (diff) | |
download | FindThings-ae9fea1a684d86ecfa7c8101f22a73b8099d0b78.tar.gz FindThings-ae9fea1a684d86ecfa7c8101f22a73b8099d0b78.tar.bz2 FindThings-ae9fea1a684d86ecfa7c8101f22a73b8099d0b78.zip |
Samantha has a cursed floor now
-rw-r--r-- | assets/images/SamanthaFloor.png | bin | 0 -> 9726 bytes | |||
-rw-r--r-- | src/assets.c | 1 | ||||
-rw-r--r-- | src/assets.h | 3 | ||||
-rw-r--r-- | src/entity.c | 9 | ||||
-rw-r--r-- | src/world.c | 15 | ||||
-rw-r--r-- | src/world.h | 2 |
6 files changed, 25 insertions, 5 deletions
diff --git a/assets/images/SamanthaFloor.png b/assets/images/SamanthaFloor.png Binary files differnew file mode 100644 index 0000000..591fa98 --- /dev/null +++ b/assets/images/SamanthaFloor.png diff --git a/src/assets.c b/src/assets.c index 3721025..c3db1ce 100644 --- a/src/assets.c +++ b/src/assets.c @@ -10,6 +10,7 @@ const char textureAssetPaths[TEXTURE_ASSET_COUNT][FT_NAMEMAX] = { "Samantha2.png", "Samantha3.png", "Samantha4.png", + "SamanthaFloor.png", "trashcan.png", "trash.png", "medicalTrash.png" diff --git a/src/assets.h b/src/assets.h index e01c649..81c56e3 100644 --- a/src/assets.h +++ b/src/assets.h @@ -3,7 +3,7 @@ #ifndef ASSETS_H #define ASSETS_H -#define TEXTURE_ASSET_COUNT 12 +#define TEXTURE_ASSET_COUNT 13 #define IMAGE_ASSET_COUNT 1 #define SHADER_ASSET_COUNT 2 #define MODEL_ASSET_COUNT 2 @@ -26,6 +26,7 @@ enum { SAMANTHA_2_TEXTURE, SAMANTHA_3_TEXTURE, SAMANTHA_4_TEXTURE, + SAMANTHA_FLOOR_TEXTURE, TRASHCAN_TEXTURE, TRASH_TEXTURE, MEDICAL_TRASH_TEXTURE diff --git a/src/entity.c b/src/entity.c index 3c17f5e..5515932 100644 --- a/src/entity.c +++ b/src/entity.c @@ -153,6 +153,12 @@ void updateEntity(Entity* entity, Game* game) case SAMANTHA: updateSamantha(entity, game); break; + case SAMANTHAS_SPOT: + DrawModel(game->world.samanthasSpotFloor, + Vector3Add(entity->position, + (Vector3){0.0, -SAMANTHAS_SPOT_HEIGHT + 0.01, 0.0}), + 1.0, WHITE); + break; case TRASHCAN: updateTrashcan(entity, game); break; @@ -161,7 +167,8 @@ void updateEntity(Entity* entity, Game* game) entity->position, TRASH_SCALE, WHITE); break; case MEDICAL_TRASH: - DrawBillboard(game->player.camera, game->assets.textures[MEDICAL_TRASH], + DrawBillboard(game->player.camera, + game->assets.textures[MEDICAL_TRASH_TEXTURE], entity->position, MEDICAL_TRASH_SCALE, WHITE); break; default: diff --git a/src/world.c b/src/world.c index ee465b2..b6fb9dc 100644 --- a/src/world.c +++ b/src/world.c @@ -485,8 +485,8 @@ Seed generatePond(World* world, Color* heightmap, WorldUID id, Seed seed) return seed; } -void generateWorldSamanthasPlace(World* world, Color* heightmap, - WorldUID* placeId) +void generateWorldSamanthasPlace(World* world, const Assets* assets, + Color* heightmap, WorldUID* placeId) { // Make area flat. float width = SAMANTHAS_SPOT_SIZE * (WORLD_IMAGE_WIDTH / world->size.x) @@ -544,6 +544,14 @@ void generateWorldSamanthasPlace(World* world, Color* heightmap, trashPosition.x += (float)(SAMANTHAS_SPOT_SIZE * 2.0) / SAMANTHAS_SPOT_TRASH_COUNT; } + + // Floor. + Mesh floor = GenMeshPlane(SAMANTHAS_SPOT_SIZE * 2.0, + SAMANTHAS_SPOT_SIZE * 2.0, + 2, 2); + world->samanthasSpotFloor = LoadModelFromMesh(floor); + world->samanthasSpotFloor.materials[0].maps[MATERIAL_MAP_DIFFUSE] + .texture = assets->textures[SAMANTHA_FLOOR_TEXTURE]; } Seed generateWorldPlants(World* world, Seed seed, int start, int end) @@ -734,7 +742,7 @@ World createWorld(Seed seed, const Assets* assets) world.places[0] = placeId; ++placeId; - generateWorldSamanthasPlace(&world, colors, &placeId); + generateWorldSamanthasPlace(&world, assets, colors, &placeId); // Heightmap model. image = (Image){ @@ -856,6 +864,7 @@ void freeWorld(World world) UnloadTexture( world.heightmap.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture); UnloadModel(world.heightmap); + UnloadModel(world.samanthasSpotFloor); freeWorldBVH(world.bvh); } diff --git a/src/world.h b/src/world.h index 8b12d54..456d68a 100644 --- a/src/world.h +++ b/src/world.h @@ -76,6 +76,8 @@ struct World { Matrix utilityPoleTransforms[WORLD_UTILITY_POLE_COUNT]; UtilityPoleLines utilityPoleLines[WORLD_UTILITY_POLE_COUNT - 1]; + Model samanthasSpotFloor; + int bvhDebugSelect; }; |