diff options
author | peter1138 <peter1138@openttd.org> | 2006-05-10 21:41:16 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-05-10 21:41:16 +0000 |
commit | bd28390b2e6368418968f259889b28871e3191b7 (patch) | |
tree | f5ea42aa2aa6a6ec6de09dd9ffa986ac79093b08 | |
parent | 03b96da61bead4dc9072740e9aa8a5f5b5690de8 (diff) | |
download | openttd-bd28390b2e6368418968f259889b28871e3191b7.tar.xz |
(svn r4817) - NewGRF: allow partial support for parameter retrieval in action D.
-rw-r--r-- | newgrf.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -2292,10 +2292,12 @@ static void ParamSet(byte *buf, int len) * - it OR A PARAMETER WITH HIGHER NUMBER has been set to any value by * an earlier action D */ if (oper & 0x80) { - if (_cur_grffile->param_end < target) - oper &= 0x7F; - else + if (target < 0x80 && target < _cur_grffile->param_end) { + DEBUG(grf, 7) ("Param %u already defined, skipping.", target); return; + } + + oper &= 0x7F; } /* The source1 and source2 operands refer to the grf parameter number @@ -2306,13 +2308,15 @@ static void ParamSet(byte *buf, int len) if (src1 == 0xFF) { src1 = data; } else { - src1 = _cur_grffile->param_end >= src1 ? _cur_grffile->param[src1] : 0; + uint32 temp; + src1 = GetParamVal(src1, &temp); } if (src2 == 0xFF) { src2 = data; } else { - src2 = _cur_grffile->param_end >= src2 ? _cur_grffile->param[src2] : 0; + uint32 temp; + src2 = GetParamVal(src2, &temp); } /* TODO: You can access the parameters of another GRF file by using |