diff --git a/Sources/Plasma/Apps/plClient/CMakeLists.txt b/Sources/Plasma/Apps/plClient/CMakeLists.txt
index e5d9ef41..d6faa923 100644
--- a/Sources/Plasma/Apps/plClient/CMakeLists.txt
+++ b/Sources/Plasma/Apps/plClient/CMakeLists.txt
@@ -87,6 +87,7 @@ target_link_libraries(plClient pfPython)
target_link_libraries(plClient pfSurface)
target_link_libraries(plClient plAgeDescription)
target_link_libraries(plClient plAgeLoader)
+target_link_libraries(plClient plAnimation)
target_link_libraries(plClient plAudible)
target_link_libraries(plClient plAudio)
target_link_libraries(plClient plAudioCore)
diff --git a/Sources/Plasma/Apps/plClient/plClient.cpp b/Sources/Plasma/Apps/plClient/plClient.cpp
index f3dbaf56..70f2a358 100644
--- a/Sources/Plasma/Apps/plClient/plClient.cpp
+++ b/Sources/Plasma/Apps/plClient/plClient.cpp
@@ -140,7 +140,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pfJournalBook/pfJournalBook.h"
-#include "plAvatar/plAGAnimInstance.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plAgeLoader/plAgeLoader.h"
#include "plQuality.h"
diff --git a/Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp b/Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp
index 2d965a03..ac122d3a 100644
--- a/Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp
+++ b/Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp
@@ -46,9 +46,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnSceneObject/plSceneObject.h"
#include "plSurface/hsGMaterial.h"
#include "plSurface/plLayerAnimation.h"
-#include "plAvatar/plAGMasterMod.h"
-#include "plAvatar/plAGAnimInstance.h"
-#include "plAvatar/plAGAnim.h"
+#include "plAnimation/plAGMasterMod.h"
+#include "plAnimation/plAGAnimInstance.h"
+#include "plAnimation/plAGAnim.h"
#include "plResMgr/plKeyFinder.h"
#include "plPipeline/plDebugText.h"
diff --git a/Sources/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp b/Sources/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp
index 23d1191a..e4707b73 100644
--- a/Sources/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp
+++ b/Sources/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp
@@ -76,11 +76,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvatar/plAvatarMgr.h"
#include "plAvatar/plSeekPointMod.h"
#include "plAvatar/plOneShotMod.h"
-#include "plAvatar/plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plAvatar/plAvBrainUser.h"
#include "plAvatar/plAvBrainHuman.h"
#include "plAvatar/plNPCSpawnMod.h"
-#include "plAvatar/plAGAnimInstance.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plAvatar/plArmatureEffects.h"
#include "plAvatar/plAvTaskSeek.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp
index 36b4f430..6f02e33c 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp
@@ -56,7 +56,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp
index 6c302ce8..a033dc48 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp
@@ -56,7 +56,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp
index e3e9a785..61d4a5c3 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp
@@ -58,7 +58,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp
index d79d4a22..ccbe8d64 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp
@@ -52,7 +52,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plInputCore/plInputInterface.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp
index 59014757..78fe87a0 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp
@@ -56,7 +56,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plGImage/plDynamicTextMap.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp
index 24bca699..942f684c 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp
@@ -54,9 +54,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-// #include "plAvatar/plAGModifier.h"
-#include "plAvatar/plAGMasterMod.h"
-#include "plAvatar/plAGAnimInstance.h"
+// #include "plAnimation/plAGModifier.h"
+#include "plAnimation/plAGMasterMod.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plSurface/plLayerAnimation.h"
#include "pnSceneObject/plSceneObject.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp
index 8ae40e98..695761ca 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp
@@ -56,7 +56,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plGImage/plDynamicTextMap.h"
#include "plInputCore/plInputInterface.h"
#include "plgDispatch.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp
index aa6b8c6b..fc3d6b17 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp
@@ -56,7 +56,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plGImage/plDynamicTextMap.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp
index 027f36cf..b9df2a83 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp
@@ -55,9 +55,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
#include "plMessage/plTimerCallbackMsg.h"
-// #include "plAvatar/plAGModifier.h"
-#include "plAvatar/plAGMasterMod.h"
-#include "plAvatar/plAGAnimInstance.h"
+// #include "plAnimation/plAGModifier.h"
+#include "plAnimation/plAGMasterMod.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plSurface/plLayerAnimation.h"
#include "pnSceneObject/plSceneObject.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp
index 1b5c5347..79141a2f 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp
@@ -52,7 +52,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plGImage/plDynamicTextMap.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp
index 40b42e50..0bc77cc3 100644
--- a/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp
+++ b/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp
@@ -54,7 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnMessage/plRefMsg.h"
#include "pfMessage/pfGameGUIMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plgDispatch.h"
#include "hsResMgr.h"
diff --git a/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp b/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp
index 6d8ef5cb..627838b7 100644
--- a/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp
+++ b/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp
@@ -67,7 +67,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvatar/plClothingLayout.h"
#include "plAvatar/plArmatureMod.h"
#include "plAvatar/plAvBrainHuman.h" // needed to call the emote
-#include "plAvatar/plAGAnim.h" // to get the BodyUsage enum
+#include "plAnimation/plAGAnim.h" // to get the BodyUsage enum
#include "plInputCore/plAvatarInputInterface.h"
#include "plMessage/plSimStateMsg.h"
diff --git a/Sources/Plasma/PubUtilLib/CMakeLists.txt b/Sources/Plasma/PubUtilLib/CMakeLists.txt
index 588fc125..49760aca 100644
--- a/Sources/Plasma/PubUtilLib/CMakeLists.txt
+++ b/Sources/Plasma/PubUtilLib/CMakeLists.txt
@@ -2,6 +2,7 @@ add_definitions(-D_LIB)
add_subdirectory(plAgeDescription)
add_subdirectory(plAgeLoader)
+add_subdirectory(plAnimation)
add_subdirectory(plAudible)
add_subdirectory(plAudio)
add_subdirectory(plAudioCore)
diff --git a/Sources/Plasma/PubUtilLib/inc/plAllCreatables.h b/Sources/Plasma/PubUtilLib/inc/plAllCreatables.h
index 4df8d454..07c59fda 100644
--- a/Sources/Plasma/PubUtilLib/inc/plAllCreatables.h
+++ b/Sources/Plasma/PubUtilLib/inc/plAllCreatables.h
@@ -64,6 +64,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plParticleSystem/plParticleCreatable.h"
#include "plNetCommon/plNetCommonCreatable.h"
#include "plVault/plVaultCreatable.h"
+#include "plAnimation/plAnimationCreatable.h"
#include "plAvatar/plAvatarCreatable.h"
#include "plIntersect/plIntersectCreatable.h"
#include "plNetMessage/plNetMessageCreatable.h"
@@ -72,4 +73,3 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAgeLoader/plAgeLoaderCreatable.h"
#endif // plAllCreatables_inc
-
\ No newline at end of file
diff --git a/Sources/Plasma/PubUtilLib/plAnimation/CMakeLists.txt b/Sources/Plasma/PubUtilLib/plAnimation/CMakeLists.txt
new file mode 100644
index 00000000..8f71ad57
--- /dev/null
+++ b/Sources/Plasma/PubUtilLib/plAnimation/CMakeLists.txt
@@ -0,0 +1,43 @@
+include_directories("../../CoreLib")
+include_directories("../../FeatureLib")
+include_directories("../../NucleusLib/inc")
+include_directories("../../NucleusLib")
+include_directories("../../PubUtilLib")
+
+set(plAnimation_SOURCES
+ plAGAnim.cpp
+ plAGAnimInstance.cpp
+ plAGApplicator.cpp
+ plAGChannel.cpp
+ plAGMasterMod.cpp
+ plAGModifier.cpp
+ plMatrixChannel.cpp
+ plPointChannel.cpp
+ plQuatChannel.cpp
+ plScalarChannel.cpp
+)
+
+set(plAnimation_HEADERS
+ plAGAnim.h
+ plAGAnimInstance.h
+ plAGApplicator.h
+ plAGChannel.h
+ plAGDefs.h
+ plAGMasterMod.h
+ plAGModifier.h
+ plAnimationCreatable.h
+ plMatrixChannel.h
+ plPointChannel.h
+ plQuatChannel.h
+ plScalarChannel.h
+)
+
+add_library(plAnimation STATIC ${plAnimation_SOURCES} ${plAnimation_HEADERS})
+
+target_link_libraries(plAnimation pnModifier)
+target_link_libraries(plAnimation plInterp)
+target_link_libraries(plAnimation plSDL)
+target_link_libraries(plAnimation plTransform)
+
+source_group("Source Files" FILES ${plAnimation_SOURCES})
+source_group("Header Files" FILES ${plAnimation_HEADERS})
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plAGAnim.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGAnim.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGAnim.h
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGAnim.h
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plAGAnimInstance.cpp
similarity index 89%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGAnimInstance.cpp
index d3bd735d..26cf2f2a 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGAnimInstance.cpp
@@ -111,7 +111,8 @@ plAGAnimInstance::plAGAnimInstance(plAGAnim * anim, plAGMasterMod * master,
if (atcAnim)
{
fTimeConvert = new plAnimTimeConvert();
- fTimeConvert->Init(atcAnim, this, master);
+ IInitAnimTimeConvert(fTimeConvert, atcAnim, master);
+ //fTimeConvert->Init(atcAnim, this, master);
timeChan = new plATCChannel(fTimeConvert);
}
else
@@ -185,6 +186,73 @@ plAGAnimInstance::~plAGAnimInstance()
delete fTimeConvert;
}
+
+void plAGAnimInstance::IInitAnimTimeConvert(plAnimTimeConvert* atc, plATCAnim* anim, plAGMasterMod* master)
+{
+ // Set up our eval callbacks
+ plAGInstanceCallbackMsg* instMsg;
+
+ instMsg = new plAGInstanceCallbackMsg(master->GetKey(), kStart);
+ instMsg->fInstance = this;
+ atc->AddCallback(instMsg);
+ hsRefCnt_SafeUnRef(instMsg);
+
+ instMsg = new plAGInstanceCallbackMsg(master->GetKey(), kStop);
+ instMsg->fInstance = this;
+ atc->AddCallback(instMsg);
+ hsRefCnt_SafeUnRef(instMsg);
+
+ instMsg = new plAGInstanceCallbackMsg(master->GetKey(), kSingleFrameAdjust);
+ instMsg->fInstance = this;
+ atc->AddCallback(instMsg);
+ hsRefCnt_SafeUnRef(instMsg);
+
+ atc->SetOwner(master);
+ atc->ClearFlags();
+
+ for (size_t i = 0; i < anim->NumStopPoints(); i++)
+ {
+ atc->GetStopPoints().Append(anim->GetStopPoint(i));
+ }
+
+ atc->SetBegin(anim->GetStart());
+ atc->SetEnd(anim->GetEnd());
+ atc->SetInitialBegin(atc->GetBegin());
+ atc->SetInitialEnd(atc->GetEnd());
+
+ if (anim->GetInitial() != -1)
+ {
+ atc->SetCurrentAnimTime(anim->GetInitial());
+ }
+ else
+ {
+ atc->SetCurrentAnimTime(anim->GetStart());
+ }
+
+ atc->SetLoopPoints(anim->GetLoopStart(), anim->GetLoopEnd());
+ atc->Loop(anim->GetLoop());
+ atc->SetSpeed(1.f);
+
+ atc->SetEase(true, anim->GetEaseInType(), anim->GetEaseInMin(),
+ anim->GetEaseInMax(), anim->GetEaseInLength());
+
+ atc->SetEase(false, anim->GetEaseOutType(), anim->GetEaseOutMin(),
+ anim->GetEaseOutMax(), anim->GetEaseOutLength());
+
+
+ // set up our time converter based on the animation's specs...
+ // ... after we've set all of its other state values.
+ if (anim->GetAutoStart())
+ {
+ plSynchEnabler ps(true); // enable dirty tracking so that autostart will send out a state update
+ atc->Start();
+ }
+ else
+ {
+ atc->InitStop();
+ }
+}
+
// SearchForGlobals ---------------------
// -----------------
void plAGAnimInstance::SearchForGlobals()
@@ -611,14 +679,3 @@ void UnRegisterAGAlloc(plAGChannel *object)
delete al;
}
}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGAnimInstance.h
similarity index 99%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGAnimInstance.h
index f0e18e39..c53193d6 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.h
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGAnimInstance.h
@@ -225,6 +225,8 @@ protected:
void IRegisterDetach(const plString &channelName, plAGChannel *channel);
+ void IInitAnimTimeConvert(plAnimTimeConvert* atc, plATCAnim* anim, plAGMasterMod* master);
+
const plAGAnim * fAnimation;
plAGMasterMod * fMaster;
@@ -270,24 +272,3 @@ void DumpAGAllocs();
#endif // TRACK_AG_ALLOCS
#endif // PLAGANIMINSTANCE_INC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plAGApplicator.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGApplicator.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGApplicator.h
similarity index 99%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGApplicator.h
index 4c67ca45..16a71ea0 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.h
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGApplicator.h
@@ -61,7 +61,7 @@ class plAGModifier;
//
/////////////////////////////////////////////////////////////////////////////////////////
#include "pnFactory/plCreatable.h"
-#include "plAvDefs.h"
+#include "plAGDefs.h"
#include "plString.h"
/////////////////////////////////////////////////////////////////////////////////////////
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plAGChannel.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGChannel.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGChannel.h
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGChannel.h
diff --git a/Sources/Plasma/PubUtilLib/plAnimation/plAGDefs.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGDefs.h
new file mode 100644
index 00000000..f704dbbd
--- /dev/null
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGDefs.h
@@ -0,0 +1,63 @@
+/*==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 plAGDefs_h
+#define plAGDefs_h
+
+/** \enum PinType
+ Tells us what category of animation this channel affects.
+ Primarly used to determine if two channels are competing,
+ which you can't tell strictly from the type of data the
+ channel handles. */
+enum plAGPinType
+{
+ kAGPinUnknown, // this applicator hasn't decided its pin type
+ kAGPinTransform, // this applicator munches the entire transform
+ kNumPinTypes
+};
+
+#define kAGMaxBlendPriority 0x0fffffff
+#define kAGMinBlendPriority 0x00000000
+#define kAGMedBlendPriority 0x0000ffff
+
+
+#endif
+
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plAGMasterMod.cpp
similarity index 99%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGMasterMod.cpp
index 506a054b..47081deb 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.cpp
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGMasterMod.cpp
@@ -47,7 +47,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAGAnimInstance.h"
#include "plAGModifier.h"
// #include "plAvatarAnim.h"
-#include "plAGMasterSDLModifier.h"
+#include "plModifier/plAGMasterSDLModifier.h"
#include "plMatrixChannel.h"
// global
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGMasterMod.h
similarity index 99%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGMasterMod.h
index d79fc294..1aee31ca 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.h
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGMasterMod.h
@@ -55,7 +55,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
/////////////////////////////////////////////////////////////////////////////////////////
#include "pnModifier/plModifier.h"
#include "plAGChannel.h"
-#include "plAvDefs.h"
+#include "plAGDefs.h"
#include "pnKeyedObject/plMsgForwarder.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plAGModifier.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGModifier.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.h b/Sources/Plasma/PubUtilLib/plAnimation/plAGModifier.h
similarity index 99%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plAGModifier.h
index bcf699be..7d1481e5 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.h
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAGModifier.h
@@ -51,7 +51,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnModifier/plSingleModifier.h" // inherited
// local
-#include "plAvatar/plScalarChannel.h"
+#include "plScalarChannel.h"
class plSceneObject;
diff --git a/Sources/Plasma/PubUtilLib/plAnimation/plAnimationCreatable.h b/Sources/Plasma/PubUtilLib/plAnimation/plAnimationCreatable.h
new file mode 100644
index 00000000..636ff6e8
--- /dev/null
+++ b/Sources/Plasma/PubUtilLib/plAnimation/plAnimationCreatable.h
@@ -0,0 +1,132 @@
+/*==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 plAnimationCreatable_inc
+#define plAnimationCreatable_inc
+
+#include "pnFactory/plCreator.h"
+
+
+#include "plAGAnim.h"
+
+REGISTER_CREATABLE(plAGAnim);
+REGISTER_CREATABLE(plATCAnim);
+REGISTER_CREATABLE(plEmoteAnim);
+REGISTER_CREATABLE(plAgeGlobalAnim);
+
+
+#include "plAGChannel.h"
+
+REGISTER_NONCREATABLE(plAGChannel);
+
+
+#include "plAGApplicator.h"
+
+REGISTER_NONCREATABLE(plAGApplicator);
+
+
+#include "plMatrixChannel.h"
+
+REGISTER_CREATABLE(plMatrixChannel);
+REGISTER_CREATABLE(plMatrixConstant);
+REGISTER_CREATABLE(plMatrixTimeScale);
+REGISTER_CREATABLE(plMatrixBlend);
+REGISTER_CREATABLE(plMatrixControllerChannel);
+REGISTER_CREATABLE(plMatrixControllerCacheChannel);
+REGISTER_CREATABLE(plQuatPointCombine);
+REGISTER_CREATABLE(plMatrixChannelApplicator);
+REGISTER_CREATABLE(plMatrixDelayedCorrectionApplicator);
+REGISTER_CREATABLE(plMatrixDifferenceApp);
+
+
+#include "plPointChannel.h"
+
+REGISTER_CREATABLE(plPointChannel);
+REGISTER_CREATABLE(plPointConstant);
+REGISTER_CREATABLE(plPointBlend);
+REGISTER_CREATABLE(plPointTimeScale);
+REGISTER_CREATABLE(plPointControllerChannel);
+REGISTER_CREATABLE(plPointControllerCacheChannel);
+REGISTER_CREATABLE(plPointChannelApplicator);
+REGISTER_CREATABLE(plLightDiffuseApplicator);
+REGISTER_CREATABLE(plLightAmbientApplicator);
+REGISTER_CREATABLE(plLightSpecularApplicator);
+
+
+#include "plQuatChannel.h"
+
+REGISTER_CREATABLE(plQuatChannel);
+REGISTER_CREATABLE(plQuatConstant);
+REGISTER_CREATABLE(plQuatBlend);
+REGISTER_CREATABLE(plQuatTimeScale);
+REGISTER_CREATABLE(plQuatChannelApplicator);
+
+
+#include "plScalarChannel.h"
+
+REGISTER_CREATABLE(plScalarChannel);
+REGISTER_CREATABLE(plScalarConstant);
+REGISTER_CREATABLE(plScalarTimeScale);
+REGISTER_CREATABLE(plScalarBlend);
+REGISTER_CREATABLE(plScalarControllerChannel);
+REGISTER_CREATABLE(plScalarControllerCacheChannel);
+REGISTER_CREATABLE(plScalarChannelApplicator);
+REGISTER_CREATABLE(plSpotInnerApplicator);
+REGISTER_CREATABLE(plSpotOuterApplicator);
+REGISTER_CREATABLE(plATCChannel);
+REGISTER_CREATABLE(plScalarSDLChannel);
+REGISTER_CREATABLE(plOmniApplicator);
+REGISTER_CREATABLE(plOmniSqApplicator);
+REGISTER_CREATABLE(plOmniCutoffApplicator);
+
+
+#include "plAGModifier.h"
+
+REGISTER_CREATABLE(plAGModifier);
+
+
+#include "plAGMasterMod.h"
+
+REGISTER_CREATABLE(plAGMasterMod);
+
+#endif // plAnimationCreatable_inc
+
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plMatrixChannel.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plMatrixChannel.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.h b/Sources/Plasma/PubUtilLib/plAnimation/plMatrixChannel.h
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plMatrixChannel.h
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plPointChannel.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plPointChannel.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.h b/Sources/Plasma/PubUtilLib/plAnimation/plPointChannel.h
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plPointChannel.h
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plQuatChannel.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plQuatChannel.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.h b/Sources/Plasma/PubUtilLib/plAnimation/plQuatChannel.h
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plQuatChannel.h
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.cpp b/Sources/Plasma/PubUtilLib/plAnimation/plScalarChannel.cpp
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.cpp
rename to Sources/Plasma/PubUtilLib/plAnimation/plScalarChannel.cpp
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.h b/Sources/Plasma/PubUtilLib/plAnimation/plScalarChannel.h
similarity index 100%
rename from Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.h
rename to Sources/Plasma/PubUtilLib/plAnimation/plScalarChannel.h
diff --git a/Sources/Plasma/PubUtilLib/plAudio/plSound.cpp b/Sources/Plasma/PubUtilLib/plAudio/plSound.cpp
index 018775d0..5974ff99 100644
--- a/Sources/Plasma/PubUtilLib/plAudio/plSound.cpp
+++ b/Sources/Plasma/PubUtilLib/plAudio/plSound.cpp
@@ -64,8 +64,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plPipeline/plPlates.h"
#include "pnKeyedObject/plKey.h"
#include "pnNetCommon/plSDLTypes.h"
-#include "plAvatar/plScalarChannel.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plScalarChannel.h"
+#include "plAnimation/plAGModifier.h"
#include "pnSceneObject/plSceneObject.h"
#include "pnSceneObject/plAudioInterface.h"
diff --git a/Sources/Plasma/PubUtilLib/plAudio/plSound.h b/Sources/Plasma/PubUtilLib/plAudio/plSound.h
index d5e241fc..56df0c8d 100644
--- a/Sources/Plasma/PubUtilLib/plAudio/plSound.h
+++ b/Sources/Plasma/PubUtilLib/plAudio/plSound.h
@@ -58,8 +58,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "hsGeometry3.h"
#include "plEAXEffects.h"
#include "pnNetCommon/plSynchedObject.h"
-#include "plAvatar/plAGChannel.h"
-#include "plAvatar/plAGApplicator.h"
+#include "plAnimation/plAGChannel.h"
+#include "plAnimation/plAGApplicator.h"
#include "plAudioCore/plSoundBuffer.h"
class hsResMgr;
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/CMakeLists.txt b/Sources/Plasma/PubUtilLib/plAvatar/CMakeLists.txt
index f687d1f1..b45a9a83 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/CMakeLists.txt
+++ b/Sources/Plasma/PubUtilLib/plAvatar/CMakeLists.txt
@@ -7,13 +7,6 @@ include_directories("../../PubUtilLib")
include_directories(${OPENAL_INCLUDE_DIR})
set(plAvatar_SOURCES
- plAGAnim.cpp
- plAGAnimInstance.cpp
- plAGApplicator.cpp
- plAGChannel.cpp
- plAGMasterMod.cpp
- plAGMasterSDLModifier.cpp
- plAGModifier.cpp
plAnimStage.cpp
plArmatureEffects.cpp
plArmatureMod.cpp
@@ -36,27 +29,16 @@ set(plAvatar_SOURCES
plAvTaskSeek.cpp
plClothingSDLModifier.cpp
plCoopCoordinator.cpp
- plMatrixChannel.cpp
plMultistageBehMod.cpp
plNPCSpawnMod.cpp
plOneShotMod.cpp
plPhysicalControllerCore.cpp
- plPointChannel.cpp
- plQuatChannel.cpp
- plScalarChannel.cpp
plSeekPointMod.cpp
plSittingModifier.cpp
plSwimRegion.cpp
)
set(plAvatar_HEADERS
- plAGAnim.h
- plAGAnimInstance.h
- plAGApplicator.h
- plAGChannel.h
- plAGMasterMod.h
- plAGMasterSDLModifier.h
- plAGModifier.h
plAnimStage.h
plArmatureEffects.h
plArmatureMod.h
@@ -84,14 +66,10 @@ set(plAvatar_HEADERS
plClothingSDLModifier.h
plCoopCoordinator.h
plCritterCommands.h
- plMatrixChannel.h
plMultistageBehMod.h
plNPCSpawnMod.h
plOneShotMod.h
plPhysicalControllerCore.h
- plPointChannel.h
- plQuatChannel.h
- plScalarChannel.h
plSeekPointMod.h
plSittingModifier.h
plSwimRegion.h
@@ -99,5 +77,7 @@ set(plAvatar_HEADERS
add_library(plAvatar STATIC ${plAvatar_SOURCES} ${plAvatar_HEADERS})
+target_link_libraries(plAvatar plAnimation)
+
source_group("Source Files" FILES ${plAvatar_SOURCES})
source_group("Header Files" FILES ${plAvatar_HEADERS})
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp
index 46a25ea1..a3163d0c 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp
@@ -45,10 +45,10 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// local
#include "plAvatarMgr.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plArmatureMod.h"
-#include "plAGAnimInstance.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plAGAnimInstance.h"
+#include "plAnimation/plMatrixChannel.h"
#include "plAvBrainGeneric.h"
#include "plMultistageBehMod.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp
index b5956c0c..8018e7e7 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp
@@ -45,14 +45,14 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvBrain.h"
#include "plAvBrainUser.h"
#include "plAvatarMgr.h"
-#include "plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plAvatarClothing.h"
#include "plClothingSDLModifier.h"
#include "plAvatarSDLModifier.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plArmatureEffects.h"
#include "plAvBrainHuman.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plMatrixChannel.h"
#include "plAvatarTasks.h"
#include "plPhysicalControllerCore.h"
#include "plAvBrainCritter.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.h b/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.h
index 9b9e9bc0..ea1462e2 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.h
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.h
@@ -56,7 +56,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#ifndef plArmatureMod_inc
#define plArmatureMod_inc
-#include "plAGMasterMod.h"
+#include "plAnimation/plAGMasterMod.h"
// other local
#include "plAvDefs.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp
index 82d19d30..cdafae4f 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp
@@ -45,7 +45,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvBehaviors.h"
#include "plAvBrainHuman.h"
#include "plArmatureMod.h"
-#include "plAGAnimInstance.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plMessage/plAvatarMsg.h"
#include "plPipeline/plDebugText.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.h b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.h
index 143f0c8b..03a8d444 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.h
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.h
@@ -42,7 +42,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#ifndef PLAVBRAIN_INC
#define PLAVBRAIN_INC
-#include "plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "HeadSpin.h"
#include "hsTemplates.h"
#include "hsBitVector.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp
index 48c3415a..f4a4334e 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp
@@ -69,10 +69,10 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// local
#include "plAnimStage.h"
-#include "plAGAnim.h"
-#include "plAGAnimInstance.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plArmatureMod.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plMatrixChannel.h"
#include "plAvBrainHuman.h"
// global
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp
index 14603d77..84ecbf20 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp
@@ -45,8 +45,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvBrainHuman.h"
#include "plArmatureMod.h"
#include "plAvBehaviors.h"
-#include "plAGAnim.h"
-#include "plAGAnimInstance.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plAvatarMgr.h"
#include "plgDispatch.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp
index 883c241b..a0e24754 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp
@@ -50,8 +50,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvTask.h"
#include "plAvTaskBrain.h"
#include "plAvBrainHuman.h"
-#include "plAGAnimInstance.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plAGAnimInstance.h"
+#include "plAnimation/plMatrixChannel.h"
// global
#include "hsTimer.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h
index 29da02f0..a66bedb0 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h
@@ -44,7 +44,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// base class
#include "plAvBrain.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
class plAnimStage;
class plAnimStageVec;
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp
index 0e3a0f09..5485995c 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp
@@ -50,13 +50,13 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvBrainGeneric.h"
#include "plAvBrainSwim.h"
#include "plArmatureMod.h"
-#include "plAGModifier.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plAGModifier.h"
+#include "plAnimation/plMatrixChannel.h"
#include "plAvTask.h"
#include "plAvTaskBrain.h"
#include "plAvTaskSeek.h"
-#include "plAGAnim.h"
-#include "plAGAnimInstance.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plAvatarMgr.h"
#include "plAnimStage.h"
#include "plAvatarClothing.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h
index 6ce8b9f4..ff631b88 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h
@@ -46,7 +46,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvBrainGeneric.h"
#include "plAvBehaviors.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#pragma warning(disable: 4284)
#include
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp
index 8db5b732..e26f15e7 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp
@@ -55,9 +55,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plArmatureMod.h"
#include "plAvBehaviors.h"
#include "plAvBrainHuman.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plAvBrainDrive.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plMatrixChannel.h"
#include "plSwimRegion.h"
#include "plAvatarTasks.h"
#include "plArmatureEffects.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvDefs.h b/Sources/Plasma/PubUtilLib/plAvatar/plAvDefs.h
index c2b8c323..ca1a090c 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvDefs.h
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvDefs.h
@@ -75,21 +75,4 @@ const hsVector3 kAvatarUp(0,0,1);
const hsVector3 kAvatarForward(0,-1,0);
const hsVector3 kAvatarRight(-1,0,0);
-/** \enum PinType
- Tells us what category of animation this channel affects.
- Primarly used to determine if two channels are competing,
- which you can't tell strictly from the type of data the
- channel handles. */
-enum plAGPinType
-{
- kAGPinUnknown, // this applicator hasn't decided its pin type
- kAGPinTransform, // this applicator munches the entire transform
- kNumPinTypes
-};
-
-#define kAGMaxBlendPriority 0x0fffffff
-#define kAGMinBlendPriority 0x00000000
-#define kAGMedBlendPriority 0x0000ffff
-
-
-#endif
\ No newline at end of file
+#endif
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp
index ba8ec78a..807013db 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp
@@ -51,7 +51,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plArmatureMod.h"
#include "plAvatarMgr.h"
#include "plAvBrainGeneric.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plAnimStage.h"
// global
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp
index 57501f05..00828d3b 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp
@@ -53,7 +53,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// local
#include "plAvBrainHuman.h"
-#include "plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plArmatureMod.h"
#include "plAvatarMgr.h"
#include "plPhysicalControllerCore.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h
index 00220d8b..a9de498b 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h
@@ -45,74 +45,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "pnFactory/plCreator.h"
-#include "plAGAnim.h"
-
-REGISTER_CREATABLE( plAGAnim );
-REGISTER_CREATABLE( plATCAnim );
-REGISTER_CREATABLE( plEmoteAnim );
-REGISTER_CREATABLE( plAgeGlobalAnim );
-
-#include "plAGChannel.h"
-
-REGISTER_NONCREATABLE( plAGChannel );
-REGISTER_NONCREATABLE( plAGApplicator );
-
-#include "plMatrixChannel.h"
-
-REGISTER_CREATABLE( plMatrixChannel );
-REGISTER_CREATABLE( plMatrixConstant );
-REGISTER_CREATABLE( plMatrixTimeScale );
-REGISTER_CREATABLE( plMatrixBlend );
-REGISTER_CREATABLE( plMatrixControllerChannel );
-REGISTER_CREATABLE( plMatrixControllerCacheChannel );
-REGISTER_CREATABLE( plQuatPointCombine );
-REGISTER_CREATABLE( plMatrixChannelApplicator );
-REGISTER_CREATABLE( plMatrixDelayedCorrectionApplicator );
-REGISTER_CREATABLE( plMatrixDifferenceApp );
-
-#include "plPointChannel.h"
-
-REGISTER_CREATABLE( plPointChannel );
-REGISTER_CREATABLE( plPointConstant );
-REGISTER_CREATABLE( plPointBlend );
-REGISTER_CREATABLE( plPointTimeScale );
-REGISTER_CREATABLE( plPointControllerChannel );
-REGISTER_CREATABLE( plPointControllerCacheChannel );
-REGISTER_CREATABLE( plPointChannelApplicator );
-REGISTER_CREATABLE( plLightDiffuseApplicator );
-REGISTER_CREATABLE( plLightAmbientApplicator );
-REGISTER_CREATABLE( plLightSpecularApplicator );
-
-#include "plQuatChannel.h"
-
-REGISTER_CREATABLE( plQuatChannel );
-REGISTER_CREATABLE( plQuatConstant );
-REGISTER_CREATABLE( plQuatBlend );
-REGISTER_CREATABLE( plQuatTimeScale );
-REGISTER_CREATABLE( plQuatChannelApplicator );
-
-#include "plScalarChannel.h"
-REGISTER_CREATABLE( plScalarChannel );
-REGISTER_CREATABLE( plScalarConstant );
-REGISTER_CREATABLE( plScalarTimeScale );
-REGISTER_CREATABLE( plScalarBlend );
-REGISTER_CREATABLE( plScalarControllerChannel );
-REGISTER_CREATABLE( plScalarControllerCacheChannel );
-REGISTER_CREATABLE( plScalarChannelApplicator );
-REGISTER_CREATABLE( plSpotInnerApplicator );
-REGISTER_CREATABLE( plSpotOuterApplicator );
-REGISTER_CREATABLE( plATCChannel );
-REGISTER_CREATABLE( plScalarSDLChannel );
-REGISTER_CREATABLE( plOmniApplicator );
-REGISTER_CREATABLE( plOmniSqApplicator );
-REGISTER_CREATABLE( plOmniCutoffApplicator );
-
-#include "plAGModifier.h"
-REGISTER_CREATABLE( plAGModifier );
-
-#include "plAGMasterMod.h"
-REGISTER_CREATABLE( plAGMasterMod );
-
#include "plSeekPointMod.h"
REGISTER_CREATABLE( plSeekPointMod );
@@ -166,9 +98,6 @@ REGISTER_CREATABLE( plAnimStage );
#include "plAvTaskSeek.h"
REGISTER_CREATABLE( plAvTaskSeek );
-#include "plAGMasterSDLModifier.h"
-REGISTER_CREATABLE( plAGMasterSDLModifier );
-
#include "plAvatarSDLModifier.h"
REGISTER_CREATABLE( plAvatarSDLModifier );
REGISTER_CREATABLE( plAvatarPhysicalSDLModifier );
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp
index bee6ad92..23e76f89 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp
@@ -50,7 +50,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plSeekPointMod.h"
#include "plOneShotMod.h"
#include "plArmatureMod.h"
-#include "plAGModifier.h"
+#include "plAnimation/plAGModifier.h"
#include "plAnimStage.h"
#include "plCoopCoordinator.h"
#include "plAvBrainCoop.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp
index bfff143c..8a27f3c5 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp
@@ -48,10 +48,10 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plArmatureMod.h"
#include "plSeekPointMod.h"
#include "plAvBrainHuman.h"
-#include "plAGAnim.h"
-#include "plAGAnimInstance.h"
-#include "plAGModifier.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plAGAnimInstance.h"
+#include "plAnimation/plAGModifier.h"
+#include "plAnimation/plMatrixChannel.h"
#include "plPhysicalControllerCore.h"
#include "plAvatarMgr.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp b/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp
index 4ec91a85..8f21b62a 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp
+++ b/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp
@@ -46,7 +46,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plArmatureMod.h"
#include "plSwimRegion.h"
-#include "plMatrixChannel.h"
+#include "plAnimation/plMatrixChannel.h"
#include "pnSceneObject/plCoordinateInterface.h"
#include "plPhysical.h"
#include "pnMessage/plCorrectionMsg.h"
diff --git a/Sources/Plasma/PubUtilLib/plInterp/CMakeLists.txt b/Sources/Plasma/PubUtilLib/plInterp/CMakeLists.txt
index bdc39543..5241187c 100644
--- a/Sources/Plasma/PubUtilLib/plInterp/CMakeLists.txt
+++ b/Sources/Plasma/PubUtilLib/plInterp/CMakeLists.txt
@@ -27,5 +27,9 @@ set(plInterp_HEADERS
add_library(plInterp STATIC ${plInterp_SOURCES} ${plInterp_HEADERS})
+target_link_libraries(plInterp pnFactory)
+target_link_libraries(plInterp pnNetCommon)
+target_link_libraries(plInterp plTransform)
+
source_group("Source Files" FILES ${plInterp_SOURCES})
source_group("Header Files" FILES ${plInterp_HEADERS})
diff --git a/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp b/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp
index b0865cfe..9f5900cb 100644
--- a/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp
+++ b/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp
@@ -44,20 +44,18 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAnimEaseTypes.h"
#include "plAnimTimeConvert.h"
-#include "plAvatar/plAGAnim.h"
#include "hsTimer.h"
#include "hsStream.h"
#include "pnMessage/plEventCallbackMsg.h"
#include "plMessage/plAnimCmdMsg.h"
-#include "plAvatar/plAGMasterSDLModifier.h"
-#include "plAvatar/plAGMasterMod.h"
-#include "plModifier/plLayerSDLModifier.h"
-#include "plSurface/plLayerAnimation.h"
+
+#include "pnNetCommon/plSDLTypes.h"
#include "hsResMgr.h"
#include "plgDispatch.h"
+#include "plCreatableIndex.h"
plAnimTimeConvert::plAnimTimeConvert()
@@ -95,57 +93,6 @@ plAnimTimeConvert::~plAnimTimeConvert()
IClearAllStates();
}
-void plAnimTimeConvert::Init(plATCAnim *anim, plAGAnimInstance *instance, plAGMasterMod *master)
-{
- // Set up our eval callbacks
- plAGInstanceCallbackMsg *instMsg;
- instMsg = new plAGInstanceCallbackMsg(master->GetKey(), kStart);
- instMsg->fInstance = instance;
- AddCallback(instMsg);
- hsRefCnt_SafeUnRef(instMsg);
- instMsg = new plAGInstanceCallbackMsg(master->GetKey(), kStop);
- instMsg->fInstance = instance;
- AddCallback(instMsg);
- hsRefCnt_SafeUnRef(instMsg);
- instMsg = new plAGInstanceCallbackMsg(master->GetKey(), kSingleFrameAdjust);
- instMsg->fInstance = instance;
- AddCallback(instMsg);
- hsRefCnt_SafeUnRef(instMsg);
-
- SetOwner(master);
- ClearFlags();
-
- for (int i = 0; i < anim->NumStopPoints(); i++)
- GetStopPoints().Append(anim->GetStopPoint(i));
-
- SetBegin(anim->GetStart());
- SetEnd(anim->GetEnd());
- fInitialBegin = fBegin;
- fInitialEnd = fEnd;
-
- if (anim->GetInitial() != -1)
- SetCurrentAnimTime(anim->GetInitial());
- else
- SetCurrentAnimTime(anim->GetStart());
- SetLoopPoints(anim->GetLoopStart(), anim->GetLoopEnd());
- Loop(anim->GetLoop());
- SetSpeed(1.f);
- SetEase(true, anim->GetEaseInType(), anim->GetEaseInMin(),
- anim->GetEaseInMax(), anim->GetEaseInLength());
- SetEase(false, anim->GetEaseOutType(), anim->GetEaseOutMin(),
- anim->GetEaseOutMax(), anim->GetEaseOutLength());
-
- // set up our time converter based on the animation's specs...
- // ... after we've set all of its other state values.
- if (anim->GetAutoStart())
- {
- plSynchEnabler ps(true); // enable dirty tracking so that autostart will send out a state update
- Start();
- }
- else
- InitStop();
-}
-
//
// 0=nil, 1=easeIn, 2=easeOut, 3=speed
//
@@ -376,11 +323,13 @@ plAnimTimeConvert& plAnimTimeConvert::IProcessStateChange(double worldTime, floa
fStates.push_front(state);
IFlushOldStates();
- const char* sdlName=nil;
- if (plLayerAnimation::ConvertNoRef(fOwner))
+ const char* sdlName = nullptr;
+
+ // This is a huge hack, but avoids circular linking problems :(
+ if (fOwner->GetInterface(CLASS_INDEX_SCOPED(plLayerAnimation)))
sdlName=kSDLLayer;
else
- if (plAGMasterMod::ConvertNoRef(fOwner))
+ if (fOwner->GetInterface(CLASS_INDEX_SCOPED(plAGMasterMod)))
sdlName=kSDLAGMaster;
else
{
diff --git a/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h b/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h
index 7e192fe0..d318670e 100644
--- a/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h
+++ b/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h
@@ -119,8 +119,6 @@ public:
plAnimTimeConvert();
virtual ~plAnimTimeConvert();
- void Init(plATCAnim *anim, plAGAnimInstance *instance, plAGMasterMod *master);
-
CLASSNAME_REGISTER( plAnimTimeConvert );
GETINTERFACE_ANY( plAnimTimeConvert, plCreatable );
@@ -143,6 +141,8 @@ public:
void SetLoopPoints(float begin, float end) { SetLoopBegin(begin); SetLoopEnd(end); }
void SetLoopBegin(float s) { fLoopBegin = s; }
void SetLoopEnd(float s) { fLoopEnd = s; }
+ void SetInitialBegin(float s) { fInitialBegin = s; }
+ void SetInitialEnd(float s) { fInitialEnd = s; }
void SetEase(bool easeIn, uint8_t inType, float minLength, float maxLength, float inLength);
void SetCurrentEaseCurve(int x); // 0=nil, 1=easeIn, 2=easeOut, 3=speed
@@ -150,6 +150,8 @@ public:
float GetEnd() const { return fEnd; }
float GetLoopBegin() const { return fLoopBegin; }
float GetLoopEnd() const { return fLoopEnd; }
+ float GetInitialBegin() const { return fInitialBegin; }
+ float GetInitialEnd() const { return fInitialEnd; }
float GetSpeed() const { return fSpeed; }
hsTArray &GetStopPoints() { return fStopPoints; }
float GetBestStopDist(float min, float max, float norm, float time) const;
diff --git a/Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt b/Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt
index 6e05b8f3..a2cd2ee3 100644
--- a/Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt
+++ b/Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt
@@ -7,6 +7,7 @@ include_directories("../../PubUtilLib")
include_directories(${OPENAL_INCLUDE_DIR})
set(plModifier_SOURCES
+ plAGMasterSDLModifier.cpp
plAnimEventModifier.cpp
plAnimTimeConvertSDLModifier.cpp
plAxisAnimModifier.cpp
@@ -29,6 +30,7 @@ set(plModifier_SOURCES
)
set(plModifier_HEADERS
+ plAGMasterSDLModifier.h
plAnimEventModifier.h
plAnimTimeConvertSDLModifier.h
plAxisAnimModifier.h
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.cpp b/Sources/Plasma/PubUtilLib/plModifier/plAGMasterSDLModifier.cpp
similarity index 98%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.cpp
rename to Sources/Plasma/PubUtilLib/plModifier/plAGMasterSDLModifier.cpp
index 20de82a9..ea7163c9 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.cpp
+++ b/Sources/Plasma/PubUtilLib/plModifier/plAGMasterSDLModifier.cpp
@@ -43,8 +43,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plSDL/plSDL.h"
#include "plInterp/plAnimTimeConvert.h"
#include "pnSceneObject/plSceneObject.h"
-#include "plAGMasterMod.h"
-#include "plAGAnimInstance.h"
+#include "plAnimation/plAGMasterMod.h"
+#include "plAnimation/plAGAnimInstance.h"
#include "plgDispatch.h"
#include "pnMessage/plTimeMsg.h"
#include "hsTimer.h"
diff --git a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.h b/Sources/Plasma/PubUtilLib/plModifier/plAGMasterSDLModifier.h
similarity index 98%
rename from Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.h
rename to Sources/Plasma/PubUtilLib/plModifier/plAGMasterSDLModifier.h
index a9527ec6..7ed3efd1 100644
--- a/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.h
+++ b/Sources/Plasma/PubUtilLib/plModifier/plAGMasterSDLModifier.h
@@ -42,7 +42,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#ifndef plAGMasterSDLModifier_inc
#define plAGMasterSDLModifier_inc
-#include "plModifier/plAnimTimeConvertSDLModifier.h"
+#include "plAnimTimeConvertSDLModifier.h"
//
// This modifier is responsible for sending and recving
diff --git a/Sources/Plasma/PubUtilLib/plModifier/plModifierCreatable.h b/Sources/Plasma/PubUtilLib/plModifier/plModifierCreatable.h
index 403d03cd..fedab658 100644
--- a/Sources/Plasma/PubUtilLib/plModifier/plModifierCreatable.h
+++ b/Sources/Plasma/PubUtilLib/plModifier/plModifierCreatable.h
@@ -87,6 +87,9 @@ REGISTER_CREATABLE(plLayerSDLModifier);
#include "plAnimTimeConvertSDLModifier.h"
REGISTER_NONCREATABLE(plAnimTimeConvertSDLModifier);
+#include "plAGMasterSDLModifier.h"
+REGISTER_CREATABLE( plAGMasterSDLModifier );
+
#include "plResponderSDLModifier.h"
REGISTER_CREATABLE(plResponderSDLModifier);
diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp b/Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp
index e5528a6f..c1e5d5a1 100644
--- a/Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp
+++ b/Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp
@@ -68,7 +68,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plAvatar/plArmatureMod.h"
#include "plAvatar/plAvatarTasks.h"
-#include "plAvatar/plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "plMessage/plAvatarMsg.h"
#include "plMessage/plLoadAgeMsg.h"
diff --git a/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp b/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp
index 86f807c3..a09dafca 100644
--- a/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp
+++ b/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp
@@ -42,8 +42,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plParticleSystem.h"
#include "plParticleGenerator.h"
#include "plParticleApplicator.h"
-#include "plAvatar/plScalarChannel.h"
-#include "plAvatar/plAGModifier.h"
+#include "plAnimation/plScalarChannel.h"
+#include "plAnimation/plAGModifier.h"
#include "plMessage/plParticleUpdateMsg.h"
#include "pnSceneObject/plSceneObject.h"
diff --git a/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h b/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h
index 12a18445..d1b6b075 100644
--- a/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h
+++ b/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h
@@ -42,8 +42,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#ifndef PLPARTICLEAPPLICATOR_INC
#define PLPARTICLEAPPLICATOR_INC
-#include "plAvatar/plAGChannel.h"
-#include "plAvatar/plAGApplicator.h"
+#include "plAnimation/plAGChannel.h"
+#include "plAnimation/plAGApplicator.h"
class plParticleSystem;
diff --git a/Sources/Tools/MaxComponent/plAGComponents.cpp b/Sources/Tools/MaxComponent/plAGComponents.cpp
index 5a2c00a9..7402b58a 100644
--- a/Sources/Tools/MaxComponent/plAGComponents.cpp
+++ b/Sources/Tools/MaxComponent/plAGComponents.cpp
@@ -69,8 +69,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "MaxConvert/hsControlConverter.h"
//Avatar related
-#include "plAvatar/plAGAnim.h"
-#include "plAvatar/plMatrixChannel.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plMatrixChannel.h"
#include "BipedKiller.h"
//Anim related
diff --git a/Sources/Tools/MaxComponent/plAnimComponent.cpp b/Sources/Tools/MaxComponent/plAnimComponent.cpp
index 52a06005..5ef68bf5 100644
--- a/Sources/Tools/MaxComponent/plAnimComponent.cpp
+++ b/Sources/Tools/MaxComponent/plAnimComponent.cpp
@@ -58,13 +58,13 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plInterp/plController.h"
#include "plNotetrackAnim.h"
-#include "plAvatar/plAGModifier.h"
-#include "plAvatar/plAGChannel.h"
-#include "plAvatar/plAGAnim.h"
-#include "plAvatar/plAGMasterMod.h"
-#include "plAvatar/plMatrixChannel.h"
-#include "plAvatar/plPointChannel.h"
-#include "plAvatar/plScalarChannel.h"
+#include "plAnimation/plAGModifier.h"
+#include "plAnimation/plAGChannel.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plAGMasterMod.h"
+#include "plAnimation/plMatrixChannel.h"
+#include "plAnimation/plPointChannel.h"
+#include "plAnimation/plScalarChannel.h"
#include "MaxConvert/hsControlConverter.h"
#include "pnKeyedObject/plUoid.h"
@@ -1227,4 +1227,4 @@ bool plAnimCompressComp::SetupProperties(plMaxNode *node, plErrorMsg *pErrMsg)
bool plAnimCompressComp::Convert(plMaxNode *node, plErrorMsg *pErrMsg)
{
return true;
-}
\ No newline at end of file
+}
diff --git a/Sources/Tools/MaxComponent/plAudioComponents.cpp b/Sources/Tools/MaxComponent/plAudioComponents.cpp
index 6cd71a5d..f76465e6 100644
--- a/Sources/Tools/MaxComponent/plAudioComponents.cpp
+++ b/Sources/Tools/MaxComponent/plAudioComponents.cpp
@@ -58,7 +58,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plInterp/plAnimEaseTypes.h"
-#include "plAvatar/plAGAnim.h"
+#include "plAnimation/plAGAnim.h"
#include "pnSceneObject/plSceneObject.h"
#include "pnSceneObject/plCoordinateInterface.h"
diff --git a/Sources/Tools/MaxComponent/plGUIComponents.cpp b/Sources/Tools/MaxComponent/plGUIComponents.cpp
index f88581bd..64beae07 100644
--- a/Sources/Tools/MaxComponent/plGUIComponents.cpp
+++ b/Sources/Tools/MaxComponent/plGUIComponents.cpp
@@ -129,7 +129,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plPickMaterialMap.h"
#include "plInterp/plController.h"
-#include "plAvatar/plMatrixChannel.h"
+#include "plAnimation/plMatrixChannel.h"
#include "MaxPlasmaMtls/Layers/plLayerTex.h"
@@ -2691,7 +2691,7 @@ bool plGUIKnobCtrlComponent::PreConvert(plMaxNode *node, plErrorMsg *pErrMsg)
}
// For hackery below (see warning below)
-#include "plAvatar/plAGMasterMod.h"
+#include "plAnimation/plAGMasterMod.h"
bool plGUIKnobCtrlComponent::Convert(plMaxNode *node, plErrorMsg *pErrMsg)
{
@@ -4413,7 +4413,7 @@ bool plGUIProgressCtrlComponent::PreConvert(plMaxNode *node, plErrorMsg *pErrMs
}
// For hackery below (see warning below)
-#include "plAvatar/plAGMasterMod.h"
+#include "plAnimation/plAGMasterMod.h"
bool plGUIProgressCtrlComponent::Convert(plMaxNode *node, plErrorMsg *pErrMsg)
{
diff --git a/Sources/Tools/MaxComponent/plParticleComponents.cpp b/Sources/Tools/MaxComponent/plParticleComponents.cpp
index e8d35403..c94dbdc6 100644
--- a/Sources/Tools/MaxComponent/plParticleComponents.cpp
+++ b/Sources/Tools/MaxComponent/plParticleComponents.cpp
@@ -90,8 +90,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plParticleSystem/plConvexVolume.h"
#include "plParticleSystem/plBoundInterface.h"
-#include "plAvatar/plScalarChannel.h"
-#include "plAvatar/plAGAnim.h"
+#include "plAnimation/plScalarChannel.h"
+#include "plAnimation/plAGAnim.h"
#include "pnSceneObject/plDrawInterface.h"
diff --git a/Sources/Tools/MaxMain/CMakeLists.txt b/Sources/Tools/MaxMain/CMakeLists.txt
index 1916ccb2..f36579ee 100644
--- a/Sources/Tools/MaxMain/CMakeLists.txt
+++ b/Sources/Tools/MaxMain/CMakeLists.txt
@@ -125,6 +125,7 @@ target_link_libraries(MaxMain pfPython)
target_link_libraries(MaxMain pfSurface)
target_link_libraries(MaxMain plAgeDescription)
target_link_libraries(MaxMain plAgeLoader)
+target_link_libraries(MaxMain plAnimation)
target_link_libraries(MaxMain plAudible)
target_link_libraries(MaxMain plAudio)
target_link_libraries(MaxMain plAudioCore)
diff --git a/Sources/Tools/MaxMain/plMaxNode.cpp b/Sources/Tools/MaxMain/plMaxNode.cpp
index f3a0bb51..1e67f774 100644
--- a/Sources/Tools/MaxMain/plMaxNode.cpp
+++ b/Sources/Tools/MaxMain/plMaxNode.cpp
@@ -91,11 +91,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#include "plModifier/plResponderModifier.h"
#include "plModifier/plInterfaceInfoModifier.h"
#include "pfAnimation/plLightModifier.h"
-#include "plAvatar/plAGModifier.h"
-#include "plAvatar/plAGAnim.h"
-#include "plAvatar/plPointChannel.h"
-#include "plAvatar/plScalarChannel.h"
-#include "plAvatar/plAGMasterMod.h"
+#include "plAnimation/plAGModifier.h"
+#include "plAnimation/plAGAnim.h"
+#include "plAnimation/plPointChannel.h"
+#include "plAnimation/plScalarChannel.h"
+#include "plAnimation/plAGMasterMod.h"
#include "plMessage/plReplaceGeometryMsg.h"
#include "plGImage/plMipmap.h"
#include "plModifier/plSpawnModifier.h"
diff --git a/Sources/Tools/MaxPlasmaLights/CMakeLists.txt b/Sources/Tools/MaxPlasmaLights/CMakeLists.txt
index 9ef8f2e8..baffa731 100644
--- a/Sources/Tools/MaxPlasmaLights/CMakeLists.txt
+++ b/Sources/Tools/MaxPlasmaLights/CMakeLists.txt
@@ -60,6 +60,7 @@ target_link_libraries(MaxPlasmaLights pfPython)
target_link_libraries(MaxPlasmaLights pfSurface)
target_link_libraries(MaxPlasmaLights plAgeDescription)
target_link_libraries(MaxPlasmaLights plAgeLoader)
+target_link_libraries(MaxPlasmaLights plAnimation)
target_link_libraries(MaxPlasmaLights plAudible)
target_link_libraries(MaxPlasmaLights plAudio)
target_link_libraries(MaxPlasmaLights plAudioCore)