Code: Select all
pTex->YOffset += (geFloat)pTex->YStep * dwTicks;//(dwTicks*0.001f);
if(pTex->YOffset > GE_2PI)
pTex->YOffset = 0.0f;
CosStep = GE_2PI / (geFloat)pTex->SegmentCount;
CurYOffset = pTex->YOffset;
// adjust vertically
for(Col=0; Col<pTex->SegmentCount; Col++)
{
// adjust offset
CurYOffset += CosStep;
if(CurYOffset > GE_PI)
{
CosStep = -CosStep;
// changed QD 12/15/05
CurYOffset = GE_2PI - CurYOffset;// GE_PI - (CurYOffset - GE_PI);
}
else if(CurYOffset < 0.0)
{
CosStep = -CosStep;
CurYOffset = -CurYOffset;
}
// compute positions
XPos = Col * pTex->SegmentSize;
YPos = (int)(((geFloat)cos(CurYOffset) + 1.0f) * ((geFloat)pTex->MaxYSway*0.5f));
// adjust bitmap
geBitmap_Blit(pTex->OriginalBmp, XPos, 0, pTex->WorkBmp, XPos, YPos, pTex->SegmentSize, AttachInfo.Height - YPos );
geBitmap_Blit(pTex->OriginalBmp, XPos, AttachInfo.Height - YPos, pTex->WorkBmp, XPos, 0, pTex->SegmentSize, YPos );
}