hedgewars/uWorld.pas
changeset 3265 5fe62296fdea
parent 3249 74a506c9d71b
child 3304 8690a3aa93b5
equal deleted inserted replaced
3264:3cf9d915cdb9 3265:5fe62296fdea
   164 prevPoint.X:= 0;
   164 prevPoint.X:= 0;
   165 prevPoint.Y:= cScreenHeight div 2;
   165 prevPoint.Y:= cScreenHeight div 2;
   166 WorldDx:=  - (LAND_WIDTH div 2) + cScreenWidth div 2;
   166 WorldDx:=  - (LAND_WIDTH div 2) + cScreenWidth div 2;
   167 WorldDy:=  - (LAND_HEIGHT - (playHeight div 2)) + (cScreenHeight div 2);
   167 WorldDy:=  - (LAND_HEIGHT - (playHeight div 2)) + (cScreenHeight div 2);
   168 AMxShift:= 210;
   168 AMxShift:= 210;
   169 SkyOffset:= (10 * min(0, -145 - (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine))) div 35;
   169 SkyOffset:= 0;
   170 HorizontOffset:= (10 * min(0, -145 - (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine))) div 55;
   170 HorizontOffset:= 0;
   171 end;
   171 end;
   172 
   172 
   173 procedure ShowAmmoMenu;
   173 procedure ShowAmmoMenu;
   174 const MENUSPEED = 15;
   174 const MENUSPEED = 15;
   175 var x, y, i, t, l, g: LongInt;
   175 var x, y, i, t, l, g: LongInt;
   434     r: TSDL_Rect;
   434     r: TSDL_Rect;
   435     tdx, tdy: Double;
   435     tdx, tdy: Double;
   436     grp: TCapGroup;
   436     grp: TCapGroup;
   437     s: string[15];
   437     s: string[15];
   438     highlight: Boolean;
   438     highlight: Boolean;
   439     offset, offsetX, offsetY: LongInt;
   439     offset, offsetX, offsetY, ScreenBottom: LongInt;
   440     scale: GLfloat;
   440     scale: GLfloat;
   441     VertexBuffer: array [0..3] of TVertex2f;
   441     VertexBuffer: array [0..3] of TVertex2f;
   442 begin
   442 begin
   443 if ZoomValue < zoom then
   443 if ZoomValue < zoom then
   444     begin
   444     begin
   448 if ZoomValue > zoom then
   448 if ZoomValue > zoom then
   449     begin
   449     begin
   450     zoom:= zoom + 0.002 * Lag;
   450     zoom:= zoom + 0.002 * Lag;
   451     if ZoomValue < zoom then zoom:= ZoomValue
   451     if ZoomValue < zoom then zoom:= ZoomValue
   452     end;
   452     end;
   453 
       
   454 offsetY:= 10 * min(0, -145 - (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine));
       
   455 
       
   456 //SkyOffset:= offsetY div 35 + cWaveHeight;
       
   457 HorizontOffset:= offsetY div 35 + cWaveHeight;
       
   458 SkyOffset:= HorizontOffset;
       
   459 
   453 
   460 // Sky
   454 // Sky
   461 glClear(GL_COLOR_BUFFER_BIT);
   455 glClear(GL_COLOR_BUFFER_BIT);
   462 glEnable(GL_BLEND);
   456 glEnable(GL_BLEND);
   463 glEnable(GL_TEXTURE_2D);
   457 glEnable(GL_TEXTURE_2D);
   466 
   460 
   467 if not isPaused then MoveCamera;
   461 if not isPaused then MoveCamera;
   468 
   462 
   469 if not cReducedQuality then
   463 if not cReducedQuality then
   470     begin
   464     begin
       
   465     // Offsets relative to camera - spare them to wimpier cpus, no bg or flakes for them anyway
       
   466     ScreenBottom:= (WorldDy - trunc(cScreenHeight/cScaleFactor) - (cScreenHeight div 2) + cWaterLine);
       
   467     offsetY:= 10 * min(0, -145 - ScreenBottom);
       
   468     SkyOffset:= offsetY div 35 + cWaveHeight;
       
   469     HorizontOffset:= SkyOffset;
       
   470     if ScreenBottom > SkyOffset then
       
   471         HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
       
   472 
   471     // background
   473     // background
   472     DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
   474     DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
   473     DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
   475     DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
   474 
   476 
   475     DrawVisualGears(0);
   477     DrawVisualGears(0);
   476     end;
   478     
   477 
   479     // Waves
   478 // Waves
   480     DrawWater(255, SkyOffset); 
   479 DrawWater(255, SkyOffset); 
   481     DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 0.25);
   480 DrawWaves( 1,  0 - WorldDx div 32, - cWaveHeight + offsetY div 35, 0.25);
   482     DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 0.19);
   481 DrawWaves( -1,  25 + WorldDx div 25, - cWaveHeight + offsetY div 38, 0.19);
   483     DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 0.14);
   482 DrawWaves( 1,  75 - WorldDx div 19, - cWaveHeight + offsetY div 45, 0.14);
   484     DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 0.09);
   483 DrawWaves(-1, 100 + WorldDx div 14, - cWaveHeight + offsetY div 70, 0.09);
   485     end
   484 
   486 else
       
   487     DrawWaves(-1, 100, - (cWaveHeight + (cWaveHeight shr 1)), 0);
   485 
   488 
   486 DrawLand(WorldDx, WorldDy);
   489 DrawLand(WorldDx, WorldDy);
   487 
   490 
   488 DrawWater(255, 0);
   491 DrawWater(255, 0);
   489 
   492 
   517 
   520 
   518 DrawWater(cWaterOpacity, 0);
   521 DrawWater(cWaterOpacity, 0);
   519 
   522 
   520 // Waves
   523 // Waves
   521 DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 0.05);
   524 DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 0.05);
   522 //DrawWater(cWaterOpacity, - offsetY div 40);
   525 
   523 DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 0.03);
   526 if not cReducedQuality then
   524 DrawWater(cWaterOpacity, - offsetY div 20);
   527     begin
   525 DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 0.01);
   528     //DrawWater(cWaterOpacity, - offsetY div 40);
   526 DrawWater(cWaterOpacity, - offsetY div 10);
   529     DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 0.03);
   527 DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
   530     DrawWater(cWaterOpacity, - offsetY div 20);
       
   531     DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 0.01);
       
   532     DrawWater(cWaterOpacity, - offsetY div 10);
       
   533     DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
       
   534     end
       
   535 else
       
   536     DrawWaves(-1, 50, - (cWaveHeight shr 1), 0);
   528 
   537 
   529 
   538 
   530 {$WARNINGS OFF}
   539 {$WARNINGS OFF}
   531 // Target
   540 // Target
   532 if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then
   541 if (TargetPoint.X <> NoPointX) and (CurrentTeam <> nil) and (CurrentHedgehog <> nil) then