Initial gamelib integration AAS2 with some animation and physics and another integration pass on idLib.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
#include "gamelib/animstack/animator_proxy.h"
|
||||
|
||||
// These allocator calls are owned by the idAnimStack/md6Allocator recovery.
|
||||
// Keeping the boundary explicit allows the complete Proxy TU to compile now
|
||||
// without inventing an allocator layout or a temporary allocation policy.
|
||||
idMD6Branch* GameLib_AllocMD6Branch(idAnimStack* stack);
|
||||
void GameLib_FreeMD6Branch(idAnimStack* stack, idMD6Branch* branch);
|
||||
|
||||
idAnimator_Proxy::idAnimator_Proxy()
|
||||
: idAnimator_Base()
|
||||
, mergeBranch(nullptr) {
|
||||
}
|
||||
|
||||
idAnimator_Proxy::~idAnimator_Proxy() {
|
||||
mergeBranch = nullptr;
|
||||
}
|
||||
|
||||
void idAnimator_Proxy::SetTree(idMD6Node* const tree) {
|
||||
if (mergeBranch != nullptr) {
|
||||
mergeBranch->right = tree;
|
||||
}
|
||||
}
|
||||
|
||||
bool idAnimator_Proxy::InternalInit(
|
||||
const idAnimatorParms_Base& parameters) {
|
||||
mergeBranch = GameLib_AllocMD6Branch(parameters.animStack);
|
||||
return true;
|
||||
}
|
||||
|
||||
void idAnimator_Proxy::InternalShutdown(idAnimStack* const stack) {
|
||||
if (stack != nullptr && mergeBranch != nullptr) {
|
||||
GameLib_FreeMD6Branch(stack, mergeBranch);
|
||||
mergeBranch = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
bool idAnimator_Proxy::InternalIsContributing() const {
|
||||
return mergeBranch != nullptr && mergeBranch->right != nullptr;
|
||||
}
|
||||
Reference in New Issue
Block a user