From 99338d278da52e2f71fe8c4d3f05449a1ad24144 Mon Sep 17 00:00:00 2001 From: bjarni Date: Thu, 27 Jan 2005 21:00:05 +0000 Subject: (svn r1700) - Fix: Hacked clients can no longer be used to build vehicles that are not available yet (Hackykid) --- engine.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'engine.c') diff --git a/engine.c b/engine.c index c6cc4bf4c..93cba6351 100644 --- a/engine.c +++ b/engine.c @@ -906,5 +906,29 @@ const ChunkHandler _engine_chunk_handlers[] = { { 'ENGS', LoadSave_ENGS, LoadSave_ENGS, CH_RIFF | CH_LAST}, }; +/* + * returns true if an engine is valid, and it is of the specified type, and buildable by the current player, false otherwise + * + * engine = index of the engine to check + * type = the type the engine should be of (VEH_xxx) + */ +bool IsEngineBuildable(int engine, byte type) { + Engine *e; + + // check if it's an engine that is in the engine array + if (0 > engine || engine >= TOTAL_NUM_ENGINES ) return false; + + e = DEREF_ENGINE(engine); + + // check if it's an engine of specified type + if (e->type != type) return false; + + // check if it's available + if (!HASBIT(e->player_avail, _current_player)) return false; + + return true; +} + + -- cgit v1.2.3-54-g00ecf