At first I'm sorry about my poor English.
This is not important to that I met bug.

This is complicated expression.

"COLLAR_CHANNEL = ++INTERFACE_CHANNEL;" is same code "++INTERFACE_CHANNEL; COLLAR_CHANNEL = INTERFACE_CHANNEL;" Therefore the same value　COLLAR_CHANNEL == INTERFACE_CHANNEL

"COLLAR_CHANNEL = INTERFACE_CHANNEL++;" then "COLLAR_CHANNEL = INTERFACE_CHANNEL; INTERFACE_CHANNEL++" same as follows
COLLAR_CHANNEL = GetOwnerChannel(g_kWearer, 1111);  // <-  This function is a function for operation of the channels of COLLAR_CHANNEL
INTERFACE_CHANNEL = COLLAR_CHANNEL + 1;  // <- This is easy to read and is simple!