Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!
Editing Fitzquake Protocol
From Quake Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | The <b>Fitzquake Protocol</b> is derived from the [[Netquake Protocol]] and was introduced in [[Fitzquake]] version 0.85. It uses protocol version number 666. Currently no other clients or servers support it. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | The | ||
==Overview of Features== | ==Overview of Features== | ||
Line 60: | Line 51: | ||
return MSG_ReadShort() * (360.0 / 65536); | return MSG_ReadShort() * (360.0 / 65536); | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Line 77: | Line 62: | ||
* U_ALPHA - entity has alpha different than its baseline. Alpha is encoded as a single byte, with a 0 representing "default" alpha, and values 1-255 representing the range 0.0-1.0. Use the ENTALPHA_ macros (below) to convert correctly between floats and bytes. This byte is sent immediately after the U_ANGLE3 angle, if present. | * U_ALPHA - entity has alpha different than its baseline. Alpha is encoded as a single byte, with a 0 representing "default" alpha, and values 1-255 representing the range 0.0-1.0. Use the ENTALPHA_ macros (below) to convert correctly between floats and bytes. This byte is sent immediately after the U_ANGLE3 angle, if present. | ||
* U_FRAME2 - entity frame is >255, so a second byte will be sent. It is sent immediately after the U_ALPHA byte, if present. | * U_FRAME2 - entity frame is >255, so a second byte will be sent. It is sent immediately after the U_ALPHA byte, if present. | ||
− | * U_MODEL2 - entity modelindex is >255, so a second byte will be sent. It is sent immediately after the | + | * U_MODEL2 - entity modelindex is >255, so a second byte will be sent. It is sent immediately after the U_MODEL2 byte, if present. |
− | * U_LERPFINISH - nextthink interval (ent->v.nextthink - sv.time) is not exactly 0.1 seconds, so the actual interval will be sent as a byte. Intervals of 0.0-1.0 seconds map to values 0-255. Anything >1 is clamped | + | * U_LERPFINISH - nextthink interval (ent->v.nextthink - sv.time) is not exactly 0.1 seconds, so the actual interval will be sent as a byte. Intervals of 0.0-1.0 seconds map to values 0-255. Anything >1 is clamped. |
===svc_clientdata=== | ===svc_clientdata=== | ||
Line 98: | Line 83: | ||
The existing flags field can have 2 new flags. | The existing flags field can have 2 new flags. | ||
− | * SND_LARGEENTITY - the edict is 2 full bytes | + | * SND_LARGEENTITY - the edict is 2 full bytes and the following byte is the channel, rather than packing them into a single short (13 bits for edict, 3 bit for channel.) This is used whenever the edict number is > 8191. |
* SND_LARGESOUND - the sound index is 2 bytes instead of 1. This is sent when the sound index is > 255. | * SND_LARGESOUND - the sound index is 2 bytes instead of 1. This is sent when the sound index is > 255. | ||