FKiSS Hints

See also: FKiSS, General Syntax, Data Types, If-Endif Structure, Shortcuts, %Tags, Cel Groups, Value Pools, Events, Actions

Description

It is possible for a KiSS set to specify some of the viewer settings which work best with that set by using HINTs.
A viewer that supports HINTs uses the first form of the HINT which has a valid value.
If the HINT value is textual, it matches by case-insensitive substring so that "fk" is the same as "FK" and both are taken to mean HINT bounds setting "FKiSS".
A HINT may appear anywhere in the CNF but usually appears near the beginning of the CNF, before any CEL and KCF declarations.
Not all viewers support HINTs, in which case the HINT is ignored.

Hint Syntax

A HINT always takes the following form:
;HINT name value
The ; and HINT may have space between them but nothing else. "HINT" must be in upper-case. The name and value are case-insensitive.

Hint Settings

There are three settings which can be selected with HINTs:

MaxFix

Syntax: ;HINT maxfix value
Each time you click or drag an object which is fixed in place, the fix value for that object is reduced by one unless the fix value is equal to or higher than the Maximum Fix value.
An object with fix value equal to or greater than the Maximum Fix value is permanently fixed in place.
Maxfix is also known as the MFO ("maximal fix object") value.
This value must be at least 2.

Example:

;HINT maxfix 100
;HINT maxfix 5
;HINT maxfix 1000

Stack

Syntax: ;HINT stack value
FKiSS events can trigger other FKiSS events which can trigger other FKiSS events, building up a stack of events. As each event completes, it is removed from the stack. To prevent FKiSS from becoming stuck in an infinite feedback loop, a Maximum Stack Depth is defined and, once the FKiSS stack reaches that depth, no further events will be triggered. Most KiSS viewers, use a Maximum Stack Depth of 10. The first time the FKiSS stack reaches this depth, the user will be shown a warning message.
This value must be at least 10.

Example:

;HINT stack 10
;HINT stack 20

Bounds
;HINT bounds value
This will determine how far and under what circumstances objects are allowed to cross the edges of the play field.
This value must be at least a substring of one of the following bounding types:

All
Objects and cels will not be allowed to cross the borders of the screen. (PlayFKiSS calls this bounding mode "Compatible")


FKiSS
FKiSS movement will not allow objects and cels to cross the borders of the screen but user movement is unbounded.


Limited
FKiSS movement will not allow the visible portion of objects and cels to cross the borders of the screen but user movement is unbounded. (PlayFKiSS calls this bounding mode "None")


Visible
The visible portion of objects and cels will not be allowed to cross the borders of the screen. (PlayFKiSS calls this bounding mode "Enhanced")


None
Objects and cels will be allowed to cross the borders of the screen as much as you want. You can't see or click on things that are off the edges of the play field so be careful not to lose anything important.

Example:

;HINT bounds all  ; Set bounds to All
;HINT bounds None ; Set bounds to None
;HINT bounds VIS  ; Set bounds to Visible