1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-25 09:44:02 +00:00

fix crash when saving skel after bones were removed

This commit is contained in:
fgenesis 2022-10-12 18:59:25 +02:00
parent 0469ab8dfb
commit 288fb6b7fa

View file

@ -1146,15 +1146,18 @@ bool SkeletalSprite::saveSkeletal(const std::string &fn)
{
BoneKeyframe *b = &a->keyframes[j].keyframes[k];
Bone *bone = this->getBoneByIdx(b->idx);
os << b->idx << " " << b->x << " " << b->y << " " << b->rot << " ";
// don't want to store grid points if they can be regenerated automatically
size_t usedGridSize = bone->gridType == Quad::GRID_INTERP ? 0 : b->grid.size();
os << usedGridSize << " ";
if(usedGridSize)
for (size_t i = 0; i < usedGridSize; i++)
os << b->grid[i].x << " " << b->grid[i].y << " ";
if (b->doScale)
szos << b->idx << " " << b->sx << " " << b->sy << " ";
if(bone)
{
os << b->idx << " " << b->x << " " << b->y << " " << b->rot << " ";
// don't want to store grid points if they can be regenerated automatically
size_t usedGridSize = bone->gridType == Quad::GRID_INTERP ? 0 : b->grid.size();
os << usedGridSize << " ";
if(usedGridSize)
for (size_t i = 0; i < usedGridSize; i++)
os << b->grid[i].x << " " << b->grid[i].y << " ";
if (b->doScale)
szos << b->idx << " " << b->sx << " " << b->sy << " ";
}
}
std::string szoss = szos.str();
if (!szoss.empty())