Aici aveti tutorialul in engleza
1. Step:
Navigate to novalineSrcsToolsRAD Game Toolsgrannycommon and unzip the file granny_common_2_9_12_0_release.zip. You will receive some folders. Now you navigate into the folder include and copy the granny.h file to the include folder of your client (for me it's mainline_releasedSrcsExterninclude). Then you go into the libwin32 folder and copy all the *.lib and *.pdb files into your lib folder of your client.
2. Step:
Open your client source and navigate to the project EterGrnLib.
Open Mesh.cpp.
Search for this:
int * boneIndices = GrannyGetMeshBindingToBoneIndices(pgrnMeshBinding);
Replace with this:
int * boneIndices = (int*)GrannyGetMeshBindingToBoneIndices(pgrnMeshBinding);
Search for this:
return GrannyGetMeshBindingToBoneIndices(m_pgrnMeshBindingTemp);
Replace with this:
return (int*)GrannyGetMeshBindingToBoneIndices(m_pgrnMeshBindingTemp);
Search for this:
m_pgrnMeshDeformer = GrannyNewMeshDeformer(pgrnInputType, pgrnOutputType, GrannyDeformPositionNormal);
Replace with this:
m_pgrnMeshDeformer = GrannyNewMeshDeformer(pgrnInputType, pgrnOutputType, GrannyDeformPositionNormal, GrannyAllowUncopiedTail);
-----
Open ModelInstanceUpdate.cpp.
Search for this:
GrannyUpdateModelMatrix(m_pgrnModelInstance, fSecondsElapsed, (const float *) pMatrix, (float *) pMatrix);
Replace with this:
GrannyUpdateModelMatrix(m_pgrnModelInstance, fSecondsElapsed, (const float *) pMatrix, (float *) pMatrix, false);
-----
Open Material.cpp.
Search for this:
granny_variant twoSideResult = GrannyFindMatchingMember(pgrnMaterial->ExtendedData.Type, pgrnMaterial->ExtendedData.Object, "Two-sided");
if (NULL != twoSideResult.Type)
GrannyConvertSingleObject(twoSideResult.Type, twoSideResult.Object, TwoSidedFieldType, &twoSided);
Replace with this:
granny_variant twoSideResult;
if (GrannyFindMatchingMember(pgrnMaterial->ExtendedData.Type, pgrnMaterial->ExtendedData.Object, "Two-sided", &twoSideResult)
&& NULL != twoSideResult.Type)
GrannyConvertSingleObject(twoSideResult.Type, twoSideResult.Object, TwoSidedFieldType, &twoSided, NULL);
-----
Open ModelInstanceModel.cpp
Search for this:
return GrannyGetMeshBindingToBoneIndices(m_vct_pgrnMeshBinding[iMeshBinding]);
Replace with this:
return (int*)GrannyGetMeshBindingToBoneIndices(m_vct_pgrnMeshBinding[iMeshBinding]);
-----
Navigate to the UserInterface project.
Open UserInterface.cpp.
Search for this (it's at the end of the file):
static void GrannyError(granny_log_message_type Type,
granny_log_message_origin Origin,
char const *Error,
void *UserData)
{
TraceError("GRANNY: %s", Error);
}
Replace with this:
static void GrannyError(granny_log_message_type Type,
granny_log_message_origin Origin,
char const* File,
granny_int32x Line,
char const *Error,
void *UserData)
{
TraceError("GRANNY: %s", Error);
}
Now rebuild the whole project!
3. Step:
Go to the folder where we unziped the things of the first step and go to the lib folder. Copy the granny2.dll into your main client directory.