[TOC] [Prev] [Next]

GOL Files


General Description

GOL files control the functioning of the objective screen in the PDA. They contain a list of mission goals which are shown to be completed in the objective screen when they are fired.

The objective screen is an ANIM in DFBRIEF.LFD. It is composed of a number of DELTs (with yellow text) which are overlaid on the first embedded DELT (which has green text) as goals are completed.

/* TALAY.GOL */

GOL 1.0
  GOAL: 0 	TRIG:   0
  GOAL: 1       ITEM:   5	# DT weapon
  GOAL: 2       TRIG:   1       # Return to your ship for immediate evacuation.

Each GOAL: can be
a TRIG: -- a goal trigger
an ITEM: -- a goal item.

Goal triggers

These are goals that are fired by the .INF file when a "complete" message is sent.

The parameter (a number) sent with the message fires the corresponding goal in the GOL file.

For instance,

message: [stop] [recipient] complete 3
will fire the goal "TRIG: 3".

Goal Items

These are goals which are fired when you pick up a goal item. The logics of the goal items fire an internal message to the GOL when the item is picked up.

Each goal item has a num of its own, which is hardcoded:

Goal itemDescriptionNum
LOGIC: PLANSDeath Star plans0
LOGIC: PHRIKPhrik metal1
LOGIC: NAVANava Card2
LOGIC: DATATAPEdata tapes4
LOGIC: DT_WEAPONbroken DT weapon5
LOGIC: PILEYour Gear6

For instance, picking up a DT_WEAPON will fire the "ITEM: 5" goal. Notice this implies that you can only use one of each goal item in each level.

Note:
The goal items will also move an elevator named "complete" to its next stop when picked up.


Managing Goals

The best way to handle goals is to use an inaccessible (dummy) elevator named "complete" only for mission goal/completion management. It should have a number of "hold" stops and a final "complete" stop. Each goal you accomplish will move elevator "complete" one stop forward, until accomplishing the final goal moves it onto its "complete" stop, completing the level.

/* INF file */

item: sector name: complete
 seq
   class: elevator move_floor
     stop: 0 hold           
     stop: 1 hold           /* first goal done */
     stop: 2 hold           /* second goal done */
     ......
     stop: 10 complete      /* final goal done, mission complete */
 seqend

The following INF message will move the complete elevator to its next stop, in addition to firing the GOL file.

message: [stopnum] complete complete [goalnum]
Goal items automatically move the complete elevator when they are picked up, as mentioned above.

Don't get confused with the 3 different "complete" keywords ! One is a message, one is the name of an elevator, and one is a stop option just like "hold".

Final note: Goals do not need to happen in the order listed in the GOL file! You may create a level where the player can complete the goals in any order.