Ok, here's the deal; there are 2 things I noticed:
1) Yesterday I played around with the waypoints in cs_iraq to see if I could fix them up - especially at the doors to the hostage rooms. Now as Pierre-Marie had told, I made the connections through the doors veeeery long (this time far beyond the highest apmd setting, approx. 300-350 units !!) and tried it out, and it didn't work. I tried two different WP layouts, and both failed.
2) On cs_siege2k (nice remake, 100% bot-compatible this time, WP available from me on request
(but please in a new thread in WP forum, ok?)), I saw bots getting stuck exactly on the threshold of an open door and play that annoying "push the imaginary button" game again - until round end. The problem is that there are no buttons, and the doors open fine. I found out that the connections through these doors also had to be veeeeery long in order to work at all, although there's no button there.
Ok, so it seems that the suggested solution to make very long connections works as long as there are no buttons. Thus, problem 2) is avoidable and doesn't need to be fixed in the code.
If there are buttons, however, it fails miserably (see screenshots in ZIP). The bots try to reach the button on the other side of the wall and get stuck forever. Check the button flags on both screenies - the first shows the way I think this ought to be waypointed, the second one is an experiment, which would actually have worked, hadn't it been for the buggy button code.
If I understood you coders correctly, this is what bots do: If a path through a door is blocked by an entity like func_door or whatever the mapper used, the bot will check for a button nearby and push it before continuing. As soon as the obstacle is removed (i.e. the door is opened), the bots will leave the button alone because no obstacle is detected. If the button
needs to be pushed every single time (auto-closing doors like in cs_iraq), a WP with button flag can be inserted near the button, preferably in a way that enforces that bots pass the button prior to attempting to go through the door.
BUT: In the "search for button" routine, do bots check if access to a button is blocked by a solid brush or anything else that blocks their path? Because I think that's the problem... they "see" a button on the other side of a wall and try to push it - which doesn't work in most cases.
Besides, they stray from waypointed navigation when going to buttons - thus, in cs_arabstreets, when I close the door, bots will bump into it, begin to search for a button, turn in the direction of the button and push into thin air, getting stuck forever again. I'd rather have them follow waypoint connections to get near that button. That would force waypointers to set nodes right next to buttons, but it would ensure that bots choose an appropriate approach angle to reach the button instead of walking towards it in a straight line, disregarding all obstacles (like protruding door frames) and getting stuck.