/***********************************************************************
*Copyright (c)2012 , 天际边工作室
*All rights reserved.
**
文件名称：	MagicList.cpp
*摘要：		游戏主地图类
**
*修改历史：
*	版本    日期     作者     改动内容和原因
*   ----------------------------------------------------
*	1.0    2012-10-5  wstjb     基本的功能完成
***********************************************************************/

#include "MagicList.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

extern  PAINTSTRUCT ps;
extern 	HDC hdc;
extern 	HBITMAP hbmp; 
extern 	HBITMAP hbmp2; 
extern 	BITMAP bmp;
extern 	HDC hdcMem;
extern 	HDC hdcTmp;
extern 	RECT rect;
extern 	HWND hwnd;
extern  int color;
extern  int flag;

extern int KeyReturn;
extern int KeyEsc;
extern int KeyHome;
extern int KeySpace;
extern int KeyLeft0;
extern int KeyUp0;
extern int KeyRight0;
extern int KeyDown0;

extern byte resByte[2731][16384];//存储lib资源
extern int resByteLen[2731];
extern int resPos[2731][6];//存储lib地址和编号 第六位为长度
extern int resCount;

/***********************************************************************
 * 说明:     MagicList类初始化函数
 * 输入参数: int num——用于设定君主等信息，由君主选择传值过来
 * 返回值  : 无
 * 功能	   : 初始化
 * 修改历史:
 *               姓名            日期             说明
 *             ------          ----------      -------------
 *             wstjb          2012-10-5       完成基本功能
***********************************************************************/
int MagicList::Init(int idx)
{
	int ret = 0;
	exLearned = 0;
	if(idx==0||idx==255)//20170115修正
	{
		idx=255;
		this->no = 0;//编号
		this->magicCount = 0;
		return 0;
	}
	int resnum = GetResNum(RES_MLR,1,idx);
	if(resnum == -1)return -1;
	
	this->no = idx;//编号
	this->magicCount = resByte[resnum][2];
	int j = 3;
	for (int i = 0;i < magicCount ;i++)
	{
		magicType[i] = resByte[resnum][j];
		magicIdx[i] = resByte[resnum][j+1];
		j+=2;
		//magic[i] = new Magic();
		ret = magic[i].Init(magicType[i],magicIdx[i]);
		if(ret == -1)
		{
			break;
		}
	}
	return 0;
}

/***********************************************************************
 * 说明:     MagicList类显示函数
 * 输入参数: WPARAM KeyCode——按键信息，用于控制地图移动与对应的显示
 * 返回值  : 无
 * 功能	   : 显示地图及相关界面
 * 修改历史:
 *               姓名            日期             说明
 *             ------          ----------      -------------
 *             wstjb          2012-10-5       完成基本功能
***********************************************************************/
void MagicList::Show(WPARAM KeyCode)
{

}

/***********************************************************************
 * 说明:     MagicList类按键函数
 * 输入参数: WPARAM KeyCode——按键信息，用于确定当前的城市
 * 返回值  : 无
 * 功能	   : 处理当前类的按键信息
 * 修改历史:
 *               姓名            日期             说明
 *             ------          ----------      -------------
 *             wstjb          2012-10-5       完成基本功能
 *			   wstjb			2012-10-20		增加功能
***********************************************************************/
int MagicList::KeyDown(WPARAM KeyCode)
{
	
	return 0;
}


void MagicList::Add(int type,int idx,int pos)
{
	wlogfile(1, __FUNCTION__ ,"type=",type);
	wlogfile(1, __FUNCTION__ ,"idx=",idx);
	wlogfile(1, __FUNCTION__ ,"pos=",pos);
	//add应该是插入
	for(int i = magicCount ; i > pos ;i--)
	{
		magic[i] = magic[i-1];
	}
	magic[pos].Init(type,idx);
	magicCount ++;
}