mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(svn r2361) - Feature: [newgrf] Implement varaction2 property 0x41 and 0xDA. These are the position in and length of chain of consecutive vehicles with the same type, and index of the next wagon in the chain (INVALID_VEHICLE if last), resp. Improves displaying of some engines in the dbsetxl.
This commit is contained in:
parent
7d32f912a9
commit
6065b27f40
13
engine.c
13
engine.c
@ -360,18 +360,20 @@ static RealSpriteGroup* ResolveVehicleSpriteGroup(SpriteGroup *spritegroup,
|
||||
veh = GetFirstVehicleInChain(veh);
|
||||
}
|
||||
|
||||
if (dsg->variable == 0x40) {
|
||||
if (dsg->variable == 0x40 || dsg->variable == 0x41) {
|
||||
if (veh->type == VEH_Train) {
|
||||
Vehicle *u = GetFirstVehicleInChain(veh);
|
||||
byte chain_before = 0, chain_after = 0;
|
||||
|
||||
while (u != veh) {
|
||||
u = u->next;
|
||||
chain_before++;
|
||||
}
|
||||
while (u->next != NULL) {
|
||||
if (dsg->variable == 0x41 && u->engine_type != veh->engine_type)
|
||||
chain_before = 0;
|
||||
u = u->next;
|
||||
}
|
||||
while (u->next != NULL && (dsg->variable == 0x40 || u->next->engine_type == veh->engine_type)) {
|
||||
chain_after++;
|
||||
u = u->next;
|
||||
};
|
||||
|
||||
value = chain_before | chain_after << 8
|
||||
@ -446,8 +448,7 @@ static RealSpriteGroup* ResolveVehicleSpriteGroup(SpriteGroup *spritegroup,
|
||||
veh_prop(0x57, veh->profit_last_year & 0xFF);
|
||||
veh_prop(0x58, veh->profit_last_year);
|
||||
veh_prop(0x59, veh->profit_last_year & 0xFF);
|
||||
/* veh_prop(0x5A, veh->next_in_chain_old);
|
||||
veh_prop(0x5B, veh->next_in_chain_old & 0xFF);*/
|
||||
veh_prop(0x5A, veh->next == NULL ? INVALID_VEHICLE : veh->next->index);
|
||||
veh_prop(0x5C, veh->value);
|
||||
veh_prop(0x5D, veh->value & 0xFFFFFF);
|
||||
veh_prop(0x5E, veh->value & 0xFFFF);
|
||||
|
Loading…
Reference in New Issue
Block a user