summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhackykid <hackykid@openttd.org>2005-05-22 14:10:20 +0000
committerhackykid <hackykid@openttd.org>2005-05-22 14:10:20 +0000
commit726f86e020e10ec316af1de55117028bb51b6218 (patch)
tree257f8968be43cda3ee07232ea1febda715ad77c4
parentec4f1d12f45b19b5c711ed3f51d678a72ee3b3d7 (diff)
downloadopenttd-726f86e020e10ec316af1de55117028bb51b6218.tar.xz
(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.
-rw-r--r--engine.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/engine.c b/engine.c
index 85d161127..f06d958b1 100644
--- a/engine.c
+++ b/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);