summaryrefslogtreecommitdiff
path: root/src/newgrf_object.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-08-28 17:29:12 +0000
committerrubidium <rubidium@openttd.org>2010-08-28 17:29:12 +0000
commit34da98f2b14e63c7042f44271d0b452fcd970737 (patch)
treecb2dccaff1ff58b3a26b4d0528d29b205f472c35 /src/newgrf_object.cpp
parentf1f1c71a415354b00c744573eec7e7b2ce3cf7a4 (diff)
downloadopenttd-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.cpp19
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));
+}
+