# ExtraBoardActivity_Model_ExtraBoardItemLayerModel_989.luac
; fn @ExtraBoardItemLayerModel.lua  line 0-0 np=0 va=1 ms=3 code=42 consts=16 upvals=1 protos=11
;   K[0]='ExtraBoardItemLayerModel'
;   K[1]='setmetatable'
;   K[2]='BaseUIItemLayerModel'
;   K[3]='__index'
;   K[4]='Create'
;   K[5]='ExtraBoardItemLayerModel'
;   K[6]='Init'
;   K[7]='Destroy'
;   K[8]='LoadCobwebItems'
;   K[9]='RemoveCobwebItem'
;   K[10]='GetCobwebItems'
;   K[11]='IsCobwebItem'
;   K[12]='GetCobwebItem'
;   K[13]='GetItem'
;   K[14]='_OnItemChange'
;   K[15]='GetAllItemsWithCobweb'
;   upvals: _ENV
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K2('BaseUIItemLayerModel')]
0003  CALL      R0 = call(R0, 1 args, 2 rets)
0004  SETTABUP  _ENV[K0('ExtraBoardItemLayerModel')] = R0
0005  GETTABUP  R0 = _ENV[K0('ExtraBoardItemLayerModel')]
0006  GETTABUP  R1 = _ENV[K0('ExtraBoardItemLayerModel')]
0007  SETTABLE  R0[K3('__index')] = R1
0008  GETTABUP  R0 = _ENV[K0('ExtraBoardItemLayerModel')]
0009  CLOSURE   R1 = closure proto0
0010  SETTABLE  R0[K4('Create')] = R1
0011  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0012  CLOSURE   R1 = closure proto1
0013  SETTABLE  R0[K6('Init')] = R1
0014  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0015  CLOSURE   R1 = closure proto2
0016  SETTABLE  R0[K7('Destroy')] = R1
0017  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0018  CLOSURE   R1 = closure proto3
0019  SETTABLE  R0[K8('LoadCobwebItems')] = R1
0020  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0021  CLOSURE   R1 = closure proto4
0022  SETTABLE  R0[K9('RemoveCobwebItem')] = R1
0023  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0024  CLOSURE   R1 = closure proto5
0025  SETTABLE  R0[K10('GetCobwebItems')] = R1
0026  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0027  CLOSURE   R1 = closure proto6
0028  SETTABLE  R0[K11('IsCobwebItem')] = R1
0029  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0030  CLOSURE   R1 = closure proto7
0031  SETTABLE  R0[K12('GetCobwebItem')] = R1
0032  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0033  CLOSURE   R1 = closure proto8
0034  SETTABLE  R0[K13('GetItem')] = R1
0035  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0036  CLOSURE   R1 = closure proto9
0037  SETTABLE  R0[K14('_OnItemChange')] = R1
0038  GETTABUP  R0 = _ENV[K5('ExtraBoardItemLayerModel')]
0039  CLOSURE   R1 = closure proto10
0040  SETTABLE  R0[K15('GetAllItemsWithCobweb')] = R1
0041  RETURN    return R0..R-1
; ---------- proto0 [Create] ----------
  ; fn ?  line 6-10 np=0 va=1 ms=4 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='setmetatable'
  ;   K[1]='ExtraBoardItemLayerModel'
  ;   K[2]='Init'
  ;   upvals: _ENV
  ;   locals: itemLayerModel(4-9)
  0000  GETTABUP  R0 = _ENV[K0('setmetatable')]
  0001  NEWTABLE  R1 = {} (0 items)
  0002  GETTABUP  R2 = _ENV[K1('ExtraBoardItemLayerModel')]
  0003  CALL      R0 = call(R0, 1 args, 2 rets)
  0004  SELF      R2 = R0[K2('Init')] (self)
  0005  VARARG    R3 = vararg(0)
  0006  CALL      R1 = call(R1, 0 args, -1 rets)
  0007  RETURN    return R0..R-1
  0008  RETURN    return R0..R-1
