//@STATE=作成中
//@DESCRIPTION ---------------------------------------------------------------
// character.cpp: Character クラスのインプリメンテーション
//	履歴：
// $Log: character.cpp,v $
// Revision 1.1  2001/10/28 21:40:37  fujiwara
// DLLに分割
//
// Revision 1.5  2001/07/01 21:30:35  fujiwara
// メモリリークチェック見直し
//
// Revision 1.4  2001/07/01 01:03:45  fujiwara
// const の見直し
// 配置エディタは途中経過
//
// Revision 1.3  2001/05/13 20:04:24  fujiwara
// メモリーリークが発生したので取り除く。
// 自弾のサウンドテスト
//
// Revision 1.2  2001/05/12 00:51:09  fujiwara
// ＣＶＳを導入し、ログ表示を追加
//
//@DESCRIPTION_END -----------------------------------------------------------
//@AUTHOR=S.F.
// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
///////////////////////////////////////////////////////////////////////////////

// メモリーリーク検出用
#include "sfdebug.h"

// System Includes //

#include <string>

// Project Includes //

#include "system.h"
#include "Console.h"
#include "stdio.h"
#include "math.h"
#include "character.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// 構築/消滅
//////////////////////////////////////////////////////////////////////

using namespace sf::application;

Character::Character()
{

}

Character::~Character()
{

}

const float Util::calcDirection(const float x1,const float y1,const float x2,const float y2)
{
	float return_ =  (float)atan2((double)(y2 - y1),(double)(x2 - x1));
	
	if(return_ < 0.0f)
		return_ = 2.0f * sf::system::PI + return_;
	
	return return_;
}

const bool Util::checkArea(const float x,const float y,sf::system::console::sprite::Sprite *  const pSprite)
{
	using namespace sf::system::console;
	float x1 = x + pSprite->centerX();
	float y1 = y + pSprite->centerY();
	
	float wh = pSprite->width() / 2.0f;
	float hh = pSprite->width() / 2.0f;

	if(	x1 < (viewport::X - wh) ||
		x1 > (viewport::X + viewport::WIDTH + wh) ||
		y1 < (viewport::Y - hh) ||
		y1 > (viewport::Y + viewport::HEIGHT + hh))
		return true;
	return false;		
}

const bool Util::checkArea(const float x,const float y,const float width,const float height)
{
	using namespace sf::system::console;
	if(	x < (viewport::X - width) || 
		x > (viewport::X + viewport::WIDTH + width) ||
		y < (viewport::Y - height) ||
		y > (viewport::Y + viewport::HEIGHT + height))
		return true;
	return false;
}
