Allow to ignore multiple objects when checking for collisions #3197
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Basically, it's in the title.
Currently, only one object can be set as ignore object for the collision system. This is alright when we want to prevent self-collisions. However, sometimes multiple objects need to be ignored. For example in case of ledge behaviour where we want to prevent badguys from assuming players can be walked on.
Therefore, I changed
GameObject* ignore_object
toconst std::vector<GameObject*>&
.Furthermore, I've changed the code to ignore players when checking whether the badguy may fall because we don't want badguys to consider players as suitable target for continuing to walk when their ledge behaviour is set to stay on the platform.
Fixes #3194