File: gt2Buffer.c

package info (click to toggle)
openmohaa 0.82.1%2Bdfsg-1
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 34,192 kB
  • sloc: cpp: 315,720; ansic: 275,789; sh: 312; xml: 246; asm: 141; makefile: 7
file content (80 lines) | stat: -rw-r--r-- 1,667 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
GameSpy GT2 SDK
Dan "Mr. Pants" Schoenblum
dan@gamespy.com

Copyright 2002 GameSpy Industries, Inc

devsupport@gamespy.com
*/

#include "gt2Buffer.h"
#include <stdlib.h>

GT2Bool gti2AllocateBuffer(GTI2Buffer * buffer, int size)
{
	buffer->buffer = (GT2Byte *)gsimalloc((unsigned int)size);
	if(!buffer->buffer)
		return GT2False;
	buffer->size = size;

	return GT2True;
}

int gti2GetBufferFreeSpace(const GTI2Buffer * buffer)
{
	return (buffer->size - buffer->len);
}

void gti2BufferWriteByte(GTI2Buffer * buffer, GT2Byte b)
{
	assert(buffer->len < buffer->size);
#if 0
	if(buffer->len >= buffer->size)
		return;
#endif

	buffer->buffer[buffer->len++] = b;
}

void gti2BufferWriteUShort(GTI2Buffer * buffer, unsigned short s)
{
	assert((buffer->len + 2) <= buffer->size);
#if 0
	if((buffer->len + 2) > buffer->size)
		return;
#endif

	buffer->buffer[buffer->len++] = (GT2Byte)((s >> 8) & 0xFF);
	buffer->buffer[buffer->len++] = (GT2Byte)(s & 0xFF);
}

void gti2BufferWriteData(GTI2Buffer * buffer, const GT2Byte * data, int len)
{
	if(!data || !len)
		return;

	if(len == -1)
		len = (int)strlen((const char *)data);

	assert((buffer->len + len) <= buffer->size);
#if 0
	if(buffer->len >= buffer->size)
		return;
#endif

	memcpy(buffer->buffer + buffer->len, data, (unsigned int)len);
	buffer->len += len;
}

void gti2BufferShorten(GTI2Buffer * buffer, int start, int shortenBy)
{
	if(start == -1)
		start = (buffer->len - shortenBy);

	assert(start <= buffer->len);
	assert(shortenBy <= (buffer->len - start));

	memmove(buffer->buffer + start, buffer->buffer + start + shortenBy, (unsigned int)(buffer->len - start - shortenBy));
	buffer->len -= shortenBy;
}