comparison mm7_4.cpp @ 554:9caf59edb1ee

Cave and Temple load and even doesn't crash (for a while).
author Nomad
date Mon, 04 Mar 2013 22:44:41 +0200
parents 214d9d47cf1f
children fcbb3c281217
comparison
equal deleted inserted replaced
552:bee46636df95 554:9caf59edb1ee
3208 break; 3208 break;
3209 } 3209 }
3210 if ( v7 == 0 ) 3210 if ( v7 == 0 )
3211 v7 = 1; 3211 v7 = 1;
3212 if (pPlayer->expression == CHARACTER_EXPRESSION_21) 3212 if (pPlayer->expression == CHARACTER_EXPRESSION_21)
3213 pFrame = pPlayerFrameTable->GetFrameBy_y(&pPlayer->field_1AA8, &pPlayer->field_1AA4, pMiscTimer->uTimeElapsed); 3213 pFrame = pPlayerFrameTable->GetFrameBy_y(&pPlayer->_expression21_frameset, &pPlayer->_expression21_animtime, pMiscTimer->uTimeElapsed);
3214 else 3214 else
3215 pFrame = pPlayerFrameTable->GetFrameBy_x(v7, pPlayer->uExpressionTimePassed); 3215 pFrame = pPlayerFrameTable->GetFrameBy_x(v7, pPlayer->uExpressionTimePassed);
3216 if (pPlayer->field_1AA2 != pFrame->uTextureID - 1 || v22 ) 3216 if (pPlayer->field_1AA2 != pFrame->uTextureID - 1 || v22 )
3217 { 3217 {
3218 pPlayer->field_1AA2 = pFrame->uTextureID - 1; 3218 pPlayer->field_1AA2 = pFrame->uTextureID - 1;
4333 } 4333 }
4334 return result; 4334 return result;
4335 } 4335 }
4336 4336
4337 //----- (00494B5E) -------------------------------------------------------- 4337 //----- (00494B5E) --------------------------------------------------------
4338 PlayerFrame *PlayerFrameTable::GetFrameBy_y(int *a2, int *a3, int a4) 4338 PlayerFrame *PlayerFrameTable::GetFrameBy_y(int *pFramesetID, int *pAnimTime, int a4)
4339 { 4339 {
4340 PlayerFrameTable *v4; // edi@1 4340 PlayerFrameTable *v4; // edi@1
4341 int v5; // esi@1 4341 int v5; // esi@1
4342 int v6; // eax@2 4342 int v6; // eax@2
4343 4343
4344 v4 = this; 4344 v4 = this;
4345 v5 = a4 + *a3; 4345 v5 = a4 + *pAnimTime;
4346 if ( v5 < 8 * this->pFrames[*a2].uAnimTime ) 4346 if ( v5 < 8 * this->pFrames[*pFramesetID].uAnimTime )
4347 { 4347 {
4348 *a3 = v5; 4348 *pAnimTime = v5;
4349 } 4349 }
4350 else 4350 else
4351 { 4351 {
4352 v6 = rand() % 4 + 21; 4352 v6 = rand() % 4 + 21;
4353 *a2 = v6; 4353 *pFramesetID = v6;
4354 *a3 = 8 * v5 % v4->pFrames[v6].uAnimTime; 4354 *pAnimTime = 8 * v5 % v4->pFrames[v6].uAnimTime;
4355 } 4355 }
4356 return &v4->pFrames[*a2]; 4356 return &v4->pFrames[*pFramesetID];
4357 } 4357 }
4358 4358
4359 //----- (00494BC3) -------------------------------------------------------- 4359 //----- (00494BC3) --------------------------------------------------------
4360 void PlayerFrameTable::ToFile() 4360 void PlayerFrameTable::ToFile()
4361 { 4361 {