OpenTTD Source  20240919-master-gdf0233f4c2
AllowedSubtags Struct Reference

Data structure to store the allowed id/type combinations for action 14. More...

Public Member Functions

 AllowedSubtags ()
 Create empty subtags object used to identify the end of a list.
 
 AllowedSubtags (uint32_t id, DataHandler handler)
 Create a binary leaf node. More...
 
 AllowedSubtags (uint32_t id, TextHandler handler)
 Create a text leaf node. More...
 
 AllowedSubtags (uint32_t id, BranchHandler handler)
 Create a branch node with a callback handler. More...
 
 AllowedSubtags (uint32_t id, AllowedSubtags *subtags)
 Create a branch node with a list of sub-nodes. More...
 

Data Fields

uint32_t id
 The identifier for this node.
 
uint8_t type
 The type of the node, must be one of 'C', 'B' or 'T'.
 
union {
   DataHandler   data
 Callback function for a binary node, only valid if type == 'B'.
 
   TextHandler   text
 Callback function for a text node, only valid if type == 'T'.
 
   struct {
      union {
         BranchHandler   branch
 Callback function for a branch node, only valid if type == 'C' && call_handler.
 
         AllowedSubtags *   subtags
 Pointer to a list of subtags, only valid if type == 'C' && !call_handler.
 
      }   u
 
      bool   call_handler
 True if there is a callback function for this node, false if there is a list of subnodes.
 
   } 
 
handler
 

Detailed Description

Data structure to store the allowed id/type combinations for action 14.

The data can be represented as a tree with 3 types of nodes:

  1. Branch nodes (identified by 'C' for choice).
  2. Binary leaf nodes (identified by 'B').
  3. Text leaf nodes (identified by 'T').

Definition at line 8328 of file newgrf.cpp.

Constructor & Destructor Documentation

◆ AllowedSubtags() [1/4]

AllowedSubtags::AllowedSubtags ( uint32_t  id,
DataHandler  handler 
)
inline

Create a binary leaf node.

Parameters
idThe id for this node.
handlerThe callback function to call.

Definition at line 8340 of file newgrf.cpp.

◆ AllowedSubtags() [2/4]

AllowedSubtags::AllowedSubtags ( uint32_t  id,
TextHandler  handler 
)
inline

Create a text leaf node.

Parameters
idThe id for this node.
handlerThe callback function to call.

Definition at line 8352 of file newgrf.cpp.

◆ AllowedSubtags() [3/4]

AllowedSubtags::AllowedSubtags ( uint32_t  id,
BranchHandler  handler 
)
inline

Create a branch node with a callback handler.

Parameters
idThe id for this node.
handlerThe callback function to call.

Definition at line 8364 of file newgrf.cpp.

◆ AllowedSubtags() [4/4]

AllowedSubtags::AllowedSubtags ( uint32_t  id,
AllowedSubtags subtags 
)
inline

Create a branch node with a list of sub-nodes.

Parameters
idThe id for this node.
subtagsArray with all valid subtags.

Definition at line 8377 of file newgrf.cpp.

References subtags.


The documentation for this struct was generated from the following file: