Closed tasptz closed 3 years ago
Removing collision handlers always had a lot of issues. There were a lot of questions like: "Should separate functions still be called after removing a handler?" The answer often depended on the use case. In some cases, people expected begin/separate events to always be matched, and in others they were removing the handler because they wanted to cancel the separate callback. It got even more complicated when adding the wildcard handlers, and I decided to axe the remove function,
So this is actually poorly documented, but cpSpaceAddCollisionHandler
returns the handler for that collision pair type, and only creates a new one if it doesn't already exist. So if you want to remove a collision handler, you can simply replace the callbacks with do-nothing functions or copy the default handler over the top of it. This means that it's up to you to decide the behavior you want and those unanswerable questions can answer themselves.
Seems there was a
cpSpaceRemoveCollisionHandler
at some point, but not anymore.