# FloatRace_View_FloatRaceHudButton_1360.luac
; fn @FloatRaceHudButton.lua  line 0-0 np=0 va=1 ms=3 code=27 consts=10 upvals=1 protos=6
;   K[0]='FloatRaceHudButton'
;   K[1]='setmetatable'
;   K[2]='HudPropertyButton'
;   K[3]='__index'
;   K[4]='Init'
;   K[5]='_AddListeners'
;   K[6]='OnStateChanged'
;   K[7]='SyncToModelValue'
;   K[8]='UpdateContent'
;   K[9]='UpdateValueText'
;   upvals: _ENV
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K2('HudPropertyButton')]
0003  CALL      R0 = call(R0, 1 args, 2 rets)
0004  SETTABUP  _ENV[K0('FloatRaceHudButton')] = R0
0005  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0006  GETTABUP  R1 = _ENV[K0('FloatRaceHudButton')]
0007  SETTABLE  R0[K3('__index')] = R1
0008  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0009  CLOSURE   R1 = closure proto0
0010  SETTABLE  R0[K4('Init')] = R1
0011  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0012  CLOSURE   R1 = closure proto1
0013  SETTABLE  R0[K5('_AddListeners')] = R1
0014  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0015  CLOSURE   R1 = closure proto2
0016  SETTABLE  R0[K6('OnStateChanged')] = R1
0017  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0018  CLOSURE   R1 = closure proto3
0019  SETTABLE  R0[K7('SyncToModelValue')] = R1
0020  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0021  CLOSURE   R1 = closure proto4
0022  SETTABLE  R0[K8('UpdateContent')] = R1
0023  GETTABUP  R0 = _ENV[K0('FloatRaceHudButton')]
0024  CLOSURE   R1 = closure proto5
0025  SETTABLE  R0[K9('UpdateValueText')] = R1
0026  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 6-9 np=2 va=0 ms=5 code=13 consts=8 upvals=1 protos=0
  ;   K[0]='m_model'
  ;   K[1]='GM'
  ;   K[2]='ActivityManager'
  ;   K[3]='GetModel'
  ;   K[4]='HudPropertyButton'
  ;   K[5]='Init'
  ;   K[6]='EPropertyType'
  ;   K[7]='FloatRaceScore'
  ;   upvals: _ENV
  ;   locals: self(0-13), activityType(0-13)
  0000  GETTABUP  R2 = _ENV[K1('GM')]
  0001  GETTABLE  R2 = R2[K2('ActivityManager')]
  0002  SELF      R3 = R2[K3('GetModel')] (self)
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 1 args, 2 rets)
  0005  SETTABLE  R0[K0('m_model')] = R2
  0006  GETTABUP  R2 = _ENV[K4('HudPropertyButton')]
  0007  GETTABLE  R2 = R2[K5('Init')]
  0008  MOVE      R3 = R0
  0009  GETTABUP  R4 = _ENV[K6('EPropertyType')]
  0010  GETTABLE  R4 = R4[K7('FloatRaceScore')]
  0011  CALL      R2 = call(R2, 0 args, 2 rets)
  0012  RETURN    return R0..R-1
