diff --git a/src/main.c b/src/main.c index 3fac832..02d6024 100644 --- a/src/main.c +++ b/src/main.c @@ -158,7 +158,7 @@ static void gameProc(void* arg) { dynamicSceneInit(); contactSolverInit(&gContactSolver); portalSurfaceCleanupQueueInit(); - levelLoad(3); + levelLoad(1); cutsceneRunnerReset(); controllersInit(); initAudio(fps); diff --git a/src/sk64/skelatool_animator.c b/src/sk64/skelatool_animator.c index 632207b..14556a7 100644 --- a/src/sk64/skelatool_animator.c +++ b/src/sk64/skelatool_animator.c @@ -160,7 +160,7 @@ int skAnimatorBoneStateIndexOfFrame(struct SKAnimator* animator, int frame) { return 1; } - return 0; + return -1; } void skAnimatorStep(struct SKAnimator* animator, float deltaTime) { @@ -183,6 +183,14 @@ void skAnimatorStep(struct SKAnimator* animator, float deltaTime) { int nextFrame = (int)ceilf(currentFrameFractional); float lerpValue = currentFrameFractional - prevFrame; + if (nextFrame >= currentClip->nFrames) { + nextFrame -= currentClip->nFrames; + } + + if (nextFrame == prevFrame) { + lerpValue = 1.0f; + } + int existingPrevFrame = skAnimatorBoneStateIndexOfFrame(animator, prevFrame); int existingNextFrame = skAnimatorBoneStateIndexOfFrame(animator, nextFrame); diff --git a/tools/level_scripts/static_export.lua b/tools/level_scripts/static_export.lua index 2713563..c2c9028 100644 --- a/tools/level_scripts/static_export.lua +++ b/tools/level_scripts/static_export.lua @@ -35,10 +35,6 @@ local function proccessStaticNodes(nodes) mesh_bb.max.x = math.floor(mesh_bb.max.x + 0.5) mesh_bb.max.y = math.floor(mesh_bb.max.y + 0.5) mesh_bb.max.z = math.floor(mesh_bb.max.z + 0.5) - - if v.node.name == '@static floor.005' then - print(mesh_bb) - end table.insert(result, { node = v.node, diff --git a/tools/level_scripts/trigger.lua b/tools/level_scripts/trigger.lua index 5bf5010..2111da5 100644 --- a/tools/level_scripts/trigger.lua +++ b/tools/level_scripts/trigger.lua @@ -279,6 +279,7 @@ local function generate_cutscenes() table.insert(cutscenes_result, { name = cutscene.name, steps = steps, + macro = cutscene.macro, }) table.insert(cutscene_data, {