Closed wallstudio closed 3 years ago
タイムラインの縦方向のサイズ調整機能を追加
LayerFoldingは本家機能で実装されたので削除。
CustomSkinも死んでいる…
恐らくタイムライン周りにの描画に手が入ったので巻き添えを食らったっぽい。
しかも、1.4.7.0 で%02d:%02d:%02d.%02d
サーチ掛けたら、件の関数が認識できない→関数先頭っぽいところでCreateFunctionしたら関数の尻まで行けた。
思い出す…引掛けるところは、タイムライン下地のGdipGraphicsClear
と、上から描くレイヤーの下地のDrawRectangle
__int64 (__fastcall **__fastcall DrawTimeline(__int64 a1, __int64 a2))(void *Block)
{
...
v8 = GdipGraphicsClear(*v7, *v6); // タイムラインの下地
...
v13 = GdipSetSmoothingMode(*v12, 0i64);
do // レイヤループ
{
layerObject = GetLayerItemFromLayerListWithOrder(v25, layerIdx, v14);
layerHight = layerObject->layerHight;
v213 = layerHight;
...
v5[6] = v255;
DrawRectangle(v5, &v216); // レイヤーの下地描画
v255[0] = &off_140649678;
...
do // レイヤ内オブジェクトループ
{
objects = *(objectIdx + layerObject->objects);
*&v37 = (*(*objects + 184i64))(objects) * *(*(*(a1 + 2768) + 2960i64) + 1864i64)
- *(*(a1 + 3216) + 2640i64);
{...
}
while ( v34 < layerObject->objectsCount );// END レイヤ内オブジェクトループ
*&v28 = v212;
layerHight = v213;
layerIdx = v197;
}
...
v68 = v5[29];
v69 = GdipDrawLine(*v68, *v182); // タイムラインの区切り線
if ( v69 )
...
}
while ( layerIdx < v19 ); // END レイヤループ
}
if ( v19 > 0 )
{
do
{
LayerItemFromLayerListWithOrder = GetLayerItemFromLayerListWithOrder(v25, v64, v14);
...
}
while ( v64 < *(v201 + 14) );
v4 = v230;
}
...
sub_140073DB0(&v192, L"%02d:%02d:%02d", (v116 / 60 / 60), (v116 / 60 % 60), v177, v178);
...
sub_140073DB0(&v206, L"%02d:%02d:%02d.%02d", (v134 / 60 / 60), (v134 / 60 % 60), v177, v178);// 現在時刻描画
...
}
原因は、使うレジスタが微妙に変化していたからで、本質的な構造変化の煽りは受けなかった😌
https://github.com/wallstudio/RecottePlugin/commit/3be229cf798e656aac49ef4892a66b36febb439d
コード側に、結構な変更が予想されるので骨
本家のリリースノート