View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003725 | The Dark Mod | AI | public | 13.05.2014 06:48 | 13.07.2014 13:38 |
Reporter | sotha_sil | Assigned To | grayman | ||
Priority | normal | Severity | normal | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | TDM 2.01 | ||||
Target Version | TDM 2.03 | Fixed in Version | TDM 2.03 | ||
Summary | 0003725: AIs can get permanently stuck in each other in narrow spaces | ||||
Description | When two AI are moving and pass each other in a tight hallway, one will turn sideways and let the other by. But when one is standing still, he won't turn. Normally, this forces a moving AI to walk around a standing AI, which is the behavior we'd expect to see as an observer. But when there's no room to get past, the standing AI should alter his behavior and turn sideways to let the other pass. -- A test map is provided. Here an AI stands in a narrow corridor. The other AI is set to react to a "shoulbeclosed 1" door. When the door opening AI tries to reach the door he gets permanently stuck on the stationary AI. -- This bug was first found in "A reputation to uphold" mission. Here an AI following another AI got stuck in a similar manner. The following AI was stationary and the leading AI was permanently stuck walking into the following AI, while complaining that door should be closed. | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
Allow a searching AI to walk through a standing AI when the searcher’s destination is beyond the standing AI. We want to discourage searching AI from stopping and occupying the same space as a non-solid blocking standing AI, because it doesn’t look right. In tight places, though, we have to let the searcher by, otherwise the searcher gets stuck. If a blocking AI goes non-solid, he waits for the AI that asked him to go non-solid to pass by. If another AI has walked through the blocker, make sure that AI is not in the blocker’s space when the blocker once again becomes solid. This might not have been necessary, but it’s safer to handle the case than ignore it. The blocker then needs to wait for the second AI to pass by before he becomes solid again. When a blocker becomes non-solid, he’ll now turn 90 degrees to the direction of the passing AI, and turn back again when the passer is gone. He was turning 90 degrees to the direction he was facing, but if he gets knocked about, this might not look the best. Rev. 6058: State.cpp ResolveMovementBlockTask.cpp ResolveMovementBlockTask.h |
|
Date Modified | Username | Field | Change |
---|---|---|---|
13.05.2014 06:48 | sotha_sil | New Issue | |
13.05.2014 06:48 | sotha_sil | File Added: shouldbeclosed.map | |
13.05.2014 14:33 | grayman | Assigned To | => grayman |
13.05.2014 14:33 | grayman | Status | new => assigned |
13.07.2014 13:38 | grayman | Note Added: 0006716 | |
13.07.2014 13:38 | grayman | Status | assigned => resolved |
13.07.2014 13:38 | grayman | Resolution | open => fixed |
13.07.2014 13:38 | grayman | Fixed in Version | => TDM 2.03 |
13.07.2014 13:38 | grayman | Target Version | => TDM 2.03 |