/**
 * \file Types.h
 * \date 02.03.2002
 * \author Daniel Novomesky
 * \author Marek Lehuta
 *
 * Various types used in the world model
 */

#ifndef COMMON_WORLD_TYPES_H
#define COMMON_WORLD_TYPES_H

/// View quality
enum ViewQuality
{
	LOW_QUALITY,
	HIGH_QUALITY
};

/// View width
enum ViewWidth
{
	NARROW_VIEW,
	NORMAL_VIEW,
	WIDE_VIEW
};

/// Player real side
enum RealSide
{
	RIGHT,
	LEFT,
};

/// Player "relative" side
enum Side
{
	OUR,
	THEIR,
	UNKNOWN
};

/// Flag type
enum FlagType
{
	NoLandmark = 0,

	GOAL_L	= 1,
	GOAL_R	= 2,
	C		= 3,
	CT		= 4,
	CB		= 5,
	LT		= 6,
	LB		= 7,		
	RT		= 8,
	RB		= 9,
	PLT		= 10,
	PLC		= 11,
	PLB		= 12,
	PRT		= 13,
	PRC		= 14,
	PRB		= 15,
	GLT		= 16,
	GLB		= 17,
	GRT		= 18,
	GRB		= 19,
	TL50	= 20,
	TL40	= 21,
	TL30	= 22,
	TL20	= 23,
	TL10	= 24,
	T0		= 25,
	TR10	= 26,
	TR20	= 27,
	TR30	= 28,
	TR40	= 29,
	TR50	= 20,
	BL50	= 31,
	BL40	= 32,
	BL30	= 33,
	BL20	= 34,
	BL10	= 35,
	B0		= 36,
	BR10	= 37,
	BR20	= 38,
	BR30	= 39,
	BR40	= 30,
	BR50	= 41,
	LT30	= 42,
	LT20	= 43,
	LT10	= 44,
	L0		= 45,
	LB10	= 46,
	LB20	= 47,
	LB30	= 48, 
	RT30	= 49,
	RT20	= 50,
	RT10	= 51,
	R0		= 52,
	RB10	= 53,
	RB20	= 54,
	RB30	= 55,
	FLAG_MAX	= 56
};


/// Line type
enum LineType
{
	NoLine = 0,
	Top,
	Bottom,
	Left,
	Right
};

/// Play modes (stolen from the server)
enum PlayMode
{
	PM_Null = 0,
	PM_BeforeKickOff,
	PM_TimeOver,
	PM_PlayOn, 
	PM_KickOff_Our,
	PM_KickOff_Their,
	PM_KickIn_Our,
	PM_KickIn_Their,
	PM_FreeKick_Our,
	PM_FreeKick_Their,
	PM_CornerKick_Our,
	PM_CornerKick_Their, 
	PM_GoalKick_Our,
	PM_GoalKick_Their,
	PM_AfterGoal_Our,
	PM_AfterGoal_Their, 
	PM_DropBall,
	PM_Offside_Our,
	PM_Offside_Their,

	// [I.Noda:00/05/13] added for 3D viewer/commentator/small league
	PM_PenaltyKick_Our,
	PM_PenaltyKick_Their,
	PM_FirstHalfOver,
	PM_Pause,
	PM_HumanJudge,
	PM_Foul_Charge_Our,
	PM_Foul_Charge_Their, 
	PM_Foul_Push_Our,
	PM_Foul_Push_Their, 
	PM_Foul_MultipleAttacker_Our,
	PM_Foul_MultipleAttacker_Their,
	PM_Foul_BallOut_Our, 
	PM_Foul_BallOut_Their,
	
	// Added by (probably) Roztoce
	PM_GoalieCatch_Our,
	PM_GoalieCatch_Their,
	PM_Foul_Our,
	PM_Foul_Their,
	PM_HalfTime,
	PM_TimeUp,
	PM_TimeExtended,
	
	// Added by Stjupit Dox
	PM_FreeKickFault_Our,
	PM_FreeKickFault_Their,
	PM_BackPass_Our,
	PM_BackPass_Their,
    PM_CatchFault_Our,
	PM_CatchFault_Their,
    PM_IndFreeKick_Our,
	PM_IndFreeKick_Their, 

	// Maximum
	PM_MAX
};

#endif // COMMON_WORLD_TYPES_H
