ohsp

Prototype for a game with dual thruster controls.
Log | Files | Refs | LICENSE

commit 0ee2f1c2c9939ddc83ee2f97126842e54c4622bc
parent b751c775026e8333e5f423958ee52c896e5eae71
Author: Amin Mesbah <mesbahamin@gmail.com>
Date:   Mon, 23 Oct 2017 22:02:26 -0700

Don't malloc when adding vectors

Diffstat:
Msrc/entity.c | 12++++++++----
Msrc/entity.h | 4++++
2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/entity.c b/src/entity.c @@ -1,5 +1,8 @@ #include "entity.h" +#include <math.h> +#include <stdio.h> + struct Vec2d vec2d_add(float angle1, float length1, float angle2, float length2) { @@ -7,8 +10,8 @@ struct Vec2d vec2d_add(float angle1, float length1, float angle2, float length2) float y = cosf(angle1) * length1 + cosf(angle2) * length2; struct Vec2d new_vec; - new_vec->angle = 0.5 * M_PI - atan2f(y, x); - new_vec->length = hypotf(x, y); + new_vec.angle = 0.5 * M_PI - atan2f(y, x); + new_vec.length = hypotf(x, y); return new_vec; } @@ -16,6 +19,7 @@ struct Vec2d vec2d_add(float angle1, float length1, float angle2, float length2) void entity_accelerate(struct Entity *e, float angle, float acceleration) { struct Vec2d new_vec = vec2d_add(e->angle, e->speed, angle, acceleration); - e->angle = new_vec->angle; - e->speed = new_vec->length; + //printf("(%f, %f)\n", new_vec.angle, new_vec.length); + e->angle = new_vec.angle; + e->speed = new_vec.length; } diff --git a/src/entity.h b/src/entity.h @@ -3,6 +3,10 @@ #include <stdint.h> +#ifndef M_PI +#define M_PI (3.14159265358979323846264338327950288) +#endif + struct Entity { float angle;