Mercurial > mm7
diff mm7_3.cpp @ 921:3696848c0413
meteorite rain and other spells fix
author | Ritor1 |
---|---|
date | Tue, 30 Apr 2013 20:08:42 +0600 |
parents | 34ed2d5e7cfb |
children | a78f08dbeb88 |
line wrap: on
line diff
--- a/mm7_3.cpp Sun Apr 28 19:11:36 2013 +0600 +++ b/mm7_3.cpp Tue Apr 30 20:08:42 2013 +0600 @@ -11522,34 +11522,36 @@ v10.uViewportZ = 639; v10.uViewportW = 479; v12 = 0; - v3 = (char *)&pOtherOverlayList->pOverlays[0].field_C; - do - { - if ( *((short *)v3 - 3) > 0 ) - { - result = *((short *)v3 - 6); - if ( result >= 300 ) - { - v4 = result; - v5 = result == v2 + 320 | result == v2 + 330 | result == v2 + 340 | result == v2 + 350; - result = v2 + 310; - if ( v4 == v2 + 310 | v5 ) - { - if ( !*(short *)v3 ) - { - v6 = pSpriteFrameTable->GetFrame( - pOverlayList->pOverlays[*((short *)v3 - 5)].uSpriteFramesetID, - *((short *)v3 - 4)); + //v3 = (char *)&pOtherOverlayList->pOverlays[0].field_C; + //do + for ( uint i = 0; i < 50; ++i ) + { + if ( pOtherOverlayList->pOverlays[i].field_6 > 0 ) + { + result = pOtherOverlayList->pOverlays[i].field_0; + if ( pOtherOverlayList->pOverlays[i].field_0 >= 300 ) + { + //v4 = result; + v5 = pOtherOverlayList->pOverlays[i].field_0 == v2 + 320 + | pOtherOverlayList->pOverlays[i].field_0 == v2 + 330 | pOtherOverlayList->pOverlays[i].field_0 == v2 + 340 + | pOtherOverlayList->pOverlays[i].field_0 == v2 + 350; + pOtherOverlayList->pOverlays[i].field_0 = v2 + 310; + if ( pOtherOverlayList->pOverlays[i].field_0 == v2 + 310 | v5 ) + { + if ( !pOtherOverlayList->pOverlays[i].field_0 ) + { + v6 = pSpriteFrameTable->GetFrame(pOverlayList->pOverlays[pOtherOverlayList->pOverlays[i].field_2].uSpriteFramesetID, + pOtherOverlayList->pOverlays[i].field_4); v7 = v6; - v11 = *((int *)v3 + 1); + v11 = pOtherOverlayList->pOverlays[i].field_E; v13 = v6->scale; v13 = (unsigned __int64)(v11 * (signed __int64)v13) >> 16; - v10.uScreenSpaceX = *((short *)v3 - 2); - v10.uScreenSpaceY = *((short *)v3 - 1); + v10.uScreenSpaceX = pOtherOverlayList->pOverlays[i].field_8; + v10.uScreenSpaceY = pOtherOverlayList->pOverlays[i].field_A; v10._screenspace_x_scaler_packedfloat = v13; v10._screenspace_y_scaler_packedfloat = v13; v10.pPalette = PaletteManager::Get_Dark_or_Red_LUT(v6->uPaletteIndex, 0, 1); - v8 = *((short *)v3 - 5); + v8 = pOtherOverlayList->pOverlays[i].field_2; v10.sZValue = 0; v10.uFlags = 0; v9 = pOverlayList->pOverlays[v8].uOverlayType; @@ -11563,9 +11565,9 @@ } } } - v3 += 20; - } - while ( (signed int)v3 < (signed int)&pOverlayList->pOverlays ); + //v3 += 20; + } + //while ( (signed int)v3 < (signed int)&pOverlayList->pOverlays ); return result; }