Подскажите где проблема и как ее исправитьError 113: error in statement
{$I DEFINES.INC}
unit Map;
interface
const
{IFDEF DOS_GAME}
LOCAL_MAP_WIDTH = 8;
LOCAL_MAP_HEIGHT = 8;
MAP_WIDTH = 32 + LOCAL_MAP_WIDTH*2;
MAP_HEIGHT = 32 + LOCAL_MAP_HEIGHT*2;
{ENDIF}
const
tileGrass = 1;
tileGround = 2;
tileStairsUp = 3;
tileStairsDown = 4;
tileFirstStopTile = 5;
tileTree = tileFirstStopTile;
tileStone = tileFirstStopTile+1;
tileLast = tileFirstStopTile+1;
const MaxDungeonLevel = 7;
type TMapCell = record
Tile: Integer;
IsVisible: Boolean;
end;
TMap = record
Cells: array[1..MAP_WIDTH,1..MAP_HEIGHT] of TMapCell;
LocalMapLeft, LocalMapTop: Integer;
end;
type TGameMap = array[1..MaxDungeonLevel] of TMap;
var GameMap: TGameMap;
CurMap: Integer;
implementation
function FreeTile(Tile: Integer): Boolean;
begin
FreeTile := Tile < tileFirstStopTile;
end;
procedure FreeMapPoint( var x,y: Integer);
begin
repeat
x := random(MAP_WIDTH - LOCAL_MAP_WIDTH*2) +
LOCAL_MAP_WIDTH;
y := random(MAP_HEIGHT - LOCAL_MAP_HEIGHT*2) +
LOCAL_MAP_HEIGHT;
until FreeTile(GameMap[CurMap].Cells[x,y].Tile);
end;
procedure MapGeneration(MapLevel: Integer);
var x,y,i: Integer;
begin
CurMap := MapLevel;
for x := 1 to MAP_WIDTH do
for y := 1 to MAP_HEIGHT do
begin
if (x <= LOCAL_MAP_WIDTH) or (x >=
MAP_WIDTH-LOCAL_MAP_WIDTH) or
(y <= LOCAL_MAP_HEIGHT) or (y >=
MAP_HEIGHT-LOCAL_MAP_HEIGHT) then
GameMap[CurMap].Cells[x,y].Tile := tileStone else;
begin
if random(100) < 35
then GameMap[CurMap].Cells[x,y].Tile := tileTree else;
if random(2) = 0
then GameMap[CurMap].Cells[x,y].Tile := tileGrass
else GameMap[CurMap].Cells[x,y].Tile := tileGround;
end;
GameMap[CurMap].Cells[x,y].IsVisible := false;
end;
GameMap[CurMap].LocalMapLeft := MAP_WIDTH div 2;
GameMap[CurMap].LocalMapTop := MAP_HEIGHT div 2;
if MapLevel < MaxDungeonLevel then
for i := 1 to 2 do
begin
FreeMapPoint(x,y);
GameMap[CurMap].Cells[x,y].Tile := tileStairsDown;
end;
if MapLevel > 1 then
begin
FreeMapPoint(x,y);
GameMap[CurMap].Cells[x,y].Tile := tileStairsUp;
end;
procedure ShowMap;
var x,y: Integer;
begin
PrepareMap;
for x:= GameMap[CurMap].LocalMapLeft to
GameMap[CurMap].LocalMapLeft + LOCAL_MAP_WIDTH - 1 do
for y := GameMap[CurMap].LocalMapTop to
GameMap[CurMap].LocalMapTop + LOCAL_MAP_HEIGHT - 1 do
ShowCell(GameMap[CurMap].Cells[x,y],x,y);
end;
end.