Write field IDs as Var Ints

This commit is contained in:
DBotThePony 2022-10-16 15:08:17 +07:00
parent 5a8a3e375d
commit 5b596dc2cb
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -544,7 +544,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
} }
override fun write(stream: DataOutputStream, endpoint: Endpoint) { override fun write(stream: DataOutputStream, endpoint: Endpoint) {
stream.write(id) stream.writeVarIntLE(id)
codec.write(stream, field) codec.write(stream, field)
isDirty = false isDirty = false
remote = codec.copy(field) remote = codec.copy(field)
@ -603,7 +603,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
get() = clientValue ?: getter.invoke() get() = clientValue ?: getter.invoke()
override fun write(stream: DataOutputStream, endpoint: Endpoint) { override fun write(stream: DataOutputStream, endpoint: Endpoint) {
stream.write(id) stream.writeVarIntLE(id)
val value = value val value = value
codec.write(stream, value) codec.write(stream, value)
isDirty = false isDirty = false
@ -670,7 +670,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
} }
override fun write(stream: DataOutputStream, endpoint: Endpoint) { override fun write(stream: DataOutputStream, endpoint: Endpoint) {
stream.write(id) stream.writeVarIntLE(id)
val value = value val value = value
codec.write(stream, value) codec.write(stream, value)
isDirty = false isDirty = false
@ -906,7 +906,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
} }
override fun write(stream: DataOutputStream, endpoint: Endpoint) { override fun write(stream: DataOutputStream, endpoint: Endpoint) {
stream.write(id) stream.writeVarIntLE(id)
sentAllValues = false sentAllValues = false
isDirty = false isDirty = false
@ -997,13 +997,13 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
} }
fun applyNetworkPayload(stream: DataInputStream): Int { fun applyNetworkPayload(stream: DataInputStream): Int {
var fieldId = stream.read() var fieldId = stream.readVarIntLE()
var i = 0 var i = 0
while (fieldId != 0) { while (fieldId != 0) {
val field = fields.getOrNull(fieldId - 1) ?: throw IndexOutOfBoundsException("Invalid field id $fieldId") val field = fields.getOrNull(fieldId - 1) ?: throw IndexOutOfBoundsException("Invalid field id $fieldId")
field.read(stream) field.read(stream)
fieldId = stream.read() fieldId = stream.readVarIntLE()
i++ i++
} }