From ed1704f9a110c9fa909dccb3169bf388f48279e4 Mon Sep 17 00:00:00 2001 From: nathansmithsmith Date: Sun, 16 Jul 2023 18:57:08 -0600 Subject: Chatgpt saved my ass again --- src/entities/mussolini.c | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'src/entities/mussolini.c') diff --git a/src/entities/mussolini.c b/src/entities/mussolini.c index 2770d2f..9ea54c7 100644 --- a/src/entities/mussolini.c +++ b/src/entities/mussolini.c @@ -1,32 +1,44 @@ #include "mussolini.h" #include "assets.h" #include "game.h" +#include "util.h" void initMussolini(Entity * entity, Game * game) { entity->model = &game->assets.models[MUSSOLINI_ASSET]; + + // PID configs. + PIDConfig stickPIDConfig = { + .kP = 0.5, + .kI = 0.0, + .kD = 0.0, + .angleMode = false, + .doClamp = false, + .min = 0.0, + .max = 0.0 + }; + + // Allocate data. + entity->data = KF_MALLOC(sizeof(Mussolini)); + + if (entity->data == NULL) { + ALLOCATION_ERROR; + return; + } + + Mussolini * data = (Mussolini*)entity->data; + data->xStickPID = createPID(stickPIDConfig); + data->yStickPID = createPID(stickPIDConfig); + data->zStickPID = createPID(stickPIDConfig); } void closeMussolini(Entity * entity) { + if (entity->data != NULL) + KF_FREE(entity->data); } void updateMussolini(Game * game, Entity * entity) { - Entity * player = getEntityFromWorld(game->world, 0); - - float pitch = Vector2Angle( - (Vector2){entity->position.y, entity->position.x}, - (Vector2){player->position.y, player->position.x} - ); - - float yaw = Vector2Angle( - (Vector2){entity->position.x, entity->position.z}, - (Vector2){player->position.x, player->position.z} - ); - - entity->rotation = QuaternionFromEuler( - pitch - (PI/2), - -(yaw - (PI/2)), - 0.0 - ); + Entity * ship = getEntityFromWorld(game->world, 0); + Mussolini * data = (Mussolini*)entity->data; } void drawMussolini(Game * game, Entity * entity) { -- cgit v1.2.3