(svn r4821) - NewGRF: simplify parameter retrieval in Action 0x0D
authorpeter1138
Thu, 11 May 2006 09:54:11 +0000
changeset 3811 8f2b44f6b709
parent 3810 97155cbcfbf4
child 3812 e6fc916c17ab
(svn r4821) - NewGRF: simplify parameter retrieval in Action 0x0D
newgrf.c
--- a/newgrf.c	Thu May 11 06:36:38 2006 +0000
+++ b/newgrf.c	Thu May 11 09:54:11 2006 +0000
@@ -1940,11 +1940,15 @@
 		case 0x84: /* .grf loading stage, 0=initialization, 1=activation */
 			return _cur_stage;
 
-		case 0x85: { /* TTDPatch flags, only for bit tests */
-			uint32 param_val = _ttdpatch_flags[*cond_val / 0x20];
-			*cond_val %= 0x20;
-			return param_val;
-		}
+		case 0x85: /* TTDPatch flags, only for bit tests */
+			if (cond_val == NULL) {
+				/* Supported in Action 0x07 and 0x09, not 0x0D */
+				return 0;
+			} else {
+				uint32 param_val = _ttdpatch_flags[*cond_val / 0x20];
+				*cond_val %= 0x20;
+				return param_val;
+			}
 
 		case 0x86: /* road traffic side, bit 4 clear=left, set=right */
 			return _opt.road_side << 4;
@@ -1980,7 +1984,6 @@
 			grfmsg(GMS_WARN, "Unsupported in-game variable 0x%02X.", param);
 			return -1;
 	}
-
 }
 
 /* Action 0x07 */
@@ -2304,7 +2307,7 @@
 		if (GB(data, 0, 8) == 0xFF) {
 			if (data == 0x0000FFFF) {
 				/* Patch variables */
-				grfmsg(GMS_WARN, "ParamSet: Reading Patch variables unsupport.");
+				grfmsg(GMS_WARN, "ParamSet: Reading Patch variables unsupported.");
 				return;
 			} else {
 				/* GRF Resource Management */
@@ -2326,19 +2329,8 @@
 		 * variables available in action 7, or they can be FF to use the value
 		 * of <data>.  If referring to parameters that are undefined, a value
 		 * of 0 is used instead.  */
-		if (src1 == 0xFF) {
-			src1 = data;
-		} else {
-			uint32 temp;
-			src1 = GetParamVal(src1, &temp);
-		}
-
-		if (src2 == 0xFF) {
-			src2 = data;
-		} else {
-			uint32 temp;
-			src2 = GetParamVal(src2, &temp);
-		}
+		src1 = (src1 == 0xFF) ? data : GetParamVal(src1, NULL);
+		src2 = (src2 == 0xFF) ? data : GetParamVal(src2, NULL);
 	}
 
 	/* TODO: You can access the parameters of another GRF file by using