; ---------- proto1 [_AddListeners] ----------
  ; fn ?  line 11-20 np=1 va=0 ms=6 code=43 consts=12 upvals=1 protos=0
  ;   K[0]='HudPropertyButton'
  ;   K[1]='_AddListeners'
  ;   K[2]='EventDispatcher'
  ;   K[3]='AddListener'
  ;   K[4]='EEventType'
  ;   K[5]='ChangeGameModeFinished'
  ;   K[6]='UpdateContent'
  ;   K[7]='FloatRaceSignUp'
  ;   K[8]='FloatRaceFail'
  ;   K[9]='FloatRaceWaitSignUp'
  ;   K[10]='FloatRaceStateChanged'
  ;   K[11]='OnStateChanged'
  ;   upvals: _ENV
  ;   locals: self(0-43)
  0000  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
  0001  GETTABLE  R1 = R1[K1('_AddListeners')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  TEST      if not R1 then   -> -131066
  0005  JMP       (jump)   -> 34
  0006  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0007  GETTABLE  R1 = R1[K3('AddListener')]
  0008  GETTABUP  R2 = _ENV[K4('EEventType')]
  0009  GETTABLE  R2 = R2[K5('ChangeGameModeFinished')]
  0010  MOVE      R3 = R0
  0011  GETTABLE  R4 = R0[K6('UpdateContent')]
  0012  CALL      R1 = call(R1, 0 args, 3 rets)
  0013  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0014  GETTABLE  R1 = R1[K3('AddListener')]
  0015  GETTABUP  R2 = _ENV[K4('EEventType')]
  0016  GETTABLE  R2 = R2[K7('FloatRaceSignUp')]
  0017  MOVE      R3 = R0
  0018  GETTABLE  R4 = R0[K6('UpdateContent')]
  0019  CALL      R1 = call(R1, 0 args, 3 rets)
  0020  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0021  GETTABLE  R1 = R1[K3('AddListener')]
  0022  GETTABUP  R2 = _ENV[K4('EEventType')]
  0023  GETTABLE  R2 = R2[K8('FloatRaceFail')]
  0024  MOVE      R3 = R0
  0025  GETTABLE  R4 = R0[K6('UpdateContent')]
  0026  CALL      R1 = call(R1, 0 args, 3 rets)
  0027  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0028  GETTABLE  R1 = R1[K3('AddListener')]
  0029  GETTABUP  R2 = _ENV[K4('EEventType')]
  0030  GETTABLE  R2 = R2[K9('FloatRaceWaitSignUp')]
  0031  MOVE      R3 = R0
  0032  GETTABLE  R4 = R0[K6('UpdateContent')]
  0033  CALL      R1 = call(R1, 0 args, 3 rets)
  0034  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0035  GETTABLE  R1 = R1[K3('AddListener')]
  0036  GETTABUP  R2 = _ENV[K4('EEventType')]
  0037  GETTABLE  R2 = R2[K10('FloatRaceStateChanged')]
  0038  MOVE      R3 = R0
  0039  GETTABLE  R4 = R0[K11('OnStateChanged')]
  0040  LOADBOOL  R5 = true
  0041  CALL      R1 = call(R1, 0 args, 4 rets)
  0042  RETURN    return R0..R-1
; ---------- proto2 [OnStateChanged] ----------
  ; fn ?  line 22-26 np=1 va=0 ms=3 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='m_model'
  ;   K[1]='GetState'
  ;   K[2]='ActivityState'
  ;   K[3]='Ended'
  ;   K[4]='UpdateContent'
  ;   upvals: _ENV
  ;   locals: self(0-13)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 12
  0003  GETTABLE  R1 = R0[K0('m_model')]
  0004  SELF      R2 = R1[K1('GetState')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  GETTABUP  R2 = _ENV[K2('ActivityState')]
  0007  GETTABLE  R2 = R2[K3('Ended')]
  0008  EQ        if R1 eq R2   -> -130548
  0009  JMP       (jump)   -> 12
  0010  SELF      R2 = R0[K4('UpdateContent')] (self)
  0011  CALL      R1 = call(R1, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto3 [SyncToModelValue] ----------
  ; fn ?  line 28-31 np=1 va=0 ms=3 code=10 consts=6 upvals=1 protos=0
  ;   K[0]='HudPropertyButton'
  ;   K[1]='SyncToModelValue'
  ;   K[2]='EventDispatcher'
  ;   K[3]='DispatchEvent'
  ;   K[4]='EEventType'
  ;   K[5]='FloatRaceScoreChanged'
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
  0001  GETTABLE  R1 = R1[K1('SyncToModelValue')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0005  GETTABLE  R1 = R1[K3('DispatchEvent')]
  0006  GETTABUP  R2 = _ENV[K4('EEventType')]
  0007  GETTABLE  R2 = R2[K5('FloatRaceScoreChanged')]
  0008  CALL      R1 = call(R1, 0 args, 1 rets)
  0009  RETURN    return R0..R-1
; ---------- proto4 [UpdateContent] ----------
  ; fn ?  line 33-35 np=1 va=0 ms=3 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='HudPropertyButton'
  ;   K[1]='SyncToModelValue'
  ;   upvals: _ENV
  ;   locals: self(0-5)
  0000  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
  0001  GETTABLE  R1 = R1[K1('SyncToModelValue')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto5 [UpdateValueText] ----------
  ; fn ?  line 37-43 np=1 va=0 ms=7 code=27 consts=14 upvals=1 protos=0
  ;   K[0]='HudPropertyButton'
  ;   K[1]='UpdateValueText'
  ;   K[2]='math'
  ;   K[3]='floor'
  ;   K[4]='m_value'
  ;   K[5]=0.5
  ;   K[6]='m_model'
  ;   K[7]='GetTargetScore'
  ;   K[8]='m_slider'
  ;   K[9]='value'
  ;   K[10]=0
  ;   K[11]='m_valueText'
  ;   K[12]='text'
  ;   K[13]='/'
  ;   upvals: _ENV
  ;   locals: self(0-27), score(9-27), targetScore(12-27)
  0000  GETTABUP  R1 = _ENV[K0('HudPropertyButton')]
  0001  GETTABLE  R1 = R1[K1('UpdateValueText')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('math')]
  0005  GETTABLE  R1 = R1[K3('floor')]
  0006  GETTABLE  R2 = R0[K4('m_value')]
  0007  ADD       R2 = K5(0.5) add R2
  0008  CALL      R1 = call(R1, 1 args, 1 rets)
  0009  GETTABLE  R2 = R0[K6('m_model')]
  0010  SELF      R3 = R2[K7('GetTargetScore')] (self)
  0011  CALL      R2 = call(R2, 1 args, 1 rets)
  0012  GETTABLE  R3 = R0[K8('m_slider')]
  0013  LT        if R0 lt R2   -> 5137
  0014  JMP       (jump)   -> 18
  0015  DIV       R4 = R2 div R1
  0016  TEST      if not R4 then   -> -131053
  0017  JMP       (jump)   -> 19
  0018  LOADK     R4 = K10 0
  0019  SETTABLE  R3[K9('value')] = R4
  0020  GETTABLE  R3 = R0[K11('m_valueText')]
  0021  MOVE      R4 = R0
  0022  LOADK     R5 = K13 '/'
  0023  MOVE      R6 = R0
  0024  CONCAT    R4 = concat(R4..R4)
  0025  SETTABLE  R3[K12('text')] = R4
  0026  RETURN    return R0..R-1
