View Issue Details

IDProjectCategoryView StatusLast Update
0004036The Dark ModAIpublic24.03.2017 20:06
Reportergrayman Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.03 
Target VersionTDM 2.06Fixed in VersionTDM 2.06 
Summary0004036: AI getting blocked going through door
DescriptionIf an AI is trying to get through a door, and another AI is standing in the way, it's possible for the first AI to start treadmilling against the second.

This is due to PickWhere2Go() in HandleDoorTask. It's constantly resetting move.moveDest each time PickWhere2Go() is called, which delays recognizing that the AI is blocked and the other AI has to be told to reconcile the block.

A simple fix attempted in 2.03 fixed the problem, but created another, where a group of AI might have the master running out of control, back and forth through the door (manroy).
TagsNo tags attached.

Relationships

related to 0004311 resolvedgrayman The friendly guide in 'A Noble Home' has problems 

Activities

grayman

grayman

07.12.2015 15:55

viewer   ~0007902

Allow AI that can’t operate doors to approach a door and enter its door queue, but not progress further until the door is opened by someone else. Otherwise, the AI gets stuck bumping repeatedly against the door, or stuck in the door opening as another AI comes through.

rev. 6558:

State.cpp
grayman

grayman

01.05.2016 18:15

viewer   ~0008129

Last edited: 01.05.2016 18:31

The fix for this problem caused the fence at the beginning of 'A Noble Home' to have problems after opening the door to where the player's gear has been stored.

Since the solution involves changing the door-handling code, I've opted to move this from 2.04 to 2.05, since it's going to need a lot of testing.

grayman

grayman

01.05.2016 18:19

viewer   ~0008130

Last edited: 01.05.2016 18:32

The fence in ANH can't operate doors.

In order for him to know he can go through the door into the cellar, we need to handle his "forbidden areas" knowledge.

Perhaps telling him that the door has been opened when it starts to open, instead of waiting for it to completely open:

void CBinaryFrobMover::OnStartOpen(bool wasClosed, bool bMaster)
{
    TellRegisteredUsers(); // <- add this

And possibly change the door-handling code so an AI that can't operate doors can still take advantage of the door queue when the door is open and he can fit through the opening, in case there are other AI around trying to use the door at the same time.

grayman

grayman

24.03.2017 19:33

viewer   ~0008777

ANH is being removed from the mission list, to be replaced with a differently designed version telling the same story.

So don't worry about the fence's behavior.
grayman

grayman

24.03.2017 20:05

viewer   ~0008779

Putting back the original fix.

Rev 6780.

State.cpp

Issue History

Date Modified Username Field Change
14.01.2015 20:34 grayman New Issue
14.01.2015 20:34 grayman Status new => assigned
14.01.2015 20:34 grayman Assigned To => grayman
15.01.2015 04:30 grayman Description Updated
07.12.2015 15:55 grayman Note Added: 0007902
07.12.2015 15:55 grayman Status assigned => resolved
07.12.2015 15:55 grayman Resolution open => fixed
07.12.2015 15:55 grayman Fixed in Version => TDM 2.04
01.05.2016 03:27 grayman Relationship added related to 0004311
01.05.2016 18:15 grayman Note Added: 0008129
01.05.2016 18:15 grayman Status resolved => assigned
01.05.2016 18:15 grayman Resolution fixed => open
01.05.2016 18:15 grayman Fixed in Version TDM 2.04 =>
01.05.2016 18:15 grayman Target Version TDM 2.04 => TDM 2.05
01.05.2016 18:19 grayman Note Added: 0008130
01.05.2016 18:31 grayman Note Edited: 0008129
01.05.2016 18:32 grayman Note Edited: 0008130
01.05.2016 18:32 grayman Note Edited: 0008130
01.05.2016 18:32 grayman Note Edited: 0008130
21.10.2016 15:27 grayman Target Version TDM 2.05 => TDM 2.06
24.03.2017 19:33 grayman Note Added: 0008777
24.03.2017 20:05 grayman Note Added: 0008779
24.03.2017 20:06 grayman Status assigned => resolved
24.03.2017 20:06 grayman Resolution open => fixed
24.03.2017 20:06 grayman Fixed in Version => TDM 2.06