Merge branch 'whoahq:master' into master

This commit is contained in:
VDm 2024-02-06 23:43:05 +04:00 committed by GitHub
commit 1e5f4fb542
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -67,8 +67,8 @@ int32_t CM2SceneRender::s_shadedList[M2BLEND_COUNT] = {
0 // M2BLEND_MOD_2X 0 // M2BLEND_MOD_2X
}; };
void CM2SceneRender::Draw(M2PASS pass, M2Element* elements, uint32_t* a4, uint32_t a5) { void CM2SceneRender::Draw(M2PASS pass, M2Element* elements, uint32_t* indices, uint32_t count) {
if (!a5) { if (!count) {
return; return;
} }
@ -103,9 +103,8 @@ void CM2SceneRender::Draw(M2PASS pass, M2Element* elements, uint32_t* a4, uint32
this->m_curPass = pass; this->m_curPass = pass;
for (int32_t i = 0; i < a5; i++) { for (int32_t i = 0; i < count; i++) {
uint32_t index = a4[i]; auto element = &elements[indices[i]];
auto element = &elements[index];
if (element->type == 2 || element->type == 4 || !element->model->m_flag2000) { if (element->type == 2 || element->type == 4 || !element->model->m_flag2000) {
this->m_curElement = element; this->m_curElement = element;
@ -136,7 +135,7 @@ void CM2SceneRender::Draw(M2PASS pass, M2Element* elements, uint32_t* a4, uint32
} }
case 2: { case 2: {
this->DrawBatchDoodad(elements, &a4[i]); this->DrawBatchDoodad(elements, &indices[i]);
// TODO // TODO
// i += this->m_curElement->dword1C - 1; // i += this->m_curElement->dword1C - 1;
break; break;
@ -148,7 +147,7 @@ void CM2SceneRender::Draw(M2PASS pass, M2Element* elements, uint32_t* a4, uint32
} }
case 4: { case 4: {
i += this->DrawParticle(i, elements, a4, a5); i += this->DrawParticle(i, elements, indices, count);
break; break;
} }