diff options
author | rubidium <rubidium@openttd.org> | 2010-08-28 17:29:12 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-08-28 17:29:12 +0000 |
commit | 34da98f2b14e63c7042f44271d0b452fcd970737 (patch) | |
tree | cb2dccaff1ff58b3a26b4d0528d29b205f472c35 /src/newgrf_object.cpp | |
parent | f1f1c71a415354b00c744573eec7e7b2ce3cf7a4 (diff) | |
download | openttd-34da98f2b14e63c7042f44271d0b452fcd970737.tar.xz |
(svn r20647) -Codechange: update some of the object spec information
Diffstat (limited to 'src/newgrf_object.cpp')
-rw-r--r-- | src/newgrf_object.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp index 4728f876a..e55ee7148 100644 --- a/src/newgrf_object.cpp +++ b/src/newgrf_object.cpp @@ -10,15 +10,18 @@ /** @file newgrf_object.cpp Handling of object NewGRFs. */ #include "stdafx.h" +#include "core/mem_func.hpp" #include "newgrf_object.h" #include "object_map.h" -extern const ObjectSpec _original_objects[]; +extern const ObjectSpec _original_objects[NEW_OBJECT_OFFSET]; +/** All the object specifications. */ +static ObjectSpec _object_specs[NUM_OBJECTS]; /* static */ const ObjectSpec *ObjectSpec::Get(ObjectType index) { - assert(index < OBJECT_MAX); - return &_original_objects[index]; + assert(index < NUM_OBJECTS); + return &_object_specs[index]; } /* static */ const ObjectSpec *ObjectSpec::GetByTile(TileIndex tile) @@ -26,3 +29,13 @@ extern const ObjectSpec _original_objects[]; return ObjectSpec::Get(GetObjectType(tile)); } +/** This function initialize the spec arrays of objects. */ +void ResetObjects() +{ + /* Clean the pool. */ + MemSetT(_object_specs, 0, lengthof(_object_specs)); + + /* And add our originals. */ + MemCpyT(_object_specs, _original_objects, lengthof(_original_objects)); +} + |