aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets.c3
-rw-r--r--src/assets.h5
-rw-r--r--src/entity.c20
-rw-r--r--src/entity.h6
-rw-r--r--src/world.c7
-rw-r--r--src/world.h2
6 files changed, 22 insertions, 21 deletions
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