mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r3252) - NewGRF: Map new train subtypes to old types for rail vehicles.
This commit is contained in:
parent
5e4a1a4dc1
commit
e426787c14
11
engine.c
11
engine.c
@ -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? */
|
||||||
|
Loading…
Reference in New Issue
Block a user