diff --git a/nml/actions/action0properties.py b/nml/actions/action0properties.py index eebfd95..53da8c3 100644 --- a/nml/actions/action0properties.py +++ b/nml/actions/action0properties.py @@ -751,7 +751,7 @@ def industry_prod_multiplier(value): props.append(Action0Property(0x12 + i, val, 1)) return props else: - return [ByteListProp(0x27, [value.values])] + return [ByteListProp(0x27, [[i.reduce_constant().value for i in value.values]])] class RandomSoundsProp(BaseAction0Property): def __init__(self, sound_list): @@ -821,15 +821,15 @@ def industry_input_multiplier_ext(value): raise generic.ScriptError("Input multiplier must be an array with a multiple of 3 values", value.pos) multipliers = [] max_in, max_out = 0, 0 - for i in range(len(value.values) / 3): + for i in range(len(value.values) // 3): in_slot, out_slot, mul = value.values[i*3:i*3+3] if not (isinstance(in_slot, ConstantNumeric) and isinstance(out_slot, ConstantNumeric) and isinstance(mul, (ConstantNumeric, ConstantFloat))): raise generic.ScriptError("Expected a compile-time constant (triplets of int/int/float)", value.pos) - check_range(in_slot.value, 0, 16, "input_multiplier slot", in_slot.pos) - check_range(out_slot.value, 0, 16, "input_multiplier slot", out_slot.pos) - check_range(mul.value, 0, 256, "input_multiplier value", mul.pos) + generic.check_range(in_slot.value, 0, 16, "input_multiplier slot", in_slot.pos) + generic.check_range(out_slot.value, 0, 16, "input_multiplier slot", out_slot.pos) + generic.check_range(mul.value, 0, 256, "input_multiplier value", mul.pos) max_in, max_out = max(max_in, in_slot.value), max(max_out, out_slot.value) - multipliers = multipliers + [(in_slot.value, out_slot.value, int(mul.value * 256)] + multipliers = multipliers + [(in_slot.value, out_slot.value, int(mul.value * 256))] if max_in < 3 and max_out < 2: # old properties tbl = [[0, 0], [0, 0], [0, 0]]