simplify & fix UpdateRavi

This commit is contained in:
wish
2023-10-03 23:05:45 +11:00
parent d0431fbc1c
commit 0f2edbf028

View File

@@ -115,6 +115,7 @@ func (s *Server) GetRaviMultiplier() float64 {
func (s *Server) UpdateRavi(semaID uint32, index uint8, value uint32, update bool) (uint32, uint32) { func (s *Server) UpdateRavi(semaID uint32, index uint8, value uint32, update bool) (uint32, uint32) {
var prev uint32 var prev uint32
var dest *[]uint32
switch semaID { switch semaID {
case 0x40000: case 0x40000:
switch index { switch index {
@@ -123,28 +124,20 @@ func (s *Server) UpdateRavi(semaID uint32, index uint8, value uint32, update boo
default: default:
value = uint32(float64(value) * s.GetRaviMultiplier()) value = uint32(float64(value) * s.GetRaviMultiplier())
} }
prev = s.raviente.state[index] dest = &s.raviente.state
if prev != 0 && !update {
return prev, prev
}
s.raviente.state[index] += value
return prev, s.raviente.state[index]
case 0x50000: case 0x50000:
prev = s.raviente.support[index] dest = &s.raviente.support
if prev != 0 && !update {
return prev, prev
}
s.raviente.support[index] += value
return prev, s.raviente.support[index]
case 0x60000: case 0x60000:
prev = s.raviente.register[index] dest = &s.raviente.register
if prev != 0 && !update { default:
return prev, prev return 0, 0
}
s.raviente.register[index] += value
return prev, s.raviente.register[index]
} }
return 0, 0 if update {
(*dest)[index] += value
} else {
(*dest)[index] = value
}
return prev, (*dest)[index]
} }
// NewServer creates a new Server type. // NewServer creates a new Server type.