aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--assets/models/Samantha.obj268
-rw-r--r--blender/Samantha/Samantha.blendbin532024 -> 532024 bytes
-rw-r--r--src/entity.c2
-rw-r--r--src/entity.h6
-rw-r--r--src/player.c2
-rw-r--r--src/player.h1
-rw-r--r--src/world.c35
-rw-r--r--src/world.h6
8 files changed, 177 insertions, 143 deletions
diff --git a/assets/models/Samantha.obj b/assets/models/Samantha.obj
index d426447..0c4f655 100644
--- a/assets/models/Samantha.obj
+++ b/assets/models/Samantha.obj
@@ -2,140 +2,140 @@
# www.blender.org
mtllib Samantha.mtl
o Samantha
-v -2.863373 -14.157234 -0.355840
-v -2.349221 -5.359383 -0.355841
-v -2.081541 -14.157234 0.020670
-v -1.567390 -5.359383 0.020669
-v -1.888445 -14.157234 0.866681
-v -1.374293 -5.359383 0.866680
-v -2.429489 -14.157234 1.545129
-v -1.915337 -5.359383 1.545128
-v -3.297256 -14.157234 1.545129
-v -2.783105 -5.359383 1.545128
-v -3.838300 -14.157234 0.866681
-v -3.324149 -5.359383 0.866680
-v -3.645204 -14.157234 0.020670
-v -3.131053 -5.359383 0.020669
-v 2.922748 -14.157233 -0.355840
-v 2.408597 -5.359383 -0.355841
-v 2.140916 -14.157233 0.020670
-v 1.626765 -5.359383 0.020669
-v 1.947820 -14.157233 0.866681
-v 1.433669 -5.359383 0.866680
-v 2.488864 -14.157233 1.545129
-v 1.974713 -5.359383 1.545128
-v 3.356632 -14.157233 1.545129
-v 2.842480 -5.359383 1.545128
-v 3.897676 -14.157233 0.866681
-v 3.383524 -5.359383 0.866680
-v 3.704579 -14.157233 0.020670
-v 3.190428 -5.359383 0.020669
-v -11.791010 1.172762 -0.300737
-v -5.552674 2.323848 -0.300737
-v -11.791010 0.434014 0.055025
-v -5.552674 1.585099 0.055025
-v -11.791010 0.251558 0.854417
-v -5.552674 1.402643 0.854417
-v -11.791010 0.762788 1.495479
-v -5.552674 1.913873 1.495479
-v -11.791010 1.582737 1.495479
-v -5.552674 2.733823 1.495479
-v -11.791010 2.093967 0.854417
-v -5.552674 3.245053 0.854417
-v -11.791010 1.911512 0.055025
-v -5.552674 3.062597 0.055025
-v 11.850384 1.172763 -0.300737
-v 5.612050 2.323848 -0.300737
-v 11.850384 0.434014 0.055026
-v 5.612050 1.585099 0.055025
-v 11.850384 0.251558 0.854417
-v 5.612050 1.402643 0.854417
-v 11.850384 0.762788 1.495479
-v 5.612050 1.913873 1.495479
-v 11.850384 1.582737 1.495479
-v 5.612050 2.733822 1.495479
-v 11.850384 2.093967 0.854417
-v 5.612050 3.245053 0.854417
-v 11.850384 1.911511 0.055026
-v 5.612050 3.062597 0.055025
-v 0.029688 -7.104691 0.644158
-v 4.752262 -2.942080 4.075269
-v -1.774140 -2.942083 6.195863
-v -5.807724 -2.942051 0.644158
-v -1.774140 -2.942083 -4.907547
-v 4.752262 -2.942080 -2.786952
-v 1.833516 3.793329 6.195863
-v -4.692886 3.793327 4.075269
-v -4.692886 3.793327 -2.786952
-v 1.833516 3.793329 -4.907547
-v 5.867101 3.793297 0.644158
-v 0.029688 7.955938 0.644158
-v -1.030567 -5.980072 3.907343
-v 2.805528 -5.980070 2.660900
-v 1.745284 -3.533347 5.924118
-v 5.581384 -3.533334 0.644158
-v 2.805528 -5.980070 -1.372584
-v -3.401452 -5.980051 0.644158
-v -4.461734 -3.533336 3.907354
-v -1.030567 -5.980072 -2.619027
-v -4.461734 -3.533336 -2.619038
-v 1.745284 -3.533347 -4.635801
-v 6.236703 0.425623 2.660908
-v 6.236703 0.425623 -1.372592
-v 0.029688 0.425623 7.170590
-v 3.865831 0.425623 5.924151
-v -6.177327 0.425623 2.660908
-v -3.806455 0.425623 5.924151
-v -3.806455 0.425623 -4.635835
-v -6.177327 0.425623 -1.372592
-v 3.865831 0.425623 -4.635835
-v 0.029688 0.425623 -5.882274
-v 4.521110 4.384582 3.907354
-v -1.685908 4.384593 5.924118
-v -5.522008 4.384580 0.644158
-v -1.685908 4.384593 -4.635801
-v 4.521110 4.384582 -2.619038
-v 1.089943 6.831318 3.907343
-v 3.460828 6.831298 0.644158
-v -2.746152 6.831317 2.660900
-v -2.746152 6.831317 -1.372584
-v 1.089943 6.831318 -2.619027
-v -2.670608 0.903497 -2.952394
-v -0.833544 2.306899 -1.617704
-v -3.372290 2.306899 -0.792803
-v -4.941360 2.306899 -2.952394
-v -3.372290 2.306899 -5.111984
-v -0.833544 2.306899 -4.287083
-v -1.968926 4.577663 -0.792803
-v -4.507671 4.577663 -1.617704
-v -4.507671 4.577663 -4.287083
-v -1.968926 4.577663 -5.111984
-v -0.399857 4.577663 -2.952394
-v -2.670608 5.981065 -2.952394
-v 2.729983 0.903497 -2.952394
-v 0.892920 2.306898 -1.617704
-v 3.431665 2.306898 -0.792803
-v 5.000735 2.306898 -2.952394
-v 3.431665 2.306898 -5.111984
-v 0.892920 2.306898 -4.287083
-v 2.028302 4.577663 -0.792803
-v 4.567047 4.577663 -1.617704
-v 4.567047 4.577663 -4.287083
-v 2.028302 4.577663 -5.111984
-v 0.459232 4.577663 -2.952394
-v 2.729983 5.981064 -2.952394
-v -0.301825 6.250576 0.644159
-v 2.639737 8.497746 2.781303
-v -1.425379 8.497746 4.102160
-v -3.937821 8.497746 0.644159
-v -1.425379 8.497746 -2.813843
-v 2.639737 8.497746 -1.492986
-v 0.821729 12.133762 4.102160
-v -3.243387 12.133762 2.781303
-v -3.243387 12.133762 -1.492986
-v 0.821729 12.133762 -2.813843
-v 3.334171 12.133762 0.644159
-v -0.301825 14.380932 0.644159
+v -0.429506 -2.123588 -0.053376
+v -0.352383 -0.803908 -0.053376
+v -0.312231 -2.123588 0.003101
+v -0.235109 -0.803908 0.003100
+v -0.283267 -2.123588 0.130002
+v -0.206144 -0.803908 0.130002
+v -0.364423 -2.123588 0.231769
+v -0.287301 -0.803908 0.231769
+v -0.494589 -2.123588 0.231769
+v -0.417466 -0.803908 0.231769
+v -0.575745 -2.123588 0.130002
+v -0.498623 -0.803908 0.130002
+v -0.546781 -2.123588 0.003101
+v -0.469658 -0.803908 0.003100
+v 0.438412 -2.123587 -0.053376
+v 0.361290 -0.803908 -0.053376
+v 0.321138 -2.123587 0.003101
+v 0.244015 -0.803908 0.003100
+v 0.292173 -2.123587 0.130002
+v 0.215050 -0.803908 0.130002
+v 0.373330 -2.123587 0.231769
+v 0.296207 -0.803908 0.231769
+v 0.503495 -2.123587 0.231769
+v 0.426372 -0.803908 0.231769
+v 0.584651 -2.123587 0.130002
+v 0.507529 -0.803908 0.130002
+v 0.555687 -2.123587 0.003101
+v 0.478564 -0.803908 0.003100
+v -1.768652 0.175915 -0.045111
+v -0.832901 0.348578 -0.045111
+v -1.768652 0.065102 0.008254
+v -0.832901 0.237765 0.008254
+v -1.768652 0.037734 0.128163
+v -0.832901 0.210397 0.128163
+v -1.768652 0.114418 0.224322
+v -0.832901 0.287081 0.224322
+v -1.768652 0.237411 0.224322
+v -0.832901 0.410074 0.224322
+v -1.768652 0.314095 0.128163
+v -0.832901 0.486758 0.128163
+v -1.768652 0.286727 0.008254
+v -0.832901 0.459390 0.008254
+v 1.777558 0.175915 -0.045111
+v 0.841808 0.348578 -0.045111
+v 1.777558 0.065102 0.008254
+v 0.841808 0.237765 0.008254
+v 1.777558 0.037734 0.128163
+v 0.841808 0.210397 0.128163
+v 1.777558 0.114418 0.224322
+v 0.841808 0.287081 0.224322
+v 1.777558 0.237411 0.224322
+v 0.841808 0.410074 0.224322
+v 1.777558 0.314095 0.128163
+v 0.841808 0.486758 0.128163
+v 1.777558 0.286727 0.008254
+v 0.841808 0.459390 0.008254
+v 0.004453 -1.065705 0.096624
+v 0.712840 -0.441313 0.611290
+v -0.266121 -0.441313 0.929380
+v -0.871159 -0.441308 0.096624
+v -0.266121 -0.441313 -0.736132
+v 0.712840 -0.441313 -0.418043
+v 0.275027 0.569000 0.929380
+v -0.703933 0.569000 0.611290
+v -0.703933 0.569000 -0.418043
+v 0.275027 0.569000 -0.736132
+v 0.880065 0.568995 0.096624
+v 0.004453 1.193392 0.096624
+v -0.154585 -0.897012 0.586102
+v 0.420829 -0.897012 0.399135
+v 0.261793 -0.530003 0.888618
+v 0.837208 -0.530001 0.096624
+v 0.420829 -0.897012 -0.205888
+v -0.510218 -0.897009 0.096624
+v -0.669260 -0.530001 0.586103
+v -0.154585 -0.897012 -0.392854
+v -0.669260 -0.530001 -0.392856
+v 0.261793 -0.530003 -0.695370
+v 0.935506 0.063844 0.399136
+v 0.935506 0.063844 -0.205889
+v 0.004453 0.063844 1.075589
+v 0.579875 0.063844 0.888623
+v -0.926599 0.063844 0.399136
+v -0.570968 0.063844 0.888623
+v -0.570968 0.063844 -0.695375
+v -0.926599 0.063844 -0.205889
+v 0.579875 0.063844 -0.695375
+v 0.004453 0.063844 -0.882341
+v 0.678167 0.657688 0.586103
+v -0.252886 0.657690 0.888618
+v -0.828301 0.657688 0.096624
+v -0.252886 0.657690 -0.695370
+v 0.678167 0.657688 -0.392856
+v 0.163492 1.024699 0.586102
+v 0.519124 1.024696 0.096624
+v -0.411923 1.024699 0.399135
+v -0.411923 1.024699 -0.205888
+v 0.163492 1.024699 -0.392854
+v -0.400591 0.135525 -0.442859
+v -0.125032 0.346035 -0.242656
+v -0.505844 0.346035 -0.118920
+v -0.741204 0.346035 -0.442859
+v -0.505844 0.346035 -0.766798
+v -0.125032 0.346035 -0.643063
+v -0.295339 0.686650 -0.118920
+v -0.676151 0.686650 -0.242656
+v -0.676151 0.686650 -0.643063
+v -0.295339 0.686650 -0.766798
+v -0.059978 0.686650 -0.442859
+v -0.400591 0.897161 -0.442859
+v 0.409498 0.135525 -0.442859
+v 0.133938 0.346035 -0.242656
+v 0.514750 0.346035 -0.118920
+v 0.750111 0.346035 -0.442859
+v 0.514750 0.346035 -0.766798
+v 0.133938 0.346035 -0.643063
+v 0.304245 0.686650 -0.118920
+v 0.685057 0.686650 -0.242656
+v 0.685057 0.686650 -0.643063
+v 0.304245 0.686650 -0.766798
+v 0.068885 0.686650 -0.442859
+v 0.409498 0.897161 -0.442859
+v -0.045274 0.937587 0.096624
+v 0.395961 1.274663 0.417196
+v -0.213807 1.274663 0.615324
+v -0.590673 1.274663 0.096624
+v -0.213807 1.274663 -0.422077
+v 0.395961 1.274663 -0.223948
+v 0.123259 1.820066 0.615324
+v -0.486508 1.820066 0.417196
+v -0.486508 1.820066 -0.223948
+v 0.123259 1.820066 -0.422077
+v 0.500126 1.820066 0.096624
+v -0.045274 2.157142 0.096624
vn -0.0126 -0.6209 -0.7838
vn 0.0126 0.6209 -0.7838
vn 0.5970 -0.6382 -0.4862
diff --git a/blender/Samantha/Samantha.blend b/blender/Samantha/Samantha.blend
index 1513358..693a1d6 100644
--- a/blender/Samantha/Samantha.blend
+++ b/blender/Samantha/Samantha.blend
Binary files differ
diff --git a/src/entity.c b/src/entity.c
index b7548be..18e44aa 100644
--- a/src/entity.c
+++ b/src/entity.c
@@ -66,7 +66,7 @@ Entity createEntity(EntityId id, Vector3 position)
void updateEntity(Entity* entity, Game* game)
{
- DrawBoundingBox(entity->box, RED);
+ //DrawBoundingBox(entity->box, RED);
switch (entity->id)
{
diff --git a/src/entity.h b/src/entity.h
index aaf0e82..7779bca 100644
--- a/src/entity.h
+++ b/src/entity.h
@@ -17,9 +17,9 @@
#define UTILITY_POLE_HEIGHT 100.0
#define UTILITY_POLE_RADIUS 3.0
-#define SAMANTHA_WIDTH 23.6414/2.0
-#define SAMANTHA_HEIGHT 28.5382/2.0
-#define SAMANTHA_THICKNESS 13.0529/2.0
+#define SAMANTHA_WIDTH 3.54621/2.0
+#define SAMANTHA_HEIGHT 4.28073/2.0
+#define SAMANTHA_THICKNESS 1.95793/2.0
#define SAMANTHA_STATIC_SPEED 24
#define SAMANTHA_STATIC_FRAMES 4
diff --git a/src/player.c b/src/player.c
index 64bdce6..417c7e1 100644
--- a/src/player.c
+++ b/src/player.c
@@ -71,7 +71,7 @@ void updatePlayer(Player* player, Game* game)
player->velocity.x += -sinf(cameraAngle->x + (PI / 2.0));
}
- player->velocity = Vector3Scale(player->velocity, 60.0);
+ player->velocity = Vector3Scale(player->velocity, PLAYER_SPEED);
// Apply velocity.
player->position = Vector3Add(
diff --git a/src/player.h b/src/player.h
index 0bd664e..9bc049f 100644
--- a/src/player.h
+++ b/src/player.h
@@ -4,6 +4,7 @@
#define PLAYER_H
#define PLAYER_HEIGHT 2.0
+#define PLAYER_SPEED 10.0
typedef struct {
Vector3 position;
diff --git a/src/world.c b/src/world.c
index 82ee6da..c7c34d5 100644
--- a/src/world.c
+++ b/src/world.c
@@ -485,10 +485,16 @@ Seed generatePond(World* world, Color* heightmap, WorldUID id, Seed seed)
return seed;
}
-// TODO: get this mother fucker done in a sane amount of time
-Seed generateWorldSamanthasPlace(World* world, Seed seed, int spotIndex)
+void generateWorldSamanthasPlace(World* world, Color* heightmap)
{
- return seed;
+ Rectangle area = (Rectangle){
+ .x = WORLD_IMAGE_WIDTH / 2.0 - PLACE_SAMANTHAS_SPOT_SIZE / 2.0,
+ .y = WORLD_IMAGE_HEIGHT / 2.0 - PLACE_SAMANTHAS_SPOT_SIZE / 2.0,
+ .width = PLACE_SAMANTHAS_SPOT_SIZE,
+ .height = PLACE_SAMANTHAS_SPOT_SIZE
+ };
+
+ averageOutAreaWorld(world, heightmap, area);
}
Seed generateWorldPlants(World* world, Seed seed, int start, int end)
@@ -653,6 +659,18 @@ Texture generateGroundTexture()
return texture;
}
+Seed generateWorldCharacters(World* world, Seed seed, int index)
+{
+ // Create samantha.
+ Entity samantha = createEntity(
+ SAMANTHA,
+ Vector3Add(Vector3Scale(world->size, 0.5), SAMANTHA_OFFSET));
+ placeEntityOnGround(&samantha, world);
+ world->entities[index] = samantha;
+
+ return seed;
+}
+
World createWorld(Seed seed, const Assets* assets)
{
World world;
@@ -668,9 +686,13 @@ World createWorld(Seed seed, const Assets* assets)
// Places.
WorldUID placeId = 0;
+
+ // Pond.
seed = generatePond(&world, colors, placeId, seed);
world.places[0] = placeId;
+ generateWorldSamanthasPlace(&world, colors);
+
// Heightmap model.
image = (Image){
.data = colors,
@@ -705,9 +727,14 @@ World createWorld(Seed seed, const Assets* assets)
end = WORLD_UTILITY_POLE_COUNT + start;
seed = generateWorldUtilityPoles(&world, assets, seed, start, end);
+ // Characters.
+ start = end;
+ end = WORLD_CHARACTER_COUNT + start;
+ seed = generateWorldCharacters(&world, seed, start);
+
// Items.
start = end;
- end = WORLD_ENTITY_MAX - 1;
+ end = WORLD_ENTITY_MAX;
seed = generateWorldItems(&world, seed, start, end);
// Generate BVH.
diff --git a/src/world.h b/src/world.h
index 9e5c4c4..338f935 100644
--- a/src/world.h
+++ b/src/world.h
@@ -31,6 +31,12 @@
#define PLACE_POND_OUTER_AREA 25
#define PLACE_POND_WALKING_AREA 7
+// Characters.
+#define WORLD_CHARACTER_COUNT 1
+
+#define PLACE_SAMANTHAS_SPOT_SIZE 10
+#define SAMANTHA_OFFSET (Vector3){0.0, 0.0, 2.0}
+
// UID for anything in the world.
typedef int16_t WorldUID;
typedef int Seed;