newgrf_engine.c
changeset 3893 46169364701b
parent 3870 766d7bd6c299
child 3920 771542d40c45
equal deleted inserted replaced
3892:b94dcbb96506 3893:46169364701b
   474 
   474 
   475 	if (v != NULL) v->waiting_triggers = triggers;
   475 	if (v != NULL) v->waiting_triggers = triggers;
   476 }
   476 }
   477 
   477 
   478 
   478 
   479 static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, byte parameter)
   479 static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available)
   480 {
   480 {
   481 	const Vehicle *v = GRV(object);
   481 	const Vehicle *v = GRV(object);
   482 
   482 
   483 	if (v == NULL) {
   483 	if (v == NULL) {
   484 		/* Vehicle does not exist, so we're in a purchase list */
   484 		/* Vehicle does not exist, so we're in a purchase list */
   485 		switch (variable) {
   485 		switch (variable) {
   486 			case 0x43: return _current_player; /* Owner information */
   486 			case 0x43: return _current_player; /* Owner information */
   487 			case 0x46: return 0;               /* Motion counter */
   487 			case 0x46: return 0;               /* Motion counter */
   488 			case 0xC4: return _cur_year;       /* Build year */
   488 			case 0xC4: return _cur_year;       /* Build year */
   489 			case 0xDA: return INVALID_VEHICLE; /* Next vehicle */
   489 			case 0xDA: return INVALID_VEHICLE; /* Next vehicle */
   490 			default:   return -1;
       
   491 		}
   490 		}
       
   491 
       
   492 		*available = false;
       
   493 		return -1;
   492 	}
   494 	}
   493 
   495 
   494 	/* Calculated vehicle parameters */
   496 	/* Calculated vehicle parameters */
   495 	switch (variable) {
   497 	switch (variable) {
   496 		case 0x40: /* Get length of consist */
   498 		case 0x40: /* Get length of consist */
   717 			break;
   719 			break;
   718 	}
   720 	}
   719 
   721 
   720 	DEBUG(grf, 1)("Unhandled vehicle property 0x%X, type 0x%X", variable, v->type);
   722 	DEBUG(grf, 1)("Unhandled vehicle property 0x%X, type 0x%X", variable, v->type);
   721 
   723 
       
   724 	*available = false;
   722 	return -1;
   725 	return -1;
   723 }
   726 }
   724 
   727 
   725 
   728 
   726 static const SpriteGroup *VehicleResolveReal(const ResolverObject *object, const SpriteGroup *group)
   729 static const SpriteGroup *VehicleResolveReal(const ResolverObject *object, const SpriteGroup *group)