Mercurial > mm7
comparison Outdoor.cpp @ 2094:dbd8515924da
m
author | Ritor1 |
---|---|
date | Thu, 12 Dec 2013 21:42:18 +0600 |
parents | 48b790721bdc |
children | 577c081b8019 |
comparison
equal
deleted
inserted
replaced
2084:48b790721bdc | 2094:dbd8515924da |
---|---|
3661 signed int v44; // edx@184 | 3661 signed int v44; // edx@184 |
3662 int v45; // ecx@200 | 3662 int v45; // ecx@200 |
3663 BSPModel *pModel; // eax@203 | 3663 BSPModel *pModel; // eax@203 |
3664 ODMFace *pODMFace; // esi@203 | 3664 ODMFace *pODMFace; // esi@203 |
3665 int v48; // eax@203 | 3665 int v48; // eax@203 |
3666 char v49; // zf@203 | |
3667 char v50; // sf@203 | |
3668 unsigned __int8 v51; // of@203 | |
3669 int v52; // eax@203 | |
3670 BSPModel *v54; // eax@215 | 3666 BSPModel *v54; // eax@215 |
3671 int v55; // eax@217 | 3667 int v55; // eax@217 |
3672 signed int v56; // ebx@228 | |
3673 int v57; // eax@228 | |
3674 BSPModel *v58; // eax@228 | 3668 BSPModel *v58; // eax@228 |
3675 unsigned __int64 v59; // qax@228 | 3669 unsigned __int64 v59; // qax@228 |
3676 BSPModel *v60; // eax@228 | 3670 BSPModel *v60; // eax@228 |
3677 unsigned __int64 v61; // qax@228 | 3671 unsigned __int64 v61; // qax@228 |
3678 int v62; // eax@241 | 3672 int v62; // eax@241 |
3838 v103 = *(short *)(v7->pFacePlane.vNormal.x + 308 * v6 + 292); | 3832 v103 = *(short *)(v7->pFacePlane.vNormal.x + 308 * v6 + 292); |
3839 }*/ | 3833 }*/ |
3840 if ( BYTE3(face[v6].uAttributes) & 4 ) | 3834 if ( BYTE3(face[v6].uAttributes) & 4 ) |
3841 { | 3835 { |
3842 pParty->floor_face_pid = PID(OBJECT_BModel, bmodel_standing_on_pid); | 3836 pParty->floor_face_pid = PID(OBJECT_BModel, bmodel_standing_on_pid); |
3843 v103 = face[v6].sCogTriggeredID; | 3837 v103 = face[v6].sCogTriggeredID; // |
3844 } | 3838 } |
3845 } | 3839 } |
3846 } | 3840 } |
3847 } | 3841 } |
3848 pParty->floor_face_pid = PID(OBJECT_BModel, bmodel_standing_on_pid); | 3842 pParty->floor_face_pid = PID(OBJECT_BModel, bmodel_standing_on_pid); |
4297 if ( !v97 && !v110 && !bmodel_standing_on_pid ) | 4291 if ( !v97 && !v110 && !bmodel_standing_on_pid ) |
4298 is_not_on_bmodel = true; | 4292 is_not_on_bmodel = true; |
4299 v43 = 1; | 4293 v43 = 1; |
4300 v44 = 1; | 4294 v44 = 1; |
4301 if ( bUnderwater || !is_not_on_bmodel ) | 4295 if ( bUnderwater || !is_not_on_bmodel ) |
4302 { | 4296 { |
4303 pX = _angle_x; | 4297 pX = _angle_x; |
4304 if ( v43 ) | 4298 if ( v43 ) |
4305 pY = _angle_y; | 4299 pY = _angle_y; |
4306 } | 4300 } |
4307 else | 4301 else |
4308 { | 4302 { |
4309 if ( pModel && v129 > pZ ) | 4303 if ( pModel && v129 > pZ ) |
4310 v44 = 0; | 4304 v44 = 0; |
4311 if ( v118 && v119 > pZ ) | 4305 if ( v118 && v119 > pZ ) |
4312 v43 = 0; | 4306 v43 = 0; |
4313 if ( v44 ) | 4307 if ( v44 ) |
4314 { | 4308 { |
4315 pX = _angle_x; | 4309 pX = _angle_x; |
4316 if ( v43 ) | 4310 if ( v43 ) |
4317 pY = _angle_y; | 4311 pY = _angle_y; |
4318 } | 4312 } |
4319 else if ( v43 ) | 4313 else if ( v43 ) |
4320 pY = _angle_y; | 4314 pY = _angle_y; |
4321 else | 4315 else |
4322 { | 4316 { |
4323 pModel = (BSPModel *)ODM_GetFloorLevel(_angle_x, _angle_y, v40, pParty->uPartyHeight, &is_on_water, &bmodel_standing_on_pid, 0); | 4317 pModel = (BSPModel *)ODM_GetFloorLevel(_angle_x, _angle_y, v40, pParty->uPartyHeight, &is_on_water, &bmodel_standing_on_pid, 0); |
4324 if ( IsTerrainSlopeTooHigh(_angle_x, _angle_y) && (signed int)pModel <= pZ ) | 4318 if ( IsTerrainSlopeTooHigh(_angle_x, _angle_y) && (signed int)pModel <= pZ ) |
4325 { | 4319 { |
4326 v43 = 1; | 4320 v43 = 1; |
4327 pX = _angle_x; | 4321 pX = _angle_x; |
4328 if ( v43 ) | 4322 if ( v43 ) |
4329 pY = _angle_y; | 4323 pY = _angle_y; |
4330 } | 4324 } |
4331 } | 4325 } |
4332 } | 4326 } |
4333 if ( stru_721530.field_7C >= stru_721530.field_6C ) | 4327 if ( stru_721530.field_7C >= stru_721530.field_6C ) |
4334 { | 4328 { |
4335 if ( !is_not_on_bmodel ) | 4329 if ( !is_not_on_bmodel ) |
4336 { | 4330 { |
4337 pX = stru_721530.normal2.x; | 4331 pX = stru_721530.normal2.x; |
4349 { | 4343 { |
4350 if (pParty->Invisible()) | 4344 if (pParty->Invisible()) |
4351 pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].Reset(); | 4345 pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].Reset(); |
4352 | 4346 |
4353 viewparams->bRedrawGameUI = true; | 4347 viewparams->bRedrawGameUI = true; |
4354 v2 = (unsigned __int64)(58500i64 * v2) >> 16; | 4348 v2 = (unsigned __int64)(58500i64 * v2) >> 16; |
4355 pModel = (BSPModel *)58500; | 4349 pModel = (BSPModel *)58500; |
4356 v128 = (unsigned __int64)(58500i64 * v128) >> 16; | 4350 v128 = (unsigned __int64)(58500i64 * v128) >> 16; |
4357 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4351 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4358 ++v126; | 4352 ++v126; |
4359 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4353 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4360 continue; | 4354 continue; |
4361 } | 4355 } |
4362 if ( PID_TYPE(stru_721530.uFaceID) == OBJECT_Decoration) | 4356 if ( PID_TYPE(stru_721530.uFaceID) == OBJECT_Decoration) |
4363 { | 4357 { |
4364 v56 = integer_sqrt(v2 * v2 + v128 * v128); | 4358 v118 = integer_sqrt(v2 * v2 + v128 * v128); |
4365 v118 = v56; | 4359 v129 = stru_5C6E00->Atan2(_angle_x - pLevelDecorations[(signed int)stru_721530.uFaceID >> 3].vPosition.x, |
4366 v57 = stru_5C6E00->Atan2(_angle_x - pLevelDecorations[(signed int)stru_721530.uFaceID >> 3].vPosition.x, | |
4367 _angle_y - pLevelDecorations[(signed int)stru_721530.uFaceID >> 3].vPosition.y); | 4360 _angle_y - pLevelDecorations[(signed int)stru_721530.uFaceID >> 3].vPosition.y); |
4368 v129 = v57; | 4361 v59 = (signed int)stru_5C6E00->Cos(v129) * (signed __int64)v118; |
4369 v58 = (BSPModel *)stru_5C6E00->Cos(v57); | |
4370 pModel = v58; | |
4371 v59 = (signed int)v58 * (signed __int64)v56; | |
4372 v122 = v59 >> 16; | 4362 v122 = v59 >> 16; |
4373 v2 = v59 >> 16; | 4363 v2 = v59 >> 16; |
4374 v60 = (BSPModel *)stru_5C6E00->Sin(v129); | 4364 v61 = (signed int)stru_5C6E00->Sin(v129) * (signed __int64)v118; |
4375 pModel = v60; | |
4376 v61 = (signed int)v60 * (signed __int64)v118; | |
4377 v122 = v61 >> 16; | 4365 v122 = v61 >> 16; |
4378 v128 = v61 >> 16; | 4366 v128 = v61 >> 16; |
4379 } | 4367 } |
4380 else | 4368 else |
4381 { | 4369 { |
4384 pParty->bFlying = false; | 4372 pParty->bFlying = false; |
4385 pModel = &pOutdoor->pBModels[(signed int)stru_721530.uFaceID >> 9]; | 4373 pModel = &pOutdoor->pBModels[(signed int)stru_721530.uFaceID >> 9]; |
4386 //v127 = v46; | 4374 //v127 = v46; |
4387 pODMFace = &pModel->pFaces[((signed int)stru_721530.uFaceID >> 3) & 0x3F]; | 4375 pODMFace = &pModel->pFaces[((signed int)stru_721530.uFaceID >> 3) & 0x3F]; |
4388 v48 = pODMFace->pBoundingBox.z2 - pODMFace->pBoundingBox.z1; | 4376 v48 = pODMFace->pBoundingBox.z2 - pODMFace->pBoundingBox.z1; |
4389 v51 = __OFSUB__(v48, 32); | 4377 //v51 = __OFSUB__(v48, 32); |
4390 v49 = v48 == 32; | 4378 //v49 = v48 == 32; |
4391 v50 = v48 - 32 < 0; | 4379 //v50 = v48 - 32 < 0; |
4392 v52 = pODMFace->pFacePlane.vNormal.z; | 4380 //v52 = pODMFace->pFacePlane.vNormal.z; |
4393 v129 = (unsigned __int8)(v50 ^ v51 | v49); | 4381 v129 = v48 <= 32; |
4394 v119 = v52 < 46378; | 4382 v119 = pODMFace->pFacePlane.vNormal.z < 46378; |
4395 if ( bUnderwater == 1 ) | 4383 if ( bUnderwater == 1 ) |
4396 v119 = 0; | 4384 v119 = 0; |
4397 if ( pODMFace->uPolygonType == POLYGON_Floor ) | 4385 if ( pODMFace->uPolygonType == POLYGON_Floor ) |
4398 { | 4386 { |
4399 if ( pParty->uFallSpeed < 0 ) | 4387 if ( pParty->uFallSpeed < 0 ) |
4405 *(float *)&v128 = 0.0; | 4393 *(float *)&v128 = 0.0; |
4406 } | 4394 } |
4407 if ( pParty->floor_face_pid != v45 && (pODMFace->uAttributes & FACE_PRESSURE_PLATE)) | 4395 if ( pParty->floor_face_pid != v45 && (pODMFace->uAttributes & FACE_PRESSURE_PLATE)) |
4408 { | 4396 { |
4409 pParty->floor_face_pid = v45; | 4397 pParty->floor_face_pid = v45; |
4410 v103 = pODMFace->sCogTriggeredID; | 4398 v103 = pODMFace->sCogTriggeredID; // |
4411 } | 4399 } |
4412 v2 = (unsigned __int64)(58500i64 * v2) >> 16; | 4400 v2 = (unsigned __int64)(58500i64 * v2) >> 16; |
4413 pModel = (BSPModel *)58500; | 4401 pModel = (BSPModel *)58500; |
4414 v128 = (unsigned __int64)(58500i64 * v128) >> 16; | 4402 v128 = (unsigned __int64)(58500i64 * v128) >> 16; |
4415 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4403 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4416 ++v126; | 4404 //++v126; |
4417 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4405 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4418 continue; | 4406 continue; |
4419 } | 4407 } |
4420 if ( !v129 && (pODMFace->uPolygonType != POLYGON_InBetweenFloorAndWall || v119) )// упёрся в столб | 4408 if ( !v129 && (pODMFace->uPolygonType != POLYGON_InBetweenFloorAndWall || v119) )// упёрся в столб |
4421 { | 4409 { |
4422 v118 = abs(v128 * pODMFace->pFacePlane.vNormal.y + pParty->uFallSpeed * v52 + v2 * pODMFace->pFacePlane.vNormal.x) >> 16; | 4410 v118 = abs(v128 * pODMFace->pFacePlane.vNormal.y |
4411 + pParty->uFallSpeed * pODMFace->pFacePlane.vNormal.z | |
4412 + v2 * pODMFace->pFacePlane.vNormal.x) >> 16; | |
4423 if ((stru_721530.speed >> 3) > v118 ) | 4413 if ((stru_721530.speed >> 3) > v118 ) |
4424 v118 = stru_721530.speed >> 3; | 4414 v118 = stru_721530.speed >> 3; |
4425 v129 = (unsigned __int64)(v118 * (signed __int64)pODMFace->pFacePlane.vNormal.x) >> 16; | 4415 v2 += (unsigned __int64)(v118 * (signed __int64)pODMFace->pFacePlane.vNormal.x) >> 16; |
4426 _walk_speed = (unsigned __int64)(v118 * (signed __int64)pODMFace->pFacePlane.vNormal.y) >> 16; | 4416 v128 += (unsigned __int64)(v118 * (signed __int64)pODMFace->pFacePlane.vNormal.y) >> 16; |
4427 v54 = 0; | 4417 v54 = 0; |
4428 if ( !v119 ) | 4418 if ( !v119 ) |
4429 { | 4419 { |
4430 pModel = (BSPModel *)pODMFace->pFacePlane.vNormal.z; | 4420 //pModel = (BSPModel *)pODMFace->pFacePlane.vNormal.z; |
4431 pModel = (BSPModel *)((unsigned __int64)(v118 * (signed __int64)(signed int)pModel) >> 16); | 4421 pParty->uFallSpeed += (unsigned __int64)(v118 * (signed __int64)(signed int)pODMFace->pFacePlane.vNormal.z) >> 16; |
4432 v54 = pModel; | 4422 //v54 = pModel; |
4433 } | 4423 } |
4434 pParty->uFallSpeed += (int)v54; | 4424 //pParty->uFallSpeed += (int)v54; |
4435 v128 += _walk_speed; | 4425 //v128 += _walk_speed; |
4436 v2 += v129; | 4426 //v2 += v129; |
4437 v55 = stru_721530.prolly_normal_d | 4427 v55 = stru_721530.prolly_normal_d |
4438 - ((signed int)(pODMFace->pFacePlane.dist | 4428 - ((signed int)(pODMFace->pFacePlane.dist |
4439 + v122 * pODMFace->pFacePlane.vNormal.z | 4429 + v122 * pODMFace->pFacePlane.vNormal.z |
4440 + _angle_y * pODMFace->pFacePlane.vNormal.y | 4430 + _angle_y * pODMFace->pFacePlane.vNormal.y |
4441 + _angle_x * pODMFace->pFacePlane.vNormal.x) >> 16); | 4431 + _angle_x * pODMFace->pFacePlane.vNormal.x) >> 16); |
4444 pX = _angle_x + (pODMFace->pFacePlane.vNormal.x * v55 >> 16); | 4434 pX = _angle_x + (pODMFace->pFacePlane.vNormal.x * v55 >> 16); |
4445 pY = _angle_y + (pODMFace->pFacePlane.vNormal.y * v55 >> 16); | 4435 pY = _angle_y + (pODMFace->pFacePlane.vNormal.y * v55 >> 16); |
4446 if ( !v119 ) | 4436 if ( !v119 ) |
4447 pZ = v122 + (pODMFace->pFacePlane.vNormal.z * v55 >> 16); | 4437 pZ = v122 + (pODMFace->pFacePlane.vNormal.z * v55 >> 16); |
4448 } | 4438 } |
4449 v45 = stru_721530.uFaceID; | 4439 //v45 = stru_721530.uFaceID; |
4450 if ( pParty->floor_face_pid != v45 && BYTE3(pODMFace->uAttributes) & 4 ) | 4440 if ( pParty->floor_face_pid != stru_721530.uFaceID && BYTE3(pODMFace->uAttributes) & 4 ) |
4451 { | 4441 { |
4452 pParty->floor_face_pid = v45; | 4442 pParty->floor_face_pid = stru_721530.uFaceID; |
4453 v103 = pODMFace->sCogTriggeredID; | 4443 v103 = pODMFace->sCogTriggeredID; // |
4454 } | 4444 } |
4455 v2 = (unsigned __int64)(58500i64 * v2) >> 16; | 4445 v2 = (unsigned __int64)(58500i64 * v2) >> 16; |
4456 pModel = (BSPModel *)58500; | 4446 pModel = (BSPModel *)58500; |
4457 v128 = (unsigned __int64)(58500i64 * v128) >> 16; | 4447 v128 = (unsigned __int64)(58500i64 * v128) >> 16; |
4458 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4448 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4459 ++v126; | 4449 //++v126; |
4460 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4450 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4461 continue; | 4451 continue; |
4462 } | 4452 } |
4463 v118 = abs(v128 * pODMFace->pFacePlane.vNormal.y + pParty->uFallSpeed * v52 + v2 * pODMFace->pFacePlane.vNormal.x) >> 16; | 4453 v118 = abs(v128 * pODMFace->pFacePlane.vNormal.y |
4454 + pParty->uFallSpeed * pODMFace->pFacePlane.vNormal.z + v2 * pODMFace->pFacePlane.vNormal.x) >> 16; | |
4464 if ((stru_721530.speed >> 3) > v118 ) | 4455 if ((stru_721530.speed >> 3) > v118 ) |
4465 v118 = stru_721530.speed >> 3; | 4456 v118 = stru_721530.speed >> 3; |
4466 v122 = pODMFace->pFacePlane.vNormal.x; | 4457 //v122 = pODMFace->pFacePlane.vNormal.x; |
4467 v122 = (unsigned __int64)(v118 * (signed __int64)(signed int)v122) >> 16; | 4458 v2 += (unsigned __int64)(v118 * (signed __int64)(signed int)pODMFace->pFacePlane.vNormal.x) >> 16; |
4468 pModel = (BSPModel *)pODMFace->pFacePlane.vNormal.y; | 4459 //pModel = (BSPModel *)pODMFace->pFacePlane.vNormal.y; |
4469 pModel = (BSPModel *)((unsigned __int64)(v118 * (signed __int64)(signed int)pModel) >> 16); | 4460 v128 += (unsigned __int64)(v118 * (signed __int64)(signed int)pODMFace->pFacePlane.vNormal.y) >> 16; |
4470 v129 = pODMFace->pFacePlane.vNormal.z; | 4461 //v129 = pODMFace->pFacePlane.vNormal.z; |
4471 v129 = (unsigned __int64)(v118 * (signed __int64)v129) >> 16; | 4462 pParty->uFallSpeed += (unsigned __int64)(v118 * (signed __int64)pODMFace->pFacePlane.vNormal.z) >> 16; |
4472 pParty->uFallSpeed += v129; | 4463 //pParty->uFallSpeed += v129; |
4473 v2 += v122; | 4464 //v2 += v122; |
4474 v128 += (int)pModel; | 4465 //v128 += (int)pModel; |
4475 if ( v2 * v2 + v128 * v128 >= 400 ) | 4466 if ( v2 * v2 + v128 * v128 >= 400 ) |
4476 { | 4467 { |
4477 v45 = stru_721530.uFaceID; | 4468 //v45 = stru_721530.uFaceID; |
4478 if ( pParty->floor_face_pid != v45 && BYTE3(pODMFace->uAttributes) & 4 ) | 4469 if ( pParty->floor_face_pid != stru_721530.uFaceID && BYTE3(pODMFace->uAttributes) & 4 ) |
4479 { | 4470 { |
4480 pParty->floor_face_pid = v45; | 4471 pParty->floor_face_pid = stru_721530.uFaceID; |
4481 v103 = pODMFace->sCogTriggeredID; | 4472 v103 = pODMFace->sCogTriggeredID; // |
4482 } | 4473 } |
4483 v2 = (unsigned __int64)(58500i64 * v2) >> 16; | 4474 v2 = (unsigned __int64)(58500i64 * v2) >> 16; |
4484 pModel = (BSPModel *)58500; | 4475 pModel = (BSPModel *)58500; |
4485 v128 = (unsigned __int64)(58500i64 * v128) >> 16; | 4476 v128 = (unsigned __int64)(58500i64 * v128) >> 16; |
4486 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4477 v122 = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4487 ++v126; | 4478 //++v126; |
4488 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; | 4479 pParty->uFallSpeed = (unsigned __int64)(58500i64 * pParty->uFallSpeed) >> 16; |
4489 continue; | 4480 continue; |
4490 } | 4481 } |
4491 v2 = 0; | 4482 v2 = 0; |
4492 pParty->uFallSpeed = 0; | 4483 pParty->uFallSpeed = 0; |
4493 *(float *)&v128 = 0.0; | 4484 *(float *)&v128 = 0.0; |
4494 } | 4485 } |
4495 } | 4486 } |
4573 { | 4564 { |
4574 v73 = 8160; | 4565 v73 = 8160; |
4575 pParty->uFallStartY = 8160; | 4566 pParty->uFallStartY = 8160; |
4576 pParty->vPosition.z = 8160; | 4567 pParty->vPosition.z = 8160; |
4577 } | 4568 } |
4578 if ( !v103 | 4569 if ( !v103 // |
4579 || (EventProcessor(v103, 0, 1), pParty->vPosition.x == v71) | 4570 || (EventProcessor(v103, 0, 1), pParty->vPosition.x == v71) |
4580 && pParty->vPosition.y == v72 | 4571 && pParty->vPosition.y == v72 |
4581 && (v73 = pParty->vPosition.z, pParty->vPosition.z == v70) ) | 4572 && (v73 = pParty->vPosition.z, pParty->vPosition.z == v70) ) |
4582 { | 4573 { |
4583 if ( v73 < v111 ) | 4574 if ( v73 < v111 ) |
4691 pTerrainHeight = GetTerrainHeightsAroundParty2(pParty->vPosition.x, pParty->vPosition.y, &v110, 1); | 4682 pTerrainHeight = GetTerrainHeightsAroundParty2(pParty->vPosition.x, pParty->vPosition.y, &v110, 1); |
4692 if ( pParty->vPosition.z <= pTerrainHeight + 1 )//положение группы всегда +1 | 4683 if ( pParty->vPosition.z <= pTerrainHeight + 1 )//положение группы всегда +1 |
4693 pParty->uFlags |= PARTY_FLAGS_1_WATER_DAMAGE; | 4684 pParty->uFlags |= PARTY_FLAGS_1_WATER_DAMAGE; |
4694 } | 4685 } |
4695 | 4686 |
4696 if ( !v103 | 4687 if ( !v103// |
4697 || (EventProcessor(v103, 0, 1), pParty->vPosition.x == pX) | 4688 || (EventProcessor(v103, 0, 1), pParty->vPosition.x == pX) |
4698 && pParty->vPosition.y == pY | 4689 && pParty->vPosition.y == pY |
4699 && (v82 = pParty->vPosition.z, pParty->vPosition.z == v81) ) | 4690 && (v82 = pParty->vPosition.z, pParty->vPosition.z == v81) ) |
4700 { | 4691 { |
4701 if ( v82 < v111 ) | 4692 if ( v82 < v111 ) |