bool TexturePackList::LoadTexturePackListFromDir(const wxString& loadFrom) { wxString dir = loadFrom; if (dir.IsEmpty()) dir = GetDir(); bool listChanged = false; wxDir tpackDir(dir); if (!tpackDir.IsOpened()) { wxLogError(_("Failed to open directory: ") + dir); return false; } wxString currentFile; if (tpackDir.GetFirst(¤tFile)) { do { wxFileName tpPath(Path::Combine(dir, currentFile)); if (wxFileExists(tpPath.GetFullPath())) { TexturePack tpack(tpPath.GetFullPath()); push_back(tpack); listChanged = true; } } while (tpackDir.GetNext(¤tFile)); } return listChanged; }
void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p) { ServerPacket tpack(opcode, p); ServerPacket *pack = &tpack; Log(Logs::Detail, Logs::UCS_Server, "Received Opcode: %4X", opcode); switch (opcode) { case 0: { break; } case ServerOP_KeepAlive: { break; } case ServerOP_UCSMessage: { char *Buffer = (char *)pack->pBuffer; auto From = new char[strlen(Buffer) + 1]; VARSTRUCT_DECODE_STRING(From, Buffer); std::string Message = Buffer; Log(Logs::Detail, Logs::UCS_Server, "Player: %s, Sent Message: %s", From, Message.c_str()); Client *c = g_Clientlist->FindCharacter(From); safe_delete_array(From); if (Message.length() < 2) break; if (!c) { Log(Logs::Detail, Logs::UCS_Server, "Client not found."); break; } if (Message[0] == ';') { std::string new_message; switch (c->GetClientVersion()) { case EQEmu::versions::ClientVersion::Titanium: Client45ToServerSayLink(new_message, Message.substr(1, std::string::npos)); break; case EQEmu::versions::ClientVersion::SoF: case EQEmu::versions::ClientVersion::SoD: case EQEmu::versions::ClientVersion::UF: Client50ToServerSayLink(new_message, Message.substr(1, std::string::npos)); break; case EQEmu::versions::ClientVersion::RoF: Client55ToServerSayLink(new_message, Message.substr(1, std::string::npos)); break; case EQEmu::versions::ClientVersion::RoF2: default: new_message = Message.substr(1, std::string::npos); break; } c->SendChannelMessageByNumber(new_message); } else if (Message[0] == '[') { g_Clientlist->ProcessOPMailCommand(c, Message.substr(1, std::string::npos)); } break; } case ServerOP_UCSMailMessage: { ServerMailMessageHeader_Struct *mail = (ServerMailMessageHeader_Struct*)pack->pBuffer; database.SendMail(std::string("SOE.EQ.") + Config->ShortName + std::string(".") + std::string(mail->to), std::string(mail->from), mail->subject, mail->message, std::string()); break; } } }