diff options
author | rubidium <rubidium@openttd.org> | 2010-08-28 17:36:28 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-08-28 17:36:28 +0000 |
commit | 0a86eac2f1d8f646180cdd1d56f555e7956f7ebb (patch) | |
tree | 9785d9b5ee09781c32f3de801befeb6f498ed2eb /src/newgrf_object.cpp | |
parent | 6348aa796471fd7f88772b4db4b0005707a59db8 (diff) | |
download | openttd-0a86eac2f1d8f646180cdd1d56f555e7956f7ebb.tar.xz |
(svn r20651) -Codechange: add a function to determine whether an object is available and use it
Diffstat (limited to 'src/newgrf_object.cpp')
-rw-r--r-- | src/newgrf_object.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp index 30dd23df5..dc01d11d3 100644 --- a/src/newgrf_object.cpp +++ b/src/newgrf_object.cpp @@ -11,6 +11,7 @@ #include "stdafx.h" #include "core/mem_func.hpp" +#include "date_func.h" #include "newgrf.h" #include "newgrf_class_func.h" #include "newgrf_object.h" @@ -35,6 +36,16 @@ ObjectSpec _object_specs[NUM_OBJECTS]; return ObjectSpec::Get(GetObjectType(tile)); } +bool ObjectSpec::IsAvailable() const +{ + return + this->enabled && + _date > this->introduction_date && + (_date < this->end_of_life_date || this->end_of_life_date < this->introduction_date + 365) && + HasBit(this->climate, _settings_game.game_creation.landscape) && + (flags & (_game_mode != GM_EDITOR ? OBJECT_FLAG_ONLY_IN_SCENEDIT : OBJECT_FLAG_ONLY_IN_GAME)) == 0; +} + /** This function initialize the spec arrays of objects. */ void ResetObjects() { |