hedgewars/uWorld.pas
changeset 10320 0f9ad60f738c
parent 10319 240775460dc5
child 10321 863663e1b3fd
equal deleted inserted replaced
10319:240775460dc5 10320:0f9ad60f738c
   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