From 0f2edbf0286d97e74c7359f78df032e31859c7ae Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 3 Oct 2023 23:05:45 +1100 Subject: [PATCH] simplify & fix UpdateRavi --- server/channelserver/sys_channel_server.go | 31 +++++++++------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/server/channelserver/sys_channel_server.go b/server/channelserver/sys_channel_server.go index 5a4b29fe9..1dfef82d0 100644 --- a/server/channelserver/sys_channel_server.go +++ b/server/channelserver/sys_channel_server.go @@ -115,6 +115,7 @@ func (s *Server) GetRaviMultiplier() float64 { func (s *Server) UpdateRavi(semaID uint32, index uint8, value uint32, update bool) (uint32, uint32) { var prev uint32 + var dest *[]uint32 switch semaID { case 0x40000: switch index { @@ -123,28 +124,20 @@ func (s *Server) UpdateRavi(semaID uint32, index uint8, value uint32, update boo default: value = uint32(float64(value) * s.GetRaviMultiplier()) } - prev = s.raviente.state[index] - if prev != 0 && !update { - return prev, prev - } - s.raviente.state[index] += value - return prev, s.raviente.state[index] + dest = &s.raviente.state case 0x50000: - prev = s.raviente.support[index] - if prev != 0 && !update { - return prev, prev - } - s.raviente.support[index] += value - return prev, s.raviente.support[index] + dest = &s.raviente.support case 0x60000: - prev = s.raviente.register[index] - if prev != 0 && !update { - return prev, prev - } - s.raviente.register[index] += value - return prev, s.raviente.register[index] + dest = &s.raviente.register + default: + return 0, 0 } - return 0, 0 + if update { + (*dest)[index] += value + } else { + (*dest)[index] = value + } + return prev, (*dest)[index] } // NewServer creates a new Server type.