Mercurial > mm7
comparison Indoor.cpp @ 323:d720a13e2273
Very basic picking & entering houses
author | Nomad |
---|---|
date | Wed, 20 Feb 2013 08:23:12 +0200 |
parents | ce39b96acf5c |
children | 2f67762d04f6 a4a5996fea5b |
comparison
equal
deleted
inserted
replaced
322:ce39b96acf5c | 323:d720a13e2273 |
---|---|
190 v3->vPartyPos.y = pParty->vPosition.y; | 190 v3->vPartyPos.y = pParty->vPosition.y; |
191 v3->uPartySectorID = pIndoor->GetSector(v10, v9, v8); | 191 v3->uPartySectorID = pIndoor->GetSector(v10, v9, v8); |
192 } | 192 } |
193 if ( pRenderer->pRenderD3D ) | 193 if ( pRenderer->pRenderD3D ) |
194 { | 194 { |
195 v3->sCosineY = stru_5C6E00->SinCos(v3->sPartyRotY); | 195 v3->sCosineY = stru_5C6E00->Cos(v3->sPartyRotY); |
196 v3->sSineY = stru_5C6E00->SinCos(v3->sPartyRotY - stru_5C6E00->uIntegerHalfPi); | 196 v3->sSineY = stru_5C6E00->Sin(v3->sPartyRotY); |
197 v3->sCosineNegX = stru_5C6E00->SinCos(-v3->sPartyRotX); | 197 v3->sCosineNegX = stru_5C6E00->Cos(-v3->sPartyRotX); |
198 v3->sSineNegX = stru_5C6E00->SinCos(-v3->sPartyRotX - stru_5C6E00->uIntegerHalfPi); | 198 v3->sSineNegX = stru_5C6E00->Sin(-v3->sPartyRotX); |
199 v3->fCosineY = cos((3.141592653589793 + 3.141592653589793) * (double)v3->sPartyRotY * 0.00048828125); | 199 v3->fCosineY = cos((3.141592653589793 + 3.141592653589793) * (double)v3->sPartyRotY * 0.00048828125); |
200 v3->fSineY = sin((3.141592653589793 + 3.141592653589793) * (double)v3->sPartyRotY * 0.00048828125); | 200 v3->fSineY = sin((3.141592653589793 + 3.141592653589793) * (double)v3->sPartyRotY * 0.00048828125); |
201 v3->fCosineNegX = cos((3.141592653589793 + 3.141592653589793) * (double)-v3->sPartyRotX * 0.00048828125); | 201 v3->fCosineNegX = cos((3.141592653589793 + 3.141592653589793) * (double)-v3->sPartyRotX * 0.00048828125); |
202 v3->fSineNegX = sin((3.141592653589793 + 3.141592653589793) * (double)-v3->sPartyRotX * 0.00048828125); | 202 v3->fSineNegX = sin((3.141592653589793 + 3.141592653589793) * (double)-v3->sPartyRotX * 0.00048828125); |
203 v3->field_64 = a2->field_3C; | 203 v3->field_64 = a2->field_3C; |
212 v3->uViewportCenterX = v14 >> 1; | 212 v3->uViewportCenterX = v14 >> 1; |
213 v3->uViewportCenterY = (signed int)(v16 + v15) >> 1; | 213 v3->uViewportCenterY = (signed int)(v16 + v15) >> 1; |
214 } | 214 } |
215 else | 215 else |
216 { | 216 { |
217 v3->sCosineY = stru_5C6E00->SinCos(-v3->sPartyRotY); | 217 v3->sCosineY = stru_5C6E00->Cos(-v3->sPartyRotY); |
218 v3->sSineY = stru_5C6E00->SinCos(-v3->sPartyRotY - stru_5C6E00->uIntegerHalfPi); | 218 v3->sSineY = stru_5C6E00->Sin(-v3->sPartyRotY); |
219 v3->sCosineNegX = stru_5C6E00->SinCos(-v3->sPartyRotX); | 219 v3->sCosineNegX = stru_5C6E00->Cos(-v3->sPartyRotX); |
220 v3->sSineNegX = stru_5C6E00->SinCos(-v3->sPartyRotX - stru_5C6E00->uIntegerHalfPi); | 220 v3->sSineNegX = stru_5C6E00->Sin(-v3->sPartyRotX); |
221 v17 = cos((double)-v3->sPartyRotY * 0.0030664064); | 221 v17 = cos((double)-v3->sPartyRotY * 0.0030664064); |
222 v18 = v3->sPartyRotY; | 222 v18 = v3->sPartyRotY; |
223 v3->fCosineY = v17; | 223 v3->fCosineY = v17; |
224 v19 = sin((double)-v18 * 0.0030664064); | 224 v19 = sin((double)-v18 * 0.0030664064); |
225 v20 = v3->sPartyRotX; | 225 v20 = v3->sPartyRotX; |
370 _this.uFlags |= INDOOR_CAMERA_DRAW_SW_OUTLINES; | 370 _this.uFlags |= INDOOR_CAMERA_DRAW_SW_OUTLINES; |
371 if (viewparams->draw_d3d_outlines) | 371 if (viewparams->draw_d3d_outlines) |
372 _this.uFlags |= INDOOR_CAMERA_DRAW_D3D_OUTLINES; | 372 _this.uFlags |= INDOOR_CAMERA_DRAW_D3D_OUTLINES; |
373 | 373 |
374 _this.field_0_timer = pEventTimer->uTotalGameTimeElapsed; | 374 _this.field_0_timer = pEventTimer->uTotalGameTimeElapsed; |
375 _this.vPosition.x = pParty->vPosition.x | 375 _this.vPosition.x = pParty->vPosition.x - ((unsigned __int64)(stru_5C6E00->Cos(pParty->sRotationY) * (signed __int64)pParty->y_rotation_granularity) >> 16); |
376 - ((unsigned __int64)(stru_5C6E00->SinCos(pParty->sRotationY) | 376 v2 = stru_5C6E00->Sin(pParty->sRotationY); |
377 * (signed __int64)pParty->y_rotation_granularity) >> 16); | |
378 v2 = stru_5C6E00->SinCos(pParty->sRotationY - stru_5C6E00->uIntegerHalfPi); | |
379 v3 = (unsigned __int64)(v2 * (signed __int64)pParty->y_rotation_granularity) >> 16; | 377 v3 = (unsigned __int64)(v2 * (signed __int64)pParty->y_rotation_granularity) >> 16; |
380 _this.field_1C_mb_fov = 65; | 378 _this.field_1C_mb_fov = 65; |
381 _this.vPosition.y = pParty->vPosition.y - v3; | 379 _this.vPosition.y = pParty->vPosition.y - v3; |
382 _this.sRotationY = pParty->sRotationY; | 380 _this.sRotationY = pParty->sRotationY; |
383 _this.sRotationX = pParty->sRotationX; | 381 _this.sRotationX = pParty->sRotationX; |
4028 } | 4026 } |
4029 if ( pParty->bTurnBasedModeOn == 1 && pTurnEngine->field_4 == 1 ) | 4027 if ( pParty->bTurnBasedModeOn == 1 && pTurnEngine->field_4 == 1 ) |
4030 v6 = (signed __int64)((double)v61 * flt_6BE3AC_debug_recmod1_x_1_6); | 4028 v6 = (signed __int64)((double)v61 * flt_6BE3AC_debug_recmod1_x_1_6); |
4031 if ( v6 > 1000 ) | 4029 if ( v6 > 1000 ) |
4032 v6 = 1000; | 4030 v6 = 1000; |
4033 v12 = stru_5C6E00->SinCos(v0->uYawAngle); | 4031 v12 = stru_5C6E00->Cos(v0->uYawAngle); |
4034 uSectorID = v12; | 4032 uSectorID = v12; |
4035 v13 = v12 * (signed __int64)v6; | 4033 v13 = v12 * (signed __int64)v6; |
4036 v61 = v13 >> 16; | 4034 v61 = v13 >> 16; |
4037 v0->vVelocity.x = WORD1(v13); | 4035 v0->vVelocity.x = WORD1(v13); |
4038 uSectorID = stru_5C6E00->SinCos(v0->uYawAngle - stru_5C6E00->uIntegerHalfPi); | 4036 uSectorID = stru_5C6E00->Sin(v0->uYawAngle); |
4039 v61 = (unsigned __int64)(uSectorID * (signed __int64)v6) >> 16; | 4037 v61 = (unsigned __int64)(uSectorID * (signed __int64)v6) >> 16; |
4040 v7 = v62 == 0; | 4038 v7 = v62 == 0; |
4041 v0->vVelocity.y = (unsigned int)(uSectorID * v6) >> 16; | 4039 v0->vVelocity.y = (unsigned int)(uSectorID * v6) >> 16; |
4042 if ( !v7 ) | 4040 if ( !v7 ) |
4043 { | 4041 { |
4044 v14 = stru_5C6E00->SinCos(v0->uPitchAngle - stru_5C6E00->uIntegerHalfPi); | 4042 v14 = stru_5C6E00->Sin(v0->uPitchAngle); |
4045 uSectorID = v14; | 4043 uSectorID = v14; |
4046 v15 = v14 * (signed __int64)v6; | 4044 v15 = v14 * (signed __int64)v6; |
4047 v61 = v15 >> 16; | 4045 v61 = v15 >> 16; |
4048 v0->vVelocity.z = WORD1(v15); | 4046 v0->vVelocity.z = WORD1(v15); |
4049 } | 4047 } |
4227 { | 4225 { |
4228 _this = integer_sqrt(v0->vVelocity.x * v0->vVelocity.x + v0->vVelocity.y * v0->vVelocity.y); | 4226 _this = integer_sqrt(v0->vVelocity.x * v0->vVelocity.x + v0->vVelocity.y * v0->vVelocity.y); |
4229 v45 = stru_5C6E00->Atan2( | 4227 v45 = stru_5C6E00->Atan2( |
4230 v0->vPosition.x - pLevelDecorations[v37].vPosition.x, | 4228 v0->vPosition.x - pLevelDecorations[v37].vPosition.x, |
4231 v0->vPosition.y - pLevelDecorations[v37].vPosition.y); | 4229 v0->vPosition.y - pLevelDecorations[v37].vPosition.y); |
4232 v54 = stru_5C6E00->SinCos(v45); | 4230 v54 = stru_5C6E00->Cos(v45); |
4233 v56 = (unsigned __int64)(v54 * (signed __int64)(signed int)_this) >> 16; | 4231 v56 = (unsigned __int64)(v54 * (signed __int64)(signed int)_this) >> 16; |
4234 v46 = v45 - stru_5C6E00->uIntegerHalfPi; | 4232 v46 = v45 - stru_5C6E00->uIntegerHalfPi; |
4235 v0->vVelocity.x = v54 * _this >> 16; | 4233 v0->vVelocity.x = v54 * _this >> 16; |
4236 v47 = stru_5C6E00->SinCos(v46); | 4234 v47 = stru_5C6E00->Sin(v45); |
4237 v54 = v47; | 4235 v54 = v47; |
4238 v48 = v47 * (signed __int64)(signed int)_this; | 4236 v48 = v47 * (signed __int64)(signed int)_this; |
4239 v56 = v48 >> 16; | 4237 v56 = v48 >> 16; |
4240 v0->vVelocity.y = WORD1(v48); | 4238 v0->vVelocity.y = WORD1(v48); |
4241 goto LABEL_119; | 4239 goto LABEL_119; |