161 |
161 |
162 static inline EngineID GetFirstEngineOfType(byte type) |
162 static inline EngineID GetFirstEngineOfType(byte type) |
163 { |
163 { |
164 const EngineID start[] = {0, ROAD_ENGINES_INDEX, SHIP_ENGINES_INDEX, AIRCRAFT_ENGINES_INDEX}; |
164 const EngineID start[] = {0, ROAD_ENGINES_INDEX, SHIP_ENGINES_INDEX, AIRCRAFT_ENGINES_INDEX}; |
165 |
165 |
166 return start[VehTypeToIndex(type)]; |
166 return start[type]; |
167 } |
167 } |
168 |
168 |
169 static inline EngineID GetLastEngineOfType(byte type) |
169 static inline EngineID GetLastEngineOfType(byte type) |
170 { |
170 { |
171 const EngineID end[] = { |
171 const EngineID end[] = { |
172 NUM_TRAIN_ENGINES, |
172 NUM_TRAIN_ENGINES, |
173 ROAD_ENGINES_INDEX + NUM_ROAD_ENGINES, |
173 ROAD_ENGINES_INDEX + NUM_ROAD_ENGINES, |
174 SHIP_ENGINES_INDEX + NUM_SHIP_ENGINES, |
174 SHIP_ENGINES_INDEX + NUM_SHIP_ENGINES, |
175 AIRCRAFT_ENGINES_INDEX + NUM_AIRCRAFT_ENGINES}; |
175 AIRCRAFT_ENGINES_INDEX + NUM_AIRCRAFT_ENGINES}; |
176 |
176 |
177 return end[VehTypeToIndex(type)]; |
177 return end[type]; |
178 } |
178 } |
179 |
179 |
180 VARDEF Engine _engines[TOTAL_NUM_ENGINES]; |
180 VARDEF Engine _engines[TOTAL_NUM_ENGINES]; |
181 #define FOR_ALL_ENGINES(e) for (e = _engines; e != endof(_engines); e++) |
181 #define FOR_ALL_ENGINES(e) for (e = _engines; e != endof(_engines); e++) |
182 #define FOR_ALL_ENGINEIDS_OF_TYPE(e, type) for (e = GetFirstEngineOfType(type); e != GetLastEngineOfType(type); e++) |
182 #define FOR_ALL_ENGINEIDS_OF_TYPE(e, type) for (e = GetFirstEngineOfType(type); e != GetLastEngineOfType(type); e++) |