# HG changeset patch # User Ritor1 # Date 1369427027 -21600 # Node ID 3dc32954f1c7c809b5337711db83068609e60dfd # Parent 6b34a45a39834c5deb7eb4b5d972ff5426369590# Parent a7e63532b9a861282826b1ecf3e9266826258f0b Слияние diff -r 6b34a45a3983 -r 3dc32954f1c7 Party.cpp --- a/Party.cpp Sat May 25 02:23:26 2013 +0600 +++ b/Party.cpp Sat May 25 02:23:47 2013 +0600 @@ -332,7 +332,7 @@ //unsigned __int8 v9; // zf@37 //char v10; // sf@37 //unsigned __int8 v11; // of@37 - char *pAttributes; // eax@38 + ItemGen *pItems; // eax@38 signed int v13; // ecx@38 int uMaxSP; // eax@42 unsigned int v15; // [sp-4h] [bp-44h]@14 @@ -556,13 +556,13 @@ //v10 = uSkillIdx - 35 < 0; } //while (uSkillIdx < 36); - pAttributes = (char *)&pCharacter->pInventoryItems[0].uAttributes; + pItems = pCharacter->pInventoryItems; //v13 = 138; - for (v13 = 138; v13 > 0; --v13) + for (int i = 0; i < 138; i++) { - if ( *((int *)pAttributes - 5) ) - *(int *)pAttributes |= 1; - pAttributes += 36; + if ( pItems->uItemID ) + pItems->uAttributes |= 1; + ++pItems; //--v13; } //while ( v13 ); diff -r 6b34a45a3983 -r 3dc32954f1c7 Player.cpp --- a/Player.cpp Sat May 25 02:23:26 2013 +0600 +++ b/Player.cpp Sat May 25 02:23:47 2013 +0600 @@ -9536,8 +9536,9 @@ case VAR_Dead: case VAR_Stoned: case VAR_Eradicated: - *((int *)this + 2 * VarNum - 210) = 0; - *((int *)this + 2 * result - 209) = 0; + //*((int *)this + 2 * VarNum - 210) = 0; + //*((int *)this + 2 * result - 209) = 0; + this->pConditions[VarNum] = 0; pGame->pStru6Instance->SetPlayerBuffAnim(0x98u, v4); v8 = 8 * v4 + 400; LOBYTE(v8) = PID(OBJECT_Player,v4 - 112); diff -r 6b34a45a3983 -r 3dc32954f1c7 SpriteObject.cpp --- a/SpriteObject.cpp Sat May 25 02:23:26 2013 +0600 +++ b/SpriteObject.cpp Sat May 25 02:23:47 2013 +0600 @@ -725,7 +725,7 @@ //if ( v14 != (unsigned int)(signed __int64)((double)v41 * 0.3333333333333333) ) if( pActors[pSpriteObject->spell_caster_pid >> 3].pMonsterInfo.uID != v39b->pMonsterInfo.uID ) //not sure: pMonsterList->pMonsters[v39b->word_000086_some_monster_id-1].uToHitRadius - _46DF1A_collide_against_actor(v42, *((short *)&pMonsterList->pMonsters[v39b->word_000086_some_monster_id] - 73)); + _46DF1A_collide_against_actor(v42, pMonsterList->pMonsters[v39b->word_000086_some_monster_id-1].uToHitRadius); ++v42; ++v39b;// += 836; } @@ -740,7 +740,7 @@ v39b = pActors;//[0].word_000086_some_monster_id; do { - _46DF1A_collide_against_actor(v42++, *((short *)&pMonsterList->pMonsters[*(short *)v39b] - 73)); + _46DF1A_collide_against_actor(v42++, pMonsterList->pMonsters[v39b->word_000086_some_monster_id-1].uToHitRadius); ++v39b; } while ( v42 < (signed int)uNumActors ); diff -r 6b34a45a3983 -r 3dc32954f1c7 mm7_3.cpp --- a/mm7_3.cpp Sat May 25 02:23:26 2013 +0600 +++ b/mm7_3.cpp Sat May 25 02:23:47 2013 +0600 @@ -2721,20 +2721,23 @@ v34 = v121; //LABEL_164: - if ( !bUnderwater && v34 <= 0 && bJumping) - { - if ( v34 < -500 - && !pParty->bFlying - && pParty->vPosition.z - v111 > 1000 - && !pParty->FeatherFallActive()) - { // falling scream - for (int i = 0; i < 4; ++i) - { - auto player = pParty->pPlayers + i; - if (!player->HasEnchantedItemEquipped(72) && !player->WearsItem(529, 8) && player->CanAct()) - player->PlaySound(SPEECH_66, 0); - } - } + if(bJumping) + { + if ( !bUnderwater && v34 <= 0) + { + if ( v34 < -500 + && !pParty->bFlying + && pParty->vPosition.z - v111 > 1000 + && !pParty->FeatherFallActive()) + { // falling scream + for (int i = 0; i < 4; ++i) + { + auto player = pParty->pPlayers + i; + if (!player->HasEnchantedItemEquipped(72) && !player->WearsItem(529, 8) && player->CanAct()) + player->PlaySound(SPEECH_66, 0); + } + } + } } else {