Implemented skin offsets in UI
Added code to render skin offsets in the skin select UI.
This commit is contained in:
@@ -355,7 +355,7 @@ HumanoidModel::HumanoidModel(float g, float yOffset, int texWidth, int texHeight
|
||||
_init(g,yOffset,texWidth,texHeight, slim, false);
|
||||
}
|
||||
|
||||
void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled)
|
||||
void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled, vector<SKIN_OFFSET *> *modelOffsets)
|
||||
{
|
||||
if(entity != nullptr)
|
||||
{
|
||||
@@ -392,67 +392,69 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
|
||||
vector<float> arm1Offsets = {0, 0, 0};
|
||||
vector<float> leg0Offsets = {0, 0, 0};
|
||||
vector<float> leg1Offsets = {0, 0, 0};
|
||||
vector<SKIN_OFFSET *>* pModelOffsets = nullptr;
|
||||
if (player != nullptr)
|
||||
pModelOffsets = player->GetModelOffsets();
|
||||
else if (modelOffsets != nullptr)
|
||||
pModelOffsets = modelOffsets;
|
||||
if (pModelOffsets != nullptr)
|
||||
{
|
||||
vector<SKIN_OFFSET *>* pModelOffsets=player->GetModelOffsets();
|
||||
if (pModelOffsets != nullptr)
|
||||
for( SKIN_OFFSET *pModelOffset : *pModelOffsets )
|
||||
{
|
||||
for( SKIN_OFFSET *pModelOffset : *pModelOffsets )
|
||||
switch (pModelOffset->ePart)
|
||||
{
|
||||
switch (pModelOffset->ePart)
|
||||
{
|
||||
case eBodyOffset_Head:
|
||||
if(pModelOffset->fD == 1)
|
||||
headOffsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
headOffsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
headOffsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Body:
|
||||
if(pModelOffset->fD == 1)
|
||||
bodyOffsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
bodyOffsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
bodyOffsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Arm0:
|
||||
if(pModelOffset->fD == 1)
|
||||
arm0Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
arm0Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
arm0Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Arm1:
|
||||
if(pModelOffset->fD == 1)
|
||||
arm1Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
arm1Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
arm1Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Leg0:
|
||||
if(pModelOffset->fD == 1)
|
||||
leg0Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
leg0Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
leg0Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Leg1:
|
||||
if(pModelOffset->fD == 1)
|
||||
leg1Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
leg1Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
leg1Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
}
|
||||
case eBodyOffset_Head:
|
||||
if(pModelOffset->fD == 1)
|
||||
headOffsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
headOffsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
headOffsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Body:
|
||||
if(pModelOffset->fD == 1)
|
||||
bodyOffsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
bodyOffsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
bodyOffsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Arm0:
|
||||
if(pModelOffset->fD == 1)
|
||||
arm0Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
arm0Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
arm0Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Arm1:
|
||||
if(pModelOffset->fD == 1)
|
||||
arm1Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
arm1Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
arm1Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Leg0:
|
||||
if(pModelOffset->fD == 1)
|
||||
leg0Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
leg0Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
leg0Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
case eBodyOffset_Leg1:
|
||||
if(pModelOffset->fD == 1)
|
||||
leg1Offsets[0] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 2)
|
||||
leg1Offsets[1] = pModelOffset->fO;
|
||||
else if(pModelOffset->fD == 3)
|
||||
leg1Offsets[2] = pModelOffset->fO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(headOffsets[0]/16.0f, headOffsets[1]/16.0f, headOffsets[2]/16.0f);
|
||||
head->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderHead))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorHead))>0||!m_isArmor));
|
||||
|
||||
Reference in New Issue
Block a user