hedgewars/uWorld.pas
changeset 1915 c357f5b55320
parent 1911 6283bd8a960b
child 2002 37c71f5983c9
equal deleted inserted replaced
1914:aab686a4e0c5 1915:c357f5b55320
   176 if AMxShift = 0 then DrawSprite(sprArrow, CursorPoint.X, CursorPoint.Y, (RealTicks shr 6) mod 8)
   176 if AMxShift = 0 then DrawSprite(sprArrow, CursorPoint.X, CursorPoint.Y, (RealTicks shr 6) mod 8)
   177 end;
   177 end;
   178 
   178 
   179 procedure MoveCamera; forward;
   179 procedure MoveCamera; forward;
   180 
   180 
       
   181 procedure DrawWater;
       
   182 var VertexBuffer: array [0..3] of TVertex2f;
       
   183     r: TSDL_Rect;
       
   184 begin
       
   185 // Water
       
   186 r.y:= WorldDy + cWaterLine + 32;
       
   187 if r.y < cScreenHeight then
       
   188 	begin
       
   189 	if r.y < 0 then r.y:= 0;
       
   190 
       
   191 	glDisable(GL_TEXTURE_2D);
       
   192 	VertexBuffer[0].X:= 0;
       
   193 	VertexBuffer[0].Y:= r.y;
       
   194 	VertexBuffer[1].X:= cScreenWidth;
       
   195 	VertexBuffer[1].Y:= r.y;
       
   196 	VertexBuffer[2].X:= cScreenWidth;
       
   197 	VertexBuffer[2].Y:= cScreenHeight;
       
   198 	VertexBuffer[3].X:= 0;
       
   199 	VertexBuffer[3].Y:= cScreenHeight;
       
   200 
       
   201 	glEnableClientState (GL_COLOR_ARRAY);
       
   202 	glColorPointer(3, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]);
       
   203 
       
   204 	glEnableClientState(GL_VERTEX_ARRAY);
       
   205 	glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
       
   206 	
       
   207 	glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
       
   208 
       
   209 	glEnableClientState(GL_COLOR_ARRAY);
       
   210 	glDisableClientState(GL_COLOR_ARRAY);
       
   211 
       
   212 	glColor4f(1, 1, 1, 1); // disable coloring
       
   213 	glEnable(GL_TEXTURE_2D)
       
   214 	end
       
   215 end;
       
   216 
   181 procedure DrawWorld(Lag: LongInt);
   217 procedure DrawWorld(Lag: LongInt);
   182 var i, t: LongInt;
   218 var i, t: LongInt;
   183     r: TSDL_Rect;
   219     r: TSDL_Rect;
   184     tdx, tdy: Double;
   220     tdx, tdy: Double;
   185     grp: TCapGroup;
   221     grp: TCapGroup;
   186     s: string[15];
   222     s: string[15];
   187     VertexBuffer: array [0..3] of TVertex2f;
       
   188 
   223 
   189     procedure DrawRepeated(spr: TSprite; Shift: LongInt);
   224     procedure DrawRepeated(spr: TSprite; Shift: LongInt);
   190     var i, w: LongInt;
   225     var i, w: LongInt;
   191     begin
   226     begin
   192     w:= SpritesData[spr].Width;
   227     w:= SpritesData[spr].Width;
   223     {$WARNINGS ON}
   258     {$WARNINGS ON}
   224     end;
   259     end;
   225 
   260 
   226 
   261 
   227 DrawLand(WorldDx, WorldDy);
   262 DrawLand(WorldDx, WorldDy);
   228 // Water
   263 
   229 r.y:= WorldDy + cWaterLine + 32;
   264 DrawWater;
   230 if r.y < cScreenHeight then
       
   231 	begin
       
   232 	if r.y < 0 then r.y:= 0;
       
   233 
       
   234 	glDisable(GL_TEXTURE_2D);
       
   235 	VertexBuffer[0].X:= 0;
       
   236 	VertexBuffer[0].Y:= r.y;
       
   237 	VertexBuffer[1].X:= cScreenWidth;
       
   238 	VertexBuffer[1].Y:= r.y;
       
   239 	VertexBuffer[2].X:= cScreenWidth;
       
   240 	VertexBuffer[2].Y:= cScreenHeight;
       
   241 	VertexBuffer[3].X:= 0;
       
   242 	VertexBuffer[3].Y:= cScreenHeight;
       
   243 
       
   244 	glEnableClientState (GL_COLOR_ARRAY);
       
   245 	glColorPointer(3, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]);
       
   246 
       
   247 	glEnableClientState(GL_VERTEX_ARRAY);
       
   248 	glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
       
   249 	
       
   250 	glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer));
       
   251 
       
   252 	glEnableClientState(GL_COLOR_ARRAY);
       
   253 	glDisableClientState(GL_COLOR_ARRAY);
       
   254 
       
   255 	glColor4f(1, 1, 1, 1); // disable coloring
       
   256 	glEnable(GL_TEXTURE_2D)
       
   257 	end;
       
   258 
   265 
   259 // Attack bar
   266 // Attack bar
   260 if CurrentTeam <> nil then
   267 if CurrentTeam <> nil then
   261 	case AttackBar of
   268 	case AttackBar of
   262 (*        1: begin
   269 (*        1: begin