stanley
these 2 functions does look similar, and they does both return the object of activeVehicle. however if you read more careful you can find out that activeVehicle() returns a type of Vehicle pointer, so when activeVehicle has a type of DTNode (which can not be cast to Vehicle), it returns NULL. In this case, you then can only get a pointer to _activeVehicle(DTNode*) through activeDTNode().
In other words, when _activeVehicle is a DTNode but not a Vehicle*, you should use activeDTNode instead of activeVehicle.