#if !defined(AFX_GAMEVIEW_H__70925A56_8BEE_424C_A99E_758CCC83F897__INCLUDED_)
#define AFX_GAMEVIEW_H__70925A56_8BEE_424C_A99E_758CCC83F897__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// GameView.h : header file
//

#include <Stuff\Stuff.hpp>
class ObjectManager;

/////////////////////////////////////////////////////////////////////////////
// CGameView frame

class CGameView : public CWnd
{
friend void UpdateThreadFun(void *);
protected:
	void UpdateDisplay();
// Attributes
public:
	CGameView(ObjectManager *objman,CWnd *parent);           // protected constructor used by dynamic creation
	virtual ~CGameView();

	// Operations
public:
	bool DisplayOff;
	bool InLogic;
	bool BadEngine;
	void FixDisplayWindow();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CGameView)
	protected:
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
	//}}AFX_VIRTUAL

// Implementation
protected:
	ObjectManager *ObjMan;
	CPoint OldPoint;


	CPoint GetInvalidStartPoint();

	void ZoomYaw(int x, int y);
	void PitchYaw(int x, int y);
	Stuff::Scalar SetAttribute_Absolute(int cur_value, int window_size, Stuff::Scalar min_value, Stuff::Scalar max_value);
	Stuff::Scalar SetAttribute_Rollover(Stuff::Scalar original_value, int cur_value, int start_value, int window_size, Stuff::Scalar min_value, Stuff::Scalar max_value);
	void SetNewYPR(const Stuff::YawPitchRange& ypr);

	CPoint m_ZoomYawOrigin;
	CPoint m_PitchYawOrigin;
	Stuff::YawPitchRange m_SavedYPR;

	// Generated message map functions
	//{{AFX_MSG(CGameView)
	afx_msg void OnPaint();
	afx_msg void OnFileClose();
	afx_msg void OnSetFocus(CWnd* pOldWnd);
	afx_msg void OnClose();
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_GAMEVIEW_H__70925A56_8BEE_424C_A99E_758CCC83F897__INCLUDED_)
