mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-31 04:01:16 +00:00
WIP
This commit is contained in:
parent
380f1c08ee
commit
938226c400
@ -255,10 +255,10 @@ LegoROI* LegoCharacterManager::CreateROI(const char* p_key)
|
|||||||
const char* parentName;
|
const char* parentName;
|
||||||
char lodName[64];
|
char lodName[64];
|
||||||
|
|
||||||
// TODO
|
LegoCharacterData::Part& part = characterData->m_parts[j];
|
||||||
|
|
||||||
if (j == 0 || j == 1) {
|
if (j == 0 || j == 1) {
|
||||||
parentName = characterData->m_parts[j]
|
parentName = part.m_unk0x04[part.m_unk0x00[part.m_unk0x08]];
|
||||||
.m_unk0x04[characterData->m_parts[j].m_unk0x00[characterData->m_parts[j].m_unk0x08]];
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
parentName = g_characterLODs[j + 1].m_parentName;
|
parentName = g_characterLODs[j + 1].m_parentName;
|
||||||
@ -283,7 +283,6 @@ LegoROI* LegoCharacterManager::CreateROI(const char* p_key)
|
|||||||
childROI->SetParentROI(roi);
|
childROI->SetParentROI(roi);
|
||||||
|
|
||||||
BoundingSphere childBoundingSphere;
|
BoundingSphere childBoundingSphere;
|
||||||
|
|
||||||
childBoundingSphere.Center()[0] = g_characterLODs[j + 1].m_boundingSphere[0];
|
childBoundingSphere.Center()[0] = g_characterLODs[j + 1].m_boundingSphere[0];
|
||||||
childBoundingSphere.Center()[1] = g_characterLODs[j + 1].m_boundingSphere[1];
|
childBoundingSphere.Center()[1] = g_characterLODs[j + 1].m_boundingSphere[1];
|
||||||
childBoundingSphere.Center()[2] = g_characterLODs[j + 1].m_boundingSphere[2];
|
childBoundingSphere.Center()[2] = g_characterLODs[j + 1].m_boundingSphere[2];
|
||||||
@ -300,40 +299,38 @@ LegoROI* LegoCharacterManager::CreateROI(const char* p_key)
|
|||||||
childROI->SetUnknown0x80(childBoundingBox);
|
childROI->SetUnknown0x80(childBoundingBox);
|
||||||
|
|
||||||
CalcLocalTransform(
|
CalcLocalTransform(
|
||||||
g_characterLODs[j + 1].m_position,
|
Mx3DPointFloat(g_characterLODs[j + 1].m_position),
|
||||||
g_characterLODs[j + 1].m_direction,
|
Mx3DPointFloat(g_characterLODs[j + 1].m_direction),
|
||||||
g_characterLODs[j + 1].m_up,
|
Mx3DPointFloat(g_characterLODs[j + 1].m_up),
|
||||||
mat
|
mat
|
||||||
);
|
);
|
||||||
childROI->WrappedSetLocalTransform(mat);
|
childROI->WrappedSetLocalTransform(mat);
|
||||||
|
|
||||||
if (g_characterLODs[j + 1].m_flags & LegoCharacterLOD::c_flag1 &&
|
if (g_characterLODs[j + 1].m_flags & LegoCharacterLOD::c_flag1 &&
|
||||||
(j != 0 || characterData->m_parts[j].m_unk0x00[characterData->m_parts[j].m_unk0x08] != 0)) {
|
(j != 0 || part.m_unk0x00[part.m_unk0x08] != 0)) {
|
||||||
|
|
||||||
LegoTextureInfo* textureInfo =
|
LegoTextureInfo* textureInfo = textureContainer->Get(part.m_unk0x10[part.m_unk0x14]);
|
||||||
textureContainer->Get(characterData->m_parts[j].m_unk0x10[characterData->m_parts[j].m_unk0x14]);
|
|
||||||
|
|
||||||
if (textureInfo != NULL) {
|
if (textureInfo != NULL) {
|
||||||
childROI->FUN_100a9210(textureInfo);
|
childROI->FUN_100a9210(textureInfo);
|
||||||
childROI->FUN_100a9170(1.0F, 1.0F, 1.0F, 0.0F);
|
childROI->FUN_100a9170(1.0F, 1.0F, 1.0F, 0.0F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_characterLODs[j + 1].m_flags & LegoCharacterLOD::c_flag2 || (j == 0 && characterData->m_parts[j].m_unk0x00[characterData->m_parts[j].m_unk0x08] == 0)) {
|
else if (g_characterLODs[j + 1].m_flags & LegoCharacterLOD::c_flag2 || (j == 0 && part.m_unk0x00[part.m_unk0x08] == 0)) {
|
||||||
LegoFloat red, green, blue, alpha;
|
LegoFloat red, green, blue, alpha;
|
||||||
childROI->FUN_100a9bf0(
|
childROI->FUN_100a9bf0(part.m_unk0x10[part.m_unk0x14], red, green, blue, alpha);
|
||||||
characterData->m_parts[j].m_unk0x10[characterData->m_parts[j].m_unk0x14],
|
|
||||||
red,
|
|
||||||
green,
|
|
||||||
blue,
|
|
||||||
alpha
|
|
||||||
);
|
|
||||||
childROI->FUN_100a9170(red, green, blue, alpha);
|
childROI->FUN_100a9170(red, green, blue, alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
comp->push_back(childROI);
|
comp->push_back(childROI);
|
||||||
}
|
}
|
||||||
|
|
||||||
CalcLocalTransform(g_characterLODs[0].m_position, g_characterLODs[0].m_direction, g_characterLODs[0].m_up, mat);
|
CalcLocalTransform(
|
||||||
|
Mx3DPointFloat(g_characterLODs[0].m_position),
|
||||||
|
Mx3DPointFloat(g_characterLODs[0].m_direction),
|
||||||
|
Mx3DPointFloat(g_characterLODs[0].m_up),
|
||||||
|
mat
|
||||||
|
);
|
||||||
roi->WrappedSetLocalTransform(mat);
|
roi->WrappedSetLocalTransform(mat);
|
||||||
|
|
||||||
characterData->m_roi = roi;
|
characterData->m_roi = roi;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user