switch(FEAT_TRAINS, SELF, switch_vehicle_part, [ STORE_TEMP((getbits(extra_callback_info1, 8, 8) < NNN ? CB_FLAG_MORE_SPRITES : 0) | PALETTE_USE_DEFAULT, 0x100), getbits(extra_callback_info1, 8, 8) ]) { 0: vehicle_part0; 1: vehicle_part1; ... NNN: switch_part_NNN; }