789 DrawSprite(sprArrow, CursorPoint.X, cScreenHeight - CursorPoint.Y, (RealTicks shr 6) mod 8); |
789 DrawSprite(sprArrow, CursorPoint.X, cScreenHeight - CursorPoint.Y, (RealTicks shr 6) mod 8); |
790 {$ENDIF} |
790 {$ENDIF} |
791 end; |
791 end; |
792 |
792 |
793 procedure DrawWater(Alpha: byte; OffsetY, OffsetX: LongInt); |
793 procedure DrawWater(Alpha: byte; OffsetY, OffsetX: LongInt); |
794 var VertexBuffer : array [0..4] of TVertex2f; |
794 var VertexBuffer : array [0..3] of TVertex2f; |
795 topy, lx, rx: LongInt; |
795 topy, lx, rx: LongInt; |
796 begin |
796 begin |
|
797 |
797 // Water |
798 // Water |
798 topy:= OffsetY + WorldDy + cWaterLine; |
799 topy:= OffsetY + WorldDy + cWaterLine; |
799 |
800 |
800 if SuddenDeathDmg then |
801 if SuddenDeathDmg then |
801 begin |
802 begin |
937 VertexBuffer[1].Y:= VertexBuffer[0].Y; |
938 VertexBuffer[1].Y:= VertexBuffer[0].Y; |
938 VertexBuffer[2].X:= lw; |
939 VertexBuffer[2].X:= lw; |
939 VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprite].Height; |
940 VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprite].Height; |
940 VertexBuffer[3].X:= -lw; |
941 VertexBuffer[3].X:= -lw; |
941 VertexBuffer[3].Y:= VertexBuffer[2].Y; |
942 VertexBuffer[3].Y:= VertexBuffer[2].Y; |
942 end; |
943 |
943 |
944 waves:= lw * 2 / cWaveWidth; |
944 waves:= lw * 2 / cWaveWidth; |
945 shift:= - lw / cWaveWidth; |
945 shift:= - lw / cWaveWidth; |
946 TextureBuffer[0].X:= shift + (( - WorldDx + LongInt(RealTicks shr 6) * Dir + dX) mod cWaveWidth) / (cWaveWidth - 1); |
946 TextureBuffer[0].X:= shift + (( - WorldDx + LongInt(RealTicks shr 6) * Dir + dX) mod cWaveWidth) / (cWaveWidth - 1); |
947 TextureBuffer[0].Y:= 0; |
947 TextureBuffer[0].Y:= 0; |
948 TextureBuffer[1].X:= TextureBuffer[0].X + waves; |
948 TextureBuffer[1].X:= TextureBuffer[0].X + waves; |
949 TextureBuffer[1].Y:= TextureBuffer[0].Y; |
949 TextureBuffer[1].Y:= TextureBuffer[0].Y; |
950 TextureBuffer[2].X:= TextureBuffer[1].X; |
950 TextureBuffer[2].X:= TextureBuffer[1].X; |
951 TextureBuffer[2].Y:= SpritesData[sprite].Texture^.ry; |
951 TextureBuffer[2].Y:= SpritesData[sprite].Texture^.ry; |
952 TextureBuffer[3].X:= TextureBuffer[0].X; |
952 TextureBuffer[3].X:= TextureBuffer[0].X; |
953 TextureBuffer[3].Y:= TextureBuffer[2].Y; |
953 TextureBuffer[3].Y:= TextureBuffer[2].Y; |
954 |
954 |
955 |
955 |
956 SetVertexPointer(@VertexBuffer[0], 4); |
956 SetVertexPointer(@VertexBuffer[0], 4); |
957 SetTexCoordPointer(@TextureBuffer[0], 4); |
957 SetTexCoordPointer(@TextureBuffer[0],4); |
958 |
958 |
959 {$IFDEF GL2} |
959 {$IFDEF GL2} |
960 UpdateModelviewProjection; |
960 UpdateModelviewProjection; |
961 {$ENDIF} |
961 {$ENDIF} |
962 |
962 |
963 glDrawArrays(GL_TRIANGLE_FAN, 0, 4); |
963 glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); |
964 end; |
964 end |
965 end |
965 else // weSea: with waterwalls |
966 else // weSea: with waterwalls |
966 begin |
967 begin |
967 topy := cWaterLine + WorldDy; |
968 topy := cWaterLine + WorldDy; |
968 |
969 |