aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2012-04-29 09:14:45 +1000
committerPaul Gilbert2012-04-29 09:18:06 +1000
commitff71cda42448efaa50f7e98473087fec9c8ddb8d (patch)
treebe03a590d20b60ec942e31837a92329db074614d /engines
parentf0d4b200d7b10a1f4a32e24459c9ed97e1484d2b (diff)
downloadscummvm-rg350-ff71cda42448efaa50f7e98473087fec9c8ddb8d.tar.gz
scummvm-rg350-ff71cda42448efaa50f7e98473087fec9c8ddb8d.tar.bz2
scummvm-rg350-ff71cda42448efaa50f7e98473087fec9c8ddb8d.zip
TONY: Further work on LZO integration
Diffstat (limited to 'engines')
-rw-r--r--engines/tony/lzo/lzo1x.h198
-rw-r--r--engines/tony/lzo/lzoconf.h398
-rw-r--r--engines/tony/lzo/stubs.cpp41
-rw-r--r--engines/tony/module.mk1
-rw-r--r--engines/tony/mpal/lzo.cpp509
-rw-r--r--engines/tony/mpal/lzo.h100
-rw-r--r--engines/tony/mpal/lzo1x.h188
-rw-r--r--engines/tony/mpal/mpal.cpp14
-rw-r--r--engines/tony/tony.cpp2
9 files changed, 617 insertions, 834 deletions
diff --git a/engines/tony/lzo/lzo1x.h b/engines/tony/lzo/lzo1x.h
deleted file mode 100644
index e481b33fa4..0000000000
--- a/engines/tony/lzo/lzo1x.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-/* lzo1x.h -- public interface of the LZO1X compression algorithm
-
- This file is part of the LZO real-time data compression library.
-
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
-
- The LZO library is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
-
- The LZO library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with the LZO library; see the file COPYING.
- If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Markus F.X.J. Oberhumer
- <markus.oberhumer@jk.uni-linz.ac.at>
- http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html
- */
-
-
-#ifndef __LZO1X_H
-#define __LZO1X_H
-
-#ifndef __LZOCONF_H
-#include "lzoconf.h"
-#endif
-
-namespace Tony {
-
-namespace LZO {
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/***********************************************************************
-//
-************************************************************************/
-
-/* Memory required for the wrkmem parameter.
- * When the required size is 0, you can also pass a NULL pointer.
- */
-
-#define LZO1X_MEM_COMPRESS LZO1X_1_MEM_COMPRESS
-#define LZO1X_MEM_DECOMPRESS (0)
-#define LZO1X_MEM_OPTIMIZE (0)
-
-
-/* decompression */
-LZO_EXTERN(int)
-lzo1x_decompress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-
-/* safe decompression with overrun testing */
-LZO_EXTERN(int)
-lzo1x_decompress_safe ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-
-
-/***********************************************************************
-//
-************************************************************************/
-
-#define LZO1X_1_MEM_COMPRESS ((lzo_uint32) (16384L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/***********************************************************************
-// special compressor versions
-************************************************************************/
-
-/* this version needs only 8 kB work memory */
-#define LZO1X_1_11_MEM_COMPRESS ((lzo_uint32) (2048L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_11_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/* this version needs 16 kB work memory */
-#define LZO1X_1_12_MEM_COMPRESS ((lzo_uint32) (4096L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_12_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/* use this version if you need a little more compression speed */
-#define LZO1X_1_15_MEM_COMPRESS ((lzo_uint32) (32768L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_15_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/***********************************************************************
-// better compression ratio at the cost of more memory and time
-************************************************************************/
-
-#define LZO1X_999_MEM_COMPRESS ((lzo_uint32) (14 * 16384L * sizeof(short)))
-
-#if !defined(LZO_999_UNSUPPORTED)
-LZO_EXTERN(int)
-lzo1x_999_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-#endif
-
-
-/***********************************************************************
-//
-************************************************************************/
-
-#if !defined(LZO_999_UNSUPPORTED)
-LZO_EXTERN(int)
-lzo1x_999_compress_dict ( const lzo_byte *in , lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem,
- const lzo_byte *dict, lzo_uint dict_len );
-
-LZO_EXTERN(int)
-lzo1x_999_compress_level ( const lzo_byte *in , lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem,
- const lzo_byte *dict, lzo_uint dict_len,
- lzo_progress_callback_t cb,
- int compression_level );
-#endif
-
-LZO_EXTERN(int)
-lzo1x_decompress_dict_safe ( const lzo_byte *in, lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem /* NOT USED */,
- const lzo_byte *dict, lzo_uint dict_len );
-
-
-/***********************************************************************
-// optimize a compressed data block
-************************************************************************/
-
-LZO_EXTERN(int)
-lzo1x_optimize ( lzo_byte *in , lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem );
-
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-} // End of namespace LZO
-
-} // End of namespace Tony
-
-#endif /* already included */
-
diff --git a/engines/tony/lzo/lzoconf.h b/engines/tony/lzo/lzoconf.h
deleted file mode 100644
index 9dfcfb0cbc..0000000000
--- a/engines/tony/lzo/lzoconf.h
+++ /dev/null
@@ -1,398 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-/* lzoconf.h -- configuration for the LZO real-time data compression library
-
- This file is part of the LZO real-time data compression library.
-
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
-
- The LZO library is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
-
- The LZO library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with the LZO library; see the file COPYING.
- If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Markus F.X.J. Oberhumer
- <markus.oberhumer@jk.uni-linz.ac.at>
- http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html
- */
-
-
-#ifndef __LZOCONF_H
-#define __LZOCONF_H
-
-namespace Tony {
-
-namespace LZO {
-
-#define LZO_VERSION 0x1060
-#define LZO_VERSION_STRING "1.06"
-#define LZO_VERSION_DATE "Nov 29 1999"
-
-/* internal Autoconf configuration file - only used when building LZO */
-#if defined(LZO_HAVE_CONFIG_H)
-# include <config.h>
-#endif
-#include <limits.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/***********************************************************************
-// LZO requires a conforming <limits.h>
-************************************************************************/
-
-#if !defined(CHAR_BIT) || (CHAR_BIT != 8)
-# error "invalid CHAR_BIT"
-#endif
-#if !defined(UCHAR_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX)
-# error "check your compiler installation"
-#endif
-#if (USHRT_MAX < 1 ) || (UINT_MAX < 1) || (ULONG_MAX < 1)
-# error "your limits.h macros are broken"
-#endif
-
-/* workaround a cpp bug under hpux 10.20 */
-#define LZO_0xffffffffL 4294967295ul
-
-
-/***********************************************************************
-// architecture defines
-************************************************************************/
-
-#if !defined(__LZO_WIN) && !defined(__LZO_DOS) && !defined(__LZO_OS2)
-# if defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
-# define __LZO_WIN
-# elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32)
-# define __LZO_WIN
-# elif defined(__NT__) || defined(__NT_DLL__) || defined(__WINDOWS_386__)
-# define __LZO_WIN
-# elif defined(__DOS__) || defined(__MSDOS__) || defined(MSDOS)
-# define __LZO_DOS
-# elif defined(__OS2__) || defined(__OS2V2__) || defined(OS2)
-# define __LZO_OS2
-# elif defined(__palmos__)
-# define __LZO_PALMOS
-# elif defined(__TOS__) || defined(__atarist__)
-# define __LZO_TOS
-# endif
-#endif
-
-#if (UINT_MAX < LZO_0xffffffffL)
-# if defined(__LZO_WIN)
-# define __LZO_WIN16
-# elif defined(__LZO_DOS)
-# define __LZO_DOS16
-# elif defined(__LZO_PALMOS)
-# define __LZO_PALMOS16
-# elif defined(__LZO_TOS)
-# define __LZO_TOS16
-# elif defined(__C166__)
-# else
-# error "16-bit target not supported - contact me for porting hints"
-# endif
-#endif
-
-#if !defined(__LZO_i386)
-# if defined(__LZO_DOS) || defined(__LZO_WIN16)
-# define __LZO_i386
-# elif defined(__i386__) || defined(__386__) || defined(_M_IX86)
-# define __LZO_i386
-# endif
-#endif
-
-#if defined(__LZO_STRICT_16BIT)
-# if (UINT_MAX < LZO_0xffffffffL)
-# include <lzo16bit.h>
-# endif
-#endif
-
-
-/***********************************************************************
-// integral and pointer types
-************************************************************************/
-
-/* Integral types with 32 bits or more */
-#if !defined(LZO_UINT32_MAX)
-# if (UINT_MAX >= LZO_0xffffffffL)
- typedef unsigned int lzo_uint32;
- typedef int lzo_int32;
-# define LZO_UINT32_MAX UINT_MAX
-# define LZO_INT32_MAX INT_MAX
-# define LZO_INT32_MIN INT_MIN
-# elif (ULONG_MAX >= LZO_0xffffffffL)
- typedef unsigned long lzo_uint32;
- typedef long lzo_int32;
-# define LZO_UINT32_MAX ULONG_MAX
-# define LZO_INT32_MAX LONG_MAX
-# define LZO_INT32_MIN LONG_MIN
-# else
-# error "lzo_uint32"
-# endif
-#endif
-
-/* lzo_uint is used like size_t */
-#if !defined(LZO_UINT_MAX)
-# if (UINT_MAX >= LZO_0xffffffffL)
- typedef unsigned int lzo_uint;
- typedef int lzo_int;
-# define LZO_UINT_MAX UINT_MAX
-# define LZO_INT_MAX INT_MAX
-# define LZO_INT_MIN INT_MIN
-# elif (ULONG_MAX >= LZO_0xffffffffL)
- typedef unsigned long lzo_uint;
- typedef long lzo_int;
-# define LZO_UINT_MAX ULONG_MAX
-# define LZO_INT_MAX LONG_MAX
-# define LZO_INT_MIN LONG_MIN
-# else
-# error "lzo_uint"
-# endif
-#endif
-
-
-/* Memory model that allows to access memory at offsets of lzo_uint. */
-#if !defined(__LZO_MMODEL)
-# if (LZO_UINT_MAX <= UINT_MAX)
-# define __LZO_MMODEL
-# elif defined(__LZO_DOS16) || defined(__LZO_WIN16)
-# define __LZO_MMODEL __huge
-# define LZO_999_UNSUPPORTED
-# elif defined(__LZO_PALMOS16) || defined(__LZO_TOS16)
-# define __LZO_MMODEL
-# else
-# error "__LZO_MMODEL"
-# endif
-#endif
-
-/* no typedef here because of const-pointer issues */
-#define lzo_byte unsigned char __LZO_MMODEL
-#define lzo_bytep unsigned char __LZO_MMODEL *
-#define lzo_charp char __LZO_MMODEL *
-#define lzo_voidp void __LZO_MMODEL *
-#define lzo_shortp short __LZO_MMODEL *
-#define lzo_ushortp unsigned short __LZO_MMODEL *
-#define lzo_uint32p lzo_uint32 __LZO_MMODEL *
-#define lzo_int32p lzo_int32 __LZO_MMODEL *
-#define lzo_uintp lzo_uint __LZO_MMODEL *
-#define lzo_intp lzo_int __LZO_MMODEL *
-#define lzo_voidpp lzo_voidp __LZO_MMODEL *
-#define lzo_bytepp lzo_bytep __LZO_MMODEL *
-
-typedef int lzo_bool;
-
-#ifndef lzo_sizeof_dict_t
-# define lzo_sizeof_dict_t sizeof(lzo_bytep)
-#endif
-
-
-/***********************************************************************
-// function types
-************************************************************************/
-
-/* linkage */
-#if !defined(__LZO_EXTERN_C)
-# ifdef __cplusplus
-# define __LZO_EXTERN_C extern "C"
-# else
-# define __LZO_EXTERN_C extern
-# endif
-#endif
-
-/* calling conventions */
-#if !defined(__LZO_CDECL)
-# if defined(__LZO_DOS16) || defined(__LZO_WIN16)
-# define __LZO_CDECL __far __cdecl
-# elif defined(__LZO_i386) && defined(_MSC_VER)
-# define __LZO_CDECL __cdecl
-# elif defined(__LZO_i386) && defined(__WATCOMC__)
-# define __LZO_CDECL __near __cdecl
-# else
-# define __LZO_CDECL
-# endif
-#endif
-#if !defined(__LZO_ENTRY)
-# define __LZO_ENTRY __LZO_CDECL
-#endif
-
-/* DLL export information */
-#if !defined(__LZO_EXPORT1)
-# define __LZO_EXPORT1
-#endif
-#if !defined(__LZO_EXPORT2)
-# define __LZO_EXPORT2
-#endif
-
-/* calling convention for C functions */
-#if !defined(LZO_PUBLIC)
-# define LZO_PUBLIC(_rettype) __LZO_EXPORT1 _rettype __LZO_EXPORT2 __LZO_ENTRY
-#endif
-#if !defined(LZO_EXTERN)
-# define LZO_EXTERN(_rettype) __LZO_EXTERN_C LZO_PUBLIC(_rettype)
-#endif
-#if !defined(LZO_PRIVATE)
-# define LZO_PRIVATE(_rettype) static _rettype __LZO_ENTRY
-#endif
-
-/* cdecl calling convention for assembler functions */
-#if !defined(LZO_PUBLIC_CDECL)
-# define LZO_PUBLIC_CDECL(_rettype) \
- __LZO_EXPORT1 _rettype __LZO_EXPORT2 __LZO_CDECL
-#endif
-#if !defined(LZO_EXTERN_CDECL)
-# define LZO_EXTERN_CDECL(_rettype) __LZO_EXTERN_C LZO_PUBLIC_CDECL(_rettype)
-#endif
-
-
-typedef int
-(__LZO_ENTRY *lzo_compress_t) ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-typedef int
-(__LZO_ENTRY *lzo_decompress_t) ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-typedef int
-(__LZO_ENTRY *lzo_optimize_t) ( lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-typedef int
-(__LZO_ENTRY *lzo_compress_dict_t)(const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem,
- const lzo_byte *dict, lzo_uint dict_len );
-
-typedef int
-(__LZO_ENTRY *lzo_decompress_dict_t)(const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem,
- const lzo_byte *dict, lzo_uint dict_len );
-
-
-/* a progress indicator callback function */
-typedef void (__LZO_ENTRY *lzo_progress_callback_t) (lzo_uint, lzo_uint);
-
-
-/***********************************************************************
-// error codes and prototypes
-************************************************************************/
-
-/* Error codes for the compression/decompression functions. Negative
- * values are errors, positive values will be used for special but
- * normal events.
- */
-#define LZO_E_OK 0
-#define LZO_E_ERROR (-1)
-#define LZO_E_OUT_OF_MEMORY (-2) /* not used right now */
-#define LZO_E_NOT_COMPRESSIBLE (-3) /* not used right now */
-#define LZO_E_INPUT_OVERRUN (-4)
-#define LZO_E_OUTPUT_OVERRUN (-5)
-#define LZO_E_LOOKBEHIND_OVERRUN (-6)
-#define LZO_E_EOF_NOT_FOUND (-7)
-#define LZO_E_INPUT_NOT_CONSUMED (-8)
-
-
-/* lzo_init() should be the first function you call.
- * Check the return code !
- *
- * lzo_init() is a macro to allow checking that the library and the
- * compiler's view of various types are consistent.
- */
-#define lzo_init() __lzo_init2(LZO_VERSION,(int)sizeof(short),(int)sizeof(int),\
- (int)sizeof(long),(int)sizeof(lzo_uint32),(int)sizeof(lzo_uint),\
- (int)lzo_sizeof_dict_t,(int)sizeof(char *),(int)sizeof(lzo_voidp),\
- (int)sizeof(lzo_compress_t))
-LZO_EXTERN(int) __lzo_init2(unsigned,int,int,int,int,int,int,int,int,int);
-
-/* version functions (useful for shared libraries) */
-LZO_EXTERN(unsigned) lzo_version(void);
-LZO_EXTERN(const char *) lzo_version_string(void);
-LZO_EXTERN(const char *) lzo_version_date(void);
-LZO_EXTERN(const lzo_charp) _lzo_version_string(void);
-LZO_EXTERN(const lzo_charp) _lzo_version_date(void);
-
-/* string functions */
-LZO_EXTERN(int)
-lzo_memcmp(const lzo_voidp _s1, const lzo_voidp _s2, lzo_uint _len);
-LZO_EXTERN(lzo_voidp)
-lzo_memcpy(lzo_voidp _dest, const lzo_voidp _src, lzo_uint _len);
-LZO_EXTERN(lzo_voidp)
-lzo_memmove(lzo_voidp _dest, const lzo_voidp _src, lzo_uint _len);
-LZO_EXTERN(lzo_voidp)
-lzo_memset(lzo_voidp _s, int _c, lzo_uint _len);
-
-/* checksum functions */
-LZO_EXTERN(lzo_uint32)
-lzo_adler32(lzo_uint32 _adler, const lzo_byte *_buf, lzo_uint _len);
-LZO_EXTERN(lzo_uint32)
-lzo_crc32(lzo_uint32 _c, const lzo_byte *_buf, lzo_uint _len);
-
-/* memory allocation functions */
-LZO_EXTERN(lzo_bytep) lzo_alloc(lzo_uint _nelems, lzo_uint _size);
-LZO_EXTERN(lzo_bytep) lzo_malloc(lzo_uint _size);
-LZO_EXTERN(void) lzo_free(lzo_voidp _ptr);
-
-extern lzo_bytep (__LZO_ENTRY *lzo_alloc_hook) (lzo_uint,lzo_uint);
-extern void (__LZO_ENTRY *lzo_free_hook) (lzo_voidp);
-
-/* misc. */
-LZO_EXTERN(lzo_bool) lzo_assert(int _expr);
-LZO_EXTERN(int) _lzo_config_check(void);
-typedef union { lzo_bytep p; lzo_uint u; } __lzo_pu_u;
-typedef union { lzo_bytep p; lzo_uint32 u32; } __lzo_pu32_u;
-
-/* align a char pointer on a boundary that is a multiple of `size' */
-LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp _ptr, lzo_uint _size);
-#define LZO_PTR_ALIGN_UP(_ptr,_size) \
- ((_ptr) + (lzo_uint) __lzo_align_gap((const lzo_voidp)(_ptr),(lzo_uint)(_size)))
-
-/* deprecated - only for backward compatibility */
-#define LZO_ALIGN(_ptr,_size) LZO_PTR_ALIGN_UP(_ptr,_size)
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-} // end of namespace MPAL
-
-} // end of namespace Tony
-
-#endif /* already included */
-
diff --git a/engines/tony/lzo/stubs.cpp b/engines/tony/lzo/stubs.cpp
deleted file mode 100644
index 4a27f8cc18..0000000000
--- a/engines/tony/lzo/stubs.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- *
- */
-
-/****************************************************************************\
-* This file contains temporary stubs for LZO functions
-\****************************************************************************/
-
-#include "lzo1x.h"
-
-namespace Tony {
-
-namespace LZO {
-
-int lzo1x_decompress( const lzo_byte *src, lzo_uint src_len, lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem /* NOT USED */ ) {
- return 0;
-}
-
-} // end of namespace LZO
-
-} // end of namespace Tony
diff --git a/engines/tony/module.mk b/engines/tony/module.mk
index 578f58090c..ba32a97e56 100644
--- a/engines/tony/module.mk
+++ b/engines/tony/module.mk
@@ -7,6 +7,7 @@ MODULE_OBJS := \
mpal/expr.o \
mpal/loadmpc.o \
mpal/mpal.o \
+ mpal/lzo.o \
mpal/stubs.o
# This module can be built as a plugin
diff --git a/engines/tony/mpal/lzo.cpp b/engines/tony/mpal/lzo.cpp
new file mode 100644
index 0000000000..5f4b2d40f1
--- /dev/null
+++ b/engines/tony/mpal/lzo.cpp
@@ -0,0 +1,509 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ */
+/* minilzo.c -- mini subset of the LZO real-time data compression library
+
+ This file is part of the LZO real-time data compression library.
+
+ Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
+ All Rights Reserved.
+
+ The LZO library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License, or (at your option) any later version.
+
+ The LZO library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the LZO library; see the file COPYING.
+ If not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ Markus F.X.J. Oberhumer
+ <markus@oberhumer.com>
+ http://www.oberhumer.com/opensource/lzo/
+ */
+
+#include "lzo.h"
+
+namespace Tony {
+
+namespace MPAL {
+
+#define pd(a,b) ((uint32) ((a)-(b)))
+
+#define TEST_IP (ip < ip_end)
+#define TEST_OP 1
+#define NEED_IP(x) ((void) 0)
+#define NEED_OP(x) ((void) 0)
+#define TEST_LB(m_pos) ((void) 0)
+
+#define M2_MAX_OFFSET 0x0800
+
+/**
+ * Decompresses an LZO compressed resource
+ */
+int lzo1x_decompress(const byte *in , uint32 in_len, byte *out, uint32 *out_len) {
+ register byte *op;
+ register const byte *ip;
+ register uint32 t = 0;
+#if defined(COPY_DICT)
+ uint32 m_off;
+ const byte *dict_end;
+#else
+ register const byte *m_pos;
+#endif
+
+ const byte * const ip_end = in + in_len;
+#if defined(HAVE_ANY_OP)
+ byte * const op_end = out + *out_len;
+#endif
+#if defined(LZO1Z)
+ uint32 last_m_off = 0;
+#endif
+
+#if defined(COPY_DICT)
+ if (dict)
+ {
+ if (dict_len > M4_MAX_OFFSET)
+ {
+ dict += dict_len - M4_MAX_OFFSET;
+ dict_len = M4_MAX_OFFSET;
+ }
+ dict_end = dict + dict_len;
+ }
+ else
+ {
+ dict_len = 0;
+ dict_end = NULL;
+ }
+#endif
+
+ *out_len = 0;
+
+ op = out;
+ ip = in;
+
+ if (*ip > 17)
+ {
+ t = *ip++ - 17;
+ if (t < 4)
+ goto match_next;
+ assert(t > 0); NEED_OP(t); NEED_IP(t+1);
+ do *op++ = *ip++; while (--t > 0);
+ goto first_literal_run;
+ }
+
+ while (TEST_IP && TEST_OP)
+ {
+ t = *ip++;
+ if (t >= 16)
+ goto match;
+ if (t == 0)
+ {
+ NEED_IP(1);
+ while (*ip == 0)
+ {
+ t += 255;
+ ip++;
+ NEED_IP(1);
+ }
+ t += 15 + *ip++;
+ }
+ assert(t > 0); NEED_OP(t+3); NEED_IP(t+4);
+#if defined(LZO_UNALIGNED_OK_8) && defined(LZO_UNALIGNED_OK_4)
+ t += 3;
+ if (t >= 8) do
+ {
+ UA_COPY64(op,ip);
+ op += 8; ip += 8; t -= 8;
+ } while (t >= 8);
+ if (t >= 4)
+ {
+ UA_COPY32(op,ip);
+ op += 4; ip += 4; t -= 4;
+ }
+ if (t > 0)
+ {
+ *op++ = *ip++;
+ if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } }
+ }
+#elif defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4)
+#if !defined(LZO_UNALIGNED_OK_4)
+ if (PTR_ALIGNED2_4(op,ip))
+ {
+#endif
+ UA_COPY32(op,ip);
+ op += 4; ip += 4;
+ if (--t > 0)
+ {
+ if (t >= 4)
+ {
+ do {
+ UA_COPY32(op,ip);
+ op += 4; ip += 4; t -= 4;
+ } while (t >= 4);
+ if (t > 0) do *op++ = *ip++; while (--t > 0);
+ }
+ else
+ do *op++ = *ip++; while (--t > 0);
+ }
+#if !defined(LZO_UNALIGNED_OK_4)
+ }
+ else
+#endif
+#endif
+#if !defined(LZO_UNALIGNED_OK_4) && !defined(LZO_UNALIGNED_OK_8)
+ {
+ *op++ = *ip++; *op++ = *ip++; *op++ = *ip++;
+ do *op++ = *ip++; while (--t > 0);
+ }
+#endif
+
+first_literal_run:
+
+ t = *ip++;
+ if (t >= 16)
+ goto match;
+#if defined(COPY_DICT)
+#if defined(LZO1Z)
+ m_off = (1 + M2_MAX_OFFSET) + (t << 6) + (*ip++ >> 2);
+ last_m_off = m_off;
+#else
+ m_off = (1 + M2_MAX_OFFSET) + (t >> 2) + (*ip++ << 2);
+#endif
+ NEED_OP(3);
+ t = 3; COPY_DICT(t,m_off)
+#else
+#if defined(LZO1Z)
+ t = (1 + M2_MAX_OFFSET) + (t << 6) + (*ip++ >> 2);
+ m_pos = op - t;
+ last_m_off = t;
+#else
+ m_pos = op - (1 + M2_MAX_OFFSET);
+ m_pos -= t >> 2;
+ m_pos -= *ip++ << 2;
+#endif
+ TEST_LB(m_pos); NEED_OP(3);
+ *op++ = *m_pos++; *op++ = *m_pos++; *op++ = *m_pos;
+#endif
+ goto match_done;
+
+ do {
+match:
+ if (t >= 64)
+ {
+#if defined(COPY_DICT)
+#if defined(LZO1X)
+ m_off = 1 + ((t >> 2) & 7) + (*ip++ << 3);
+ t = (t >> 5) - 1;
+#elif defined(LZO1Y)
+ m_off = 1 + ((t >> 2) & 3) + (*ip++ << 2);
+ t = (t >> 4) - 3;
+#elif defined(LZO1Z)
+ m_off = t & 0x1f;
+ if (m_off >= 0x1c)
+ m_off = last_m_off;
+ else
+ {
+ m_off = 1 + (m_off << 6) + (*ip++ >> 2);
+ last_m_off = m_off;
+ }
+ t = (t >> 5) - 1;
+#endif
+#else
+#if defined(LZO1X)
+ m_pos = op - 1;
+ m_pos -= (t >> 2) & 7;
+ m_pos -= *ip++ << 3;
+ t = (t >> 5) - 1;
+#elif defined(LZO1Y)
+ m_pos = op - 1;
+ m_pos -= (t >> 2) & 3;
+ m_pos -= *ip++ << 2;
+ t = (t >> 4) - 3;
+#elif defined(LZO1Z)
+ {
+ uint32 off = t & 0x1f;
+ m_pos = op;
+ if (off >= 0x1c)
+ {
+ assert(last_m_off > 0);
+ m_pos -= last_m_off;
+ }
+ else
+ {
+ off = 1 + (off << 6) + (*ip++ >> 2);
+ m_pos -= off;
+ last_m_off = off;
+ }
+ }
+ t = (t >> 5) - 1;
+#endif
+ TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1);
+ goto copy_match;
+#endif
+ }
+ else if (t >= 32)
+ {
+ t &= 31;
+ if (t == 0)
+ {
+ NEED_IP(1);
+ while (*ip == 0)
+ {
+ t += 255;
+ ip++;
+ NEED_IP(1);
+ }
+ t += 31 + *ip++;
+ }
+#if defined(COPY_DICT)
+#if defined(LZO1Z)
+ m_off = 1 + (ip[0] << 6) + (ip[1] >> 2);
+ last_m_off = m_off;
+#else
+ m_off = 1 + (ip[0] >> 2) + (ip[1] << 6);
+#endif
+#else
+#if defined(LZO1Z)
+ {
+ uint32 off = 1 + (ip[0] << 6) + (ip[1] >> 2);
+ m_pos = op - off;
+ last_m_off = off;
+ }
+#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN)
+ m_pos = op - 1;
+ m_pos -= UA_GET16(ip) >> 2;
+#else
+ m_pos = op - 1;
+ m_pos -= (ip[0] >> 2) + (ip[1] << 6);
+#endif
+#endif
+ ip += 2;
+ }
+ else if (t >= 16)
+ {
+#if defined(COPY_DICT)
+ m_off = (t & 8) << 11;
+#else
+ m_pos = op;
+ m_pos -= (t & 8) << 11;
+#endif
+ t &= 7;
+ if (t == 0)
+ {
+ NEED_IP(1);
+ while (*ip == 0)
+ {
+ t += 255;
+ ip++;
+ NEED_IP(1);
+ }
+ t += 7 + *ip++;
+ }
+#if defined(COPY_DICT)
+#if defined(LZO1Z)
+ m_off += (ip[0] << 6) + (ip[1] >> 2);
+#else
+ m_off += (ip[0] >> 2) + (ip[1] << 6);
+#endif
+ ip += 2;
+ if (m_off == 0)
+ goto eof_found;
+ m_off += 0x4000;
+#if defined(LZO1Z)
+ last_m_off = m_off;
+#endif
+#else
+#if defined(LZO1Z)
+ m_pos -= (ip[0] << 6) + (ip[1] >> 2);
+#elif defined(LZO_UNALIGNED_OK_2) && defined(LZO_ABI_LITTLE_ENDIAN)
+ m_pos -= UA_GET16(ip) >> 2;
+#else
+ m_pos -= (ip[0] >> 2) + (ip[1] << 6);
+#endif
+ ip += 2;
+ if (m_pos == op)
+ goto eof_found;
+ m_pos -= 0x4000;
+#if defined(LZO1Z)
+ last_m_off = pd((const byte *)op, m_pos);
+#endif
+#endif
+ }
+ else
+ {
+#if defined(COPY_DICT)
+#if defined(LZO1Z)
+ m_off = 1 + (t << 6) + (*ip++ >> 2);
+ last_m_off = m_off;
+#else
+ m_off = 1 + (t >> 2) + (*ip++ << 2);
+#endif
+ NEED_OP(2);
+ t = 2; COPY_DICT(t,m_off)
+#else
+#if defined(LZO1Z)
+ t = 1 + (t << 6) + (*ip++ >> 2);
+ m_pos = op - t;
+ last_m_off = t;
+#else
+ m_pos = op - 1;
+ m_pos -= t >> 2;
+ m_pos -= *ip++ << 2;
+#endif
+ TEST_LB(m_pos); NEED_OP(2);
+ *op++ = *m_pos++; *op++ = *m_pos;
+#endif
+ goto match_done;
+ }
+
+#if defined(COPY_DICT)
+
+ NEED_OP(t+3-1);
+ t += 3-1; COPY_DICT(t,m_off)
+
+#else
+
+ TEST_LB(m_pos); assert(t > 0); NEED_OP(t+3-1);
+#if defined(LZO_UNALIGNED_OK_8) && defined(LZO_UNALIGNED_OK_4)
+ if (op - m_pos >= 8)
+ {
+ t += (3 - 1);
+ if (t >= 8) do
+ {
+ UA_COPY64(op,m_pos);
+ op += 8; m_pos += 8; t -= 8;
+ } while (t >= 8);
+ if (t >= 4)
+ {
+ UA_COPY32(op,m_pos);
+ op += 4; m_pos += 4; t -= 4;
+ }
+ if (t > 0)
+ {
+ *op++ = m_pos[0];
+ if (t > 1) { *op++ = m_pos[1]; if (t > 2) { *op++ = m_pos[2]; } }
+ }
+ }
+ else
+#elif defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4)
+#if !defined(LZO_UNALIGNED_OK_4)
+ if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos))
+ {
+ assert((op - m_pos) >= 4);
+#else
+ if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4)
+ {
+#endif
+ UA_COPY32(op,m_pos);
+ op += 4; m_pos += 4; t -= 4 - (3 - 1);
+ do {
+ UA_COPY32(op,m_pos);
+ op += 4; m_pos += 4; t -= 4;
+ } while (t >= 4);
+ if (t > 0) do *op++ = *m_pos++; while (--t > 0);
+ }
+ else
+#endif
+ {
+copy_match:
+ *op++ = *m_pos++; *op++ = *m_pos++;
+ do *op++ = *m_pos++; while (--t > 0);
+ }
+
+#endif
+
+match_done:
+#if defined(LZO1Z)
+ t = ip[-1] & 3;
+#else
+ t = ip[-2] & 3;
+#endif
+ if (t == 0)
+ break;
+
+match_next:
+ assert(t > 0); assert(t < 4); NEED_OP(t); NEED_IP(t+1);
+#if 0
+ do *op++ = *ip++; while (--t > 0);
+#else
+ *op++ = *ip++;
+ if (t > 1) { *op++ = *ip++; if (t > 2) { *op++ = *ip++; } }
+#endif
+ t = *ip++;
+ } while (TEST_IP && TEST_OP);
+ }
+
+#if defined(HAVE_TEST_IP) || defined(HAVE_TEST_OP)
+ *out_len = pd(op, out);
+ return LZO_E_EOF_NOT_FOUND;
+#endif
+
+eof_found:
+ assert(t == 1);
+ *out_len = pd(op, out);
+ return (ip == ip_end ? LZO_E_OK :
+ (ip < ip_end ? LZO_E_INPUT_NOT_CONSUMED : LZO_E_INPUT_OVERRUN));
+
+#if defined(HAVE_NEED_IP)
+input_overrun:
+ *out_len = pd(op, out);
+ return LZO_E_INPUT_OVERRUN;
+#endif
+
+#if defined(HAVE_NEED_OP)
+output_overrun:
+ *out_len = pd(op, out);
+ return LZO_E_OUTPUT_OVERRUN;
+#endif
+
+#if defined(LZO_TEST_OVERRUN_LOOKBEHIND)
+lookbehind_overrun:
+ *out_len = pd(op, out);
+ return LZO_E_LOOKBEHIND_OVERRUN;
+#endif
+}
+
+} // end of namespace MPAL
+
+} // end of namespace Tony
diff --git a/engines/tony/mpal/lzo.h b/engines/tony/mpal/lzo.h
new file mode 100644
index 0000000000..1d20c8e96e
--- /dev/null
+++ b/engines/tony/mpal/lzo.h
@@ -0,0 +1,100 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ */
+/* minilzo.c -- mini subset of the LZO real-time data compression library
+
+ This file is part of the LZO real-time data compression library.
+
+ Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
+ All Rights Reserved.
+
+ The LZO library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License, or (at your option) any later version.
+
+ The LZO library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with the LZO library; see the file COPYING.
+ If not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ Markus F.X.J. Oberhumer
+ <markus@oberhumer.com>
+ http://www.oberhumer.com/opensource/lzo/
+ */
+
+#ifndef TONY_MPAL_LZO_H
+#define TONY_MPAL_LZO_H
+
+#include "common/scummsys.h"
+
+namespace Tony {
+
+namespace MPAL {
+
+/* Error codes for the compression/decompression functions. Negative
+ * values are errors, positive values will be used for special but
+ * normal events.
+ */
+#define LZO_E_OK 0
+#define LZO_E_ERROR (-1)
+#define LZO_E_OUT_OF_MEMORY (-2) /* [lzo_alloc_func_t failure] */
+#define LZO_E_NOT_COMPRESSIBLE (-3) /* [not used right now] */
+#define LZO_E_INPUT_OVERRUN (-4)
+#define LZO_E_OUTPUT_OVERRUN (-5)
+#define LZO_E_LOOKBEHIND_OVERRUN (-6)
+#define LZO_E_EOF_NOT_FOUND (-7)
+#define LZO_E_INPUT_NOT_CONSUMED (-8)
+#define LZO_E_NOT_YET_IMPLEMENTED (-9) /* [not used right now] */
+#define LZO_E_INVALID_ARGUMENT (-10)
+
+
+/**
+ * Decompresses an LZO compressed resource
+ */
+int lzo1x_decompress(const byte *src, uint32 src_len, byte *dst, uint32 *dst_len);
+
+} // end of namespace MPAL
+
+} // end of namespace Tony
+
+#endif /* already included */
diff --git a/engines/tony/mpal/lzo1x.h b/engines/tony/mpal/lzo1x.h
deleted file mode 100644
index 83b547428c..0000000000
--- a/engines/tony/mpal/lzo1x.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- *
- */
-/* lzo1x.h -- public interface of the LZO1X compression algorithm
-
- This file is part of the LZO real-time data compression library.
-
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
-
- The LZO library is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
-
- The LZO library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with the LZO library; see the file COPYING.
- If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Markus F.X.J. Oberhumer
- <markus.oberhumer@jk.uni-linz.ac.at>
- http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html
- */
-
-
-#ifndef __LZO1X_H
-#define __LZO1X_H
-
-#ifndef __LZOCONF_H
-#include "lzoconf.h"
-#endif
-
-namespace Tony {
-
-namespace MPAL {
-
-/***********************************************************************
-//
-************************************************************************/
-
-/* Memory required for the wrkmem parameter.
- * When the required size is 0, you can also pass a NULL pointer.
- */
-
-#define LZO1X_MEM_COMPRESS LZO1X_1_MEM_COMPRESS
-#define LZO1X_MEM_DECOMPRESS (0)
-#define LZO1X_MEM_OPTIMIZE (0)
-
-
-/* decompression */
-LZO_EXTERN(int)
-lzo1x_decompress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-
-/* safe decompression with overrun testing */
-LZO_EXTERN(int)
-lzo1x_decompress_safe ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-
-
-/***********************************************************************
-//
-************************************************************************/
-
-#define LZO1X_1_MEM_COMPRESS ((lzo_uint32) (16384L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/***********************************************************************
-// special compressor versions
-************************************************************************/
-
-/* this version needs only 8 kB work memory */
-#define LZO1X_1_11_MEM_COMPRESS ((lzo_uint32) (2048L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_11_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/* this version needs 16 kB work memory */
-#define LZO1X_1_12_MEM_COMPRESS ((lzo_uint32) (4096L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_12_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/* use this version if you need a little more compression speed */
-#define LZO1X_1_15_MEM_COMPRESS ((lzo_uint32) (32768L * lzo_sizeof_dict_t))
-
-LZO_EXTERN(int)
-lzo1x_1_15_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-
-
-/***********************************************************************
-// better compression ratio at the cost of more memory and time
-************************************************************************/
-
-#define LZO1X_999_MEM_COMPRESS ((lzo_uint32) (14 * 16384L * sizeof(short)))
-
-#if !defined(LZO_999_UNSUPPORTED)
-LZO_EXTERN(int)
-lzo1x_999_compress ( const lzo_byte *src, lzo_uint src_len,
- lzo_byte *dst, lzo_uint *dst_len,
- lzo_voidp wrkmem );
-#endif
-
-
-/***********************************************************************
-//
-************************************************************************/
-
-#if !defined(LZO_999_UNSUPPORTED)
-LZO_EXTERN(int)
-lzo1x_999_compress_dict ( const lzo_byte *in , lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem,
- const lzo_byte *dict, lzo_uint dict_len );
-
-LZO_EXTERN(int)
-lzo1x_999_compress_level ( const lzo_byte *in , lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem,
- const lzo_byte *dict, lzo_uint dict_len,
- lzo_progress_callback_t cb,
- int compression_level );
-#endif
-
-LZO_EXTERN(int)
-lzo1x_decompress_dict_safe ( const lzo_byte *in, lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem /* NOT USED */,
- const lzo_byte *dict, lzo_uint dict_len );
-
-
-/***********************************************************************
-// optimize a compressed data block
-************************************************************************/
-
-LZO_EXTERN(int)
-lzo1x_optimize ( lzo_byte *in , lzo_uint in_len,
- lzo_byte *out, lzo_uint *out_len,
- lzo_voidp wrkmem );
-
-
-} // end of namespace MPAL
-
-} // end of namespace Tony
-
-#endif /* already included */
diff --git a/engines/tony/mpal/mpal.cpp b/engines/tony/mpal/mpal.cpp
index f068f0fabf..e07669849e 100644
--- a/engines/tony/mpal/mpal.cpp
+++ b/engines/tony/mpal/mpal.cpp
@@ -51,18 +51,16 @@
#include "common/file.h"
#include "common/savefile.h"
#include "common/system.h"
+#include "tony/tony.h"
+#include "lzo.h"
#include "mpal.h"
#include "mpaldll.h"
#include "stubs.h"
-#include "tony/tony.h"
-#include "tony/lzo/lzo1x.h"
namespace Tony {
namespace MPAL {
-using namespace Tony::LZO;
-
/****************************************************************************\
* Copyright
\****************************************************************************/
@@ -653,7 +651,7 @@ HGLOBAL resLoad(uint32 dwId) {
if (nBytesRead != nSizeComp)
return NULL;
- lzo1x_decompress(temp, nSizeComp, buf, (lzo_uint*)&nBytesRead, NULL);
+ lzo1x_decompress(temp, nSizeComp, buf, &nBytesRead);
if (nBytesRead != nSizeDecomp)
return NULL;
@@ -1709,7 +1707,7 @@ bool mpalInit(char * lpszMpcFileName, char * lpszMprFileName, LPLPCUSTOMFUNCTION
/* Se il file e' compresso, guarda quanto e' grande e alloca la
memoria temporanea per la decompressione */
dwSizeComp = hMpc.readUint32LE();
- if (nBytesRead != 4)
+ if (hMpc.err())
return false;
cmpbuf = (byte *)GlobalAlloc(GMEM_FIXED,dwSizeComp);
@@ -1721,7 +1719,7 @@ bool mpalInit(char * lpszMpcFileName, char * lpszMprFileName, LPLPCUSTOMFUNCTION
return false;
/* Decomprime l'immagine */
- lzo1x_decompress(cmpbuf,dwSizeComp,lpMpcImage,(lzo_uint*)&nBytesRead,NULL);
+ lzo1x_decompress(cmpbuf, dwSizeComp, lpMpcImage, &nBytesRead);
if (nBytesRead != dwSizeDecomp)
return false;
@@ -1795,7 +1793,7 @@ bool mpalInit(char * lpszMpcFileName, char * lpszMprFileName, LPLPCUSTOMFUNCTION
if (nBytesRead != dwSizeComp)
return false;
- lzo1x_decompress((byte *)cmpbuf,dwSizeComp,(byte *)lpResources, (uint32 *)&nBytesRead, NULL);
+ lzo1x_decompress((const byte *)cmpbuf, dwSizeComp, (byte *)lpResources, (uint32 *)&nBytesRead);
if (nBytesRead != (uint32)nResources*8)
return false;
diff --git a/engines/tony/tony.cpp b/engines/tony/tony.cpp
index 2d4385a5e6..04e1a881ec 100644
--- a/engines/tony/tony.cpp
+++ b/engines/tony/tony.cpp
@@ -58,7 +58,7 @@ Common::Error TonyEngine::run() {
*/
Common::ErrorCode TonyEngine::Init() {
// Initialise the function list
- Common::fill(FuncList, FuncList + sizeof(FuncList), (LPCUSTOMFUNCTION)NULL);
+ Common::fill(FuncList, FuncList + 300, (LPCUSTOMFUNCTION)NULL);
// Initializes MPAL system, passing the custom functions list
Common::File f;