1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-02 15:55:59 +00:00
oot/src/code/z_path.c

46 lines
938 B
C
Raw Normal View History

#include "global.h"
Path* Path_GetByIndex(PlayState* play, s16 index, s16 max) {
2020-03-23 20:19:24 +00:00
Path* path;
if (index != max) {
path = &play->pathList[index];
2020-03-23 20:19:24 +00:00
} else {
path = NULL;
}
return path;
}
2020-03-23 20:19:54 +00:00
f32 Path_OrientAndGetDistSq(Actor* actor, Path* path, s16 waypoint, s16* yaw) {
f32 dx;
f32 dz;
Vec3s* pointPos;
if (path == NULL) {
return -1.0;
}
pointPos = SEGMENTED_TO_VIRTUAL(path->points);
pointPos = &pointPos[waypoint];
dx = pointPos->x - actor->world.pos.x;
dz = pointPos->z - actor->world.pos.z;
2020-03-23 20:19:54 +00:00
*yaw = RAD_TO_BINANG(Math_FAtan2F(dx, dz));
2020-03-23 20:19:54 +00:00
return SQ(dx) + SQ(dz);
}
2020-03-23 20:20:30 +00:00
void Path_CopyLastPoint(Path* path, Vec3f* dest) {
Vec3s* pointPos;
if (path != NULL) {
pointPos = &((Vec3s*)SEGMENTED_TO_VIRTUAL(path->points))[path->count - 1];
dest->x = pointPos->x;
dest->y = pointPos->y;
dest->z = pointPos->z;
}
}