aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornathan <nathansmith@disroot.org>2025-09-20 23:17:18 +0000
committernathan <nathansmith@disroot.org>2025-09-20 23:17:18 +0000
commitae9fea1a684d86ecfa7c8101f22a73b8099d0b78 (patch)
treed22bffdfc81397bbf4e01736d2fbf4e87794ea2e
parent07a21742993aaaf850c5211aaec0f922be5026b8 (diff)
downloadFindThings-ae9fea1a684d86ecfa7c8101f22a73b8099d0b78.tar.gz
FindThings-ae9fea1a684d86ecfa7c8101f22a73b8099d0b78.tar.bz2
FindThings-ae9fea1a684d86ecfa7c8101f22a73b8099d0b78.zip
Samantha has a cursed floor now
-rw-r--r--assets/images/SamanthaFloor.pngbin0 -> 9726 bytes
-rw-r--r--src/assets.c1
-rw-r--r--src/assets.h3
-rw-r--r--src/entity.c9
-rw-r--r--src/world.c15
-rw-r--r--src/world.h2
6 files changed, 25 insertions, 5 deletions
diff --git a/assets/images/SamanthaFloor.png b/assets/images/SamanthaFloor.png
new file mode 100644
index 0000000..591fa98
--- /dev/null
+++ b/assets/images/SamanthaFloor.png
Binary files differ
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;
};