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.
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.
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