204 end; |
204 end; |
205 vgtSmokeTrace: if Gear^.State < 8 then |
205 vgtSmokeTrace: if Gear^.State < 8 then |
206 DrawSprite(sprSmokeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State); |
206 DrawSprite(sprSmokeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State); |
207 vgtEvilTrace: if Gear^.State < 8 then |
207 vgtEvilTrace: if Gear^.State < 8 then |
208 DrawSprite(sprEvilTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State); |
208 DrawSprite(sprEvilTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State); |
209 vgtLineTrail: DrawLine(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 1.0, $FF, min(Gear^.Timer, $C0), min(Gear^.Timer, $80), min(Gear^.Timer, $FF)); |
209 vgtLineTrail: DrawLine(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 1.0, $FF, min(Gear^.Timer, $C0), min(Gear^.Timer, $80), min(Gear^.Timer, (Gear^.Tint and $FF))); |
210 end; |
210 end; |
211 if (cReducedQuality and rqAntiBoom) = 0 then |
211 if (cReducedQuality and rqAntiBoom) = 0 then |
212 case Gear^.Kind of |
212 case Gear^.Kind of |
213 vgtSmoke: DrawTextureF(SpritesData[sprSmoke].Texture, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 7 - Gear^.Frame, 1, SpritesData[sprSmoke].Width, SpritesData[sprSmoke].Height); |
213 vgtSmoke: DrawTextureF(SpritesData[sprSmoke].Texture, Gear^.scale, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 7 - Gear^.Frame, 1, SpritesData[sprSmoke].Width, SpritesData[sprSmoke].Height); |
214 vgtSmokeWhite: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame); |
214 vgtSmokeWhite: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame); |
262 if speedlessFlakes then |
262 if speedlessFlakes then |
263 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
263 DrawSprite(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) |
264 else |
264 else |
265 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle) |
265 DrawSpriteRotatedF(sprite, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle) |
266 end;*) |
266 end;*) |
267 vgtSpeechBubble: begin |
267 vgtSpeechBubble: if (Gear^.Angle <> 0) then |
268 if (Gear^.Tex <> nil) and (((Gear^.State = 0) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Team <> CurrentTeam)) or (Gear^.State = 1)) then |
268 // ^ Before this gear renders, Angle must be set to mark it ready (e.g. coordinates properly initialized) |
269 begin |
269 if (Gear^.Tex <> nil) and (((Gear^.State = 0) and (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Team <> CurrentTeam)) or (Gear^.State = 1)) then |
270 tinted:= true; |
270 begin |
271 Tint($FF, $FF, $FF, $66); |
271 tinted:= true; |
272 DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex) |
272 Tint($FF, $FF, $FF, $66); |
273 end |
273 DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex) |
274 else if (Gear^.Tex <> nil) and (((Gear^.State = 0) and ((Gear^.Hedgehog = nil) or (Gear^.Hedgehog^.Team = CurrentTeam))) or (Gear^.State = 2)) then |
274 end |
275 DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex); |
275 else if (Gear^.Tex <> nil) and (((Gear^.State = 0) and ((Gear^.Hedgehog = nil) or (Gear^.Hedgehog^.Team = CurrentTeam))) or (Gear^.State = 2)) then |
276 end; |
276 DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex); |
277 vgtSmallDamageTag: DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex); |
277 vgtSmallDamageTag: DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex); |
278 vgtHealthTag: if Gear^.Tex <> nil then |
278 vgtHealthTag: if Gear^.Tex <> nil then |
279 begin |
279 begin |
280 if Gear^.Frame = 0 then |
280 if Gear^.Frame = 0 then |
281 DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex) |
281 DrawTextureCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex) |
466 |
466 |
467 procedure AddClouds; |
467 procedure AddClouds; |
468 var i: LongInt; |
468 var i: LongInt; |
469 begin |
469 begin |
470 for i:= 0 to cCloudsNumber - 1 do |
470 for i:= 0 to cCloudsNumber - 1 do |
471 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, 0, true) |
472 end; |
472 end; |
473 |
473 |
474 procedure ChangeToSDClouds; |
474 procedure ChangeToSDClouds; |
475 var i, j: LongInt; |
475 var i, j: LongInt; |
476 vg, tmp: PVisualGear; |
476 vg, tmp: PVisualGear; |
487 DeleteVisualGear(vg); |
487 DeleteVisualGear(vg); |
488 vg:= tmp |
488 vg:= tmp |
489 end |
489 end |
490 else vg:= vg^.NextGear; |
490 else vg:= vg^.NextGear; |
491 for j:= 0 to cSDCloudsNumber - 1 do |
491 for j:= 0 to cSDCloudsNumber - 1 do |
492 AddVisualGear(cLeftScreenBorder + j * LongInt(cScreenSpace div (cSDCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud) |
492 AddVisualGear(cLeftScreenBorder + j * LongInt(cScreenSpace div (cSDCloudsNumber + 1)), LAND_HEIGHT-1184, vgtCloud, 0, true) |
493 end; |
493 end; |
494 end; |
494 end; |
495 |
495 |
496 procedure AddFlakes; |
496 procedure AddFlakes; |
497 var i: LongInt; |
497 var i: LongInt; |
511 var i: LongInt; |
511 var i: LongInt; |
512 vg, tmp: PVisualGear; |
512 vg, tmp: PVisualGear; |
513 begin |
513 begin |
514 if (cReducedQuality and rqKillFlakes) <> 0 then |
514 if (cReducedQuality and rqKillFlakes) <> 0 then |
515 exit; |
515 exit; |
516 if vobCount = vobSDCount then |
516 if (vobCount = vobSDCount) and (vobFrameTicks = vobSDFrameTicks) and |
|
517 (vobFramesCount = vobSDFramesCount) and (vobVelocity = vobSDVelocity) and |
|
518 (vobFallSpeed = vobSDFallSpeed) then |
517 exit; |
519 exit; |
518 for i:= 0 to 6 do |
520 for i:= 0 to 6 do |
519 begin |
521 begin |
520 vg:= VisualGearLayers[i]; |
522 vg:= VisualGearLayers[i]; |
521 while vg <> nil do |
523 while vg <> nil do |