Moved Objects[] from EXE to DLL

This commit is contained in:
Montagna Marco 2019-12-30 19:21:47 +01:00
parent 9c12e95a2d
commit 021c05b94b
3 changed files with 16 additions and 4 deletions

View file

@ -32,7 +32,7 @@
#define BaddieSlots VAR_U_(0x00E5B834, CREATURE_INFO*)
#define AIObjects VAR_U_(0x00E5B844, AIOBJECT*)
#define Rooms VAR_U_(0x00875154, ROOM_INFO*)
#define Objects ARRAY_(0x0086CF50, OBJECT_INFO, [460])
//#define Objects ARRAY_(0x0086CF50, OBJECT_INFO, [460])
#define Anims VAR_U_(0x00875158, ANIM_STRUCT*)
#define Bones VAR_U_(0x00875178, int*)
#define Changes VAR_U_(0x0087515C, CHANGE_STRUCT*)
@ -313,4 +313,7 @@ extern int NumItems;
extern int dword_874254;
extern int unk_87435C;
extern ITEM_INFO* Targets[NUM_SLOTS];
extern STATIC_INFO StaticObjects[NUM_STATICS];
extern STATIC_INFO StaticObjects[NUM_STATICS];
#define LegacyObjects ARRAY_(0x0086CF50, OBJECT_INFO, [460])
extern OBJECT_INFO Objects[2048];

View file

@ -263,8 +263,15 @@ void LoadObjects()
Objects[objNum].loaded = true;
}
if (LaraDrawType != LARA_DIVESUIT)
CreateSkinningData();
// HACK: until we don't decompile everything, this simple hack allows us to use legacy stuff correctly
for (int i = 0; i <= ID_HAIR; i++)
{
memcpy(&LegacyObjects[i], &Objects[i], sizeof(OBJECT_INFO));
}
// TODO: this functions seems to not be useful anymore. Hairs and skinning works fine without it.
//if (LaraDrawType != LARA_DIVESUIT)
// CreateSkinningData();
for (int i = 0; i < ID_NUMBER_OBJECTS; i++)
{

View file

@ -36,6 +36,8 @@ extern byte Sequences[3];
extern byte CurrentSequence;
extern int NumRPickups;
OBJECT_INFO Objects[2048];
void NewObjects()
{
OBJECT_INFO* obj;