# UpgradeRace_View_UpgradeRaceActivityHudButton_1583.luac
; fn @UpgradeRaceActivityHudButton.lua  line 0-0 np=0 va=1 ms=3 code=30 consts=11 upvals=1 protos=7
;   K[0]='UpgradeRaceActivityHudButton'
;   K[1]='setmetatable'
;   K[2]='HudPropertyButton'
;   K[3]='__index'
;   K[4]='Init'
;   K[5]='_AddListeners'
;   K[6]='GetModel'
;   K[7]='_OnStateChanged'
;   K[8]='SyncToModelValue'
;   K[9]='UpdateContent'
;   K[10]='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('UpgradeRaceActivityHudButton')] = R0
0005  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0006  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityHudButton')]
0007  SETTABLE  R0[K3('__index')] = R1
0008  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0009  CLOSURE   R1 = closure proto0
0010  SETTABLE  R0[K4('Init')] = R1
0011  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0012  CLOSURE   R1 = closure proto1
0013  SETTABLE  R0[K5('_AddListeners')] = R1
0014  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0015  CLOSURE   R1 = closure proto2
0016  SETTABLE  R0[K6('GetModel')] = R1
0017  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0018  CLOSURE   R1 = closure proto3
0019  SETTABLE  R0[K7('_OnStateChanged')] = R1
0020  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0021  CLOSURE   R1 = closure proto4
0022  SETTABLE  R0[K8('SyncToModelValue')] = R1
0023  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0024  CLOSURE   R1 = closure proto5
0025  SETTABLE  R0[K9('UpdateContent')] = R1
0026  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityHudButton')]
0027  CLOSURE   R1 = closure proto6
0028  SETTABLE  R0[K10('UpdateValueText')] = R1
0029  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 7-10 np=2 va=0 ms=6 code=9 consts=5 upvals=1 protos=0
  ;   K[0]='m_model'
  ;   K[1]='HudPropertyButton'
  ;   K[2]='Init'
  ;   K[3]='GetActivityDefinition'
  ;   K[4]='ActivityTokenPropertyType'
  ;   upvals: _ENV
  ;   locals: self(0-9), model(0-9)
  0000  SETTABLE  R0[K0('m_model')] = R1
  0001  GETTABUP  R2 = _ENV[K1('HudPropertyButton')]
  0002  GETTABLE  R2 = R2[K2('Init')]
  0003  MOVE      R3 = R0
  0004  SELF      R5 = R1[K3('GetActivityDefinition')] (self)
  0005  CALL      R4 = call(R4, 1 args, 1 rets)
  0006  GETTABLE  R4 = R4[K4('ActivityTokenPropertyType')]
  0007  CALL      R2 = call(R2, 0 args, 2 rets)
  0008  RETURN    return R0..R-1
; ---------- proto1 [_AddListeners] ----------
  ; fn ?  line 12-22 np=1 va=0 ms=8 code=27 consts=11 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]='GetModel'
  ;   K[8]='GetActivityDefinition'
  ;   K[9]='StateChangedEvent'
  ;   K[10]='_OnStateChanged'
  ;   upvals: _ENV
  ;   locals: self(0-27), model(17-27), activityDefinition(19-27)
  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   -> -131065
  0005  JMP       (jump)   -> 8
  0006  LOADBOOL  R1 = false
  0007  RETURN    return R1..R0
  0008  GETTABUP  R1 = _ENV[K2('EventDispatcher')]
  0009  GETTABLE  R1 = R1[K3('AddListener')]
  0010  GETTABUP  R2 = _ENV[K4('EEventType')]
  0011  GETTABLE  R2 = R2[K5('ChangeGameModeFinished')]
  0012  MOVE      R3 = R0
  0013  GETTABLE  R4 = R0[K6('UpdateContent')]
  0014  CALL      R1 = call(R1, 0 args, 3 rets)
  0015  SELF      R2 = R0[K7('GetModel')] (self)
  0016  CALL      R1 = call(R1, 1 args, 1 rets)
  0017  SELF      R3 = R1[K8('GetActivityDefinition')] (self)
  0018  CALL      R2 = call(R2, 1 args, 1 rets)
  0019  GETTABUP  R3 = _ENV[K2('EventDispatcher')]
  0020  GETTABLE  R3 = R3[K3('AddListener')]
  0021  GETTABLE  R4 = R2[K9('StateChangedEvent')]
  0022  MOVE      R5 = R0
  0023  GETTABLE  R6 = R0[K10('_OnStateChanged')]
  0024  LOADBOOL  R7 = true
  0025  CALL      R3 = call(R3, 0 args, 4 rets)
  0026  RETURN    return R0..R-1
; ---------- proto2 [GetModel] ----------
  ; fn ?  line 24-26 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_model'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto3 [_OnStateChanged] ----------
  ; fn ?  line 28-32 np=1 va=0 ms=3 code=11 consts=5 upvals=1 protos=0
  ;   K[0]='GetModel'
  ;   K[1]='GetState'
  ;   K[2]='ActivityState'
  ;   K[3]='Ended'
  ;   K[4]='UpdateContent'
  ;   upvals: _ENV
  ;   locals: self(0-11)
  0000  SELF      R2 = R0[K0('GetModel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R2 = R1[K1('GetState')] (self)
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  GETTABUP  R2 = _ENV[K2('ActivityState')]
  0005  GETTABLE  R2 = R2[K3('Ended')]
  0006  EQ        if R1 eq R2   -> -130550
  0007  JMP       (jump)   -> 10
  0008  SELF      R2 = R0[K4('UpdateContent')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  RETURN    return R0..R-1
; ---------- proto4 [SyncToModelValue] ----------
  ; fn ?  line 34-37 np=1 va=0 ms=3 code=9 consts=4 upvals=1 protos=0
  ;   K[0]='HudPropertyButton'
  ;   K[1]='SyncToModelValue'
  ;   K[2]='GetModel'
  ;   K[3]='UpdateScoreProgress'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  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  SELF      R2 = R0[K2('GetModel')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  SELF      R2 = R1[K3('UpdateScoreProgress')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto5 [UpdateContent] ----------
  ; fn ?  line 39-41 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
; ---------- proto6 [UpdateValueText] ----------
  ; fn ?  line 43-49 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
