Label: Difference between revisions

From Wiki of ZZT
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 15: Line 15:
** For example, the message <code>touch</code> will match the label <code>:touch</code> as well as the labels <code>:touch</code>  , <code>:touch1</code> and <code>:touché</code>, but not the labels <code>:toucha</code> or <code>:touch_1</code>.
** For example, the message <code>touch</code> will match the label <code>:touch</code> as well as the labels <code>:touch</code>  , <code>:touch1</code> and <code>:touché</code>, but not the labels <code>:toucha</code> or <code>:touch_1</code>.
** Notably, this rule does ''not'' apply for the [[Restore|#restore]] command for the ''second'' and additional label occurrences, where an ''exact'' string match is required.  
** Notably, this rule does ''not'' apply for the [[Restore|#restore]] command for the ''second'' and additional label occurrences, where an ''exact'' string match is required.  
{{ZZT-OOP navbox}}
{{ZZT-OOP navbox}}

Revision as of 07:57, 24 December 2025

Lines of ZZT-OOP beginning with a colon : are labels.

Labels allow associating a specific location in the object's code with a specific message. The object will move program execution to such a location in the following two cases:

  • when explicitly requested by an object, including a different object, using #send;
  • when the game engine causes one of the built-in messages to be sent to the object.

Labels should consist of Latin alphabet letters (A - Z) and underscores. They are not case sensitive - TOUCH , Touch and touch refer to the same message.

The first occurrence of a label in the code is always used as the destination. To allow using additional occurrences of a label, labels can be zapped, where they act as comments and will be ignored by #send - for example, 'shot is the zapped form of the :shot label.

Quirks

  • Non-alphabet characters, such as numbers, may be used as part of a label; however, if a label is followed by additional such characters, it is also considered a valid match for a given message.
    • For example, the message touch will match the label :touch as well as the labels :touch , :touch1 and :touché, but not the labels :toucha or :touch_1.
    • Notably, this rule does not apply for the #restore command for the second and additional label occurrences, where an exact string match is required.