
/* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

	FILE	: FieldMenu.h

+ ------ Explanation of file --------------------------------------------------------------------------

+ _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ */

#include "Common.h"

#include "Renderer.h"
#include "CardData.h"
#include "Image2D.h"

#include "FieldMenu.h"

//! コンストラクタ
FieldMenu::FieldMenu()
{
	m_isCreate = false;
}

//! デストラクタ
FieldMenu::~FieldMenu()
{
	close();
}

//! 初期化
void FieldMenu::init(CardData* pCardData)
{
	m_pCardData = pCardData;
}

//! 生成
int FieldMenu::create(int set_x, int set_y, int set_w, int set_h)
{
	m_base.create(set_x, set_y, set_w, set_h, D3DXCOLOR(0.6f, 0.6f, 0.6f, 1.0f));

	m_pos.x = (float)set_x;
	m_pos.y = (float)set_y;

	m_isCreate = true;

	m_cardImg.init();
	m_cardImg.create(35, 23, 144, 200);
	m_cardImg.setTexture(0, TEXLOAD_SLEEVE1);

	return(TRUE);
}

//! 描画
void FieldMenu::draw(void)
{
	if(!m_isCreate) { return; }

	m_base.draw();

	m_cardImg.draw();
	for(int i = 0; i < FMENU_INFO_NUM; i++){
		m_text[i].draw();
	}
}

//! 終了処理
void FieldMenu::close(void)
{
	m_isCreate = false;
	m_base.close();
	m_cardImg.close();
}

//! カード情報更新
void FieldMenu::updateData(Card* card)
{
#define	COL(c)		(c >= 0 ? 0x00ff0000 : 0x0000ff00)
	if(card && card->m_reverse == CARD_FRONT){
		char text[1000];
		int top = 235;
		// カード画像
		wsprintf(text, TEXLOAD_CARD, SNtSS(HIWORD(card->m_ci.cardNo)), LOWORD(card->m_ci.cardNo));
		m_cardImg.setTexture(0, text);
		// シリーズ
		wsprintf(text,"%s-%03d", SNtSS(HIWORD(card->m_ci.cardNo)), LOWORD(card->m_ci.cardNo));
		m_text[FMENU_INFO_SERIES].create(text, 10, top, 290, top+15, 14);
		top += 35;
		// 名前
		m_text[FMENU_INFO_NAME].create(card->m_ci.name, 10, top, 290, top+15, 14);
		// 加算パワー
		top += 25;
		if(card->getAddPower() != 0){
			if(card->getAddPower() > 0){
				wsprintf(text, "+%5d", card->getAddPower());
			}else{
				wsprintf(text, "-%5d", abs(card->getAddPower()));
			}
		}else{
			wsprintf(text, "");
		}
		m_text[FMENU_INFO_ADD_POWER].create(text, 55, top, 150, top+15, 14, COL(card->getAddPower()));
		// パワー
		top += 15;
		wsprintf(text, "パワー:%5d", card->getSumPower());
		m_text[FMENU_INFO_POWER].create(text, 10, top, 120, top+15, 14);
		// ガード
		wsprintf(text, "ガード:%d", card->m_ci.guard);
		m_text[FMENU_INFO_GUARD].create(text, 130, top, 290, top+15, 14);
		// 加算レベル
		top += 20;
		if(card->getAddLevel() != 0){
			if(card->getAddLevel() > 0){
				wsprintf(text, "+%1d", card->getAddLevel());
			}else{
				wsprintf(text, "-%1d", abs(card->getAddLevel()));
			}
		}else{
			wsprintf(text, "");
		}
		m_text[FMENU_INFO_ADD_LEVEL].create(text, 55, top, 150, top+15, 14, COL(card->getAddLevel()));
		// 加算ストライク
		if(card->getAddStrike() != 0){
			if(card->getAddStrike() > 0){
				wsprintf(text, "+%1d", card->getAddStrike());
			}else{
				wsprintf(text, "-%1d", abs(card->getAddStrike()));
			}
		}else{
			wsprintf(text, "");
		}
		m_text[FMENU_INFO_ADD_STRIKE].create(text, 205, top, 290, top+15, 14, COL(card->getAddStrike()));
		// レベル
		top += 15;
		wsprintf(text, "レベル:%d", card->getSumLevel());
		m_text[FMENU_INFO_LEVEL	].create(text, 10, top, 120, top+15, 14);
		// ストライク
		wsprintf(text, "ストライク:%d", card->getSumStrike());
		m_text[FMENU_INFO_STRIKE].create(text, 130, top, 250, top+15, 14);
		// フレーム
		top += 35;
		switch(card->m_ci.frame){
			case FRAME_SIGMA:	wsprintf(text, "フレーム:Σ");	break;
			case FRAME_OMEGA:	wsprintf(text, "フレーム:Ω");	break;
			case FRAME_ALL:		wsprintf(text, "フレーム:∀");	break;
			case FRAME_NON:		wsprintf(text, "フレーム:");	break;
		}
		m_text[FMENU_INFO_FRAME].create(text, 10, top, 120, top+15, 14);
		// 効果説明
		top += 35;
		m_pCardData->getCardText(card->m_ci.serNo, text);
		m_text[FMENU_INFO_SKILL].create(text, 10, top, 280, MENU_H - 10, 14);
	}else{
		// カード無し
		if(card){
			if(card->m_ply == PLY_1P){
//				m_cardImg.m_pTexture = &renderer.m_pTexture[TEX_SLEEVE1];
				m_cardImg.setTexture(0, TEXLOAD_SLEEVE1);
			}else{
//				m_cardImg.m_pTexture = &renderer.m_pTexture[TEX_SLEEVE2];
				m_cardImg.setTexture(0, TEXLOAD_SLEEVE2);
			}
		}

		for(int i = 0; i < FMENU_INFO_NUM; i++){
			m_text[i].create("", 0, 0, 0, 0, 14);
		}
	}
#undef COL
}

