(svn r3252) - NewGRF: Map new train subtypes to old types for rail vehicles.

This commit is contained in:
peter1138 2005-12-02 14:55:23 +00:00
parent 5e4a1a4dc1
commit e426787c14

View File

@ -17,6 +17,7 @@
#include "saveload.h" #include "saveload.h"
#include "sprite.h" #include "sprite.h"
#include "variables.h" #include "variables.h"
#include "train.h"
enum { enum {
ENGINE_AVAILABLE = 1, ENGINE_AVAILABLE = 1,
@ -363,6 +364,14 @@ void UnloadCustomEngineSprites(void)
} }
} }
static int MapOldSubType(const Vehicle *v)
{
if (v->type != VEH_Train) return v->subtype;
if (IsTrainEngine(v)) return 0;
if (IsFreeWagon(v)) return 4;
return 2;
}
typedef SpriteGroup *(*resolve_callback)(const SpriteGroup *spritegroup, typedef SpriteGroup *(*resolve_callback)(const SpriteGroup *spritegroup,
const Vehicle *veh, uint16 callback_info, void *resolve_func); /* XXX data pointer used as function pointer */ const Vehicle *veh, uint16 callback_info, void *resolve_func); /* XXX data pointer used as function pointer */
@ -442,7 +451,7 @@ static const SpriteGroup* ResolveVehicleSpriteGroup(const SpriteGroup *spritegro
switch (dsg->variable - 0x80) { switch (dsg->variable - 0x80) {
#define veh_prop(id_, value_) case (id_): value = (value_); break #define veh_prop(id_, value_) case (id_): value = (value_); break
veh_prop(0x00, veh->type); veh_prop(0x00, veh->type);
veh_prop(0x01, veh->subtype); veh_prop(0x01, MapOldSubType(veh));
veh_prop(0x04, veh->index); veh_prop(0x04, veh->index);
veh_prop(0x05, veh->index & 0xFF); veh_prop(0x05, veh->index & 0xFF);
/* XXX? Is THIS right? */ /* XXX? Is THIS right? */