From ed1704f9a110c9fa909dccb3169bf388f48279e4 Mon Sep 17 00:00:00 2001
From: nathansmithsmith <thenathansmithsmith@gmail.com>
Date: Sun, 16 Jul 2023 18:57:08 -0600
Subject: Chatgpt saved my ass again

---
 src/entities/soldato.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

(limited to 'src/entities/soldato.c')

diff --git a/src/entities/soldato.c b/src/entities/soldato.c
index da8df84..f19faa7 100644
--- a/src/entities/soldato.c
+++ b/src/entities/soldato.c
@@ -3,14 +3,27 @@
 
 void initSoldato(Entity * entity, Game * game) {
 	entity->model = &game->assets.models[SOLDATO_ASSET];
-	entity->velocity.angularVelocity = (AxisAngle){(Vector3){1.0, 1.0, 1.0}, 1.0};
 }
 
 void closeSoldato(Entity * entity) {
 }
 
 void updateSoldato(Game * game, Entity * entity) {
-	entityUpdateRotation(entity);
+	Entity * player = getEntityFromWorld(game->world, 0);
+
+	// Get direction.
+	Vector3 direction = Vector3Subtract(entity->position, player->position);
+	direction = Vector3Normalize(direction);
+
+	// Get look at and rotation.
+	Matrix matrix = MatrixLookAt(Vector3Zero(), direction, (Vector3){0, 1, 0});
+	Quaternion rotation = QuaternionFromMatrix(matrix);
+	rotation = QuaternionInvert(rotation);
+
+	entity->rotation = rotation;
+
+	entity->velocity.velocity = Vector3Scale(direction, -10.0);
+	entityUpdatePosition(entity);
 }
 
 void drawSoldato(Game * game, Entity * entity) {
-- 
cgit v1.2.3