replaced some ctors; made PreRender call game function

This commit is contained in:
aap
2019-06-24 22:06:14 +02:00
parent 0b384356f9
commit 3b43c09578
5 changed files with 11 additions and 5 deletions

View File

@ -22,5 +22,6 @@ CBuilding::ReplaceWithNewModel(int32 id)
}
STARTPATCHES
InjectHook(0x4057D0, &CBuilding::ctor, PATCH_JUMP);
InjectHook(0x405850, &CBuilding::ReplaceWithNewModel, PATCH_JUMP);
ENDPATCHES

View File

@ -15,5 +15,7 @@ public:
void ReplaceWithNewModel(int32 id);
virtual bool GetIsATreadable(void) { return false; }
CBuilding *ctor(void) { return ::new (this) CBuilding(); }
};
static_assert(sizeof(CBuilding) == 0x64, "CBuilding: error");

View File

@ -339,9 +339,9 @@ CEntity::GetBoundRect(void)
return rect;
}
void
WRAPPER void
CEntity::PreRender(void)
{
{ EAXJMP(0x474350);
}
void
@ -448,6 +448,7 @@ CEntity::PruneReferences(void)
}
STARTPATCHES
InjectHook(0x473C30, &CEntity::ctor, PATCH_JUMP);
InjectHook(0x4742C0, (void (CEntity::*)(CVector&))&CEntity::GetBoundCentre, PATCH_JUMP);
InjectHook(0x474310, &CEntity::GetBoundRadius, PATCH_JUMP);
InjectHook(0x474C10, &CEntity::GetIsTouching, PATCH_JUMP);

View File

@ -155,6 +155,7 @@ public:
// to make patching virtual functions possible
CEntity *ctor(void) { return ::new (this) CEntity(); }
void Add_(void) { CEntity::Add(); }
void Remove_(void) { CEntity::Remove(); }
void CreateRwObject_(void) { CEntity::CreateRwObject(); }