Esempio n. 1
0
void SytJAL_SKILL::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (4 > buffersize)
        throw DecodeError();
    skill_id = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
  
    if (4 > buffersize)
        throw DecodeError();
    con_idx = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
  
    if (4 > buffersize)
        throw DecodeError();
    count = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
}
Esempio n. 2
0
void SytJAL_GENERAL_AWARD::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (2 > buffersize)
        throw DecodeError();
    index = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
  
    arraysize = buffersize;
    levelup_info.Decode(p, arraysize);
    p += (buffersize-arraysize);
    buffersize = arraysize;
  
    if (2 > buffersize)
        throw DecodeError();
    assist_index = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
  
    arraysize = buffersize;
    assist_levelup_info.Decode(p, arraysize);
    p += (buffersize-arraysize);
    buffersize = arraysize;
}
Esempio n. 3
0
void XJCMD_PROCESS_EVENTCS::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (1 > buffersize)
        throw DecodeError();
    arraysize = *p;
    --buffersize;
    ++p;
    //memset(&parameters, 0, sizeof(int)*MAX_NUM_EV_INT_PARAM);
    parameters_arraylen = 0;
    if (arraysize > MAX_NUM_EV_INT_PARAM) {
       throw DecodeError();
    }
  
    if (4 * arraysize > buffersize)
        throw DecodeError();
    for (unsigned int i=0; i<arraysize; ++i) {
        parameters[i] = CProto::n2h_32(p);
        buffersize -= 4;
        p += 4;
    }
    parameters_arraylen = arraysize;
}
Esempio n. 4
0
void	warnError (long errCode)
{
	if (errCode == -108)
		warnError (DecodeError (errCode)&_String(" Exiting..."));
	else
		WarnError (DecodeError (errCode)&_String(" Exiting..."));
}
Esempio n. 5
0
void ProtoBattleFightInfo::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (1 > buffersize)
        throw DecodeError();
    arraysize = *p;
    --buffersize;
    ++p;
    battle_array_id.clear();
  
    if (4 * arraysize > buffersize)
        throw DecodeError();
    battle_array_id.resize(arraysize);
    for (unsigned int i=0; i<arraysize; ++i) {
        battle_array_id.push_back(CProto::n2h_32(p));
        buffersize -= 4;
        p += 4;
    }
    if (1 > buffersize)
        throw DecodeError();
    super_element = *p;
    --buffersize;
    ++p;
}
Esempio n. 6
0
void SytEvSeq::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        if (1 > buffersize)
        throw DecodeError();
    level = *p;
    --buffersize;
    ++p;
  
    if (1 > buffersize)
        throw DecodeError();
    arraysize = *p;
    --buffersize;
    ++p;
    //memset(&seq, 0, sizeof(SytEvent)*MAX_NUM_EVENTS);
    seq_arraylen = 0;
    if (arraysize > MAX_NUM_EVENTS) {
       throw DecodeError();
    }
  
    for (unsigned int i=0; i<arraysize; ++i) {
        unsigned int buffersize2 = buffersize;
        seq[i].Decode(p, buffersize2);
        p += (buffersize - buffersize2);
        buffersize = buffersize2;
    }
    seq_arraylen = arraysize;
}
Esempio n. 7
0
void XJCMD_LEVEL_NEXTSC::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    SetDefault();

      
    if (2 > buffersize)
        throw DecodeError();
    retcode = static_cast<SytECode>(CProto::n2h_16(p));
    buffersize -= 2;
    p += 2;

	if (retcode == SYT_GOOD) {  
    arraysize = buffersize;
    ev_seq.Decode(p, arraysize);
    p += (buffersize-arraysize);
    buffersize = arraysize;
	}

	if (retcode == SYT_GOOD) {    if (1 > buffersize)
        throw DecodeError();
    firsttime = *p;
    --buffersize;
    ++p;
	}
}
Esempio n. 8
0
void stArtifice::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    SetDefault();

      
    if (2 > buffersize)
        throw DecodeError();
    general_id = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
    if (1 > buffersize)
        throw DecodeError();
    is_soul = *p;
    --buffersize;
    ++p;

	if (is_soul == 1) {  
    if (2 > buffersize)
        throw DecodeError();
    soul_num = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
	}
}
Esempio n. 9
0
void XJCMD_CSC_ENCHANTMENT_ARTIFICECS::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (2 > buffersize)
        throw DecodeError();
    arraysize = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
    //memset(&data, 0, sizeof(stArtifice)*MAX_USERGENERAL_NUM);
    data_arraylen = 0;
    if (arraysize > MAX_USERGENERAL_NUM) {
        throw DecodeError();
    }
  
    for (unsigned int i=0; i<arraysize; ++i) {
        unsigned int buffersize2 = buffersize;
        data[i].Decode(p, buffersize2);
        p += (buffersize - buffersize2);
        buffersize = buffersize2;
    }
    data_arraylen = arraysize;
}
Esempio n. 10
0
bool Registrar::SetRegValue(HKEY hRootKey, CStdString sSubKey, CStdString sValueName, CStdString sValue)
{
	CRegKey reg;
	bool bRetVal = false;
	LONG lRes =reg.Open(hRootKey, sSubKey, KEY_READ | KEY_WRITE);
	if (lRes == ERROR_SUCCESS)
	{	
		lRes = reg.SetStringValue(sValueName, sValue);
		
		if (lRes== ERROR_SUCCESS)
		{
			bRetVal = true;
		}
		else
		{
			CStdString sMsg(_T("Unable to set registry key with the following information"));
			sMsg += _T(" KEY: ") + sSubKey;
			sMsg += _T(" ValueName: ") + sValueName;
			sMsg += _T(" Value: ") + sValue;
			sMsg += _T(" Error: ") + DecodeError(lRes);
			LOG_WS_ERROR(sMsg.c_str());
		}

		reg.Close();
	}
	else
	{
		CStdString sMsg(_T("Unable to Open registry key with the following information"));
		sMsg += _T(" KEY: ") + sSubKey;
		sMsg += _T(" Error: ") + DecodeError(lRes);
		LOG_WS_ERROR(sMsg.c_str());
	}

	return bRetVal;
}
Esempio n. 11
0
void ProtoBattleGeneralInfo::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (4 > buffersize)
        throw DecodeError();
    id = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
  
    if (4 > buffersize)
        throw DecodeError();
    assist_id = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
    if (1 > buffersize)
        throw DecodeError();
    pos = *p;
    --buffersize;
    ++p;
  
    if (4 > buffersize)
        throw DecodeError();
    max_hp = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
}
Esempio n. 12
0
LPCTSTR SystemError::ErrorMessage(void) const {
	if (rErrorMsg.length() == 0) {
		const_cast<TString*>(&rErrorMsg)->assign(__DefErrorMsgBufferLen, NullWChar);
		DecodeError((TCHAR*)&rErrorMsg.front(), __DefErrorMsgBufferLen, ErrorCode);
		const_cast<TString*>(&rErrorMsg)->resize(wcslen(&rErrorMsg.front()));
	}
	return rErrorMsg.c_str();
}
void WSAErr(const char *Msg)
{
	LPVOID lpMsgBuf;

	lpMsgBuf = DecodeError(WSAGetLastError());
	fprintf(stderr, "%s: Socket error %d: %s\n", 
		Msg, WSAGetLastError(), lpMsgBuf);
	LocalFree(lpMsgBuf);
}
Esempio n. 14
0
			void Message::decode_body()
			{
				if (m_BodyData.size() != m_Header.BodySize)
				{
					throw DecodeError(DecodeError::Error_e::WrongBodySize);
				}

				m_Body.swap(m_BodyData);
			}
