150 while Gear <> nil do |
158 while Gear <> nil do |
151 begin |
159 begin |
152 if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint); |
160 if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint); |
153 case Gear^.Kind of |
161 case Gear^.Kind of |
154 vgtCloud: begin |
162 vgtCloud: begin |
155 spriteData:= GetSpriteData(sprCloud, sprSDCloud); |
163 spriteData:= GetSpriteData(GetSpriteByWind(sprCloud, sprCloudL), GetSpriteByWind(sprSDCloud, sprSDCloudL)); |
156 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height) |
164 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height) |
157 end; |
165 end; |
158 vgtFlake: begin |
166 vgtFlake: begin |
159 sprite:= GetSprite(sprFlake, sprSDFlake); |
167 sprite:= GetSpriteByWind(GetSprite(sprFlake, sprSDFlake), GetSprite(sprFlakeL, sprSDFlakeL)); |
160 if cFlattenFlakes then |
168 if cFlattenFlakes then |
161 begin |
169 begin |
162 if speedlessFlakes then |
170 if speedlessFlakes then |
163 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
171 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
164 else |
172 else |
186 //tinted:= false; |
194 //tinted:= false; |
187 if Gear^.Tint <> $FFFFFFFF then |
195 if Gear^.Tint <> $FFFFFFFF then |
188 Tint(Gear^.Tint); |
196 Tint(Gear^.Tint); |
189 case Gear^.Kind of |
197 case Gear^.Kind of |
190 vgtFlake: begin |
198 vgtFlake: begin |
191 sprite:= GetSprite(sprFlake, sprSDFlake); |
199 sprite:= GetSpriteByWind(GetSprite(sprFlake, sprSDFlake), GetSprite(sprFlakeL, sprSDFlakeL)); |
192 if speedlessFlakes then |
200 if speedlessFlakes then |
193 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
201 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
194 else |
202 else |
195 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle); |
203 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle); |
196 end; |
204 end; |
329 vgtSteam: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame); |
337 vgtSteam: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame); |
330 vgtAmmo: begin |
338 vgtAmmo: begin |
331 tinted:= true; |
339 tinted:= true; |
332 Tint($FF, $FF, $FF, round(Gear^.alpha * $FF)); |
340 Tint($FF, $FF, $FF, round(Gear^.alpha * $FF)); |
333 DrawTextureF(ropeIconTex, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 1, 32, 32); |
341 DrawTextureF(ropeIconTex, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 1, 32, 32); |
334 DrawTextureF(SpritesData[sprAMAmmos].Texture, Gear^.scale * 0.90, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame - 1, 1, 32, 32); |
342 if Gear^.Frame <> ord(amNothing) then |
|
343 DrawTextureF(SpritesData[sprAMAmmos].Texture, Gear^.scale * 0.90, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame - 1, 1, 32, 32); |
335 end; |
344 end; |
336 vgtShell: begin |
345 vgtShell: begin |
337 if Gear^.FrameTicks < $FF then |
346 if Gear^.FrameTicks < $FF then |
338 begin |
347 begin |
339 Tint($FF, $FF, $FF, Gear^.FrameTicks); |
348 Tint($FF, $FF, $FF, Gear^.FrameTicks); |
358 vgtNote: DrawSpriteRotatedF(sprNote, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle); |
367 vgtNote: DrawSpriteRotatedF(sprNote, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle); |
359 vgtBulletHit: DrawSpriteRotatedF(sprBulletHit, round(Gear^.X) + WorldDx - 0, round(Gear^.Y) + WorldDy - 0, 7 - (Gear^.FrameTicks div 50), 1, Gear^.Angle); |
368 vgtBulletHit: DrawSpriteRotatedF(sprBulletHit, round(Gear^.X) + WorldDx - 0, round(Gear^.Y) + WorldDy - 0, 7 - (Gear^.FrameTicks div 50), 1, Gear^.Angle); |
360 end; |
369 end; |
361 case Gear^.Kind of |
370 case Gear^.Kind of |
362 vgtFlake: begin |
371 vgtFlake: begin |
363 spriteData:= GetSpriteData(sprFlake, sprSDFlake); |
372 spriteData:= GetSpriteData(GetSpriteByWind(sprFlake, sprFlakeL), GetSpriteByWind(sprSDFlake, sprSDFlakeL)); |
364 if speedlessFlakes then |
373 if speedlessFlakes then |
365 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height) |
374 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height) |
366 else |
375 else |
367 DrawTextureRotatedF(spriteData^.Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height, Gear^.Angle); |
376 DrawTextureRotatedF(spriteData^.Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height, Gear^.Angle); |
368 end; |
377 end; |
386 begin |
395 begin |
387 if Gear^.Tint <> $FFFFFFFF then |
396 if Gear^.Tint <> $FFFFFFFF then |
388 Tint(Gear^.Tint); |
397 Tint(Gear^.Tint); |
389 case Gear^.Kind of |
398 case Gear^.Kind of |
390 vgtCloud: begin |
399 vgtCloud: begin |
391 spriteData:= GetSpriteData(sprCloud, sprSDCloud); |
400 spriteData:= GetSpriteData(GetSpriteByWind(sprCloud, sprCloudL), GetSpriteByWind(sprSDCloud, sprSDCloudL)); |
392 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height); |
401 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height); |
393 end; |
402 end; |
394 vgtFlake: begin |
403 vgtFlake: begin |
395 spriteData:= GetSpriteData(sprFlake, sprSDFlake); |
404 spriteData:= GetSpriteData(GetSpriteByWind(sprFlake, sprFlakeL), GetSpriteByWind(sprSDFlake, sprSDFlakeL)); |
396 if speedlessFlakes then |
405 if speedlessFlakes then |
397 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height) |
406 DrawTextureF(spriteData^.Texture, Gear^.Scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height) |
398 else |
407 else |
399 DrawTextureRotatedF(spriteData^.Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height, Gear^.Angle); |
408 DrawTextureRotatedF(spriteData^.Texture, Gear^.Scale, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, spriteData^.Width, spriteData^.Height, Gear^.Angle); |
400 end; |
409 end; |
411 begin |
420 begin |
412 if Gear^.Tint <> $FFFFFFFF then |
421 if Gear^.Tint <> $FFFFFFFF then |
413 Tint(Gear^.Tint); |
422 Tint(Gear^.Tint); |
414 case Gear^.Kind of |
423 case Gear^.Kind of |
415 vgtCloud: begin |
424 vgtCloud: begin |
416 sprite:= GetSprite(sprCloud, sprSDCloud); |
425 sprite:= GetSpriteByWind(GetSprite(sprCloud, sprSDCloud), GetSprite(sprCloudL, sprSDCloudL)); |
417 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame); |
426 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame); |
418 end; |
427 end; |
419 vgtFlake: begin |
428 vgtFlake: begin |
420 sprite:= GetSprite(sprFlake, sprSDFlake); |
429 sprite:= GetSpriteByWind(GetSprite(sprFlake, sprSDFlake), GetSprite(sprFlakeL, sprSDFlakeL)); |
421 if speedlessFlakes then |
430 if speedlessFlakes then |
422 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
431 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
423 else |
432 else |
424 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle); |
433 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle); |
425 end; |
434 end; |
436 begin |
445 begin |
437 if Gear^.Tint <> $FFFFFFFF then |
446 if Gear^.Tint <> $FFFFFFFF then |
438 Tint(Gear^.Tint); |
447 Tint(Gear^.Tint); |
439 case Gear^.Kind of |
448 case Gear^.Kind of |
440 vgtFlake: begin |
449 vgtFlake: begin |
441 sprite:= GetSprite(sprFlake, sprSDFlake); |
450 sprite:= GetSpriteByWind(GetSprite(sprFlake, sprSDFlake), GetSprite(sprFlakeL, sprSDFlakeL)); |
442 if speedlessFlakes then |
451 if speedlessFlakes then |
443 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
452 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
444 else |
453 else |
445 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle) |
454 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle) |
446 end; |
455 end; |
461 for i:= 0 to cCloudsNumber - 1 do |
470 for i:= 0 to cCloudsNumber - 1 do |
462 AddVisualGear(cLeftScreenBorder + i * LongInt(cScreenSpace div (cCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud) |
471 AddVisualGear(cLeftScreenBorder + i * LongInt(cScreenSpace div (cCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud) |
463 end; |
472 end; |
464 |
473 |
465 procedure ChangeToSDClouds; |
474 procedure ChangeToSDClouds; |
466 var i: LongInt; |
475 var i, j: LongInt; |
467 vg, tmp: PVisualGear; |
476 vg, tmp: PVisualGear; |
468 begin |
477 begin |
469 if cCloudsNumber = cSDCloudsNumber then |
478 if cCloudsNumber = cSDCloudsNumber then |
470 exit; |
479 exit; |
471 vg:= VisualGearLayers[0]; |
480 for i:= 0 to 6 do |
472 while vg <> nil do |
481 begin |
473 if vg^.Kind = vgtCloud then |
482 vg:= VisualGearLayers[i]; |
474 begin |
483 while vg <> nil do |
475 tmp:= vg^.NextGear; |
484 if vg^.Kind = vgtCloud then |
476 DeleteVisualGear(vg); |
485 begin |
477 vg:= tmp |
486 tmp:= vg^.NextGear; |
478 end |
487 DeleteVisualGear(vg); |
479 else vg:= vg^.NextGear; |
488 vg:= tmp |
480 for i:= 0 to cSDCloudsNumber - 1 do |
489 end |
481 AddVisualGear(cLeftScreenBorder + i * LongInt(cScreenSpace div (cSDCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud) |
490 else vg:= vg^.NextGear; |
|
491 for j:= 0 to cSDCloudsNumber - 1 do |
|
492 AddVisualGear(cLeftScreenBorder + j * LongInt(cScreenSpace div (cSDCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud) |
|
493 end; |
482 end; |
494 end; |
483 |
495 |
484 procedure AddFlakes; |
496 procedure AddFlakes; |
485 var i: LongInt; |
497 var i: LongInt; |
486 begin |
498 begin |