; ---------- proto1 [Init] ----------
  ; fn ?  line 12-15 np=1 va=1 ms=4 code=8 consts=3 upvals=1 protos=0
  ;   K[0]='BaseUIItemLayerModel'
  ;   K[1]='Init'
  ;   K[2]='LoadCobwebItems'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  GETTABUP  R1 = _ENV[K0('BaseUIItemLayerModel')]
  0001  GETTABLE  R1 = R1[K1('Init')]
  0002  MOVE      R2 = R0
  0003  VARARG    R3 = vararg(0)
  0004  CALL      R1 = call(R1, 0 args, -1 rets)
  0005  SELF      R2 = R0[K2('LoadCobwebItems')] (self)
  0006  CALL      R1 = call(R1, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto2 [Destroy] ----------
  ; fn ?  line 17-23 np=1 va=0 ms=8 code=15 consts=5 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_mapCbItems'
  ;   K[3]='pairs'
  ;   K[4]='Destroy'
  ;   upvals: _ENV
  ;   locals: self(0-15), (for generator)(9-14), (for state)(9-14), (for control)(9-14), itemModel(10-12), _(10-12)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_mapCbItems')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 14
  0006  GETTABUP  R1 = _ENV[K3('pairs')]
  0007  GETTABLE  R2 = R0[K2('m_mapCbItems')]
  0008  CALL      R1 = call(R1, 3 args, 1 rets)
  0009  JMP       (jump)   -> 12
  0010  SELF      R7 = R4[K4('Destroy')] (self)
  0011  CALL      R6 = call(R6, 0 args, 1 rets)
  0012  TFORCALL  tforcall R1
  0013  TFORLOOP  tforloop R3(sBx=-4)   -> 10
  0014  RETURN    return R0..R-1
; ---------- proto3 [LoadCobwebItems] ----------
  ; fn ?  line 25-53 np=1 va=0 ms=14 code=56 consts=19 upvals=1 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]='GetCobwebItemCodes'
  ;   K[2]='Table'
  ;   K[3]='IsEmpty'
  ;   K[4]='m_mapCbItems'
  ;   K[5]='Log'
  ;   K[6]='Error'
  ;   K[7]='[循环蛛网小棋盘] 上一轮的蛛网棋子还未全部完成，请检查！'
  ;   K[8]='m_mapPosition2CbItem'
  ;   K[9]='ipairs'
  ;   K[10]='ExtraBoardActivityModel'
  ;   K[11]='CobwebCompleteFlag'
  ;   K[12]='CreatePosition'
  ;   K[13]=0
  ;   K[14]='ItemModelFactory'
  ;   K[15]='CreateWithCode'
  ;   K[16]=nil
  ;   K[17]=true
  ;   K[18]='m_bDirty'
  ;   upvals: _ENV
  ;   locals: self(0-56), itemCodes(3-56), boardPosition(25-56), itemType(25-56), (for generator)(28-54), (for state)(28-54), (for control)(28-54), x(29-52), code(29-52), item(46-52)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  SELF      R2 = R1[K1('GetCobwebItemCodes')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  GETTABUP  R2 = _ENV[K2('Table')]
  0004  GETTABLE  R2 = R2[K3('IsEmpty')]
  0005  MOVE      R3 = R0
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  TEST      if not R2 then   -> -131063
  0008  JMP       (jump)   -> 10
  0009  RETURN    return R0..R-1
  0010  GETTABUP  R2 = _ENV[K2('Table')]
  0011  GETTABLE  R2 = R2[K3('IsEmpty')]
  0012  GETTABLE  R3 = R0[K4('m_mapCbItems')]
  0013  CALL      R2 = call(R2, 1 args, 1 rets)
  0014  TEST      if not R2 then   -> -131055
  0015  JMP       (jump)   -> 20
  0016  GETTABUP  R2 = _ENV[K5('Log')]
  0017  GETTABLE  R2 = R2[K6('Error')]
  0018  LOADK     R3 = K7 '[循环蛛网小棋盘] 上一轮的蛛网棋子还未全部完成，请检查！'
  0019  CALL      R2 = call(R2, 0 args, 1 rets)
  0020  NEWTABLE  R2 = {} (0 items)
  0021  SETTABLE  R0[K4('m_mapCbItems')] = R2
  0022  NEWTABLE  R2 = {} (0 items)
  0023  SETTABLE  R0[K8('m_mapPosition2CbItem')] = R2
  0024  LOADNIL   R2..R2 = nil
  0025  GETTABUP  R4 = _ENV[K9('ipairs')]
  0026  MOVE      R5 = R0
  0027  CALL      R4 = call(R4, 3 args, 1 rets)
  0028  JMP       (jump)   -> 52
  0029  GETTABUP  R9 = _ENV[K10('ExtraBoardActivityModel')]
  0030  GETTABLE  R9 = R9[K11('CobwebCompleteFlag')]
  0031  EQ        if R1 eq R9   -> -126934
  0032  JMP       (jump)   -> 52
  0033  GETTABLE  R9 = R0[K0('m_boardModel')]
  0034  SELF      R10 = R9[K12('CreatePosition')] (self)
  0035  MOVE      R11 = R0
  0036  LOADK     R12 = K13 0
  0037  CALL      R9 = call(R9, 1 args, 3 rets)
  0038  MOVE      R2 = R0
  0039  GETTABUP  R9 = _ENV[K14('ItemModelFactory')]
  0040  GETTABLE  R9 = R9[K15('CreateWithCode')]
  0041  GETTABLE  R10 = R0[K0('m_boardModel')]
  0042  MOVE      R11 = R0
  0043  MOVE      R12 = R0
  0044  LOADBOOL  R13 = true
  0045  CALL      R9 = call(R9, 1 args, 4 rets)
  0046  EQ        if R1 eq K16(nil)   -> -126144
  0047  JMP       (jump)   -> 52
  0048  GETTABLE  R10 = R0[K4('m_mapCbItems')]
  0049  SETTABLE  R10[R9] = K17(true)
  0050  GETTABLE  R10 = R0[K8('m_mapPosition2CbItem')]
  0051  SETTABLE  R10[R2] = R9
  0052  TFORCALL  tforcall R4
  0053  TFORLOOP  tforloop R6(sBx=-25)   -> 29
  0054  SETTABLE  R0[K18('m_bDirty')] = K17(true)
  0055  RETURN    return R0..R-1
; ---------- proto4 [RemoveCobwebItem] ----------
  ; fn ?  line 56-72 np=2 va=0 ms=4 code=21 consts=7 upvals=0 protos=0
  ;   K[0]=nil
  ;   K[1]='Destroy'
  ;   K[2]='m_mapCbItems'
  ;   K[3]='GetPosition'
  ;   K[4]='m_mapPosition2CbItem'
  ;   K[5]='m_bDirty'
  ;   K[6]=true
  ;   locals: self(0-21), item(0-21), boardPosition(13-21)
  0000  EQ        if R0 eq K0(nil)   -> -130302
  0001  JMP       (jump)   -> 3
  0002  RETURN    return R0..R-1
  0003  SELF      R3 = R1[K1('Destroy')] (self)
  0004  CALL      R2 = call(R2, 0 args, 1 rets)
  0005  GETTABLE  R2 = R0[K2('m_mapCbItems')]
  0006  GETTABLE  R2 = R2[R1]
  0007  EQ        if R1 eq K0(nil)   -> -129783
  0008  JMP       (jump)   -> 11
  0009  GETTABLE  R2 = R0[K2('m_mapCbItems')]
  0010  SETTABLE  R2[R1] = K0(nil)
  0011  SELF      R3 = R1[K3('GetPosition')] (self)
  0012  CALL      R2 = call(R2, 1 args, 1 rets)
  0013  GETTABLE  R3 = R0[K4('m_mapPosition2CbItem')]
  0014  GETTABLE  R3 = R3[R2]
  0015  EQ        if R1 eq K0(nil)   -> -129263
  0016  JMP       (jump)   -> 19
  0017  GETTABLE  R3 = R0[K4('m_mapPosition2CbItem')]
  0018  SETTABLE  R3[R2] = K0(nil)
  0019  SETTABLE  R0[K5('m_bDirty')] = K6(true)
  0020  RETURN    return R0..R-1
; ---------- proto5 [GetCobwebItems] ----------
  ; fn ?  line 74-85 np=1 va=0 ms=5 code=19 consts=6 upvals=1 protos=1
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_mapCbItems'
  ;   K[3]='GetKeys'
  ;   K[4]='table'
  ;   K[5]='sort'
  ;   upvals: _ENV
  ;   locals: self(0-19), arrCbItems(12-19)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('IsEmpty')]
  0002  GETTABLE  R2 = R0[K2('m_mapCbItems')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 8
  0006  NEWTABLE  R1 = {} (0 items)
  0007  RETURN    return R1..R0
  0008  GETTABUP  R1 = _ENV[K0('Table')]
  0009  GETTABLE  R1 = R1[K3('GetKeys')]
  0010  GETTABLE  R2 = R0[K2('m_mapCbItems')]
  0011  CALL      R1 = call(R1, 1 args, 1 rets)
  0012  GETTABUP  R2 = _ENV[K4('table')]
  0013  GETTABLE  R2 = R2[K5('sort')]
  0014  MOVE      R3 = R0
  0015  CLOSURE   R4 = closure proto0
  0016  CALL      R2 = call(R2, 0 args, 2 rets)
  0017  RETURN    return R1..R0
  0018  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 80-82 np=2 va=0 ms=5 code=14 consts=2 upvals=0 protos=0
    ;   K[0]='GetPosition'
    ;   K[1]='GetX'
    ;   locals: a(0-14), b(0-14)
    0000  SELF      R3 = R0[K0('GetPosition')] (self)
    0001  CALL      R2 = call(R2, 1 args, 1 rets)
    0002  SELF      R3 = R2[K1('GetX')] (self)
    0003  CALL      R2 = call(R2, 1 args, 1 rets)
    0004  SELF      R4 = R1[K0('GetPosition')] (self)
    0005  CALL      R3 = call(R3, 1 args, 1 rets)
    0006  SELF      R4 = R3[K1('GetX')] (self)
    0007  CALL      R3 = call(R3, 1 args, 1 rets)
    0008  LT        if R1 lt R3   -> -130035
    0009  JMP       (jump)   -> 11
    0010  LOADBOOL  R2 = false
    0011  LOADBOOL  R2 = true
    0012  RETURN    return R2..R1
    0013  RETURN    return R0..R-1
; ---------- proto6 [IsCobwebItem] ----------
  ; fn ?  line 87-89 np=2 va=0 ms=3 code=11 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapCbItems'
  ;   K[1]=nil
  ;   locals: self(0-11), item(0-11)
  0000  GETTABLE  R2 = R0[K0('m_mapCbItems')]
  0001  EQ        if R1 eq K1(nil)   -> -129788
  0002  JMP       (jump)   -> 7
  0003  GETTABLE  R2 = R0[K0('m_mapCbItems')]
  0004  GETTABLE  R2 = R2[R1]
  0005  EQ        if R0 eq K1(nil)   -> -129784
  0006  JMP       (jump)   -> 8
  0007  LOADBOOL  R2 = false
  0008  LOADBOOL  R2 = true
  0009  RETURN    return R2..R1
  0010  RETURN    return R0..R-1
; ---------- proto7 [GetCobwebItem] ----------
  ; fn ?  line 91-96 np=2 va=0 ms=4 code=14 consts=4 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='m_mapPosition2CbItem'
  ;   K[3]=nil
  ;   upvals: _ENV
  ;   locals: self(0-14), position(0-14)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('IsEmpty')]
  0002  GETTABLE  R3 = R0[K2('m_mapPosition2CbItem')]
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131065
  0005  JMP       (jump)   -> 11
  0006  EQ        if R1 eq K3(nil)   -> -130293
  0007  JMP       (jump)   -> 11
  0008  GETTABLE  R2 = R0[K2('m_mapPosition2CbItem')]
  0009  GETTABLE  R2 = R2[R1]
  0010  RETURN    return R2..R1
  0011  LOADNIL   R2..R2 = nil
  0012  RETURN    return R2..R1
  0013  RETURN    return R0..R-1
