src/newgrf_canal.cpp
changeset 9750 7114408dd1fa
parent 9111 48ce04029fe4
equal deleted inserted replaced
9749:ad943e548576 9750:7114408dd1fa
    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;