2023-12-13 00:40:16 -05:00
|
|
|
#include "Game/Animation/BckCtrl.hpp"
|
|
|
|
|
#include "Game/Util.hpp"
|
2021-12-10 09:37:39 -05:00
|
|
|
|
|
|
|
|
void BckCtrl::overWrite(const BckCtrlData &rNew) {
|
|
|
|
|
if (MR::isEqualStringCase(rNew._0, sDefaultPlayDataName)) {
|
|
|
|
|
mDefaultCtrlData = rNew;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
BckCtrlData* data = find(rNew._0);
|
|
|
|
|
|
|
|
|
|
if (data) {
|
|
|
|
|
*data = rNew;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
add(rNew);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void BckCtrl::changeBckSetting(const char *pName, XanimePlayer *pPlayer) const {
|
|
|
|
|
BckCtrlData* data = find(pName);
|
|
|
|
|
|
|
|
|
|
if (data) {
|
|
|
|
|
bool reflectDataPtr = false;
|
|
|
|
|
|
2024-09-06 00:13:45 -07:00
|
|
|
if (data->mInterpole >= 0 || data->mPlayFrame >= 0 || data->mStartFrame >= 0 || data->mEndFrame >= 0 || data->mRepeatFrame >= 0 || data->mLoopMode != 0xFF) {
|
2021-12-10 09:37:39 -05:00
|
|
|
reflectDataPtr = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (reflectDataPtr) {
|
|
|
|
|
BckCtrlFunction::reflectBckCtrlData(*data, pPlayer);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BckCtrlFunction::reflectBckCtrlData(mDefaultCtrlData, pPlayer);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// BckCtrl::find
|
|
|
|
|
// BckCtrlFunction::reflectBckCtrlData
|