diff --git a/src/weapon.c b/src/weapon.c index be52657..88832eb 100644 --- a/src/weapon.c +++ b/src/weapon.c @@ -115,7 +115,11 @@ static void think_seeker(Weapon* w, const double dt) { /* Ammo isn't locked on yet.. */ if(SDL_GetTicks() > (w->outfit->u.amm.lockon)) { - /*diff = angle_diff(w->solid->dir, vect_angle(&w->solid->pos, &p->solid->pos));*/ + diff = angle_diff(w->solid->dir, vect_angle(&w->solid->pos, &p->solid->pos)); + + /*diff = angle_diff(w->solid->dir, CollidePath(*&w->solid->pos, &w->solid->vel, + &p->solid->pos, &p->solid->vel, 0.01));*/ + w->solid->dir_vel = 10 * diff * w->outfit->u.amm.turn; /* Face the target. */ if(w->solid->dir_vel > w->outfit->u.amm.turn) @@ -166,7 +170,7 @@ static void think_smart(Weapon* w, const double dt) { w->solid->dir_vel = -w->outfit->u.amm.turn; } - vect_pset(&w->solid->force, w->outfit->u.amm.thrust, w->solid->dir); + vect_pset(&w->solid->vel, w->outfit->u.amm.speed, w->solid->dir); limit_speed(&w->solid->vel, w->outfit->u.amm.speed, dt);