This check on act0.cpp:314 seems to be brain damaged, and since it doesn't stop processing, we then go on iterating over some 4 billion IDs (hence the hang):
Code: Select all
if(IDs==0&&(propsRemain!=1||feature||str.ExtractByte(i)!=0x1A))IssueMessage(WARNING1,NO_IDS);
What's the logic behind this? It seems to be an attempt to handle the special case of vehicle sorting property (albeit for trains only).
First of all - what about other vehicle types? Is resetting the sorting not supported for those? Documentation for those features links to description of the property of trains and makes no mention of any differences -- hence I would assume that it does (if not, wiki needs some fixing).
Second, are there any other cases, where it may be valid to have 0 IDs? I'm not aware of any at the moment, please correct me if I'm wrong.
Next, what is the proper behaviour for this error? Can we make it a FATAL, or do we want the autocorrection to do something with it?