hedgewars/uWorld.pas
changeset 6695 32de8965c62c
parent 6692 029c27660dd2
child 6700 e04da46ee43c
equal deleted inserted replaced
6694:48317632b3a9 6695:32de8965c62c
   211 begin
   211 begin
   212 {$IFDEF USE_TOUCH_INTERFACE}
   212 {$IFDEF USE_TOUCH_INTERFACE}
   213 //positioning of the buttons
   213 //positioning of the buttons
   214 buttonScale:= 1.5/cDefaultZoomLevel;
   214 buttonScale:= 1.5/cDefaultZoomLevel;
   215 
   215 
   216 //TODO: add sensible hOffset and vOffset values
   216 with firebutton do
   217 firebutton.x:= (cScreenWidth shr 1) - Round(spritesData[sprFireButton].Texture^.h * buttonScale);
   217     begin
   218 firebutton.y:= -Round(spritesData[sprFireButton].Texture^.h* buttonScale) + cScreenHeight;
   218     show:= true;
   219 firebutton.width:= Round(spritesData[sprFireButton].Texture^.w * buttonScale);
   219     sprite:= sprFireButton;
   220 firebutton.height:= Round(spritesData[sprFireButton].Texture^.h * buttonScale);
   220     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
   221 firebutton.hOffset:= 0;
   221     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
   222 firebutton.vOffset:= 0;
   222     frame.x:= (cScreenWidth shr 1) - frame.w;
   223 firebutton.sprite:= sprFireButton;
   223     frame.y:= cScreenHeight - frame.h;
   224 firebutton.show:= true;
   224     active:= frame;
   225 
   225     end;
   226 backjump.x:= (cScreenWidth shr 1) - Round(spritesData[sprbackjump].Texture^.h * 2 * buttonScale);
   226 
   227 backjump.y:= -Round(spritesData[sprbackjump].Texture^.h * 1.2 *  buttonScale) + cScreenHeight;
   227 with backjump do
   228 backjump.width:= Round(spritesData[sprbackjump].Texture^.w * buttonScale);
   228     begin
   229 backjump.height:= Round(spritesData[sprbackjump].Texture^.h * buttonScale);
   229     show:= true;
   230 backjump.hOffset:= 0;
   230     sprite:= sprbackjump;
   231 backjump.vOffset:= 0;
   231     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
   232 backjump.sprite:= sprbackjump;
   232     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
   233 backjump.show:= true;
   233     frame.x:= (cScreenWidth shr 1) - frame.w * 2;
   234 
   234     frame.y:= cScreenHeight - Round(frame.h * 1.2);
   235 forwardjump.x:= (cScreenWidth shr 1) - Round(spritesData[sprforwardjump].Texture^.h * 1.2 * buttonScale);
   235     active:= frame;
   236 forwardjump.y:= -Round(spritesData[sprforwardjump].Texture^.h * 2 * buttonScale) + cScreenHeight;
   236     end;
   237 forwardjump.width:= Round(spritesData[sprforwardjump].Texture^.w * buttonScale);
   237 
   238 forwardjump.height:= Round(spritesData[sprforwardjump].Texture^.h * buttonScale);
   238 with forwardjump do
   239 forwardjump.hOffset:= 0;
   239     begin
   240 forwardjump.vOffset:= 0;
   240     show:= true;
   241 forwardjump.sprite:= sprforwardjump;
   241     sprite:= sprforwardjump;
   242 forwardjump.show:= true;
   242     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
       
   243     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
       
   244     frame.x:= (cScreenWidth shr 1) - Round(frame.w * 1.2);
       
   245     frame.y:= cScreenHeight - frame.h * 2;
       
   246     active:= frame;
       
   247     end;
   243 
   248 
   244 with arrowLeft do
   249 with arrowLeft do
   245     begin
   250     begin
   246     show:= true;
   251     show:= true;
   247     sprite:= sprArrowLeft;
   252     sprite:= sprArrowLeft;
   248     x:= -(cScreenWidth shr 1) + Round(spritesData[sprite].Texture^.h*buttonScale * 0.25);
   253     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
   249     y:= -Round(spritesData[sprite].Texture^.h*buttonScale) + cScreenHeight  - Round(spritesData[sprite].Texture^.h*buttonScale *0.5);
   254     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
   250     width:= Round(spritesData[sprite].Texture^.h * buttonScale);
   255     frame.x:= -(cScreenWidth shr 1) + Round(frame.w * 0.25);
   251     height:= Round(spritesData[sprite].Texture^.h * buttonScale);
   256     frame.y:= cScreenHeight - Round(frame.h * 1.5);
   252     hOffset:= 0;
   257     active:= frame;
   253     vOffset:= 0;
   258     end;
   254     end;
   259 
   255 with arrowRight do
   260 with arrowRight do
   256     begin
   261     begin
   257     show:= true;
   262     show:= true;
   258     sprite:= sprArrowRight;
   263     sprite:= sprArrowRight;
   259     x:= -(cScreenWidth shr 1) + Round(spritesData[sprite].Texture^.h * buttonScale *1.5);
   264     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
   260     y:= -Round(spritesData[sprite].Texture^.h*buttonScale) + cScreenHeight - Round(spritesData[sprite].Texture^.h*buttonScale * 0.5);
   265     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
   261     width:= Round(spritesData[sprite].Texture^.w * buttonScale);
   266     frame.x:= -(cScreenWidth shr 1) + Round(frame.w * 1.5);
   262     height:= Round(spritesData[sprite].Texture^.h * buttonScale);
   267     frame.y:= cScreenHeight - Round(frame.h * 1.5);
   263     hOffset:= 0;
   268     active:= frame;
   264     vOffset:= 0;
       
   265     end;
   269     end;
   266 
   270 
   267 with arrowUp do
   271 with arrowUp do
   268     begin
   272     begin
   269     show:= false;
   273     show:= false;
   270     sprite:= sprArrowUp;
   274     sprite:= sprArrowUp;
   271     x:= (cScreenWidth shr 1) - Round(spritesData[sprite].Texture^.w * buttonScale *2);
   275     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
   272     y:= backjump.y -Round(spritesData[sprite].Texture^.h * buttonScale*2.25);
   276     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
   273     width:= Round(spritesData[sprite].Texture^.w * buttonScale);
   277     frame.x:= (cScreenWidth shr 1) - frame.w * 2;
   274     height:= Round(spritesData[sprite].Texture^.h * buttonScale);
   278     frame.y:= backjump.frame.y - Round(frame.h * 2.25);
   275     hOffset:= 0;
   279     active:= frame;
   276     vOffset:= 0;
       
   277     with moveAnim do
   280     with moveAnim do
   278          begin
   281          begin
   279          targetToX:= arrowUp.x;
   282          target.x:= frame.x;
   280          targetToY:= arrowUp.y;
   283          target.y:= frame.y;
   281          targetFromX:= arrowUp.x - Round(spritesData[sprite].Texture^.w * buttonScale *0.75);
   284          source.x:= frame.x - Round(frame.w * 0.75);
   282          targetFromY:= arrowUp.y;
   285          source.y:= frame.y;
   283          end;
   286          end;
   284     end;
   287     end;
   285 
   288 
   286 with arrowDown do
   289 with arrowDown do
   287     begin
   290     begin
   288     show:= false;
   291     show:= false;
   289     sprite:= sprArrowDown;
   292     sprite:= sprArrowDown;
   290     x:= (cScreenWidth shr 1) - Round(spritesData[sprite].Texture^.w * buttonScale * 2);
   293     frame.w:= Round(spritesData[sprite].Texture^.w * buttonScale);
   291     y:= backjump.y -Round(spritesData[sprite].Texture^.h * buttonScale *2.25);
   294     frame.h:= Round(spritesData[sprite].Texture^.h * buttonScale);
   292     width:= Round(spritesData[sprite].Texture^.w * buttonScale);
   295     frame.x:= (cScreenWidth shr 1) - frame.w * 2;
   293     height:= Round(spritesData[sprite].Texture^.h * buttonScale);
   296     frame.y:= backjump.frame.y - Round(frame.h * 2.25);
   294     hOffset:= 0;
   297     active:= frame;
   295     vOffset:= 0;
       
   296     with moveAnim do
   298     with moveAnim do
   297         begin
   299         begin
   298         targetToX:= arrowDown.x;
   300         target.x:= frame.x;
   299         targetToY:= arrowDown.y;
   301         target.y:= frame.y;
   300         targetFromX:= arrowDown.x + Round(spritesData[sprite].Texture^.w * buttonScale *0.75);
   302         source.x:= frame.x + Round(frame.w * 0.75);
   301         targetFromY:= arrowDown.y;
   303         source.y:= frame.y;
   302         end;
   304         end;
   303     end;
   305     end;
   304 
   306 
   305 pauseButton.x:= cScreenWidth div 2 - Round(spritesData[sprPauseButton].Texture^.w * buttonscale);
   307 with pauseButton do
   306 pauseButton.y:= 0; //-Round(spritesData[sprPauseButton].Texture^.h * buttonscale);
   308     begin
   307 pauseButton.width:= Round(spritesData[sprPauseButton].Texture^.w * buttonScale);;
   309     show:= true;
   308 pauseButton.height:= Round(spritesData[sprPauseButton].Texture^.h * buttonScale);;
   310     sprite:= sprPauseButton;
   309 pauseButton.hOffset:= 0;
   311     frame.w:= Round(spritesData[sprPauseButton].Texture^.w * buttonScale);
   310 pauseButton.vOffset:= 0;
   312     frame.h:= Round(spritesData[sprPauseButton].Texture^.h * buttonScale);
   311 pauseButton.sprite:= sprPauseButton;
   313     frame.x:= cScreenWidth div 2 - frame.w;
   312 pauseButton.show:= true;
   314     frame.y:= 0;
       
   315     active:= frame;
       
   316     end;
   313 
   317 
   314 {$ENDIF}
   318 {$ENDIF}
   315 end;
   319 end;
   316 
   320 
   317 // for uStore texture resetting
   321 // for uStore texture resetting
  1185 
  1189 
  1186 DrawScreenWidget(@fireButton);
  1190 DrawScreenWidget(@fireButton);
  1187 DrawScreenWidget(@backjump);
  1191 DrawScreenWidget(@backjump);
  1188 DrawScreenWidget(@forwardjump);
  1192 DrawScreenWidget(@forwardjump);
  1189 DrawScreenWidget(@pauseButton);
  1193 DrawScreenWidget(@pauseButton);
  1190 {
  1194 {$ENDIF}
  1191 DrawTexture(arrowLeft.x, arrowLeft.y, spritesData[sprArrowLeft].Texture, buttonScale);
       
  1192 DrawTexture(arrowRight.x, arrowRight.y, spritesData[sprArrowRight].Texture, buttonScale);
       
  1193 DrawTexture(arrowUp.x, arrowUp.y, spritesData[sprArrowUp].Texture, buttonScale);
       
  1194 DrawTexture(arrowDown.x, arrowDown.y, spritesData[sprArrowDown].Texture, buttonScale);
       
  1195 
       
  1196 DrawTexture(fireButton.x, firebutton.y, spritesData[sprFireButton].Texture, buttonScale);
       
  1197 DrawTexture(backjump.x, backjump.y, spritesData[sprBackjump].Texture, buttonScale);
       
  1198 DrawTexture(forwardjump.x, forwardjump.y, spritesData[sprForwardjump].Texture, buttonScale);
       
  1199 DrawTexture(pauseButton.x, pauseButton.y, spritesData[sprPauseButton].Texture, buttonScale);
       
  1200 }{$ENDIF}
       
  1201 
  1195 
  1202 // Teams Healths
  1196 // Teams Healths
  1203 if TeamsCount * 20 > Longword(cScreenHeight) div 7 then  // take up less screen on small displays
  1197 if TeamsCount * 20 > Longword(cScreenHeight) div 7 then  // take up less screen on small displays
  1204     begin
  1198     begin
  1205     SetScale(1.5);
  1199     SetScale(1.5);
  1341         DrawCentered(0, Min((cScreenHeight shr 1) + 100, cScreenHeight - 48 - missionTex^.h), missionTex);
  1335         DrawCentered(0, Min((cScreenHeight shr 1) + 100, cScreenHeight - 48 - missionTex^.h), missionTex);
  1342     end;
  1336     end;
  1343 
  1337 
  1344 // fps
  1338 // fps
  1345 {$IFDEF USE_TOUCH_INTERFACE}
  1339 {$IFDEF USE_TOUCH_INTERFACE}
  1346 offsetX:= pauseButton.y + pauseButton.height + 12;
  1340 offsetX:= pauseButton.frame.y + pauseButton.frame.h + 12;
  1347 {$ELSE}
  1341 {$ELSE}
  1348 offsetX:= 10;
  1342 offsetX:= 10;
  1349 {$ENDIF}
  1343 {$ENDIF}
  1350 offsetY:= cOffsetY;
  1344 offsetY:= cOffsetY;
  1351 if (RM = rmDefault) or (RM = rmRightEye) then
  1345 if (RM = rmDefault) or (RM = rmRightEye) then
  1647     
  1641     
  1648     with moveAnim do
  1642     with moveAnim do
  1649         begin
  1643         begin
  1650         animate:= true;
  1644         animate:= true;
  1651         startTime:= RealTicks;
  1645         startTime:= RealTicks;
  1652         targetFromX:= targetFromX xor targetToX;//swap From <-> To
  1646         source.x:= source.x xor target.x; //swap source <-> target
  1653         targetToX:= targetFromX xor targetToX;
  1647         target.x:= source.x xor target.x;
  1654         targetFromX:= targetFromX xor targetToX;
  1648         source.x:= source.x xor target.x;
  1655         targetFromY:= targetFromY xor targetToY;
  1649         source.y:= source.y xor target.y;
  1656         targetToY:= targetFromY xor targetToY;
  1650         target.y:= source.y xor target.y;
  1657         targetFromY:= targetFromY xor targetToY;
  1651         source.y:= source.y xor target.y;
  1658         end;
  1652         end;
  1659     end;
  1653     end;
  1660 end;
  1654 end;
  1661 
  1655 
  1662 
  1656