# Model_Timeline_TimelineManager_216.luac
; fn @TimelineManager.lua  line 0-0 np=0 va=1 ms=2 code=36 consts=12 upvals=1 protos=10
;   K[0]='TimelineManager'
;   K[1]='__index'
;   K[2]='Init'
;   K[3]='PlayTimeline'
;   K[4]='_StartPlay'
;   K[5]='_OnTimelineFinished'
;   K[6]='_NextStep'
;   K[7]='_OnStepFinish'
;   K[8]='IsPlayingTimeline'
;   K[9]='GetCurTimelineId'
;   K[10]='IsSkipping'
;   K[11]='Skip'
;   upvals: _ENV
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('TimelineManager')] = R0
0002  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0003  GETTABUP  R1 = _ENV[K0('TimelineManager')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0006  CLOSURE   R1 = closure proto0
0007  SETTABLE  R0[K2('Init')] = R1
0008  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0009  CLOSURE   R1 = closure proto1
0010  SETTABLE  R0[K3('PlayTimeline')] = R1
0011  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0012  CLOSURE   R1 = closure proto2
0013  SETTABLE  R0[K4('_StartPlay')] = R1
0014  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0015  CLOSURE   R1 = closure proto3
0016  SETTABLE  R0[K5('_OnTimelineFinished')] = R1
0017  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0018  CLOSURE   R1 = closure proto4
0019  SETTABLE  R0[K6('_NextStep')] = R1
0020  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0021  CLOSURE   R1 = closure proto5
0022  SETTABLE  R0[K7('_OnStepFinish')] = R1
0023  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0024  CLOSURE   R1 = closure proto6
0025  SETTABLE  R0[K8('IsPlayingTimeline')] = R1
0026  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0027  CLOSURE   R1 = closure proto7
0028  SETTABLE  R0[K9('GetCurTimelineId')] = R1
0029  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0030  CLOSURE   R1 = closure proto8
0031  SETTABLE  R0[K10('IsSkipping')] = R1
0032  GETTABUP  R0 = _ENV[K0('TimelineManager')]
0033  CLOSURE   R1 = closure proto9
0034  SETTABLE  R0[K11('Skip')] = R1
0035  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 12-16 np=1 va=0 ms=2 code=4 consts=6 upvals=0 protos=0
  ;   K[0]='m_bInTimeline'
  ;   K[1]=false
  ;   K[2]='m_nStep'
  ;   K[3]=0
  ;   K[4]='m_timelineData'
  ;   K[5]=nil
  ;   locals: self(0-4)
  0000  SETTABLE  R0[K0('m_bInTimeline')] = K1(false)
  0001  SETTABLE  R0[K2('m_nStep')] = K3(0)
  0002  SETTABLE  R0[K4('m_timelineData')] = K5(nil)
  0003  RETURN    return R0..R-1
; ---------- proto1 [PlayTimeline] ----------
  ; fn ?  line 20-54 np=5 va=0 ms=11 code=40 consts=16 upvals=1 protos=1
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='GM'
  ;   K[3]='SceneManager'
  ;   K[4]='GetGameMode'
  ;   K[5]='EGameMode'
  ;   K[6]='Main'
  ;   K[7]='时间线只能在 Main 场景播放'
  ;   K[8]='m_bInTimeline'
  ;   K[9]='Error'
  ;   K[10]='已经正在播时间线了！'
  ;   K[11]='tostring'
  ;   K[12]='GetCurTimelineId'
  ;   K[13]=true
  ;   K[14]='TimelineDataModel'
  ;   K[15]='GetTimelineData'
  ;   upvals: _ENV
  ;   locals: self(0-40), timelineId(0-40), chapterName(0-40), callback(0-40), onStart(0-40)
  0000  GETTABUP  R5 = _ENV[K0('Log')]
  0001  GETTABLE  R5 = R5[K1('Assert')]
  0002  GETTABUP  R6 = _ENV[K2('GM')]
  0003  GETTABLE  R6 = R6[K3('SceneManager')]
  0004  SELF      R7 = R6[K4('GetGameMode')] (self)
  0005  CALL      R6 = call(R6, 1 args, 1 rets)
  0006  GETTABUP  R7 = _ENV[K5('EGameMode')]
  0007  GETTABLE  R7 = R7[K6('Main')]
  0008  EQ        if R1 eq R7   -> -127983
  0009  JMP       (jump)   -> 11
  0010  LOADBOOL  R6 = false
  0011  LOADBOOL  R6 = true
  0012  LOADK     R7 = K7 '时间线只能在 Main 场景播放'
  0013  CALL      R5 = call(R5, 0 args, 2 rets)
  0014  GETTABLE  R5 = R0[K8('m_bInTimeline')]
  0015  TEST      if not R5 then   -> -131055
  0016  JMP       (jump)   -> 30
  0017  GETTABUP  R5 = _ENV[K0('Log')]
  0018  GETTABLE  R5 = R5[K9('Error')]
  0019  LOADK     R6 = K10 '已经正在播时间线了！'
  0020  GETTABUP  R7 = _ENV[K11('tostring')]
  0021  SELF      R9 = R0[K12('GetCurTimelineId')] (self)
  0022  CALL      R8 = call(R8, 1 args, 1 rets)
  0023  TEST      if not R8 then   -> -131046
  0024  JMP       (jump)   -> 26
  0025  LOADNIL   R8..R8 = nil
  0026  CALL      R7 = call(R7, 1 args, 1 rets)
  0027  CONCAT    R6 = concat(R6..R6)
  0028  CALL      R5 = call(R5, 0 args, 1 rets)
  0029  RETURN    return R0..R-1
  0030  SETTABLE  R0[K8('m_bInTimeline')] = K13(true)
  0031  GETTABUP  R5 = _ENV[K2('GM')]
  0032  GETTABLE  R5 = R5[K14('TimelineDataModel')]
  0033  SELF      R6 = R5[K15('GetTimelineData')] (self)
  0034  MOVE      R7 = R0
  0035  MOVE      R8 = R0
  0036  LOADBOOL  R9 = false
  0037  CLOSURE   R10 = closure proto0
  0038  CALL      R5 = call(R5, 0 args, 5 rets)
  0039  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 29-53 np=1 va=0 ms=6 code=31 consts=11 upvals=4 protos=1
    ;   K[0]='EventDispatcher'
    ;   K[1]='DispatchEvent'
    ;   K[2]='EEventType'
    ;   K[3]='TimelineStart'
    ;   K[4]='GM'
    ;   K[5]='UIManager'
    ;   K[6]='SetEventLock'
    ;   K[7]='DelayExecuteFunc'
    ;   K[8]=0.5
    ;   K[9]='Init'
    ;   K[10]='_StartPlay'
    ;   upvals: _ENV, onStart, self, callback
    ;   locals: timelineData(0-31)
    0000  TEST      if not R0 then   -> -131069
    0001  JMP       (jump)   -> 22
    0002  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
    0003  GETTABLE  R1 = R1[K1('DispatchEvent')]
    0004  GETTABUP  R2 = _ENV[K2('EEventType')]
    0005  GETTABLE  R2 = R2[K3('TimelineStart')]
    0006  CALL      R1 = call(R1, 0 args, 1 rets)
    0007  GETTABUP  R1 = _ENV[K4('GM')]
    0008  GETTABLE  R1 = R1[K5('UIManager')]
    0009  SELF      R2 = R1[K6('SetEventLock')] (self)
    0010  LOADBOOL  R3 = true
    0011  CALL      R1 = call(R1, 0 args, 2 rets)
    0012  GETUPVAL  R1 = _ENV
    0013  TEST      if not R1 then   -> -131057
    0014  JMP       (jump)   -> 17
    0015  GETUPVAL  R1 = _ENV
    0016  CALL      R1 = call(R1, 0 args, 0 rets)
    0017  GETTABUP  R1 = _ENV[K7('DelayExecuteFunc')]
    0018  CLOSURE   R2 = closure proto0
    0019  LOADK     R3 = K8 0.5
    0020  CALL      R1 = call(R1, 0 args, 2 rets)
    0021  RETURN    return R0..R-1
    0022  SELF      R2 = R0[K9('Init')] (self)
    0023  CALL      R1 = call(R1, 0 args, 1 rets)
    0024  GETUPVAL  R1 = _ENV
    0025  SELF      R2 = R1[K10('_StartPlay')] (self)
    0026  MOVE      R3 = R0
    0027  GETUPVAL  R4 = _ENV
    0028  GETUPVAL  R5 = _ENV
    0029  CALL      R1 = call(R1, 0 args, 4 rets)
    0030  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 39-47 np=0 va=0 ms=3 code=17 consts=9 upvals=3 protos=0
      ;   K[0]='GM'
      ;   K[1]='UIManager'
      ;   K[2]='SetEventLock'
      ;   K[3]='m_bInTimeline'
      ;   K[4]=false
      ;   K[5]='EventDispatcher'
      ;   K[6]='DispatchEvent'
      ;   K[7]='EEventType'
      ;   K[8]='TimelineComplete'
      ;   upvals: _ENV, self, callback
      0000  GETTABUP  R0 = _ENV[K0('GM')]
      0001  GETTABLE  R0 = R0[K1('UIManager')]
      0002  SELF      R1 = R0[K2('SetEventLock')] (self)
      0003  LOADBOOL  R2 = false
      0004  CALL      R0 = call(R0, 0 args, 2 rets)
      0005  SETTABUP  self[K3('m_bInTimeline')] = K4(false)
      0006  GETUPVAL  R0 = _ENV
      0007  TEST      if not R0 then   -> -131063
      0008  JMP       (jump)   -> 11
      0009  GETUPVAL  R0 = _ENV
      0010  CALL      R0 = call(R0, 0 args, 0 rets)
      0011  GETTABUP  R0 = _ENV[K5('EventDispatcher')]
      0012  GETTABLE  R0 = R0[K6('DispatchEvent')]
      0013  GETTABUP  R1 = _ENV[K7('EEventType')]
      0014  GETTABLE  R1 = R1[K8('TimelineComplete')]
      0015  CALL      R0 = call(R0, 0 args, 1 rets)
      0016  RETURN    return R0..R-1
; ---------- proto2 [_StartPlay] ----------
  ; fn ?  line 56-76 np=4 va=0 ms=7 code=34 consts=19 upvals=1 protos=0
  ;   K[0]='m_timelineData'
  ;   K[1]='m_callback'
  ;   K[2]='m_nStep'
  ;   K[3]=0
  ;   K[4]='m_skipping'
  ;   K[5]=false
  ;   K[6]='m_arrCurExecuterList'
  ;   K[7]='EventDispatcher'
  ;   K[8]='DispatchEvent'
  ;   K[9]='EEventType'
  ;   K[10]='TimelineStart'
  ;   K[11]='id'
  ;   K[12]='INTRO_TIMELINE_ID'
  ;   K[13]='UpdateSceneViewHud'
  ;   K[14]='Show'
  ;   K[15]='_NextStep'
  ;   K[16]='GM'
  ;   K[17]='TimelineLayer'
  ;   K[18]='ToggleEdgeMask'
  ;   upvals: _ENV
  ;   locals: self(0-34), timelineData(0-34), callback(0-34), onStart(0-34)
  0000  SETTABLE  R0[K0('m_timelineData')] = R1
  0001  SETTABLE  R0[K1('m_callback')] = R2
  0002  SETTABLE  R0[K2('m_nStep')] = K3(0)
  0003  SETTABLE  R0[K4('m_skipping')] = K5(false)
  0004  NEWTABLE  R4 = {} (0 items)
  0005  SETTABLE  R0[K6('m_arrCurExecuterList')] = R4
  0006  GETTABUP  R4 = _ENV[K7('EventDispatcher')]
  0007  GETTABLE  R4 = R4[K8('DispatchEvent')]
  0008  GETTABUP  R5 = _ENV[K9('EEventType')]
  0009  GETTABLE  R5 = R5[K10('TimelineStart')]
  0010  CALL      R4 = call(R4, 0 args, 1 rets)
  0011  GETTABLE  R4 = R1[K11('id')]
  0012  GETTABUP  R5 = _ENV[K12('INTRO_TIMELINE_ID')]
  0013  EQ        if R1 eq R5   -> -129004
  0014  JMP       (jump)   -> 22
  0015  GETTABUP  R4 = _ENV[K7('EventDispatcher')]
  0016  GETTABLE  R4 = R4[K8('DispatchEvent')]
  0017  GETTABUP  R5 = _ENV[K9('EEventType')]
  0018  GETTABLE  R5 = R5[K13('UpdateSceneViewHud')]
  0019  NEWTABLE  R6 = {} (0 items)
  0020  SETTABLE  R6[K14('Show')] = K5(false)
  0021  CALL      R4 = call(R4, 0 args, 2 rets)
  0022  SELF      R5 = R0[K15('_NextStep')] (self)
  0023  CALL      R4 = call(R4, 0 args, 1 rets)
  0024  GETTABUP  R4 = _ENV[K16('GM')]
  0025  GETTABLE  R4 = R4[K17('TimelineLayer')]
  0026  SELF      R5 = R4[K18('ToggleEdgeMask')] (self)
  0027  LOADBOOL  R6 = true
  0028  CALL      R4 = call(R4, 0 args, 2 rets)
  0029  TEST      if not R3 then   -> -131041
  0030  JMP       (jump)   -> 33
  0031  MOVE      R4 = R0
  0032  CALL      R4 = call(R4, 0 args, 0 rets)
  0033  RETURN    return R0..R-1
; ---------- proto3 [_OnTimelineFinished] ----------
  ; fn ?  line 78-90 np=1 va=0 ms=4 code=23 consts=14 upvals=1 protos=0
  ;   K[0]='m_callback'
  ;   K[1]='m_timelineData'
  ;   K[2]=nil
  ;   K[3]='m_bInTimeline'
  ;   K[4]=false
  ;   K[5]='m_skipping'
  ;   K[6]='m_arrCurExecuterList'
  ;   K[7]='EventDispatcher'
  ;   K[8]='DispatchEvent'
  ;   K[9]='EEventType'
  ;   K[10]='TimelineComplete'
  ;   K[11]='UpdateSceneViewHud'
  ;   K[12]='Show'
  ;   K[13]=true
  ;   upvals: _ENV
  ;   locals: self(0-23)
  0000  GETTABLE  R1 = R0[K0('m_callback')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 5
  0003  GETTABLE  R1 = R0[K0('m_callback')]
  0004  CALL      R1 = call(R1, 0 args, 0 rets)
  0005  SETTABLE  R0[K1('m_timelineData')] = K2(nil)
  0006  SETTABLE  R0[K3('m_bInTimeline')] = K4(false)
  0007  SETTABLE  R0[K5('m_skipping')] = K4(false)
  0008  NEWTABLE  R1 = {} (0 items)
  0009  SETTABLE  R0[K6('m_arrCurExecuterList')] = R1
  0010  GETTABUP  R1 = _ENV[K7('EventDispatcher')]
  0011  GETTABLE  R1 = R1[K8('DispatchEvent')]
  0012  GETTABUP  R2 = _ENV[K9('EEventType')]
  0013  GETTABLE  R2 = R2[K10('TimelineComplete')]
  0014  CALL      R1 = call(R1, 0 args, 1 rets)
  0015  GETTABUP  R1 = _ENV[K7('EventDispatcher')]
  0016  GETTABLE  R1 = R1[K8('DispatchEvent')]
  0017  GETTABUP  R2 = _ENV[K9('EEventType')]
  0018  GETTABLE  R2 = R2[K11('UpdateSceneViewHud')]
  0019  NEWTABLE  R3 = {} (0 items)
  0020  SETTABLE  R3[K12('Show')] = K13(true)
  0021  CALL      R1 = call(R1, 0 args, 2 rets)
  0022  RETURN    return R0..R-1
; ---------- proto4 [_NextStep] ----------
  ; fn ?  line 92-149 np=1 va=0 ms=16 code=137 consts=41 upvals=1 protos=2
  ;   K[0]='m_timelineData'
  ;   K[1]='m_nStep'
  ;   K[2]=1
  ;   K[3]='stepCount'
  ;   K[4]='GM'
  ;   K[5]='BIManager'
  ;   K[6]='LogAction'
  ;   K[7]='EBIType'
  ;   K[8]='TimelineStep'
  ;   K[9]='TableToString'
  ;   K[10]='id'
  ;   K[11]='step'
  ;   K[12]='fin'
  ;   K[13]='GameConfig'
  ;   K[14]='IsTestMode'
  ;   K[15]='Log'
  ;   K[16]='Info'
  ;   K[17]='[Timeline]['
  ;   K[18]=']时间线结束'
  ;   K[19]='#1E8C1C'
  ;   K[20]='TimelineLayer'
  ;   K[21]='ToggleEdgeMask'
  ;   K[22]='count'
  ;   K[23]='stepList'
  ;   K[24]='m_arrCurExecuterList'
  ;   K[25]=']第'
  ;   K[26]='步开始'
  ;   K[27]='#00CED1'
  ;   K[28]='pairs'
  ;   K[29]='TimelineExecuter'
  ;   K[30]='type'
  ;   K[31]='][不跳过]'
  ;   K[32]=': '
  ;   K[33]='tostring'
  ;   K[34]='data'
  ;   K[35]='content'
  ;   K[36]='#FFA500'
  ;   K[37]='table'
  ;   K[38]='insert'
  ;   K[39]='executer'
  ;   K[40]='ExecuteFunc'
  ;   upvals: _ENV
  ;   locals: self(0-137), onFinish(50-137), (for generator)(97-136), (for state)(97-136), (for control)(97-136), k(98-134), step(98-134), timelineExecuter(101-134)
  0000  GETTABLE  R1 = R0[K0('m_timelineData')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABLE  R1 = R0[K1('m_nStep')]
  0005  ADD       R1 = K2(1) add R1
  0006  SETTABLE  R0[K1('m_nStep')] = R1
  0007  GETTABLE  R1 = R0[K1('m_nStep')]
  0008  GETTABLE  R2 = R0[K0('m_timelineData')]
  0009  GETTABLE  R2 = R2[K3('stepCount')]
  0010  LT        if R0 lt R1   -> -130035
  0011  JMP       (jump)   -> 49
  0012  GETTABUP  R1 = _ENV[K4('GM')]
  0013  GETTABLE  R1 = R1[K5('BIManager')]
  0014  SELF      R2 = R1[K6('LogAction')] (self)
  0015  GETTABUP  R3 = _ENV[K7('EBIType')]
  0016  GETTABLE  R3 = R3[K8('TimelineStep')]
  0017  GETTABUP  R4 = _ENV[K4('GM')]
  0018  GETTABLE  R4 = R4[K5('BIManager')]
  0019  SELF      R5 = R4[K9('TableToString')] (self)
  0020  NEWTABLE  R6 = {} (0 items)
  0021  GETTABLE  R7 = R0[K0('m_timelineData')]
  0022  GETTABLE  R7 = R7[K10('id')]
  0023  SETTABLE  R6[K10('id')] = R7
  0024  SETTABLE  R6[K11('step')] = K12('fin')
  0025  CALL      R4 = call(R4, -1 args, 2 rets)
  0026  CALL      R1 = call(R1, 0 args, -1 rets)
  0027  GETTABUP  R1 = _ENV[K13('GameConfig')]
  0028  GETTABLE  R1 = R1[K14('IsTestMode')]
  0029  CALL      R1 = call(R1, 1 args, 0 rets)
  0030  TEST      if not R1 then   -> -131040
  0031  JMP       (jump)   -> 42
  0032  GETTABUP  R1 = _ENV[K15('Log')]
  0033  GETTABLE  R1 = R1[K16('Info')]
  0034  LOADK     R2 = K17 '[Timeline]['
  0035  GETTABLE  R3 = R0[K0('m_timelineData')]
  0036  GETTABLE  R3 = R3[K10('id')]
  0037  LOADK     R4 = K18 ']时间线结束'
  0038  CONCAT    R2 = concat(R2..R2)
  0039  LOADNIL   R3..R3 = nil
  0040  LOADK     R4 = K19 '#1E8C1C'
  0041  CALL      R1 = call(R1, 0 args, 3 rets)
  0042  GETTABUP  R1 = _ENV[K4('GM')]
  0043  GETTABLE  R1 = R1[K20('TimelineLayer')]
  0044  SELF      R2 = R1[K21('ToggleEdgeMask')] (self)
  0045  LOADBOOL  R3 = false
  0046  CLOSURE   R4 = closure proto0
  0047  CALL      R1 = call(R1, 0 args, 3 rets)
  0048  RETURN    return R0..R-1
  0049  CLOSURE   R1 = closure proto1
  0050  GETTABLE  R2 = R0[K0('m_timelineData')]
  0051  GETTABLE  R2 = R2[K23('stepList')]
  0052  GETTABLE  R3 = R0[K1('m_nStep')]
  0053  GETTABLE  R2 = R2[R3]
  0054  LEN       R2 = len R0
  0055  SETTABLE  R0[K22('count')] = R2
  0056  GETTABUP  R2 = _ENV[K4('GM')]
  0057  GETTABLE  R2 = R2[K5('BIManager')]
  0058  SELF      R3 = R2[K6('LogAction')] (self)
  0059  GETTABUP  R4 = _ENV[K7('EBIType')]
  0060  GETTABLE  R4 = R4[K8('TimelineStep')]
  0061  GETTABUP  R5 = _ENV[K4('GM')]
  0062  GETTABLE  R5 = R5[K5('BIManager')]
  0063  SELF      R6 = R5[K9('TableToString')] (self)
  0064  NEWTABLE  R7 = {} (0 items)
  0065  GETTABLE  R8 = R0[K0('m_timelineData')]
  0066  GETTABLE  R8 = R8[K10('id')]
  0067  SETTABLE  R7[K10('id')] = R8
  0068  GETTABLE  R8 = R0[K1('m_nStep')]
  0069  SETTABLE  R7[K11('step')] = R8
  0070  CALL      R5 = call(R5, -1 args, 2 rets)
  0071  CALL      R2 = call(R2, 0 args, -1 rets)
  0072  NEWTABLE  R2 = {} (0 items)
  0073  SETTABLE  R0[K24('m_arrCurExecuterList')] = R2
  0074  GETTABUP  R2 = _ENV[K13('GameConfig')]
  0075  GETTABLE  R2 = R2[K14('IsTestMode')]
  0076  CALL      R2 = call(R2, 1 args, 0 rets)
  0077  TEST      if not R2 then   -> -130993
  0078  JMP       (jump)   -> 91
  0079  GETTABUP  R2 = _ENV[K15('Log')]
  0080  GETTABLE  R2 = R2[K16('Info')]
  0081  LOADK     R3 = K17 '[Timeline]['
  0082  GETTABLE  R4 = R0[K0('m_timelineData')]
  0083  GETTABLE  R4 = R4[K10('id')]
  0084  LOADK     R5 = K25 ']第'
  0085  GETTABLE  R6 = R0[K1('m_nStep')]
  0086  LOADK     R7 = K26 '步开始'
  0087  CONCAT    R3 = concat(R3..R3)
  0088  LOADNIL   R4..R4 = nil
  0089  LOADK     R5 = K27 '#00CED1'
  0090  CALL      R2 = call(R2, 0 args, 3 rets)
  0091  GETTABUP  R2 = _ENV[K28('pairs')]
  0092  GETTABLE  R3 = R0[K0('m_timelineData')]
  0093  GETTABLE  R3 = R3[K23('stepList')]
  0094  GETTABLE  R4 = R0[K1('m_nStep')]
  0095  GETTABLE  R3 = R3[R4]
  0096  CALL      R2 = call(R2, 3 args, 1 rets)
  0097  JMP       (jump)   -> 134
  0098  GETTABUP  R7 = _ENV[K29('TimelineExecuter')]
  0099  GETTABLE  R8 = R6[K30('type')]
  0100  GETTABLE  R7 = R7[R8]
  0101  GETTABUP  R8 = _ENV[K13('GameConfig')]
  0102  GETTABLE  R8 = R8[K14('IsTestMode')]
  0103  CALL      R8 = call(R8, 1 args, 0 rets)
  0104  TEST      if not R8 then   -> -130966
  0105  JMP       (jump)   -> 122
  0106  GETTABUP  R8 = _ENV[K15('Log')]
  0107  GETTABLE  R8 = R8[K16('Info')]
  0108  LOADK     R9 = K17 '[Timeline]['
  0109  GETTABLE  R10 = R0[K0('m_timelineData')]
  0110  GETTABLE  R10 = R10[K10('id')]
  0111  LOADK     R11 = K31 '][不跳过]'
  0112  GETTABLE  R12 = R6[K30('type')]
  0113  LOADK     R13 = K32 ': '
  0114  GETTABUP  R14 = _ENV[K33('tostring')]
  0115  GETTABLE  R15 = R6[K34('data')]
  0116  GETTABLE  R15 = R15[K35('content')]
  0117  CALL      R14 = call(R14, 1 args, 1 rets)
  0118  CONCAT    R9 = concat(R9..R9)
  0119  LOADNIL   R10..R10 = nil
  0120  LOADK     R11 = K36 '#FFA500'
  0121  CALL      R8 = call(R8, 0 args, 3 rets)
  0122  GETTABUP  R8 = _ENV[K37('table')]
  0123  GETTABLE  R8 = R8[K38('insert')]
  0124  GETTABLE  R9 = R0[K24('m_arrCurExecuterList')]
  0125  NEWTABLE  R10 = {} (0 items)
  0126  SETTABLE  R10[K39('executer')] = R7
  0127  SETTABLE  R10[K11('step')] = R6
  0128  CALL      R8 = call(R8, 0 args, 2 rets)
  0129  GETTABLE  R8 = R7[K40('ExecuteFunc')]
  0130  GETTABLE  R9 = R0[K0('m_timelineData')]
  0131  MOVE      R10 = R0
  0132  MOVE      R11 = R0
  0133  CALL      R8 = call(R8, 0 args, 3 rets)
  0134  TFORCALL  tforcall R2
  0135  TFORLOOP  tforloop R4(sBx=-38)   -> 98
  0136  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 111-113 np=0 va=0 ms=2 code=4 consts=1 upvals=1 protos=0
    ;   K[0]='_OnTimelineFinished'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_OnTimelineFinished')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 119-121 np=1 va=0 ms=4 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='_OnStepFinish'
    ;   upvals: self
    ;   locals: step(0-5)
    0000  GETUPVAL  R1 = self
    0001  SELF      R2 = R1[K0('_OnStepFinish')] (self)
    0002  MOVE      R3 = R0
    0003  CALL      R1 = call(R1, 0 args, 2 rets)
    0004  RETURN    return R0..R-1
; ---------- proto5 [_OnStepFinish] ----------
  ; fn ?  line 151-169 np=2 va=0 ms=8 code=39 consts=18 upvals=1 protos=0
  ;   K[0]='count'
  ;   K[1]=1
  ;   K[2]='ipairs'
  ;   K[3]='m_arrCurExecuterList'
  ;   K[4]='step'
  ;   K[5]='finish'
  ;   K[6]=true
  ;   K[7]='GameConfig'
  ;   K[8]='IsTestMode'
  ;   K[9]='m_timelineData'
  ;   K[10]='Log'
  ;   K[11]='Info'
  ;   K[12]='[Timeline]['
  ;   K[13]='id'
  ;   K[14]=']action结束，当前剩余action数量'
  ;   K[15]='#FFA500'
  ;   K[16]=0
  ;   K[17]='_NextStep'
  ;   upvals: _ENV
  ;   locals: self(0-39), step(0-39), (for generator)(6-14), (for state)(6-14), (for control)(6-14), _(7-12), v(7-12)
  0000  GETTABLE  R2 = R0[K0('count')]
  0001  SUB       R2 = K1(1) sub R2
  0002  SETTABLE  R0[K0('count')] = R2
  0003  GETTABUP  R2 = _ENV[K2('ipairs')]
  0004  GETTABLE  R3 = R0[K3('m_arrCurExecuterList')]
  0005  CALL      R2 = call(R2, 3 args, 1 rets)
  0006  JMP       (jump)   -> 12
  0007  GETTABLE  R7 = R6[K4('step')]
  0008  EQ        if R0 eq R1   -> -127477
  0009  JMP       (jump)   -> 12
  0010  SETTABLE  R6[K5('finish')] = K6(true)
  0011  JMP       (jump)   -> 14
  0012  TFORCALL  tforcall R2
  0013  TFORLOOP  tforloop R4(sBx=-7)   -> 7
  0014  GETTABUP  R2 = _ENV[K7('GameConfig')]
  0015  GETTABLE  R2 = R2[K8('IsTestMode')]
  0016  CALL      R2 = call(R2, 1 args, 0 rets)
  0017  TEST      if not R2 then   -> -131053
  0018  JMP       (jump)   -> 33
  0019  GETTABLE  R2 = R0[K9('m_timelineData')]
  0020  TEST      if not R2 then   -> -131050
  0021  JMP       (jump)   -> 33
  0022  GETTABUP  R2 = _ENV[K10('Log')]
  0023  GETTABLE  R2 = R2[K11('Info')]
  0024  LOADK     R3 = K12 '[Timeline]['
  0025  GETTABLE  R4 = R0[K9('m_timelineData')]
  0026  GETTABLE  R4 = R4[K13('id')]
  0027  LOADK     R5 = K14 ']action结束，当前剩余action数量'
  0028  GETTABLE  R6 = R0[K0('count')]
  0029  CONCAT    R3 = concat(R3..R3)
  0030  LOADNIL   R4..R4 = nil
  0031  LOADK     R5 = K15 '#FFA500'
  0032  CALL      R2 = call(R2, 0 args, 3 rets)
  0033  GETTABLE  R2 = R0[K0('count')]
  0034  EQ        if R0 eq K16(0)   -> -129740
  0035  JMP       (jump)   -> 38
  0036  SELF      R3 = R0[K17('_NextStep')] (self)
  0037  CALL      R2 = call(R2, 0 args, 1 rets)
  0038  RETURN    return R0..R-1
; ---------- proto6 [IsPlayingTimeline] ----------
  ; fn ?  line 171-173 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_bInTimeline'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_bInTimeline')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto7 [GetCurTimelineId] ----------
  ; fn ?  line 175-183 np=1 va=0 ms=3 code=15 consts=3 upvals=0 protos=0
  ;   K[0]='IsPlayingTimeline'
  ;   K[1]='m_timelineData'
  ;   K[2]='id'
  ;   locals: self(0-15)
  0000  SELF      R2 = R0[K0('IsPlayingTimeline')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADNIL   R1..R1 = nil
  0005  RETURN    return R1..R0
  0006  GETTABLE  R1 = R0[K1('m_timelineData')]
  0007  TEST      if not R1 then   -> -131062
  0008  JMP       (jump)   -> 11
  0009  LOADNIL   R1..R1 = nil
  0010  RETURN    return R1..R0
  0011  GETTABLE  R1 = R0[K1('m_timelineData')]
  0012  GETTABLE  R1 = R1[K2('id')]
  0013  RETURN    return R1..R0
  0014  RETURN    return R0..R-1
; ---------- proto8 [IsSkipping] ----------
  ; fn ?  line 185-187 np=1 va=0 ms=2 code=7 consts=2 upvals=0 protos=0
  ;   K[0]='m_skipping'
  ;   K[1]=true
  ;   locals: self(0-7)
  0000  GETTABLE  R1 = R0[K0('m_skipping')]
  0001  EQ        if R1 eq K1(true)   -> -130300
  0002  JMP       (jump)   -> 4
  0003  LOADBOOL  R1 = false
  0004  LOADBOOL  R1 = true
  0005  RETURN    return R1..R0
  0006  RETURN    return R0..R-1
; ---------- proto9 [Skip] ----------
  ; fn ?  line 189-232 np=1 va=0 ms=18 code=81 consts=34 upvals=1 protos=1
  ;   K[0]='m_timelineData'
  ;   K[1]='m_skipping'
  ;   K[2]=true
  ;   K[3]='m_nStep'
  ;   K[4]='char'
  ;   K[5]='GM'
  ;   K[6]='ChapterDataModel'
  ;   K[7]='GetChapterIdByName'
  ;   K[8]='ChapterManager'
  ;   K[9]='curActiveChapterName'
  ;   K[10]='id'
  ;   K[11]='step'
  ;   K[12]='BIManager'
  ;   K[13]='LogAction'
  ;   K[14]='EBIType'
  ;   K[15]='SkipTimelineBuild'
  ;   K[16]='Table'
  ;   K[17]='ShallowCopy'
  ;   K[18]='m_arrCurExecuterList'
  ;   K[19]='ipairs'
  ;   K[20]='finish'
  ;   K[21]='executer'
  ;   K[22]='StopFunc'
  ;   K[23]='GameConfig'
  ;   K[24]='IsTestMode'
  ;   K[25]='Log'
  ;   K[26]='Info'
  ;   K[27]='[Timeline]['
  ;   K[28]=']中断'
  ;   K[29]='type'
  ;   K[30]=': '
  ;   K[31]='data'
  ;   K[32]='Content'
  ;   K[33]='#FF6347'
  ;   upvals: _ENV
  ;   locals: self(0-81), step(10-81), onFinish(11-81), info(24-81), bReachEnd(32-81), arrCurExecuterList(37-80), (for generator)(40-78), (for state)(40-78), (for control)(40-78), _(41-76), v(41-76)
  0000  GETTABLE  R1 = R0[K0('m_timelineData')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABLE  R1 = R0[K1('m_skipping')]
  0005  TEST      if not R1 then   -> -131065
  0006  JMP       (jump)   -> 8
  0007  RETURN    return R0..R-1
  0008  SETTABLE  R0[K1('m_skipping')] = K2(true)
  0009  GETTABLE  R1 = R0[K3('m_nStep')]
  0010  CLOSURE   R2 = closure proto0
  0011  NEWTABLE  R3 = {} (0 items)
  0012  GETTABUP  R4 = _ENV[K5('GM')]
  0013  GETTABLE  R4 = R4[K6('ChapterDataModel')]
  0014  SELF      R5 = R4[K7('GetChapterIdByName')] (self)
  0015  GETTABUP  R6 = _ENV[K5('GM')]
  0016  GETTABLE  R6 = R6[K8('ChapterManager')]
  0017  GETTABLE  R6 = R6[K9('curActiveChapterName')]
  0018  CALL      R4 = call(R4, 1 args, 2 rets)
  0019  SETTABLE  R3[K4('char')] = R4
  0020  GETTABLE  R4 = R0[K0('m_timelineData')]
  0021  GETTABLE  R4 = R4[K10('id')]
  0022  SETTABLE  R3[K10('id')] = R4
  0023  SETTABLE  R3[K11('step')] = R1
  0024  GETTABUP  R4 = _ENV[K5('GM')]
  0025  GETTABLE  R4 = R4[K12('BIManager')]
  0026  SELF      R5 = R4[K13('LogAction')] (self)
  0027  GETTABUP  R6 = _ENV[K14('EBIType')]
  0028  GETTABLE  R6 = R6[K15('SkipTimelineBuild')]
  0029  MOVE      R7 = R0
  0030  CALL      R4 = call(R4, 0 args, 3 rets)
  0031  LOADBOOL  R4 = true
  0032  LOADBOOL  R4 = true
  0033  GETTABUP  R5 = _ENV[K16('Table')]
  0034  GETTABLE  R5 = R5[K17('ShallowCopy')]
  0035  GETTABLE  R6 = R0[K18('m_arrCurExecuterList')]
  0036  CALL      R5 = call(R5, 1 args, 1 rets)
  0037  GETTABUP  R6 = _ENV[K19('ipairs')]
  0038  MOVE      R7 = R0
  0039  CALL      R6 = call(R6, 3 args, 1 rets)
  0040  JMP       (jump)   -> 76
  0041  GETTABLE  R11 = R10[K20('finish')]
  0042  TEST      if not R11 then   -> -131027
  0043  JMP       (jump)   -> 76
  0044  GETTABLE  R11 = R10[K21('executer')]
  0045  GETTABLE  R11 = R11[K22('StopFunc')]
  0046  TEST      if not R11 then   -> -131024
  0047  JMP       (jump)   -> 76
  0048  GETTABUP  R11 = _ENV[K23('GameConfig')]
  0049  GETTABLE  R11 = R11[K24('IsTestMode')]
  0050  CALL      R11 = call(R11, 1 args, 0 rets)
  0051  TEST      if not R11 then   -> -131019
  0052  JMP       (jump)   -> 69
  0053  GETTABUP  R11 = _ENV[K25('Log')]
  0054  GETTABLE  R11 = R11[K26('Info')]
  0055  LOADK     R12 = K27 '[Timeline]['
  0056  GETTABLE  R13 = R0[K0('m_timelineData')]
  0057  GETTABLE  R13 = R13[K10('id')]
  0058  LOADK     R14 = K28 ']中断'
  0059  GETTABLE  R15 = R10[K11('step')]
  0060  GETTABLE  R15 = R15[K29('type')]
  0061  LOADK     R16 = K30 ': '
  0062  GETTABLE  R17 = R10[K11('step')]
  0063  GETTABLE  R17 = R17[K31('data')]
  0064  GETTABLE  R17 = R17[K32('Content')]
  0065  CONCAT    R12 = concat(R12..R12)
  0066  LOADNIL   R13..R13 = nil
  0067  LOADK     R14 = K33 '#FF6347'
  0068  CALL      R11 = call(R11, 0 args, 3 rets)
  0069  GETTABLE  R11 = R10[K21('executer')]
  0070  GETTABLE  R11 = R11[K22('StopFunc')]
  0071  GETTABLE  R12 = R0[K0('m_timelineData')]
  0072  GETTABLE  R13 = R10[K11('step')]
  0073  MOVE      R14 = R0
  0074  CALL      R11 = call(R11, 0 args, 3 rets)
  0075  LOADBOOL  R4 = false
  0076  TFORCALL  tforcall R6
  0077  TFORLOOP  tforloop R8(sBx=-37)   -> 41
  0078  TEST      if not R4 then   -> -130992
  0079  JMP       (jump)   -> 32
  0080  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 201-203 np=1 va=0 ms=4 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='_OnStepFinish'
    ;   upvals: self
    ;   locals: step(0-5)
    0000  GETUPVAL  R1 = self
    0001  SELF      R2 = R1[K0('_OnStepFinish')] (self)
    0002  MOVE      R3 = R0
    0003  CALL      R1 = call(R1, 0 args, 2 rets)
    0004  RETURN    return R0..R-1
