mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
implemented rats in new system to verify that it works
This commit is contained in:
parent
08bbf96877
commit
5a4d8ffad3
14 changed files with 974 additions and 85 deletions
|
@ -95,8 +95,6 @@ inline u8 readU8(u8 *data)
|
|||
return (data[0]<<0);
|
||||
}
|
||||
|
||||
// Signed variants of the above
|
||||
|
||||
inline void writeS32(u8 *data, s32 i){
|
||||
writeU32(data, (u32)i);
|
||||
}
|
||||
|
@ -104,6 +102,13 @@ inline s32 readS32(u8 *data){
|
|||
return (s32)readU32(data);
|
||||
}
|
||||
|
||||
inline void writeF1000(u8 *data, f32 i){
|
||||
writeS32(data, i*1000);
|
||||
}
|
||||
inline f32 readF1000(u8 *data){
|
||||
return (f32)readS32(data)/1000.;
|
||||
}
|
||||
|
||||
inline void writeS16(u8 *data, s16 i){
|
||||
writeU16(data, (u16)i);
|
||||
}
|
||||
|
@ -117,7 +122,6 @@ inline void writeV3S32(u8 *data, v3s32 p)
|
|||
writeS32(&data[4], p.Y);
|
||||
writeS32(&data[8], p.Z);
|
||||
}
|
||||
|
||||
inline v3s32 readV3S32(u8 *data)
|
||||
{
|
||||
v3s32 p;
|
||||
|
@ -127,6 +131,21 @@ inline v3s32 readV3S32(u8 *data)
|
|||
return p;
|
||||
}
|
||||
|
||||
inline void writeV3F1000(u8 *data, v3f p)
|
||||
{
|
||||
writeF1000(&data[0], p.X);
|
||||
writeF1000(&data[4], p.Y);
|
||||
writeF1000(&data[8], p.Z);
|
||||
}
|
||||
inline v3f readV3F1000(u8 *data)
|
||||
{
|
||||
v3f p;
|
||||
p.X = (float)readF1000(&data[0]);
|
||||
p.Y = (float)readF1000(&data[4]);
|
||||
p.Z = (float)readF1000(&data[8]);
|
||||
return p;
|
||||
}
|
||||
|
||||
inline void writeV2S16(u8 *data, v2s16 p)
|
||||
{
|
||||
writeS16(&data[0], p.X);
|
||||
|
@ -171,6 +190,62 @@ inline v3s16 readV3S16(u8 *data)
|
|||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
The above stuff directly interfaced to iostream
|
||||
*/
|
||||
|
||||
inline void writeU8(std::ostream &os, u8 p)
|
||||
{
|
||||
char buf[1];
|
||||
writeU8((u8*)buf, p);
|
||||
os.write(buf, 1);
|
||||
}
|
||||
inline u8 readU8(std::istream &is)
|
||||
{
|
||||
char buf[1];
|
||||
is.read(buf, 1);
|
||||
return readU8((u8*)buf);
|
||||
}
|
||||
|
||||
inline void writeU16(std::ostream &os, u16 p)
|
||||
{
|
||||
char buf[2];
|
||||
writeU16((u8*)buf, p);
|
||||
os.write(buf, 2);
|
||||
}
|
||||
inline u16 readU16(std::istream &is)
|
||||
{
|
||||
char buf[12];
|
||||
is.read(buf, 12);
|
||||
return readU16((u8*)buf);
|
||||
}
|
||||
|
||||
inline void writeF1000(std::ostream &os, f32 p)
|
||||
{
|
||||
char buf[2];
|
||||
writeF1000((u8*)buf, p);
|
||||
os.write(buf, 2);
|
||||
}
|
||||
inline f32 readF1000(std::istream &is)
|
||||
{
|
||||
char buf[12];
|
||||
is.read(buf, 12);
|
||||
return readF1000((u8*)buf);
|
||||
}
|
||||
|
||||
inline void writeV3F1000(std::ostream &os, v3f p)
|
||||
{
|
||||
char buf[12];
|
||||
writeV3F1000((u8*)buf, p);
|
||||
os.write(buf, 12);
|
||||
}
|
||||
inline v3f readV3F1000(std::istream &is)
|
||||
{
|
||||
char buf[12];
|
||||
is.read(buf, 12);
|
||||
return readV3F1000((u8*)buf);
|
||||
}
|
||||
|
||||
/*
|
||||
None of these are used at the moment
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue