Mercurial > might-and-magic-trilogy
changeset 70:47736b43558d
Party movement & ItemsTable::GenerateItem stack fix
author | Nomad |
---|---|
date | Sat, 27 Oct 2012 20:48:36 +0200 |
parents | efefae49c990 |
children | 8453114181af f6758e4c6506 |
files | Items.cpp mm7_3.cpp mm7_data.cpp mm7_data.h |
diffstat | 4 files changed, 112 insertions(+), 108 deletions(-) [+] |
line wrap: on
line diff
--- a/Items.cpp Sat Oct 27 19:24:11 2012 +0200 +++ b/Items.cpp Sat Oct 27 20:48:36 2012 +0200 @@ -1868,7 +1868,7 @@ unsigned int v48; // ecx@123 int v49; // eax@123 int v50; // eax@123 - unsigned int Dst; // [sp+Ch] [bp-C88h]@33 + unsigned char Dst[0xC80]; // [sp+Ch] [bp-C88h]@33 int v52; // [sp+C8Ch] [bp-8h]@33 int v53; // [sp+C90h] [bp-4h]@1 int v54; // [sp+C9Ch] [bp+8h]@3 @@ -2021,13 +2021,13 @@ v10 = 0; if ( v52 ) v10 = rand() % v52; - v4->uItemID = Dst; + v4->uItemID = *(uint *)Dst; if ( !Dst ) v4->uItemID = 1; v11 = *(&v5->pItems[v4->uItemID].field_2C + v54); if ( v11 < v10 ) { - v12 = &Dst; + v12 = (uint *)Dst; do { ++v12; @@ -2226,9 +2226,9 @@ while ( a2b < v5->field_11798 ); } v45 = rand(); - v4->uAdditionalValue = Dst; + v4->uAdditionalValue = *(uint *)Dst; v46 = v45 % v39 + 1; - a2c = *((unsigned char *)&v5->pItems[0].uItemID + 28 * (Dst + 1389) + v5->pItems[v4->uItemID].uEquipType); + a2c = *((unsigned char *)&v5->pItems[0].uItemID + 28 * (*(uint *)Dst + 1389) + v5->pItems[v4->uItemID].uEquipType); if ( a2c < v46 ) { for ( j = (int *)&Dst; ; j = (int *)v59 )
--- a/mm7_3.cpp Sat Oct 27 19:24:11 2012 +0200 +++ b/mm7_3.cpp Sat Oct 27 20:48:36 2012 +0200 @@ -2384,15 +2384,15 @@ int v26; // eax@67 double v27; // st7@67 int v28; // ST40_4@67 - int v29; // eax@69 - double v30; // st7@69 - int v31; // ST3C_4@69 - int v32; // eax@71 - double v33; // st7@71 - int v34; // ST3C_4@71 + //int v29; // eax@69 + //double v30; // st7@69 + //int v31; // ST3C_4@69 + //int v32; // eax@71 + //double v33; // st7@71 + //int v34; // ST3C_4@71 unsigned int v35; // eax@74 int v36; // ecx@88 - int v37; // esi@96 + int new_party_z; // esi@96 int v38; // eax@96 int v39; // ecx@106 int v40; // eax@106 @@ -2438,30 +2438,30 @@ int i; // [sp+34h] [bp-2Ch]@1 int v81; // [sp+38h] [bp-28h]@47 int v82; // [sp+3Ch] [bp-24h]@47 - int v83; // [sp+40h] [bp-20h]@47 + int _view_angle; // [sp+40h] [bp-20h]@47 int bJumping; // [sp+44h] [bp-1Ch]@1 - int v85; // [sp+48h] [bp-18h]@1 - int v86; // [sp+4Ch] [bp-14h]@1 - int v87; // [sp+50h] [bp-10h]@1 - float v88; // [sp+54h] [bp-Ch]@62 + int new_party_y; // [sp+48h] [bp-18h]@1 + int new_party_x; // [sp+4Ch] [bp-14h]@1 + int party_z; // [sp+50h] [bp-10h]@1 + //float v88; // [sp+54h] [bp-Ch]@62 int v89; // [sp+58h] [bp-8h]@1 int angle; // [sp+5Ch] [bp-4h]@47 v0 = pParty->vPosition.z; v89 = pParty->uFallSpeed; v1 = 0; - v85 = pParty->vPosition.y; + new_party_y = pParty->vPosition.y; v70 = 0; v2 = 0; - v86 = pParty->vPosition.x; - v87 = pParty->vPosition.z; + new_party_x = pParty->vPosition.x; + party_z = pParty->vPosition.z; v77 = pIndoor->GetSector(pParty->vPosition.x, pParty->vPosition.y, pParty->vPosition.z); v72 = 0; v78 = 0; v71 = 0; bJumping = 0; v3 = v0 + 40; - i = _46ED1B_collide_against_floor(v86, v85, v3, &v77, &v79); + i = _46ED1B_collide_against_floor(new_party_x, new_party_y, v3, &v77, &v79); if ( pParty->bFlying ) { pParty->bFlying = 0; @@ -2470,7 +2470,7 @@ } if ( i == -30000 ) { - i = _47272C_collide_agains_some_secotors_floors(v86, v85, v3, &v77, &v79); + i = _47272C_collide_agains_some_secotors_floors(new_party_x, new_party_y, v3, &v77, &v79); if ( i == -30000 ) { pParty->vPosition.x = blv_prev_party_x; @@ -2516,7 +2516,7 @@ bFeatherFall = 1; pParty->uFallStartY = i; LABEL_20: - if ( v6 - v87 > 512 && !bFeatherFall && v87 <= i + 1 ) + if ( v6 - party_z > 512 && !bFeatherFall && party_z <= i + 1 ) { if ( BYTE1(pParty->uFlags) & 1 ) { @@ -2530,7 +2530,7 @@ if ( !(*v7)->HasEnchantedItemEquipped(72) && !(*v7)->WearsItem(529, 8) ) { v8 = (signed __int64)((double)(*v7)->GetMaxHealth() * 0.1); - (*v7)->ReceiveDamage((pParty->uFallStartY - v87) * (signed int)v8 / 256, 4); + (*v7)->ReceiveDamage((pParty->uFallStartY - party_z) * (signed int)v8 / 256, 4); v9 = (*v7)->GetActualEndurance(); v10 = (double)(20 - (*v7)->_48EA1B_get_static_effect(v9)) * flt_6BE3A4_debug_recmod1 * 2.133333333333333; (*v7)->SetRecoveryTime((signed __int64)v10); @@ -2540,21 +2540,21 @@ while ( (signed int)v7 <= (signed int)&pPlayers[4] ); } } - if ( v87 > i + 1 ) + if ( party_z > i + 1 ) bJumping = 1; - bFeatherFalla = v87 - i <= 32; - if ( v87 - i <= 32 ) - pParty->uFallStartY = v87; + bFeatherFalla = party_z - i <= 32; + if ( party_z - i <= 32 ) + pParty->uFallStartY = party_z; if ( bWalkSound && pParty->field_6F8 > 0 ) pParty->field_6F8 -= pEventTimer->uTimeElapsed; - if ( v87 > i + 1 ) + if ( party_z > i + 1 ) { LABEL_43: if ( bJumping ) goto LABEL_45; goto LABEL_44; } - v87 = i + 1; + party_z = i + 1; pParty->uFallStartY = i + 1; if ( bJumping ) goto LABEL_45; @@ -2575,7 +2575,7 @@ v71 = 1; v81 = pParty->uWalkSpeed; angle = pParty->sRotationY; - v83 = pParty->sRotationX; + _view_angle = pParty->sRotationX; v82 = (unsigned __int64)(pEventTimer->dt_in_some_format * (signed __int64)((signed int)(pParty->field_20_prolly_turn_speed * stru_5C6E00->uIntegerPi) / 180)) >> 16; @@ -2585,18 +2585,21 @@ switch ( pPartyActionQueue->Next() ) { case PARTY_TurnLeft: + __debugbreak(); v12 = uTurnSpeed; if ( uTurnSpeed ) goto LABEL_58; v13 = (double)v82 * fTurnSpeedMultiplier; goto LABEL_51; case PARTY_TurnRight: + __debugbreak(); LODWORD(v15) = uTurnSpeed; if ( uTurnSpeed ) goto LABEL_56; v16 = (double)v82 * fTurnSpeedMultiplier; goto LABEL_55; case PARTY_FastTurnLeft: + __debugbreak(); v12 = uTurnSpeed; if ( uTurnSpeed ) { @@ -2612,6 +2615,7 @@ angle = stru_5C6E00->uDoublePiMask & v14; goto LABEL_87; case PARTY_FastTurnRight: + __debugbreak(); LODWORD(v15) = uTurnSpeed; if ( !uTurnSpeed ) { @@ -2623,80 +2627,77 @@ angle = stru_5C6E00->uDoublePiMask & (angle - v15); goto LABEL_87; case PARTY_StrafeLeft: + __debugbreak(); v17 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); v18 = (double)v81; - v88 = v18; + //v88 = v18; v78 = (unsigned __int64)(v17 * (signed __int64)((signed int)(signed __int64)(v18 * fWalkSpeedMultiplier) >> 1)) >> 16; v2 -= v78; v19 = stru_5C6E00->SinCos(angle); - v78 = (unsigned __int64)(v19 * (signed __int64)((signed int)(signed __int64)(v88 * fWalkSpeedMultiplier) >> 1)) >> 16; + v78 = (unsigned __int64)(v19 * (signed __int64)((signed int)(signed __int64)(v18 * fWalkSpeedMultiplier) >> 1)) >> 16; goto LABEL_63; case PARTY_StrafeRight: + __debugbreak(); v20 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); v21 = (double)v81; - v88 = v21; + //v88 = v21; v78 = (unsigned __int64)(v20 * (signed __int64)((signed int)(signed __int64)(v21 * fWalkSpeedMultiplier) >> 1)) >> 16; v2 += v78; v22 = stru_5C6E00->SinCos(angle); - v78 = (unsigned __int64)(v22 * (signed __int64)((signed int)(signed __int64)(v88 * fWalkSpeedMultiplier) >> 1)) >> 16; + v78 = (unsigned __int64)(v22 * (signed __int64)((signed int)(signed __int64)(v21 * fWalkSpeedMultiplier) >> 1)) >> 16; goto LABEL_68; case PARTY_WalkForward: + __debugbreak(); v23 = stru_5C6E00->SinCos(angle); v24 = (double)v81; - v88 = v24; + //v88 = v24; v78 = (unsigned __int64)(v23 * (signed __int64)(signed int)(signed __int64)(v24 * fWalkSpeedMultiplier)) >> 16; v2 += v78; v25 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); - v78 = (unsigned __int64)(v25 * (signed __int64)(signed int)(signed __int64)(v88 * fWalkSpeedMultiplier)) >> 16; + v78 = (unsigned __int64)(v25 * (signed __int64)(signed int)(signed __int64)(v24 * fWalkSpeedMultiplier)) >> 16; LABEL_63: v1 += v78; goto LABEL_64; case PARTY_WalkBackward: + __debugbreak(); v26 = stru_5C6E00->SinCos(angle); v27 = (double)v81; - v88 = v27; + //v88 = v27; v78 = (unsigned __int64)(v26 - * (signed __int64)(signed int)(signed __int64)(v27 * fBackwardMovementSlowdownMultiplier)) >> 16; + * (signed __int64)(signed int)(signed __int64)(v27 * fBackwardWalkSpeedMultiplier)) >> 16; v2 -= v78; v28 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); v78 = (unsigned __int64)(v28 - * (signed __int64)(signed int)(signed __int64)(v88 * fBackwardMovementSlowdownMultiplier)) >> 16; + * (signed __int64)(signed int)(signed __int64)(v27 * fBackwardWalkSpeedMultiplier)) >> 16; LABEL_68: v1 -= v78; LABEL_64: v78 = 1; goto LABEL_87; case PARTY_RunForward: - v29 = stru_5C6E00->SinCos(angle); - v30 = (double)v81; - v88 = v30; - v2 += (unsigned __int64)(v29 - * (signed __int64)(signed int)(2 - * (unsigned __int64)(signed __int64)(v30 - * fWalkSpeedMultiplier))) >> 16; - v31 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); - v1 += (unsigned __int64)(v31 - * (signed __int64)(signed int)(2 - * (unsigned __int64)(signed __int64)(v88 - * fWalkSpeedMultiplier))) >> 16; + //v29 = stru_5C6E00->SinCos(angle); + //v30 = (double)v81; + //v88 = (double)v81; + v2 += (unsigned __int64)(stru_5C6E00->SinCos(angle) * (signed __int64)(signed int)(2 * (unsigned __int64)(signed __int64)((double)v81 * fWalkSpeedMultiplier))) >> 16; + //v31 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); + v1 += (unsigned __int64)(stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi) * (signed __int64)(signed int)(2 * (unsigned __int64)(signed __int64)((double)v81 * fWalkSpeedMultiplier))) >> 16; v72 = 1; goto LABEL_87; case PARTY_RunBackward: - v32 = stru_5C6E00->SinCos(angle); - v33 = (double)v81; - v88 = v33; - v2 -= (unsigned __int64)(v32 - * (signed __int64)(signed int)(signed __int64)(v33 * fBackwardMovementSlowdownMultiplier)) >> 16; - v34 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); - v1 -= (unsigned __int64)(v34 - * (signed __int64)(signed int)(signed __int64)(v88 * fBackwardMovementSlowdownMultiplier)) >> 16; + //v32 = stru_5C6E00->SinCos(angle); + //v33 = (double)v81; + //v88 = (double)v81; + v2 -= (unsigned __int64)(stru_5C6E00->SinCos(angle) * (signed __int64)(signed int)(signed __int64)((double)v81 * fBackwardWalkSpeedMultiplier)) >> 16; + //v34 = stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi); + v1 -= (unsigned __int64)(stru_5C6E00->SinCos(angle - stru_5C6E00->uIntegerHalfPi) * (signed __int64)(signed int)(signed __int64)((double)v81 * fBackwardWalkSpeedMultiplier)) >> 16; //LABEL_70: v72 = 1; goto LABEL_87; case PARTY_LookUp: - v83 += (signed __int64)(flt_6BE150_look_up_down_dangle * 25.0); - if ( v83 > 128 ) - v83 = 128; + __debugbreak(); + _view_angle += (signed __int64)(flt_6BE150_look_up_down_dangle * 25.0); + if ( _view_angle > 128 ) + _view_angle = 128; v35 = uActiveCharacter; if ( !uActiveCharacter ) goto LABEL_87; @@ -2704,9 +2705,10 @@ v63 = 63; goto LABEL_76; case PARTY_LookDown: - v83 += (signed __int64)(flt_6BE150_look_up_down_dangle * -25.0); - if ( v83 < -128 ) - v83 = -128; + __debugbreak(); + _view_angle += (signed __int64)(flt_6BE150_look_up_down_dangle * -25.0); + if ( _view_angle < -128 ) + _view_angle = -128; v35 = uActiveCharacter; if ( uActiveCharacter ) { @@ -2717,10 +2719,12 @@ } break; case PARTY_CenterView: - v83 = 0; + __debugbreak(); + _view_angle = 0; break; case PARTY_Jump: - if ( (!bJumping || v87 <= i + 6 && v89 <= 0) && pParty->field_24 ) + __debugbreak(); + if ( (!bJumping || party_z <= i + 6 && v89 <= 0) && pParty->field_24 ) { bJumping = 1; v89 = (signed __int64)((double)(pParty->field_24 << 6) * 1.5 + (double)v89); @@ -2732,7 +2736,7 @@ } v36 = 0; pParty->sRotationY = angle; - pParty->sRotationX = v83; + pParty->sRotationX = _view_angle; if ( bJumping ) { v89 += -2 * pEventTimer->uTimeElapsed * GetGravityStrength(); @@ -2764,7 +2768,7 @@ goto LABEL_93; } LABEL_92: - pParty->uFallStartY = v87; + pParty->uFallStartY = party_z; LABEL_93: if ( v2 * v2 + v1 * v1 < 400 ) { @@ -2775,20 +2779,20 @@ stru_721530.field_70 = 0; stru_721530.prolly_normal_d = pParty->field_14; stru_721530.field_8 = pParty->field_14 >> 1; - v83 = 0; + auto v83 = 0; stru_721530.field_0 = 1; stru_721530.field_C = pParty->uPartyHeight - 32; while ( 1 ) { - v37 = v87; - stru_721530.field_34.x = v86; - stru_721530.normal.x = v86; + new_party_z = party_z; + stru_721530.field_34.x = new_party_x; + stru_721530.normal.x = new_party_x; stru_721530.field_1C = v2; - stru_721530.field_34.y = v85; - stru_721530.normal.y = v85; + stru_721530.field_34.y = new_party_y; + stru_721530.normal.y = new_party_y; stru_721530.field_20 = v1; - stru_721530.normal.z = stru_721530.prolly_normal_d + v87 + 1; - stru_721530.field_34.z = stru_721530.field_C + v87 + 1; + stru_721530.normal.z = stru_721530.prolly_normal_d + party_z + 1; + stru_721530.field_34.z = stru_721530.field_C + party_z + 1; stru_721530.field_24 = v89; stru_721530.uSectorID = v77; v38 = 0; @@ -2816,26 +2820,26 @@ } else { - v39 = ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.x) >> 16) + v86; - v77 = v85 + ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.y) >> 16); - v40 = v37 + ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.z) >> 16); + v39 = ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.x) >> 16) + new_party_x; + v77 = new_party_y + ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.y) >> 16); + v40 = new_party_z + ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.z) >> 16); } v42 = _46ED1B_collide_against_floor(v39, v77, v40 + 40, &stru_721530.uSectorID, &v79); - if ( v42 == -30000 || v42 - v37 > 128 ) + if ( v42 == -30000 || v42 - new_party_z > 128 ) return; if ( stru_721530.field_7C >= stru_721530.field_6C ) { - v86 = stru_721530.normal2.x; - v85 = stru_721530.normal2.y; - v37 = stru_721530.normal2.z - stru_721530.prolly_normal_d - 1; + new_party_x = stru_721530.normal2.x; + new_party_y = stru_721530.normal2.y; + new_party_z = stru_721530.normal2.z - stru_721530.prolly_normal_d - 1; break; } - v86 += (unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.x) >> 16; - v85 += (unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.y) >> 16; + new_party_x += (unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.x) >> 16; + new_party_y += (unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.y) >> 16; v43 = stru_721530.uFaceID; v77 = stru_721530.uSectorID; stru_721530.field_70 += stru_721530.field_7C; - v87 = ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.z) >> 16) + v37; + auto v87 = ((unsigned __int64)(stru_721530.field_7C * (signed __int64)stru_721530.field_58.z) >> 16) + new_party_z; if ( (stru_721530.uFaceID & 7) == 3 ) { if ( SHIDWORD(pParty->pPartyBuffs[11].uExpireTime) >= 0 @@ -2849,8 +2853,8 @@ v53 = sub_452A9E(v2 * v2 + v1 * v1); i = v53; v54 = stru_5C6E00->Atan2( - v86 - pLevelDecorations[(signed int)stru_721530.uFaceID >> 3].vPosition.x, - v85 - pLevelDecorations[(signed int)stru_721530.uFaceID >> 3].vPosition.y); + new_party_x - pLevelDecorations[stru_721530.uFaceID >> 3].vPosition.x, + new_party_y - pLevelDecorations[stru_721530.uFaceID >> 3].vPosition.y); v2 = (unsigned __int64)(stru_5C6E00->SinCos(v54) * (signed __int64)v53) >> 16; v55 = stru_5C6E00->SinCos(v54 - stru_5C6E00->uIntegerHalfPi); v1 = (unsigned __int64)(v55 * (signed __int64)i) >> 16; @@ -2895,11 +2899,11 @@ v69 = v44->pFacePlane_old.vNormal.x; i = v51; v1 += v81; - v52 = stru_721530.prolly_normal_d - ((v44->pFacePlane_old.dist + v87 * v74 + v85 * v51 + v86 * v69) >> 16); + v52 = stru_721530.prolly_normal_d - ((v44->pFacePlane_old.dist + v87 * v74 + new_party_y * v51 + new_party_x * v69) >> 16); if ( v52 > 0 ) { - v86 += v52 * v69 >> 16; - v85 += v52 * i >> 16; + new_party_x += v52 * v69 >> 16; + new_party_y += v52 * i >> 16; v87 += v52 * v74 >> 16; } LABEL_142: @@ -2934,16 +2938,16 @@ v89 = (unsigned __int64)(58500i64 * v89) >> 16; if ( v83 >= 100 ) { - v37 = v87; + new_party_z = v87; break; } } if ( bWalkSound && pParty->field_6F8 <= 0 ) { - if ( sub_452A9E((pParty->vPosition.x - v86) * (pParty->vPosition.x - v86) + (pParty->vPosition.y - v85) - * (pParty->vPosition.y - v85) - + (pParty->vPosition.z - v37) - * (pParty->vPosition.z - v37)) <= 16 ) + if ( sub_452A9E((pParty->vPosition.x - new_party_x) * (pParty->vPosition.x - new_party_x) + (pParty->vPosition.y - new_party_y) + * (pParty->vPosition.y - new_party_y) + + (pParty->vPosition.z - new_party_z) + * (pParty->vPosition.z - new_party_z)) <= 16 ) goto LABEL_188; if ( v72 && (!bJumping || bFeatherFalla) ) { @@ -3002,9 +3006,9 @@ else pParty->uFlags |= 8u; BYTE1(pParty->uFlags) &= 0xFDu; - pParty->vPosition.x = v86; - pParty->vPosition.z = v37; - pParty->vPosition.y = v85; + pParty->vPosition.x = new_party_x; + pParty->vPosition.z = new_party_z; + pParty->vPosition.y = new_party_y; pParty->uFallSpeed = v89; if ( !bJumping && BYTE3(pIndoor->pFaces[v79].uAttributes) & 0x40 ) BYTE1(pParty->uFlags) |= 2u; @@ -3422,12 +3426,12 @@ v126 = v19; *(float *)&v128 = v20; v124 = (unsigned __int64)(v19 - * (signed __int64)(signed int)(signed __int64)(v20 * fBackwardMovementSlowdownMultiplier)) >> 16; + * (signed __int64)(signed int)(signed __int64)(v20 * fBackwardWalkSpeedMultiplier)) >> 16; v2 -= v124; v126 = stru_5C6E00->SinCos(_angle_y - stru_5C6E00->uIntegerHalfPi); v124 = (unsigned __int64)(v126 * (signed __int64)(signed int)(signed __int64)(*(float *)&v128 - * fBackwardMovementSlowdownMultiplier)) >> 16; + * fBackwardWalkSpeedMultiplier)) >> 16; LABEL_90: v1 -= v124; goto LABEL_86; @@ -3488,7 +3492,7 @@ v28 = (double)_walk_speed; v126 = v27; *(float *)&v128 = v28; - v29 = (signed __int64)(v28 * fBackwardMovementSlowdownMultiplier); + v29 = (signed __int64)(v28 * fBackwardWalkSpeedMultiplier); if ( pParty->bFlying ) { v129 = (unsigned __int64)(v126 * (signed __int64)(4 * (signed int)v29)) >> 16; @@ -3497,7 +3501,7 @@ v129 = (unsigned __int64)(v126 * (signed __int64)(signed int)(4 * (unsigned __int64)(signed __int64)(*(float *)&v128 - * fBackwardMovementSlowdownMultiplier))) >> 16; + * fBackwardWalkSpeedMultiplier))) >> 16; v1 -= v129; LABEL_93: v128 = v1; @@ -3509,7 +3513,7 @@ v126 = stru_5C6E00->SinCos(_angle_y - stru_5C6E00->uIntegerHalfPi); v129 = (unsigned __int64)(v126 * (signed __int64)(signed int)(signed __int64)(*(float *)&v128 - * fBackwardMovementSlowdownMultiplier)) >> 16; + * fBackwardWalkSpeedMultiplier)) >> 16; v1 -= v129; LABEL_86: v128 = v1;
--- a/mm7_data.cpp Sat Oct 27 19:24:11 2012 +0200 +++ b/mm7_data.cpp Sat Oct 27 20:48:36 2012 +0200 @@ -2336,7 +2336,7 @@ int dword_6BE138; // weak int dword_6BE13C_uCurrentlyLoadedLocationID; // weak float fWalkSpeedMultiplier = 1.0f; // weak -float fBackwardMovementSlowdownMultiplier = 1.0f; // weak +float fBackwardWalkSpeedMultiplier = 1.0f; // weak float fTurnSpeedMultiplier = 1.0f; // weak float flt_6BE150_look_up_down_dangle = 1.0f; // weak HWND hWnd; // idb
--- a/mm7_data.h Sat Oct 27 19:24:11 2012 +0200 +++ b/mm7_data.h Sat Oct 27 20:48:36 2012 +0200 @@ -2287,7 +2287,7 @@ extern int dword_6BE138; // weak extern int dword_6BE13C_uCurrentlyLoadedLocationID; // weak extern float fWalkSpeedMultiplier; // weak -extern float fBackwardMovementSlowdownMultiplier; // weak +extern float fBackwardWalkSpeedMultiplier; // weak extern float fTurnSpeedMultiplier; // weak extern float flt_6BE150_look_up_down_dangle; // weak //extern char pMM7WindowClassName[]; // idb