tools/gamedata_md5/main.cpp
author Asher Baker <asherkin@gmail.com>
Wed Aug 22 23:23:31 2012 +0100 (2012-08-22)
changeset 3623 3fd87cb487f8
parent 2230 e650c36ac67b
permissions -rw-r--r--
Updated cstrike gamedata.
pred@2125
     1
#include "main.h"
pred@2125
     2
#include <stdarg.h>
pred@2125
     3
pred@2125
     4
BuildMD5ableBuffer g_MD5Builder;
pred@2125
     5
pred@2125
     6
int main(int argc, char **argv)
pred@2125
     7
{
pred@2125
     8
	SMCStates states;
pred@2125
     9
	SMCError error;
pred@2125
    10
pred@2125
    11
	if (argc < 2)
pred@2125
    12
	{
pred@2125
    13
		fprintf(stderr, "Usage: <file>\n");
pred@2125
    14
		return -1;
pred@2125
    15
	}
pred@2125
    16
pred@2125
    17
	error = g_TextParser.ParseFile_SMC(argv[1], &g_MD5Builder, &states);
pred@2125
    18
pred@2125
    19
	if (error == SMCError_Okay)
pred@2125
    20
	{
pred@2138
    21
		printf("%s", g_MD5Builder.GetMD5String());
pred@2125
    22
		return 0;
pred@2125
    23
	}
pred@2125
    24
pred@2125
    25
	fprintf(stderr, "Failed to parse file, Error %i at line %i and col %i\n", error, states.line, states.col);
pred@2125
    26
	return -1;
pred@2125
    27
}
pred@2125
    28
pred@2125
    29
size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...)
pred@2125
    30
{
pred@2125
    31
	va_list ap;
pred@2125
    32
	va_start(ap, fmt);
pred@2125
    33
	size_t len = vsnprintf(buffer, maxlength, fmt, ap);
pred@2125
    34
	va_end(ap);
pred@2125
    35
pred@2125
    36
	if (len >= maxlength)
pred@2125
    37
	{
pred@2125
    38
		buffer[maxlength - 1] = '\0';
pred@2125
    39
		return (maxlength - 1);
pred@2125
    40
	}
pred@2125
    41
	else
pred@2125
    42
	{
pred@2125
    43
		return len;
pred@2125
    44
	}
pred@2125
    45
}