cog/Plugins/Dumb/archive/mo3/mo3.c

45 lines
691 B
C

//
// mo3.c
// Dumb MO3 Archive parser
//
// Created by Christopher Snowhill on 11/1/13.
// Copyright 2013 __NoWork, Inc__. All rights reserved.
//
#include "mo3.h"
#include <stdint.h>
typedef uint32_t DWORD;
#include "unmo3.h"
#include <limits.h>
#include <string.h>
void * unpackMo3( const void * in, long * size )
{
void * data;
int len;
if ( *size > INT_MAX )
return 0;
if ( memcmp( in, "MO3", 3 ) != 0 )
return 0;
data = (void *) in;
len = (int) *size;
if ( UNMO3_Decode( &data, &len, 0 ) != 0 )
return 0;
*size = len;
return data;
}
void freeMo3( void * in )
{
UNMO3_Free( in );
}