# HG changeset patch # User Grumpy7 # Date 1406147113 -7200 # Node ID ea7748f4dc6022b0b11499e90984262b1f48ce92 # Parent ed1e4cff79a27d60c4db87ed93544b9120bf8163# Parent f1d8eba1a9aacb011c148067bea64b64a7283bfb Merge diff -r f1d8eba1a9aa -r ea7748f4dc60 Sprites.cpp --- a/Sprites.cpp Wed Jul 23 22:09:56 2014 +0300 +++ b/Sprites.cpp Wed Jul 23 22:25:13 2014 +0200 @@ -406,17 +406,9 @@ memcpy(pSpriteSFrames + num_mm6_frames + num_mm7_frames, (char *)data_mm8 + 8, mm8_frames_size); memcpy(pSpriteEFrames + num_mm6_frames + num_mm7_frames, (char *)data_mm8 + 8 + mm8_frames_size, 2 * num_mm8_eframes); - for (uint i = 0; i < num_mm7_frames; ++i) - pSpritePFrames[i] = &pSpriteSFrames[pSpriteEFrames[i]];//Uninitialized memory access - - for (uint i = num_mm7_frames; i < num_mm6_frames + num_mm7_frames; ++i) - pSpritePFrames[i] = &pSpriteSFrames[pSpriteEFrames[i] + num_mm7_frames]; - - for (uint i = num_mm6_frames + num_mm7_frames; i < num_mm6_frames + num_mm7_frames + num_mm8_frames; ++i) - pSpritePFrames[i] = &pSpriteSFrames[pSpriteEFrames[i] + num_mm6_frames + num_mm7_frames]; - - //for (uint i = 0; i < uNumSpriteFrames; ++i) - // pSpritePFrames[i] = &pSpriteSFrames[pSpriteEFrames[i]]; + //the original was using num_mmx_frames, but never accessed any element beyond num_mmx_eframes, but boing beyong eframes caused invalid memory accesses + for (uint i = 0; i < num_mm6_eframes + num_mm7_eframes + num_mm8_eframes; ++i) + pSpritePFrames[i] = &pSpriteSFrames[pSpriteEFrames[i]]; } //----- (0044DA92) --------------------------------------------------------