summaryrefslogtreecommitdiff
path: root/src/newgrf.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-07-05 05:41:56 +0000
committerrubidium <rubidium@openttd.org>2007-07-05 05:41:56 +0000
commit86c14c239fe10062fa83f4ee5902dfec510cd1ff (patch)
tree8f43488078024be2576c0659efafbe7b95adb002 /src/newgrf.cpp
parent9bc6a1cc8e463d37bad7e9140276079fc59a02ca (diff)
downloadopenttd-86c14c239fe10062fa83f4ee5902dfec510cd1ff.tar.xz
(svn r10442) -Codechange: implement the industry production callback.
Diffstat (limited to 'src/newgrf.cpp')
-rw-r--r--src/newgrf.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 9c1d954d4..80268a750 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -2287,6 +2287,35 @@ static void NewSpriteGroup(byte *buf, int len)
break;
}
+ case GSF_INDUSTRIES: {
+ if (type > 1) {
+ grfmsg(1, "NewSpriteGroup: Unsupported industry production version %d, skipping", type);
+ break;
+ }
+
+ group = AllocateSpriteGroup();
+ group->type = SGT_INDUSTRY_PRODUCTION;
+ group->g.indprod.version = type;
+ if (type == 0) {
+ for (uint i = 0; i < 3; i++) {
+ group->g.indprod.substract_input[i] = grf_load_word(&buf);
+ }
+ for (uint i = 0; i < 2; i++) {
+ group->g.indprod.add_output[i] = grf_load_word(&buf);
+ }
+ group->g.indprod.again = grf_load_byte(&buf);
+ } else {
+ for (uint i = 0; i < 3; i++) {
+ group->g.indprod.substract_input[i] = grf_load_byte(&buf);
+ }
+ for (uint i = 0; i < 2; i++) {
+ group->g.indprod.add_output[i] = grf_load_byte(&buf);
+ }
+ group->g.indprod.again = grf_load_byte(&buf);
+ }
+ break;
+ }
+
/* Loading of Tile Layout and Production Callback groups would happen here */
default: grfmsg(1, "NewSpriteGroup: Unsupported feature %d, skipping", feature);
}