Skip to content

Commit

Permalink
Fixed: "Automap rotation angle smoothing" (see here http://sourceforg…
Browse files Browse the repository at this point in the history
  • Loading branch information
danij-deng committed Nov 9, 2009
1 parent df2b4a8 commit fc10e28
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
4 changes: 2 additions & 2 deletions doomsday/plugins/common/src/am_map.c
Expand Up @@ -786,7 +786,7 @@ void AM_Open(automapid_t id, boolean yes, boolean fast)

/* $unifiedangles */
if(map->rotate)
angle = mo->angle / (float) ANGLE_MAX * -360 - 90;
angle = (mo->angle - ANGLE_90) / (float) ANGLE_MAX * 360;
else
angle = 0;
Automap_SetViewAngleTarget(map, angle);
Expand Down Expand Up @@ -1837,7 +1837,7 @@ static void mapTicker(automap_t* map)

/* $unifiedangles */
if(map->rotate)
angle = mo->angle / (float) ANGLE_MAX * 360 - 90;
angle = (mo->angle - ANGLE_90) / (float) ANGLE_MAX * 360;
else
angle = 0;
Automap_SetViewAngleTarget(map, angle);
Expand Down
10 changes: 6 additions & 4 deletions doomsday/plugins/common/src/p_automap.c
Expand Up @@ -230,9 +230,7 @@ void Automap_RunTic(automap_t* map)
}
else
{
float diff;
float startAngle = map->oldAngle;
float endAngle = map->targetAngle;
float diff, startAngle = map->oldAngle, endAngle = map->targetAngle;

if(endAngle > startAngle)
{
Expand All @@ -248,6 +246,10 @@ void Automap_RunTic(automap_t* map)
}

map->angle = LERP(startAngle, endAngle, map->angleTimer);
if(map->angle < 0)
map->angle += 360;
else if(map->angle > 360)
map->angle -= 360;
}

//
Expand Down Expand Up @@ -482,7 +484,7 @@ void Automap_SetViewAngleTarget(automap_t* map, float angle)
return;

map->oldAngle = map->angle;
map->targetAngle = angle;
map->targetAngle = MINMAX_OF(0, angle, 359.9999f);

// Restart the timer.
map->angleTimer = 0;
Expand Down

0 comments on commit fc10e28

Please sign in to comment.