  -- Parallel coroutine wrapper
  local monocle = require("#monocle")
  local coroutineEntity = monocle.Entity()
  

function onBegin()
    setFlag("flag_doBird", false)
    disableMovement()
    walkTo(-376, false, 0.6)
    local level = getLevel()
    level:add(coroutineEntity)
    coroutineEntity:add(monocle.Coroutine(level:ZoomTo(vector2(144, 102), 1.2, 2)))
    coroutineEntity:add(monocle.Coroutine(wait(0.5)))
    wait(1)
    say("DIA_COMEANDSEE_INTRO_A")
    wait()
    coroutineEntity:add(monocle.Coroutine(celeste.CutsceneEntity.CameraTo(vector2(-360, 0), 3)))
    wait(2)
    setFlag("flag_doBird", true)
    wait(1)
    setFlag("flag_doBirdDisappear", true)
    wait(0.07)
    setFlag("flag_doBirdDisappear_Real", true)
    wait(2)
    coroutineEntity:add(monocle.Coroutine(celeste.CutsceneEntity.CameraTo(vector2(-408, 0), 2)))
    coroutineEntity:add(monocle.Coroutine(level:ZoomBack(2)))
end

function onEnd()
    enableMovement()
    endCutscene()
end