(svn r4738) - Newstations: attach all sprite group cargo types, not just the default and purchase pseudo types, to a station spec.

This commit is contained in:
peter1138 2006-05-04 19:15:02 +00:00
parent 0a16393ffe
commit a55ac6efac
3 changed files with 10 additions and 7 deletions

View File

@ -156,8 +156,9 @@ enum GlobalCargo {
GC_UNDEFINED = 28, // undefined; unused slot in arctic climate
GC_DEFAULT = 29,
GC_PURCHASE = 30,
GC_DEFAULT_NA = 31, // New stations only
GC_INVALID = 255,
NUM_GLOBAL_CID = 31
NUM_GLOBAL_CID = 32
};
VARDEF const uint32 _default_refitmasks[NUM_VEHICLE_TYPES];

View File

@ -1582,12 +1582,10 @@ static void NewVehicle_SpriteGroupMapping(byte *buf, int len)
return;
}
if (ctype != 0xFF) {
/* TODO: No support for any other cargo. */
continue;
}
if (ctype == 0xFE) ctype = GC_DEFAULT_NA;
if (ctype == 0xFF) ctype = GC_PURCHASE;
statspec->spritegroup[1] = _cur_grffile->spritegroups[groupid];
statspec->spritegroup[ctype] = _cur_grffile->spritegroups[groupid];
}
}
@ -1605,7 +1603,7 @@ static void NewVehicle_SpriteGroupMapping(byte *buf, int len)
uint8 stid = buf[3 + i];
StationSpec *statspec = &_cur_grffile->stations[stid];
statspec->spritegroup[0] = _cur_grffile->spritegroups[groupid];
statspec->spritegroup[GC_DEFAULT] = _cur_grffile->spritegroups[groupid];
statspec->grfid = _cur_grffile->grfid;
statspec->localidx = stid;
SetCustomStationSpec(statspec);

View File

@ -327,10 +327,14 @@ SpriteID GetCustomStationRelocation(const StationSpec *statspec, const Station *
{
const SpriteGroup *group;
ResolverObject object;
ctype = (st == NULL) ? GC_PURCHASE : GC_DEFAULT_NA;
NewStationResolver(&object, statspec, st, tile);
group = Resolve(statspec->spritegroup[ctype], &object);
if ((group == NULL || group->type != SGT_RESULT) && ctype != GC_DEFAULT_NA) {
group = Resolve(statspec->spritegroup[GC_DEFAULT_NA], &object);
}
if ((group == NULL || group->type != SGT_RESULT) && ctype != GC_DEFAULT) {
group = Resolve(statspec->spritegroup[GC_DEFAULT], &object);
}