Should I only ever have one box2d contact listener in a project?
Let's say I have a bird and a rock. Would they use the same listener or have their own?
Thanks
You only need one contact listener.
Note the listener is 'initialized'. It runs once. It isn't meant for multiple instances. It would consume memory and cause slowdown.
Keep all your items in an array or vector object.
Manage the conditionals with an contact listener class. Iterate through the object to test if things hit each other.