diff --git a/Sources/Plasma/NucleusLib/inc/plCreatableIndex.h b/Sources/Plasma/NucleusLib/inc/plCreatableIndex.h index a185eedc..4cb01771 100644 --- a/Sources/Plasma/NucleusLib/inc/plCreatableIndex.h +++ b/Sources/Plasma/NucleusLib/inc/plCreatableIndex.h @@ -951,6 +951,7 @@ CLASS_INDEX_LIST_START CLASS_INDEX(pfGameScoreListMsg), CLASS_INDEX(pfGameScoreTransferMsg), CLASS_INDEX(pfGameScoreUpdateMsg), + CLASS_INDEX(plLoadClothingMsg), CLASS_INDEX_LIST_END #endif // plCreatableIndex_inc diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp index 547182dd..2ebe613b 100644 --- a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp @@ -83,6 +83,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com #include "plMessage/plMemberUpdateMsg.h" #include "plMessage/plAvatarMsg.h" #include "plMessage/plAvCoopMsg.h" +#include "plMessage/plLoadClothingMsg.h" #include "pnMessage/plTimeMsg.h" #include "plStatusLog/plStatusLog.h" @@ -211,6 +212,11 @@ plKey plAvatarMgr::LoadAvatar(plString name, plString accountName, bool isPlayer { plUoid uID(loc, plSceneObject::Index(), name); plLoadAvatarMsg *cloneMsg = new plLoadAvatarMsg(uID, requestor, 0, isPlayer, spawnPoint, initialTask, userStr); + if (clothingFile.IsValid()) + { + plLoadClothingMsg *clothingMsg = new plLoadClothingMsg(clothingFile); + cloneMsg->SetTriggerMsg(clothingMsg); + } result = cloneMsg->GetCloneKey(); // the clone message is automatically addressed to the net client manager diff --git a/Sources/Plasma/PubUtilLib/plMessage/CMakeLists.txt b/Sources/Plasma/PubUtilLib/plMessage/CMakeLists.txt index 077f347f..848f0fbc 100644 --- a/Sources/Plasma/PubUtilLib/plMessage/CMakeLists.txt +++ b/Sources/Plasma/PubUtilLib/plMessage/CMakeLists.txt @@ -80,6 +80,7 @@ set(plMessage_HEADERS plLoadAgeMsg.h plLoadAvatarMsg.h plLoadCloneMsg.h + plLoadClothingMsg.h plLOSHitMsg.h plLOSRequestMsg.h plMatRefMsg.h diff --git a/Sources/Plasma/PubUtilLib/plMessage/plLoadClothingMsg.h b/Sources/Plasma/PubUtilLib/plMessage/plLoadClothingMsg.h new file mode 100644 index 00000000..cab22ede --- /dev/null +++ b/Sources/Plasma/PubUtilLib/plMessage/plLoadClothingMsg.h @@ -0,0 +1,67 @@ +/*==LICENSE==* + +CyanWorlds.com Engine - MMOG client, server and tools +Copyright (C) 2011 Cyan Worlds, Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +Additional permissions under GNU GPL version 3 section 7 + +If you modify this Program, or any covered work, by linking or +combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, +NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent +JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK +(or a modified version of those libraries), +containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, +PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG +JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the +licensors of this Program grant you additional +permission to convey the resulting work. Corresponding Source for a +non-source form of such a combination shall include the source code for +the parts of OpenSSL and IJG JPEG Library used as well as that of the covered +work. + +You can contact Cyan Worlds, Inc. by email legal@cyan.com + or by snail mail at: + Cyan Worlds, Inc. + 14617 N Newport Hwy + Mead, WA 99021 + +*==LICENSE==*/ + +#ifndef plLoadClothingMsg_INC +#define plLoadClothingMsg_INC + +#include "plFileSystem.h" +#include "pnMessage/plMessage.h" + +/** This message is sent when we want to load our clothing from a file. */ +class plLoadClothingMsg : public plMessage { +private: + plFileName fClothingFile; + +public: + plLoadClothingMsg() { } + plLoadClothingMsg(const plFileName& file) : fClothingFile(file) { } + + CLASSNAME_REGISTER(plLoadClothingMsg); + GETINTERFACE_ANY(plLoadClothingMsg, plMessage); + + void Read(hsStream*, hsResMgr*) { } + void Write(hsStream*, hsResMgr*) { } + + plFileName GetClothingFile() const { return fClothingFile; } +}; + +#endif // plLoadClothingMsg_INC diff --git a/Sources/Plasma/PubUtilLib/plMessage/plMessageCreatable.h b/Sources/Plasma/PubUtilLib/plMessage/plMessageCreatable.h index 812f998a..855e23cc 100644 --- a/Sources/Plasma/PubUtilLib/plMessage/plMessageCreatable.h +++ b/Sources/Plasma/PubUtilLib/plMessage/plMessageCreatable.h @@ -355,6 +355,9 @@ REGISTER_CREATABLE(plLoadCloneMsg); # include "plLoadAvatarMsg.h" REGISTER_CREATABLE(plLoadAvatarMsg); +#include "plLoadClothingMsg.h" +REGISTER_CREATABLE(plLoadClothingMsg); + # include "plAvCoopMsg.h" REGISTER_CREATABLE(plAvCoopMsg);