{------------------------------------------------------------------------------} { 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 sprite,auto,traffic; type TDriversBrain = class(TBrain) private FOldSpeed : double; 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 ( FOldSpeed = 0 ) then exit; a.Speed := FOldSpeed; FOldSpeed := 0; exit; end; if ( FOldSpeed <> 0 ) then exit; FOldSpeed := a.Speed; a.Speed := 0; end; end; end.