// GM - [2020-06-22 11:41:46]
#ifndef _GM_H_
#define _GM_H_

#include "CPlayer.h"

//0015B0A4
void GM_CheckGoalSide();

//0015B340
void GM_CalcPlayerDist();

//0015B7C8
void GM_IsOnPitch(TPoint);

//0015B7F8
void GM_SwapInt(int &, int &);

//0015B804
int GM_CalcGoalDist(TPoint, int);

//0016E0BC
void GM_GetRotPowerTrajectory(TPoint3D, int *, int *, int *);

//0016E108
void GM_GetVecFromRotPowerTrajectory(TPoint3D *, int, int, int);

//00171E50
void GM_DeflectBallFromDribbler(CPlayer *, int *);

//00178C7C
int GM_CheckInterception(CPlayer *, int, int, int);

//00178D3C
void GM_CheckInterceptionPos(CPlayer *, int, int, TPoint *);

//00179170
void GM_CheckInterceptionX(CPlayer *, int);

//0017918C
void GM_CalcPlayerBallInterceptions();

//00179A44
int GM_GetPlayerNearestPoint(int, TPoint, int, int *);

//00179AD0
int GM_GetPlayerNearestPoint(int, TPoint, int *);

//00179B60
void GM_GetPlayerNearestPointF(int, TPoint, int, int, int);

//00179BE0
void GM_GetPlayerNearestPointFX(int, TPoint, bool *, int, int, int, int);

//00179C80
void GM_GetPlayerNearestPointRange(int, TPoint, bool *, int, int);

//00179F90
void GM_GetLineIntersectWeighted(TPoint, TPoint, TPoint, int, int, int *, int *);

//0017A04C
void GM_GetPlayerFutureNearestLineWeighted(int, int, bool *, TPoint3D, TPoint3D, int, int, int *, int *);

//0017A24C
int GM_GetPlayerFutureNearestLine(int, CPlayer *, TPoint, TPoint, int *, int *);

//0017A340
void GM_GetPlayerTotalSpace(int, int);

//0017A510
void GM_GetPointSpace(int, TPoint);

//0017A558
void GM_GetPlayerSpaceRot(CPlayer *, int, int, int);

//0017A744
void GM_DistanceSq(TPoint const *, TPoint const *);

//0017A76A
void GM_Distance(TPoint const *, TPoint const *);

//0017A796
int GM_Distance3D(TPoint3D const *, TPoint3D const *);

//0017A7DA
void GM_PlayerLimitDistancePos(CPlayer *, TPoint, int);

//0017A810
void GM_PlayerLimitDistance(CPlayer *, int);

//0017A858
void GM_PlayerLimitDistancePosPol(CPlayer *, TPoint, int, int);

//0017A898
void GM_SetBestPointSpace(int, TPoint *, int, int);

//0017A9EC
void GM_PointIsBetweenPoints(TPoint, TPoint, TPoint, int);

//0017AA3A
void GM_TendAngle(int, int);

//0017AA88
float GM_BlendAngleF(float, float, float);

//0017AB34
float GM_BlendAngleAroundF(float, float, float, float);

//0017ABC8
int  GM_BlendAngle(int, int, int);

extern int GM_iInterceptScale[513];

#endif  //_GM_H_