Esempio n. 15
0
void SytEvTCAwardItem::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (4 > buffersize)
        throw DecodeError();
    item_id = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
    if (1 > buffersize)
        throw DecodeError();
    count = *p;
    --buffersize;
    ++p;
}
Esempio n. 16
0
void ProtoBattleFightNode::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        if (1 > buffersize)
        throw DecodeError();
    type = *p;
    --buffersize;
    ++p;
  
    if (2 > buffersize)
        throw DecodeError();
    index = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
}
Esempio n. 17
0
void ProtoBattleJointAttackData::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (1 > buffersize)
        throw DecodeError();
    arraysize = *p;
    --buffersize;
    ++p;
    joint_pos.clear();
  
    if (arraysize > buffersize)
        throw DecodeError();
    joint_pos.resize(arraysize);
    memcpy(&joint_pos[0], p, arraysize*sizeof(char));
    joint_pos.setsize(arraysize);
    buffersize -= arraysize;
    p += arraysize;
  
    if (1 > buffersize)
        throw DecodeError();
    arraysize = *p;
    --buffersize;
    ++p;
    fly_pos.clear();
  
    if (arraysize > buffersize)
        throw DecodeError();
    fly_pos.resize(arraysize);
    memcpy(&fly_pos[0], p, arraysize*sizeof(char));
    fly_pos.setsize(arraysize);
    buffersize -= arraysize;
    p += arraysize;
  
    if (1 > buffersize)
        throw DecodeError();
    arraysize = *p;
    --buffersize;
    ++p;
    joint_rate.clear();
  
    if (arraysize > buffersize)
        throw DecodeError();
    joint_rate.resize(arraysize);
    memcpy(&joint_rate[0], p, arraysize*sizeof(char));
    joint_rate.setsize(arraysize);
    buffersize -= arraysize;
    p += arraysize;
  
    if (4 > buffersize)
        throw DecodeError();
    score = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
}
Esempio n. 18
0
void SytEvPveData::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (4 > buffersize)
        throw DecodeError();
    stage_id = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
  
    if (4 > buffersize)
        throw DecodeError();
    dialog_id = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
}
Esempio n. 19
0
void SytEvRandAwardData::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (4 > buffersize)
        throw DecodeError();
    money = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
  
    if (4 > buffersize)
        throw DecodeError();
    exp = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
}
Esempio n. 20
0
void __FormatCtxAndDecodeError(LPTSTR CtxBuffer, DWORD CtxBufLen, HMODULE Module,
							   LPTSTR ErrBuffer, DWORD ErrBufLen, DWORD ErrCode, ...) {
	va_list _va_list;
	va_start(_va_list, ErrCode);
	__try {
		_vsntprintf_s(CtxBuffer, CtxBufLen, _TRUNCATE, _T("%s:%d"), _va_list);
		DecodeError(Module, ErrBuffer, ErrBufLen, ErrCode, &_va_list);
	} __finally {
		va_end(_va_list);
	}
}
Esempio n. 21
0
void XJCMD_LEVEL_STARTCS::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    SetDefault();

      
    if (2 > buffersize)
        throw DecodeError();
    opt = static_cast<SytStartOpt>(CProto::n2h_16(p));
    buffersize -= 2;
    p += 2;

	if (opt == SytStartNew) {    if (1 > buffersize)
        throw DecodeError();
    jump_levels = *p;
    --buffersize;
    ++p;
	}
}
Esempio n. 22
0
void ProtoBattleTurnInfo::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        if (1 > buffersize)
        throw DecodeError();
    curr_turn = *p;
    --buffersize;
    ++p;
}
Esempio n. 23
0
void XJCMD_CSC_ENCHANTMENT_LEVELUPCS::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        if (1 > buffersize)
        throw DecodeError();
    enchantment_index = *p;
    --buffersize;
    ++p;
}
Esempio n. 24
0
void SytEvPvpData::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        if (1 > buffersize)
        throw DecodeError();
    reserved = *p;
    --buffersize;
    ++p;
}
Esempio n. 25
0
void stUserResData::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        int oldsize = buffersize; 
    int skiplen = 0;
  
    if (2 > buffersize)
        throw DecodeError();
    skiplen = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
  
    if (4 > buffersize)
        throw DecodeError();
    maxexp = CProto::n2h_32(p);
    buffersize -= 4;
    p += 4;
  
    if (2 > buffersize)
        throw DecodeError();
    maxenergy = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
  
    if (2 > buffersize)
        throw DecodeError();
    maxspirit = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;

    skiplen = skiplen - (oldsize - buffersize);
    if (skiplen>buffersize || skiplen < 0) throw DecodeError();
        else if (skiplen>0) {
            p += skiplen;
            buffersize -= skiplen;
        }
}
Esempio n. 26
0
void SytProgress::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

        if (1 > buffersize)
        throw DecodeError();
    level = *p;
    --buffersize;
    ++p;
    if (1 > buffersize)
        throw DecodeError();
    pve_index = *p;
    --buffersize;
    ++p;
    if (1 > buffersize)
        throw DecodeError();
    ev_index = *p;
    --buffersize;
    ++p;
}
Esempio n. 27
0
void XJCMD_CSC_CHANGEFACESC::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    

      
    if (2 > buffersize)
        throw DecodeError();
    newfaceid = CProto::n2h_16(p);
    buffersize -= 2;
    p += 2;
}
Esempio n. 28
0
void XJCMD_PROCESS_EVENTSC::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    SetDefault();

      
    if (2 > buffersize)
        throw DecodeError();
    retcode = static_cast<SytECode>(CProto::n2h_16(p));
    buffersize -= 2;
    p += 2;
}
Esempio n. 29
0
void XJCMD_QUERY_PROGRESSSC::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    SetDefault();

        if (1 > buffersize)
        throw DecodeError();
    firsttime = *p;
    --buffersize;
    ++p;
    if (1 > buffersize)
        throw DecodeError();
    levels_can_jump = *p;
    --buffersize;
    ++p;
    if (1 > buffersize)
        throw DecodeError();
    play_times = *p;
    --buffersize;
    ++p;
    if (1 > buffersize)
        throw DecodeError();
    max_play_times = *p;
    --buffersize;
    ++p;
    if (1 > buffersize)
        throw DecodeError();
    have_progress = *p;
    --buffersize;
    ++p;

	if (have_progress == 1) {  
    arraysize = buffersize;
    progress.Decode(p, arraysize);
    p += (buffersize-arraysize);
    buffersize = arraysize;
	}
}
Esempio n. 30
0
void XJCMD_LEVEL_STARTSC::Decode(const unsigned char *buffer,unsigned int& buffersize) throw (DecodeError)
{
    const unsigned char *p;
    p = buffer;
    SetDefault();

      
    if (2 > buffersize)
        throw DecodeError();
    retcode = static_cast<SytECode>(CProto::n2h_16(p));
    buffersize -= 2;
    p += 2;
    if (1 > buffersize)
        throw DecodeError();
    jump_levels = *p;
    --buffersize;
    ++p;

	if (retcode == SYT_GOOD) {  
    arraysize = buffersize;
    ev_seq.Decode(p, arraysize);
    p += (buffersize-arraysize);
    buffersize = arraysize;
	}

	if (jump_levels > 0 && (retcode == SYT_GOOD || retcode == SYT_ALL_LEVEL_FINISHED)) {  
    arraysize = buffersize;
    jump_award_list.Decode(p, arraysize);
    p += (buffersize-arraysize);
    buffersize = arraysize;
	}

	if (retcode == SYT_GOOD) {    if (1 > buffersize)
        throw DecodeError();
    firsttime = *p;
    --buffersize;
    ++p;
	}
}