; ---------- proto8 [GetItem] ----------
  ; fn ?  line 98-105 np=3 va=0 ms=7 code=14 consts=4 upvals=1 protos=0
  ;   K[0]='BaseUIItemLayerModel'
  ;   K[1]='GetItem'
  ;   K[2]=nil
  ;   K[3]='GetCobwebItem'
  ;   upvals: _ENV
  ;   locals: self(0-14), position(0-14), checkValid(0-14), item(6-14)
  0000  GETTABUP  R3 = _ENV[K0('BaseUIItemLayerModel')]
  0001  GETTABLE  R3 = R3[K1('GetItem')]
  0002  MOVE      R4 = R0
  0003  MOVE      R5 = R0
  0004  MOVE      R6 = R0
  0005  CALL      R3 = call(R3, 1 args, 3 rets)
  0006  EQ        if R0 eq K2(nil)   -> -129270
  0007  JMP       (jump)   -> 12
  0008  SELF      R5 = R0[K3('GetCobwebItem')] (self)
  0009  MOVE      R6 = R0
  0010  CALL      R4 = call(R4, 1 args, 2 rets)
  0011  MOVE      R3 = R0
  0012  RETURN    return R3..R2
  0013  RETURN    return R0..R-1
; ---------- proto9 [_OnItemChange] ----------
  ; fn ?  line 107-110 np=3 va=0 ms=7 code=8 consts=4 upvals=1 protos=0
  ;   K[0]='BaseUIItemLayerModel'
  ;   K[1]='_OnItemChange'
  ;   K[2]='m_bDirty'
  ;   K[3]=true
  ;   upvals: _ENV
  ;   locals: self(0-8), itemModel(0-8), bAddItem(0-8)
  0000  GETTABUP  R3 = _ENV[K0('BaseUIItemLayerModel')]
  0001  GETTABLE  R3 = R3[K1('_OnItemChange')]
  0002  MOVE      R4 = R0
  0003  MOVE      R5 = R0
  0004  MOVE      R6 = R0
  0005  CALL      R3 = call(R3, 0 args, 3 rets)
  0006  SETTABLE  R0[K2('m_bDirty')] = K3(true)
  0007  RETURN    return R0..R-1
