Right now the lasso tightens only if it's on a white background. However, that's not the proper way, it's supposed to tighten if it's on the current background color. The color search procedure can receive parameters from the parent function, but it's really in a roundabout way. The parent GDevice of it has a field called gdRefCon which can be cast to a MatchRecPtr data type, and there is stored the color with which the CalcCMask function was called. So theoretically all I have to do is call CalcCMask with the backColor field of the class, and then in the color search function get the color and use that for the comparison instead of white.
(a bit later)
That didn't work, it crashed horribly, but we're going Christmas shopping so it'll have to wait.
(late in the evening) I fooled around with MkLinux and AfterStep, so I didn't have time to solve the bug. But there's always tomorrow..