unit hamster_m; interface uses arena_graphics_m, arena_m, creature_m, trace_m; const HamsterStartX = 5; HamsterStartY = 1; HamsterStartDX = 0; HamsterStartDY = 0; HamsterMovespeed = 2; HamsterSymbol = 'h'; procedure InitHamster(var h: creature); procedure KillHamster(var h: creature; var t: tracePtr; var a: arena); implementation uses graphics_m; procedure InitHamster(var h: creature); begin InitCreature(h, HamsterStartX, HamsterStartY, HamsterMovespeed, HamsterSymbol); h.dX := HamsterStartDX; h.dY := HamsterStartDY end; procedure KillHamster(var h: creature; var t: tracePtr; var a: arena); var traceStart: tracePtr; begin DrawArenaCell(h.curX, h.curY, ArenaSymbol); EraseTrace(t, a); if IsOnEdge(h) then DrawEdge(h.curX, h.curY, a) else if a.borders[h.curX][h.curY] then DrawArenaCell(h.curX, h.curY, BorderSymbol); GetStart(traceStart, t); h.curX := traceStart^.x; h.curY := traceStart^.y; h.dX := HamsterStartDX; h.dY := HamsterStartDY; DeleteTrace(t); DrawCreature(h) end; end.