?? symbolmgr_client.cpp
字號:
// SymbolMgr_Client.cpp: implementation of the CSymbolMgr_Client class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SymbolMgr_Client.h"
#include "Convert565to555.h"
#include "Hong_Sprite.h"
#include "Hong_Sub.h"
#include "MenuDef.h"
#include "TextOutMgr.h"
#include "Hangul.h"
#include "ItemTable.h"
#include "skill_lsw.h"
#include "CurrentMsgMgr.h"
#include "Menu.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern CSymbolMgr_Client g_SymBolMgr;
CSymbolMgr_Client::CSymbolMgr_Client()
{
memset(m_ItemSpr,0,sizeof(Spr) * SYMBOL_ITEM_MAX);
m_nGrade = 0;
m_vtSymbolList.reserve(SYMBOL_ITEM_MAX);
m_bTextItemMode = false;//soto-031031
m_bTextAbilliyMode = false;//soto-031031
m_bBeta = false;
m_nPutX = 634;
m_nPutY = 160;
}
CSymbolMgr_Client::~CSymbolMgr_Client()
{
DestroyAllObject();
}
void CSymbolMgr_Client::LoadItemImage()
{
FILE *fp;
char filename[MAX_FILENAME];
for(int num = 0; num < 23; num++ )
{
sprintf(filename, "./itemdata/110%02d00.csp", num+1 );
if( fp = Fopen(filename, "rb" ) )
{
fread( &m_ItemSpr[num].xl, sizeof( short ), 1, fp);
fread( &m_ItemSpr[num].yl, sizeof( short ), 1, fp);
fread( &m_ItemSpr[num].ox, sizeof( short ), 1, fp);
fread( &m_ItemSpr[num].oy, sizeof( short ), 1, fp);
fread( &m_ItemSpr[num].size, sizeof( unsigned int ), 1, fp);
MemFree( m_ItemSpr[num].img );
MemAlloc( m_ItemSpr[num].img, m_ItemSpr[num].size );
fread(m_ItemSpr[num].img, m_ItemSpr[num].size, 1, fp);
convert565to555( &m_ItemSpr[num] );
fclose(fp);
}
}
}
void CSymbolMgr_Client::DestroyAllObject()
{
for(int i = 0; i < SYMBOL_ITEM_MAX;i++)
{
if(m_ItemSpr[i].img)MemFree( m_ItemSpr[i].img );
}
}
void CSymbolMgr_Client::PutSymbolItem()
{
if(QuickItemAttr[5].item_no)//酒撈袍撈 糧犁且錠 嘛綽促.
{
m_nPutX = 634 + 10;
m_nPutY = 160 + 2;
PutCompressedImage( m_nPutX, m_nPutY, &m_ItemSpr[QuickItemAttr[5].item_no-1] );
}
}
void CSymbolMgr_Client::SetDualItem(int nItemNumber, int nLevel )
{
//老竄獰俊 歷厘等促.
QuickItemAttr[5].item_no = nItemNumber;
QuickItemAttr[5].attr[0] = nLevel;
m_nGrade = nLevel;
}
bool CSymbolMgr_Client::LoadTables()
{
FILE* fp = NULL;
char buf[1024] = {NULL,};
char* tok = NULL;
const char* token = "\t\n";
char strPathSymbolTxt[MAX_PATH] = "./Itemtable/Item_Symbol.txt";
char strPathSymbolBin[MAX_PATH] = "./Itemtable/Item_Symbol.Bin";
if(checkbeta == '1')
{ //< CSD-031030
m_bBeta = true;
} //> CSD-031030
else
{
m_bBeta = false;
}
fp = Fopen(strPathSymbolTxt,"rt");
if(fp)
{
m_bTextItemMode = true;
}
else
{
fp = Fopen(strPathSymbolBin,"rb");
if(fp)
{
m_bTextItemMode = false;
}
else
{
JustMsg(" 瀝焊俊 鞘夸茄 拳老撈 絕嚼聰促 \"./Itemtable/Item_Symbol.Bin\" ");
return false;
}
}
if(fp)
{
if(m_bTextItemMode)
{
int i = 0;
while(!feof(fp))
{
fgets(buf,1023,fp);
if(i > SYMBOL_ITEM_MAX - 1)break;
SYMBOL_ITEM Item; memset(&Item,0,sizeof(Item));
tok = strtok(buf,token); if(!tok)return false;
Item.nItemNumber = atoi(tok); tok = strtok(NULL,token); if(!tok)return false;
tok = strtok(NULL,token); if(!tok)return false;
strcpy(Item.strName,tok);tok = strtok(NULL,token); if(!tok)return false;
strcpy(Item.strHanName,tok); tok = strtok(NULL,token); if(!tok)return false;
Item.n1StClass = atoi(tok); tok = strtok(NULL,token); if(!tok)return false;
Item.n2ndClass = atoi(tok); tok = strtok(NULL,token); if(!tok)return false;
tok = strtok(NULL,token); if(!tok)return false;
tok = strtok(NULL,token); if(!tok)return false;
Item.nRare[0] = atoi(tok);tok = strtok(NULL,token); if(!tok)return false;
Item.nRare[1] = atoi(tok);tok = strtok(NULL,token); if(!tok)return false;
Item.nRare[2] = atoi(tok);tok = strtok(NULL,token); if(!tok)return false;
Item.nRare[3] = atoi(tok);tok = strtok(NULL,token); if(!tok)return false;
Item.nRare[4] = atoi(tok);
m_vtSymbolList.push_back(Item);
i++;
}
}
else //binary Mode
{
for(int i = 0;i < SYMBOL_ITEM_MAX;i++)
{
int nItemNumber = 0;char strName[65] = {NULL,};char strHanName[65] = {NULL,};
int n1StClass = 0,n2ndClass = 0;int nRare[5] = {0,};
SYMBOL_ITEM Item; memset(&Item,0,sizeof(Item));
int size = fread(&nItemNumber,sizeof(int),1,fp); Item.nItemNumber = nItemNumber;
size = fread(strName,sizeof(char),65,fp);strcpy(Item.strName,strName);
size = fread(strHanName,sizeof(char),65,fp);strcpy(Item.strHanName,strHanName);
size = fread(&n1StClass,sizeof(int),1,fp);Item.n1StClass = n1StClass;
size = fread(&n2ndClass,sizeof(int),1,fp);Item.n2ndClass = n2ndClass;
size = fread(nRare,sizeof(int),5,fp);memcpy(Item.nRare,nRare,sizeof(int)*5);
m_vtSymbolList.push_back(Item);
}
}
fclose(fp);
}
else // 拳老撈 絕促.
{
}
//i = 0;
fp = NULL;
for(int i = 0;i < SYMBOL_ATTR_COUNT - 1;i++)
{
VT_SYMBOL_RARE vtSymbolRare;
char szFileNameBeta[MAX_PATH] = {NULL,};
char szFileNameBetaTxt[MAX_PATH] = {NULL,};
char szFileName[MAX_PATH] = {NULL,};
char szFileNameTxt[MAX_PATH] = {NULL,};
//< CSD-031030
sprintf(szFileName,"./Itemtable/Item_Symbol_Ability%d.bin",i+1);
sprintf(szFileNameTxt,"./Itemtable/Item_Symbol_Ability%d.txt",i+1);
fp = Fopen(szFileNameTxt,"rt");
if(fp)
{
m_bTextAbilliyMode = true;
}
else
{
fp = Fopen(szFileName,"rb");
if(fp)
{
m_bTextAbilliyMode = false;
}
}
if(0 == i && NULL == fp)return false; //竅唱檔 絕欄擱..俊礬.
SYMBOL_RARE SymbolRare;memset(&SymbolRare,0,sizeof(SYMBOL_RARE));
if(fp)
{
if(m_bTextAbilliyMode)//咆膠飄葛靛.
{
while(!feof(fp))
{
if(!fgets(buf,1023,fp))break;
tok = strtok(buf,token);
for(int j = 0;j < SYMBOL_ITEM_MAX;j++)
{
if(tok == NULL)
{
fclose(fp);return false;
}
SymbolRare.anRare[j] = atoi(tok);
tok = strtok(NULL,token);
}
vtSymbolRare.push_back(SymbolRare);
}
}
else//官撈呈府 葛靛.
{
while(!feof(fp))
{
for(int j = 0;j < SYMBOL_ITEM_MAX;j++)
{
int num = 0;
fread(&num,sizeof(int),1,fp);
SymbolRare.anRare[j] = num;
}
vtSymbolRare.push_back(SymbolRare);
}
}
fclose(fp);
}
else
{
break;
}
m_vtRareValueList.push_back(vtSymbolRare);
}
SaveBinaryFiles();
return true;
}
void CSymbolMgr_Client::Explain(int nX, int nY)
{
const int nLineGab = DEFAULT_LINE_GAB;
int nGab = 0;
const int nWidth = TXT_BG_NORMAL_WIDTH;
if(QuickItemAttr[5].item_no && m_nGrade) //酒撈袍 逞滾啊 樂絹具 家瘤竅絆 樂綽巴撈促.
{
switch(m_nGrade) //弊飯撈靛俊 蝶扼 禍闌 官曹薦 樂促.
{
case 1:
TxtOut.Init(COLOR_BLUE,nWidth,5);
break;
case 2:
TxtOut.Init(COLOR_RED,nWidth,5);
break;
case 3:
TxtOut.Init(COLOR_GREEN,nWidth,5);
break;
case 4:
TxtOut.Init(COLOR_BROWN,nWidth,5);
break;
case 5:
TxtOut.Init(COLOR_BLACK,nWidth,5);
break;
}
TxtOut.PutTextHeaderBGImg(nX,nY,nWidth);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -