"custom callback" files can be used to override the automatically generated callbacks.

in this file, you can write NML statements (e.g. switches) which will be preprocessed and then included into the engine file. the VEH_ID() macro can be used to generate unique names for identifiers. to use these switches in the graphics{}-block for the vehicle, you can define the macros documented below.

the following builtin callbacks can be overridden by a #define:
GFX_<n>           The target (switch or formula) of the graphics callback for the <n>-th part of the vehicle
GUI_<n>           The target of the purchase graphics callback for the <n>-th part of the vehicle
RECOLOUR_<n>      The target of the recolour mask callback for the <n>-th part of the vehicle
RECOLOUR_GUI_<n>  The target of the purchase recolour mask callback for the <n>-th part of the vehicle
TEXT              The target of the additional NewGRF text for the purchase list callback
SOUND_EFFECT      The target of the sound effect callback
RUN_COST          The target of the running cost callback
RUN_COST_PURCHASE The target of the running cost in the purchase list callback
CAPACITY          The target of the capacity callback
LOADING_SPEED     The target of the loading speed callback
ARTIC             The target of the articulated parts callback

additionally, the macro "CUSTOM" may be defined to add new lines to the graphics{} block, to handle callbacks that are not automatically generated.