Changeset - r16198:7cbaaa860b19
[Not reviewed]
master
0 1 0
rubidium - 14 years ago 2010-10-08 21:07:54
rubidium@openttd.org
(svn r20908) -Fix [FS#4156]: assertion when the buy menu graphics callback accessed a variable that needs a tile index
1 file changed with 6 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/newgrf_object.cpp
Show inline comments
 
@@ -241,6 +241,7 @@ static uint32 ObjectGetVariable(const Re
 
			/* Allow these, but find the closest town. */
 
			case 0x45:
 
			case 0x46:
 
				if (!IsValidTile(tile)) goto unhandled;
 
				t = ClosestTownFromTile(tile, UINT_MAX);
 
				break;
 

	
 
@@ -257,11 +258,11 @@ static uint32 ObjectGetVariable(const Re
 
			 * 0x63: Animation counter of nearby tile, see above.
 
			 */
 
			default:
 
				DEBUG(grf, 1, "Unhandled object property 0x%X", variable);
 
				goto unhandled;
 
		}
 

	
 
				*available = false;
 
				return UINT_MAX;
 
		}
 
		/* If there's an invalid tile, then we don't have enough information at all. */
 
		if (!IsValidTile(tile)) goto unhandled;
 
	} else {
 
		t = o->town;
 
	}
 
@@ -313,6 +314,7 @@ static uint32 ObjectGetVariable(const Re
 
		case 0x64: return GetCountAndDistanceOfClosestInstance(parameter, object->grffile->grfid, tile, o);
 
	}
 

	
 
unhandled:
 
	DEBUG(grf, 1, "Unhandled object property 0x%X", variable);
 

	
 
	*available = false;
0 comments (0 inline, 0 general)