485 procedure AddMiscGears; |
485 procedure AddMiscGears; |
486 var i, x, y: integer; |
486 var i, x, y: integer; |
487 begin |
487 begin |
488 for i:= 0 to cCloudsNumber do AddGear( - cScreenWidth + i * ((cScreenWidth * 2 + 2304) div cCloudsNumber), -128, gtCloud, random(4), (0.5-random)*0.01); |
488 for i:= 0 to cCloudsNumber do AddGear( - cScreenWidth + i * ((cScreenWidth * 2 + 2304) div cCloudsNumber), -128, gtCloud, random(4), (0.5-random)*0.01); |
489 AddGear(0, 0, gtActionTimer, gtsStartGame, 0, 0, 2000).Health:= 3; |
489 AddGear(0, 0, gtActionTimer, gtsStartGame, 0, 0, 2000).Health:= 3; |
490 for i:= 0 to 3 do |
490 if (GameFlags and gfForts) = 0 then |
491 begin |
491 begin |
492 GetHHPoint(x, y); |
492 for i:= 0 to 3 do |
493 AddGear(X, Y + 9, gtMine, 0); |
493 begin |
494 end; |
494 GetHHPoint(x, y); |
|
495 AddGear(X, Y + 9, gtMine, 0); |
|
496 end; |
|
497 end; |
495 end; |
498 end; |
496 |
499 |
497 procedure doMakeExplosion(X, Y, Radius: integer; Mask: LongWord); |
500 procedure doMakeExplosion(X, Y, Radius: integer; Mask: LongWord); |
498 var Gear: PGear; |
501 var Gear: PGear; |
499 dmg: integer; |
502 dmg: integer; |
597 |
601 |
598 procedure SpawnBoxOfSmth; |
602 procedure SpawnBoxOfSmth; |
599 var i, x, y, k: integer; |
603 var i, x, y, k: integer; |
600 b: boolean; |
604 b: boolean; |
601 begin |
605 begin |
602 if CountGears(gtCase) > 4 then exit; |
606 exit; // hack |
|
607 if CountGears(gtCase) > 2 then exit; |
603 k:= 7; |
608 k:= 7; |
604 repeat |
609 repeat |
605 x:= getrandom(2000) + 24; |
610 x:= getrandom(2000) + 24; |
|
611 {$IFDEF DEBUGFILE}AddFileLog('SpawnBoxOfSmth: check x = '+inttostr(x));{$ENDIF} |
606 b:= false; |
612 b:= false; |
607 y:= -1; |
613 y:= -1; |
608 while (y < 1024) and not b do |
614 while (y < 1023) and not b do |
609 begin |
615 begin |
610 inc(y); |
616 inc(y); |
611 i:= x - 14; |
617 i:= x - 13; |
612 while (i <= x + 14) and not b do // 14 is gtCase HalfWidth |
618 while (i <= x + 13) and not b do // 13 is gtCase HalfWidth-1 |
613 begin |
619 begin |
614 if Land[y, i] <> 0 then b:= true; |
620 if Land[y, i] <> 0 then |
|
621 begin |
|
622 b:= true; |
|
623 {$IFDEF DEBUGFILE}AddFileLog('SpawnBoxOfSmth: Land['+inttostr(y)+','+inttostr(i)+'] <> 0');{$ENDIF} |
|
624 end; |
615 inc(i) |
625 inc(i) |
616 end; |
626 end; |
617 end; |
627 end; |
618 if b then |
628 if b then |
619 b:= CheckGearsNear(x, y, [gtMine, gtHedgehog, gtCase], 70, 70) = nil; |
629 b:= CheckGearsNear(x, y, [gtMine, gtHedgehog, gtCase], 70, 70) = nil; |