562 Dispose(t) |
562 Dispose(t) |
563 end; |
563 end; |
564 end; |
564 end; |
565 |
565 |
566 procedure AddMiscGears; |
566 procedure AddMiscGears; |
567 var p,i,j,rx, ry: Longword; |
567 var p,i,j,rx, ry, unplaced: Longword; |
568 rdx, rdy: hwFloat; |
568 rdx, rdy: hwFloat; |
569 Gear: PGear; |
569 Gear: PGear; |
570 begin |
570 begin |
571 AddGear(0, 0, gtATStartGame, 0, _0, _0, 2000); |
571 AddGear(0, 0, gtATStartGame, 0, _0, _0, 2000); |
572 |
572 |
573 i:= 0; |
573 i:= 0; |
574 Gear:= PGear(1); |
574 unplaced:= 0; |
575 while (i < cLandMines) {and (Gear <> nil)} do // disable this check until better solution found |
575 while (i < cLandMines) and (unplaced < 4) do |
576 begin |
576 begin |
577 Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0); |
577 Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0); |
578 FindPlace(Gear, false, 0, LAND_WIDTH); |
578 FindPlace(Gear, false, 0, LAND_WIDTH); |
|
579 |
|
580 if Gear = nil then |
|
581 inc(unplaced) |
|
582 else |
|
583 unplaced:= 0; |
|
584 |
579 inc(i) |
585 inc(i) |
580 end; |
586 end; |
581 |
587 |
582 i:= 0; |
588 i:= 0; |
583 Gear:= PGear(1); |
589 unplaced:= 0; |
584 while (i < cExplosives){ and (Gear <> nil)} do |
590 while (i < cExplosives) and (unplaced < 4) do |
585 begin |
591 begin |
586 Gear:= AddGear(0, 0, gtExplosives, 0, _0, _0, 0); |
592 Gear:= AddGear(0, 0, gtExplosives, 0, _0, _0, 0); |
587 FindPlace(Gear, false, 0, LAND_WIDTH); |
593 FindPlace(Gear, false, 0, LAND_WIDTH); |
|
594 |
|
595 if Gear = nil then |
|
596 inc(unplaced) |
|
597 else |
|
598 unplaced:= 0; |
|
599 |
588 inc(i) |
600 inc(i) |
589 end; |
601 end; |
590 |
602 |
591 if (GameFlags and gfLowGravity) <> 0 then |
603 if (GameFlags and gfLowGravity) <> 0 then |
592 begin |
604 begin |