Programing and signals

I would appreciate if anyone could give me a clue on how to program this.
I have got a few paths. After one path I want the robot to wait for a signal and depending on which signal that is active the robot will run the next path. If no signal is active I want the robot to stay at that target and wait until one signal is active.

This is how I have begun:

PROC main()
Dragon;
IF DOutput(signal_scorpion)=1 THEN

Scorpion;
ENDIF
IF DOutput(signal_gazelle)=1 THEN
Gazelle;
ENDIF
IF DOutput(signal_rat)=1 THEN
Rat;
ENDIF
ENDPROC

PROC main()
Dragon;
WaitUntil \InPos, DOutput(signal_scorpion)=1 OR DOutput(signal_gazelle)=1 OR DOutput(signal_rat)=1;
IF DOutput(signal_scorpion)=1 THEN
Scorpion;
ENDIF
IF DOutput(signal_gazelle)=1 THEN
Gazelle;
ENDIF
IF DOutput(signal_rat)=1 THEN
Rat;
ENDIF
ENDPROC