purpose to open/close door ) var
MNow
: Point; MNAngle, MOAngle, DifAngle: Integer; FromNo, ToNo, DoorNo : Integer;
begin PtToAngle(Door.area, MOridinal, MOAngle); FromNo i= AGI2IBW(Door.from); ToNo := AGL2IBW((Door.from + Door.angle)); repeat EraseArc (Door. area, Do or.from, Door. angle) ;
GeMouse(MNow); ftToAngle(Door.area, MNow, MNAngle) ; DifAngle := MNAngle - MOAngle; DoorNo := Doororidinal + AGI2IBW(DifAngle); if DoorNo < FromNo then DoorNo := FromNo; if DoorNo > ToNo then DoorNo := ToNo; while DoorNo < 0 do DoorNo := DoorNo + (DoorPat + 1); DrawPicture(Door.inbetween[(DoorNo mod (DoorPat + 1))], Door.area); until (not PtInRgn(MNow, Door.oparating) or not StillDown); Door.now := DoorNo mod (DoorPat + 1); end;
procedure CheckHuman; { purpose to check how human feeling )
vat
PersonalSpace : Rgnllandle;
HumanPosition : Point;
WorkRect
: Rect;
ObjectCount, LoopCount,
Result
: Integer;
begin PersonalSpace := NewRgn; ObjectCount := 0t GetMouse(HumanPosition)
;