WMO/Rendering: Difference between revisions
Jump to navigation
Jump to search
(Adding initial CMapObj::QueryLighting) |
|||
Line 15: | Line 15: | ||
} | } | ||
World::TriData::resultFlags = 0; | World::TriData::resultFlags = 0; | ||
Line 23: | Line 21: | ||
World::TriData::nVertexIndices = 0; | World::TriData::nVertexIndices = 0; | ||
World::TriData::nMatrices = 0; | World::TriData::nMatrices = 0; | ||
float v15 = 1.0; | |||
bool result; | bool result; |
Revision as of 07:17, 4 October 2017
Lighting
CMapObj::QueryLighting
bool CMapObj::QueryLighting(CMapObj *this, unsigned int groupIndex, const C3Segment *seg, CImVector *color, bool *a5) {
bool v5 = this->unk6[16] == 0;
CMapObjGroup group = this->groupList[groupIndex];
if (v5 || !(group->unk14 & 1) || group->flags & (SMOGroup::EXTERIOR | SMOGroup::EXTERIOR_LIT)) {
return 0;
}
World::TriData::resultFlags = 0;
World::TriData::nBatches = 0;
World::TriData::nTriIndices = 0;
World::TriData::nVertexIndices = 0;
World::TriData::nMatrices = 0;
float v15 = 1.0;
bool result;
result = CMapObjGroup::GetTris(group, seg, &v15, 0, 8, (int)&a2 + 3, 0);
if (!result) {
return 0;
}
C3Vector point;
point.x = seg->start.x + v15 * (seg->end.x - seg->start.x);
point.y = seg->start.y + v15 * (seg->end.y - seg->start.y);
point.z = seg->start.z + v15 * (seg->end.z - seg->start.z);
unsigned __int16 v10 = word_CD8094;
result = CMapObjGroup::QueryLighting(group, &point, v10, color, a5);
return result;
}