Fixed skin offset data

Fixed skin offsets so they now return the actual data instead of the defaults, added a few minor tweaks, and added code in PlayerRenderer.cpp to access offsets (Can read the offsets but can not apply them).
This commit is contained in:
Langtanium
2026-04-14 15:35:38 -07:00
parent aa769d54ad
commit db685a74f3
6 changed files with 68 additions and 46 deletions

View File

@@ -251,6 +251,34 @@ void PlayerRenderer::render(shared_ptr<Entity> _mob, double x, double y, double
armorParts2->idle=false;
}
// Langtanium - any skin offsets to add to this player (skin dependent)
vector<SKIN_OFFSET *>* pModelOffsets=mob->GetModelOffsets();
if (pModelOffsets!=nullptr)
{
for( SKIN_OFFSET *pModelOffset : *pModelOffsets )
{
// pModelOffset->ePart, pModelOffset->fD, pModelOffset->fO
switch (pModelOffset->ePart)
{
case eBodyOffset_Head:
glPushMatrix();
glTranslatef(0, 16 * 2, 0);
glPopMatrix();
break;
case eBodyOffset_Body:
break;
case eBodyOffset_Arm0:
break;
case eBodyOffset_Arm1:
break;
case eBodyOffset_Leg0:
break;
case eBodyOffset_Leg1:
break;
}
}
}
// 4J-PB - any additional parts to turn on for this player (skin dependent)
vector<ModelPart *> *pAdditionalModelParts=mob->GetAdditionalModelParts();
//turn them on
@@ -273,23 +301,6 @@ void PlayerRenderer::render(shared_ptr<Entity> _mob, double x, double y, double
}
}
vector<SKIN_OFFSET *>* pModelOffsets=mob->GetModelOffsets();
if (pModelOffsets!=nullptr)
{
for( SKIN_OFFSET *pModelOffset : *pModelOffsets )
{
switch (pModelOffset->ePart)
{
case eBodyOffset_Head:
resModel->setOffset(1, pModelOffset->fD, pModelOffset->fO);
break;
case eBodyOffset_Body:
resModel->setOffset(2, pModelOffset->fD, pModelOffset->fO);
break;
}
}
}
armorParts1->bowAndArrow = armorParts2->bowAndArrow = resModel->bowAndArrow = false;
armorParts1->sneaking = armorParts2->sneaking = resModel->sneaking = false;
armorParts1->holdingRightHand = armorParts2->holdingRightHand = resModel->holdingRightHand = 0;