; ---------- proto10 [GetAllItemsWithCobweb] ----------
  ; fn ?  line 112-118 np=1 va=0 ms=8 code=13 consts=6 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='ShallowCopy'
  ;   K[2]='m_mapItems'
  ;   K[3]='pairs'
  ;   K[4]='m_mapCbItems'
  ;   K[5]=true
  ;   upvals: _ENV
  ;   locals: self(0-13), mapItems(4-13), (for generator)(7-11), (for state)(7-11), (for control)(7-11), item(8-9), _(8-9)
  0000  GETTABUP  R1 = _ENV[K0('Table')]
  0001  GETTABLE  R1 = R1[K1('ShallowCopy')]
  0002  GETTABLE  R2 = R0[K2('m_mapItems')]
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  GETTABUP  R2 = _ENV[K3('pairs')]
  0005  GETTABLE  R3 = R0[K4('m_mapCbItems')]
  0006  CALL      R2 = call(R2, 3 args, 1 rets)
  0007  JMP       (jump)   -> 9
  0008  SETTABLE  R1[R5] = K5(true)
  0009  TFORCALL  tforcall R2
  0010  TFORLOOP  tforloop R4(sBx=-3)   -> 8
  0011  RETURN    return R1..R0
  0012  RETURN    return R0..R-1
