diff options
author | rubidium <rubidium@openttd.org> | 2010-08-28 18:50:32 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-08-28 18:50:32 +0000 |
commit | ee8c37c3d9fb5b62e24b0272fd93cd50acaa80f6 (patch) | |
tree | b622998fd46c759e6be6dfc9c202ba43af79da73 /src/object_cmd.cpp | |
parent | 852bde0bad87b0aab2f8e70688989c76a4c34480 (diff) | |
download | openttd-ee8c37c3d9fb5b62e24b0272fd93cd50acaa80f6.tar.xz |
(svn r20661) -Codechange: implement the "decide colour" callback for objects
Diffstat (limited to 'src/object_cmd.cpp')
-rw-r--r-- | src/object_cmd.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index 29564f8fe..c4f17f576 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -75,6 +75,11 @@ void BuildObject(ObjectType type, TileIndex tile, CompanyID owner, Town *town) /* If the object wants only one colour, then give it that colour. */ if ((spec->flags & OBJECT_FLAG_2CC_COLOUR) == 0) o->colour &= 0xF; + if (HasBit(spec->callback_mask, CBM_OBJ_COLOUR)) { + uint16 res = GetObjectCallback(CBID_OBJECT_COLOUR, o->colour, 0, spec, o, tile); + if (res != CALLBACK_FAILED) o->colour = GB(res, 0, 8); + } + assert(o->town != NULL); TILE_AREA_LOOP(t, ta) { |