Untitled
unknown
c_cpp
2 years ago
4.1 kB
8
Indexable
void __thiscall CLogin::OnWorldInformation(CLogin *this, CInPacket *iPacket) { CLogin *v2; // ebp CInPacket *v3; // esi int v4; // ebx CInPacket *v5; // eax CLogin::WORLDITEM *v6; // edi const ZXString<char> *v7; // eax const ZXString<char> *v8; // eax unsigned __int8 v9; // al int v10; // ebx ZArray<CLogin::CHANNELITEM> *p_ci; // ebp CLogin::CHANNELITEM *v12; // edi const ZXString<char> *v13; // eax int m_nBalloonCount; // eax const ZXString<char> *v15; // eax CLogin::BALLOON *v16; // eax int nY; // ecx bool v18; // cc ZXString<char> result; // [esp+18h] [ebp-1Ch] BYREF CLogin::BALLOON baTemp; // [esp+1Ch] [ebp-18h] BYREF int v22; // [esp+30h] [ebp-4h] v2 = this; v3 = iPacket; v4 = (char)CInPacket::Decode1(iPacket); if ( v4 >= 0 ) { v6 = ZArray<CLogin::WORLDITEM>::InsertBefore(&v2->m_WorldItem, -1); v6->nWorldID = v4; v7 = CInPacket::DecodeStr(v3, (ZXString<char> *)&iPacket); ZXString<char>::operator=(&v6->sName, v7); v22 = -1; if ( iPacket ) ZXString<char>::_Release((ZXString<char>::_ZXStringData *)&iPacket[-1].m_uLength); v6->nWorldState = CInPacket::Decode1(v3); v8 = CInPacket::DecodeStr(v3, (ZXString<char> *)&iPacket); ZXString<char>::operator=(&v6->sWorldEventDesc, v8); v22 = -1; if ( iPacket ) ZXString<char>::_Release((ZXString<char>::_ZXStringData *)&iPacket[-1].m_uLength); v6->nWorldEventEXP_WSE = CInPacket::Decode2(v3); v6->nWorldEventDrop_WSE = CInPacket::Decode2(v3); v6->nBlockCharCreation = CInPacket::Decode1(v3); v9 = CInPacket::Decode1(v3); v10 = v9; if ( v9 ) { p_ci = &v6->ci; do { v12 = ZArray<CLogin::CHANNELITEM>::InsertBefore(p_ci, -1); v13 = CInPacket::DecodeStr(v3, (ZXString<char> *)&iPacket); ZXString<char>::operator=(&v12->sName, v13); v22 = -1; if ( iPacket ) ZXString<char>::_Release((ZXString<char>::_ZXStringData *)&iPacket[-1].m_uLength); v12->nUserNo = CInPacket::Decode4(v3); v12->nWorldID = CInPacket::Decode1(v3); v12->nChannelID = CInPacket::Decode1(v3); --v10; v12->bAdultChannel = CInPacket::Decode1(v3); } while ( v10 > 0 ); v2 = this; } v2->m_nBalloonCount = CInPacket::Decode2(v3); ZArray<CLogin::BALLOON>::RemoveAll(&v2->m_aBalloon); m_nBalloonCount = v2->m_nBalloonCount; if ( m_nBalloonCount ) { iPacket = 0; if ( m_nBalloonCount > 0 ) { do { baTemp.sMessage._m_pStr = 0; v22 = 4; baTemp.nX = CInPacket::Decode2(v3); baTemp.nY = CInPacket::Decode2(v3); v15 = CInPacket::DecodeStr(v3, &result); LOBYTE(v22) = 5; ZXString<char>::operator=(&baTemp.sMessage, v15); LOBYTE(v22) = 4; if ( result._m_pStr ) ZXString<char>::_Release((ZXString<char>::_ZXStringData *)result._m_pStr - 1); v16 = ZArray<CLogin::BALLOON>::InsertBefore(&v2->m_aBalloon, -1); nY = baTemp.nY; v16->nX = baTemp.nX; v16->nY = nY; ZXString<char>::operator=(&v16->sMessage, &baTemp.sMessage); v22 = -1; if ( baTemp.sMessage._m_pStr ) ZXString<char>::_Release((ZXString<char>::_ZXStringData *)baTemp.sMessage._m_pStr - 1); v18 = (int)&iPacket->m_bLoopback + 1 < v2->m_nBalloonCount; iPacket = (CInPacket *)((char *)iPacket + 1); } while ( v18 ); } } } else if ( TSingleton<CUIWorldSelect>::ms_pInstance ) { CUIWorldSelect::DrawWorldItems(TSingleton<CUIWorldSelect>::ms_pInstance); CLogin::ChangeStep(v2, 1); } else { v5 = (CInPacket *)ZAllocEx<ZAllocAnonSelector>::Alloc(&ZAllocEx<ZAllocAnonSelector>::_s_alloc, 0x1D8u); iPacket = v5; v22 = 0; if ( v5 ) CUIWorldSelect::CUIWorldSelect((CUIWorldSelect *)v5, v2); v22 = -1; CLogin::ChangeStep(v2, 1); } }
Editor is loading...