//! カード情報更新
void FieldMenu::updateData(int cardNo)
{
	if(cardNo >= 0){
		CARD_INFO ci;
		m_pCardData->getCardData(cardNo, &ci);

		char text[1000];
		int top = 235;
		// カード画像
		wsprintf(text, TEXLOAD_CARD, SNtSS(HIWORD(ci.cardNo)), LOWORD(ci.cardNo));
		m_cardImg.setTexture(0, text);
		// 名前
		m_text[FMENU_INFO_NAME].create(ci.name, 10, top, 290, top+15, 14);
		// 加算パワー
		top += 25;
		wsprintf(text, "");
		m_text[FMENU_INFO_ADD_POWER].create(text, 55, top, 150, top+15, 14, 0x00ff0000);
		// パワー
		top += 15;
		wsprintf(text, "パワー:%5d", ci.power);
		m_text[FMENU_INFO_POWER].create(text, 10, top, 120, top+15, 14);
		// ガード
		wsprintf(text, "ガード:%d", ci.guard);
		m_text[FMENU_INFO_GUARD].create(text, 130, top, 290, top+15, 14);
		// 加算レベル
		top += 20;
		wsprintf(text, "");
		m_text[FMENU_INFO_ADD_LEVEL].create(text, 55, top, 150, top+15, 14, 0x00ff0000);
		// 加算ストライク
		wsprintf(text, "");
		m_text[FMENU_INFO_ADD_STRIKE].create(text, 205, top, 290, top+15, 14, 0x00ff0000);
		// レベル
		top += 15;
		wsprintf(text, "レベル:%d", ci.level);
		m_text[FMENU_INFO_LEVEL	].create(text, 10, top, 120, top+15, 14);
		// ストライク
		wsprintf(text, "ストライク:%d", ci.strike);
		m_text[FMENU_INFO_STRIKE].create(text, 130, top, 250, top+15, 14);
		// フレーム
		top += 35;
		switch(ci.frame){
			case FRAME_SIGMA:	wsprintf(text, "フレーム:Σ");	break;
			case FRAME_OMEGA:	wsprintf(text, "フレーム:Ω");	break;
			case FRAME_ALL:		wsprintf(text, "フレーム:∀");	break;
			case FRAME_NON:		wsprintf(text, "フレーム:");	break;
		}
		m_text[FMENU_INFO_FRAME].create(text, 10, top, 120, top+15, 14);
		// 効果説明
		top += 35;
		m_pCardData->getCardText(ci.serNo, text);
		m_text[FMENU_INFO_SKILL].create(text, 10, top, 280, MENU_H - 10, 14);
	}else{
		// カード無し
//		m_cardImg.m_pTexture = &renderer.m_pTexture[TEX_SLEEVE1];
		m_cardImg.setTexture(0, TEXLOAD_SLEEVE1);
		for(int i = 0; i < FMENU_INFO_NUM; i++){
			m_text[i].create("", 0, 0, 0, 0, 14);
		}
	}
}

