Open-source multiplayer game server compatible with the RuneScape client
https://www.openrs2.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
package org.openrs2.archive.map |
|
|
|
import io.netty.buffer.ByteBuf |
|
|
|
public data class FloType( |
|
var color: Int = 0, |
|
var texture: Int = -1, |
|
var blendColor: Int = -1 |
|
) { |
|
public companion object { |
|
public fun read(buf: ByteBuf): FloType { |
|
val type = FloType() |
|
|
|
while (true) { |
|
val code = buf.readUnsignedByte().toInt() |
|
if (code == 0) { |
|
break |
|
} else if (code == 1) { |
|
type.color = buf.readUnsignedMedium() |
|
} else if (code == 2) { |
|
type.texture = buf.readUnsignedByte().toInt() |
|
} else if (code == 3) { |
|
type.texture = buf.readUnsignedShort() |
|
if (type.texture == 65535) { |
|
type.texture = -1 |
|
} |
|
} else if (code == 5) { |
|
// empty |
|
} else if (code == 7) { |
|
type.blendColor = buf.readUnsignedMedium() |
|
} else if (code == 8) { |
|
// empty |
|
} else if (code == 9) { |
|
buf.skipBytes(2) |
|
} else if (code == 10) { |
|
// empty |
|
} else if (code == 11) { |
|
buf.skipBytes(1) |
|
} else if (code == 12) { |
|
// empty |
|
} else if (code == 13) { |
|
buf.skipBytes(3) |
|
} else if (code == 14) { |
|
buf.skipBytes(1) |
|
} else if (code == 15) { |
|
buf.skipBytes(2) |
|
} else if (code == 16) { |
|
buf.skipBytes(1) |
|
} else { |
|
throw IllegalArgumentException("Unsupported code: $code") |
|
} |
|
} |
|
|
|
return type |
|
} |
|
} |
|
}
|
|
|