mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-17 00:18:59 +00:00
44 lines
967 B
C++
44 lines
967 B
C++
#include "common.h"
|
|
#include "patcher.h"
|
|
#include "AnimBlendClumpData.h"
|
|
#include "RwHelper.h"
|
|
|
|
|
|
CAnimBlendClumpData::CAnimBlendClumpData(void)
|
|
{
|
|
numFrames = 0;
|
|
velocity = nil;
|
|
frames = nil;
|
|
link.Init();
|
|
}
|
|
|
|
CAnimBlendClumpData::~CAnimBlendClumpData(void)
|
|
{
|
|
link.Remove();
|
|
if(frames)
|
|
RwFreeAlign(frames);
|
|
}
|
|
|
|
void
|
|
CAnimBlendClumpData::SetNumberOfFrames(int n)
|
|
{
|
|
if(frames)
|
|
RwFreeAlign(frames);
|
|
numFrames = n;
|
|
frames = (AnimBlendFrameData*)RwMallocAlign(numFrames * sizeof(AnimBlendFrameData), 64);
|
|
}
|
|
|
|
void
|
|
CAnimBlendClumpData::ForAllFrames(void (*cb)(AnimBlendFrameData*, void*), void *arg)
|
|
{
|
|
int i;
|
|
for(i = 0; i < numFrames; i++)
|
|
cb(&frames[i], arg);
|
|
}
|
|
|
|
STARTPATCHES
|
|
InjectHook(0x401880, &CAnimBlendClumpData::ctor, PATCH_JUMP);
|
|
InjectHook(0x4018B0, &CAnimBlendClumpData::dtor, PATCH_JUMP);
|
|
InjectHook(0x4018F0, &CAnimBlendClumpData::SetNumberOfFrames, PATCH_JUMP);
|
|
InjectHook(0x401930, &CAnimBlendClumpData::ForAllFrames, PATCH_JUMP);
|
|
ENDPATCHES
|