{------------------------------------------------------------------------------} { Unit Name: driversbrain Purpose : Implement drivers brains Author : Vesa Lappalainen Date : 14.11.1999 Changed : ToDo : More sence to the driver so that he does not stop AFTER the ligths } {------------------------------------------------------------------------------} unit driversbrain; interface uses classes,graphics,sprite,auto,traffic; type TDriversBrain = class(TBrain) private FOldSpeed : integer; public function React(sprite:TSprite):boolean; override; end; implementation { TDriversBrain } function TDriversBrain.React(sprite: TSprite): boolean; var tl : TTrafficLights; a:TAuto; begin Result := false; if not ( Owner is TAuto ) then exit; if ( sprite is TTrafficLights ) then begin Result := true; a := TAuto(Owner); tl := TTrafficLights(sprite); if ( tl.State = ls_Green ) then begin if ( a.Vauhti <> 0 ) then exit; a.Vauhti := FOldSpeed; FOldSpeed := 0; exit; end; // punainen tai keltainen if ( a.Vauhti = 0 ) then exit; FOldSpeed := a.Vauhti; a.Vauhti := 0; exit; end; end; end.