equal
deleted
inserted
replaced
69 |
69 |
70 return group->g.real.loaded[0]; |
70 return group->g.real.loaded[0]; |
71 } |
71 } |
72 |
72 |
73 |
73 |
74 static void NewCanalResolver(ResolverObject *res, TileIndex tile) |
74 static void NewCanalResolver(ResolverObject *res, TileIndex tile, const GRFFile *grffile) |
75 { |
75 { |
76 res->GetRandomBits = &CanalGetRandomBits; |
76 res->GetRandomBits = &CanalGetRandomBits; |
77 res->GetTriggers = &CanalGetTriggers; |
77 res->GetTriggers = &CanalGetTriggers; |
78 res->SetTriggers = &CanalSetTriggers; |
78 res->SetTriggers = &CanalSetTriggers; |
79 res->GetVariable = &CanalGetVariable; |
79 res->GetVariable = &CanalGetVariable; |
86 res->callback_param2 = 0; |
86 res->callback_param2 = 0; |
87 res->last_value = 0; |
87 res->last_value = 0; |
88 res->trigger = 0; |
88 res->trigger = 0; |
89 res->reseed = 0; |
89 res->reseed = 0; |
90 res->count = 0; |
90 res->count = 0; |
|
91 res->grffile = grffile; |
91 } |
92 } |
92 |
93 |
93 |
94 |
94 SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile) |
95 SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile) |
95 { |
96 { |
96 ResolverObject object; |
97 ResolverObject object; |
97 const SpriteGroup *group; |
98 const SpriteGroup *group; |
98 |
99 |
99 NewCanalResolver(&object, tile); |
100 NewCanalResolver(&object, tile, _water_feature[feature].grffile); |
100 |
101 |
101 group = Resolve(_water_feature[feature].group, &object); |
102 group = Resolve(_water_feature[feature].group, &object); |
102 if (group == NULL || group->type != SGT_RESULT) return 0; |
103 if (group == NULL || group->type != SGT_RESULT) return 0; |
103 |
104 |
104 return group->g.result.sprite; |
105 return group->g.result.sprite; |