From 34da98f2b14e63c7042f44271d0b452fcd970737 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 28 Aug 2010 17:29:12 +0000 Subject: (svn r20647) -Codechange: update some of the object spec information --- src/newgrf_object.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/newgrf_object.cpp') 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)); +} + -- cgit v1.2.3-54-g00ecf