Skip to content

Commit 20804b7

Browse files
committed
Add byteswap functions to plugin.c
1 parent 9b04dea commit 20804b7

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

plugins/plugin.c

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,47 @@ qboolean ZF_ReallocElements(void **ptr, size_t *elements, size_t newelements, si
291291
#endif
292292
}
293293

294+
// begin common.c
295+
short ShortSwap (short l)
296+
{
297+
return ((l>> 8)&0x00ff)|
298+
((l<< 8)&0xff00);
299+
}
300+
int LongSwap (int l)
301+
{
302+
return ((l>>24)&0x000000ff)|
303+
((l>> 8)&0x0000ff00)|
304+
((l<< 8)&0x00ff0000)|
305+
((l<<24)&0xff000000);
306+
}
307+
qint64_t I64Swap (qint64_t l)
308+
{
309+
return ((l>>56)& 0x000000ff)|
310+
((l>>40)& 0x0000ff00)|
311+
((l>>24)& 0x00ff0000)|
312+
((l>> 8)& 0xff000000)|
313+
((l<< 8)&0x000000ff00000000)|
314+
((l<<24)&0x0000ff0000000000)|
315+
((l<<40)&0x00ff000000000000)|
316+
((l<<56)&0xff00000000000000);
317+
}
318+
float FloatSwap (float f)
319+
{
320+
union
321+
{
322+
float f;
323+
qbyte b[4];
324+
} dat1, dat2;
325+
326+
327+
dat1.f = f;
328+
dat2.b[0] = dat1.b[3];
329+
dat2.b[1] = dat1.b[2];
330+
dat2.b[2] = dat1.b[1];
331+
dat2.b[3] = dat1.b[0];
332+
return dat2.f;
333+
}
334+
// end common.c
294335

295336
#ifdef __cplusplus
296337
extern "C"

0 commit comments

Comments
 (0)