Skip to content

Commit

Permalink
Engine: allow inverted DirectionRatio
Browse files Browse the repository at this point in the history
Having negative ratio will swap vertical loop selection (up/down), which is maybe suitable for "going down the hill" effects.
  • Loading branch information
ivan-mogilko committed Feb 14, 2024
1 parent 2c13e81 commit fe173ee
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions Engine/ac/character.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -329,15 +329,15 @@ enum DirectionalLoop
float GetFaceDirRatio(CharacterInfo *chinfo)
{
CharacterExtras &chex = charextra[chinfo->index_id];
if (chex.face_dir_ratio > 0.f)
if (chex.face_dir_ratio != 0.f)
return chex.face_dir_ratio;
// TODO: cache current area in CharacterExtras somewhere during early char update
int onarea = get_walkable_area_at_location(chinfo->x, chinfo->y);
if (onarea > 0 && thisroom.WalkAreas[onarea].FaceDirectionRatio > 0.f)
if (onarea > 0 && thisroom.WalkAreas[onarea].FaceDirectionRatio != 0.f)
return thisroom.WalkAreas[onarea].FaceDirectionRatio;
if (croom->face_dir_ratio > 0.f)
if (croom->face_dir_ratio != 0.f)
return croom->face_dir_ratio;
if (play.face_dir_ratio > 0.f)
if (play.face_dir_ratio != 0.f)
return play.face_dir_ratio;
return 1.f;
}
Expand All @@ -348,7 +348,7 @@ DirectionalLoop GetDirectionalLoop(CharacterInfo *chinfo, float x_diff, float y_

// TODO: cache this in CharacterExtras for bit more performance
float dir_ratio = GetFaceDirRatio(chinfo);
assert(dir_ratio > 0.f);
assert(dir_ratio != 0.f);
y_diff *= dir_ratio; // dir ratio is a y/x relation

const ViewStruct &chview = views[chinfo->view];
Expand Down

0 comments on commit fe173ee

Please sign in to comment.