mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-02-07 15:31:02 +00:00
Merge remote-tracking branch 'zdoom/master' into openal
This commit is contained in:
commit
48df515dd1
22 changed files with 114 additions and 84 deletions
|
@ -78,10 +78,23 @@ else( MSVC )
|
||||||
set( ZDOOM_OUTPUT_OLDSTYLE OFF )
|
set( ZDOOM_OUTPUT_OLDSTYLE OFF )
|
||||||
endif( MSVC )
|
endif( MSVC )
|
||||||
|
|
||||||
|
# Replacement variables for a possible long list of C/C++ compilers compatible with GCC
|
||||||
|
if( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
|
set( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE TRUE )
|
||||||
|
else( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
|
set( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE FALSE )
|
||||||
|
endif( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
set( PROFILE 0 CACHE BOOL "Enable profiling with gprof for Debug and RelWithDebInfo build types." )
|
set( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE TRUE )
|
||||||
|
else( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
|
set( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE FALSE )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
|
|
||||||
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
set( PROFILE 0 CACHE BOOL "Enable profiling with gprof for Debug and RelWithDebInfo build types." )
|
||||||
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
|
||||||
|
|
||||||
option( NO_FMOD "Disable FMODEx sound support" OFF )
|
option( NO_FMOD "Disable FMODEx sound support" OFF )
|
||||||
|
|
|
@ -2,9 +2,9 @@ cmake_minimum_required( VERSION 2.4 )
|
||||||
|
|
||||||
make_release_only()
|
make_release_only()
|
||||||
|
|
||||||
if( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -fomit-frame-pointer" )
|
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -fomit-frame-pointer" )
|
||||||
endif( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
|
|
||||||
add_definitions( -DBZ_NO_STDIO )
|
add_definitions( -DBZ_NO_STDIO )
|
||||||
add_library( bz2
|
add_library( bz2
|
||||||
|
|
|
@ -13,9 +13,9 @@ endif( NOT CMAKE_BUILD_TYPE MATCHES "Release" )
|
||||||
|
|
||||||
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG -DDEBUGMODE=1" )
|
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG -DDEBUGMODE=1" )
|
||||||
|
|
||||||
if( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-pointer-sign -Wno-uninitialized" )
|
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-pointer-sign -Wno-uninitialized" )
|
||||||
endif( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
|
|
||||||
CHECK_FUNCTION_EXISTS( itoa ITOA_EXISTS )
|
CHECK_FUNCTION_EXISTS( itoa ITOA_EXISTS )
|
||||||
if( NOT ITOA_EXISTS )
|
if( NOT ITOA_EXISTS )
|
||||||
|
@ -103,6 +103,6 @@ add_library( dumb
|
||||||
src/it/xmeffect.c )
|
src/it/xmeffect.c )
|
||||||
target_link_libraries( dumb )
|
target_link_libraries( dumb )
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
set_source_files_properties( src/it/filter.cpp PROPERTIES COMPILE_FLAGS -msse )
|
set_source_files_properties( src/it/filter.cpp PROPERTIES COMPILE_FLAGS -msse )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
|
@ -18,7 +18,7 @@ if( NOT CMAKE_BUILD_TYPE MATCHES "Release" )
|
||||||
set( CMAKE_BUILD_TYPE "RelWithDebInfo" )
|
set( CMAKE_BUILD_TYPE "RelWithDebInfo" )
|
||||||
endif( NOT CMAKE_BUILD_TYPE MATCHES "Release" )
|
endif( NOT CMAKE_BUILD_TYPE MATCHES "Release" )
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra" )
|
||||||
if( NOT PROFILE )
|
if( NOT PROFILE )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer" )
|
||||||
|
@ -27,7 +27,7 @@ if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STRE
|
||||||
if( HAVE_NO_ARRAY_BOUNDS )
|
if( HAVE_NO_ARRAY_BOUNDS )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-array-bounds" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-array-bounds" )
|
||||||
endif( HAVE_NO_ARRAY_BOUNDS )
|
endif( HAVE_NO_ARRAY_BOUNDS )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@ if( MSVC )
|
||||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4554 /wd4102" )
|
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4554 /wd4102" )
|
||||||
endif( MSVC )
|
endif( MSVC )
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra" )
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra" )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
||||||
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
|
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
|
||||||
add_definitions( -DINFNAN_CHECK -DMULTIPLE_THREADS )
|
add_definitions( -DINFNAN_CHECK -DMULTIPLE_THREADS )
|
||||||
|
|
|
@ -2,9 +2,9 @@ cmake_minimum_required( VERSION 2.4 )
|
||||||
|
|
||||||
make_release_only()
|
make_release_only()
|
||||||
|
|
||||||
if( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter -fomit-frame-pointer" )
|
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter -fomit-frame-pointer" )
|
||||||
endif( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
|
|
||||||
add_library( jpeg
|
add_library( jpeg
|
||||||
jcomapi.c
|
jcomapi.c
|
||||||
|
|
|
@ -2,9 +2,9 @@ cmake_minimum_required( VERSION 2.4 )
|
||||||
|
|
||||||
make_release_only()
|
make_release_only()
|
||||||
|
|
||||||
if( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -fomit-frame-pointer" )
|
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -fomit-frame-pointer" )
|
||||||
endif( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE )
|
||||||
|
|
||||||
set( LZMA_FILES
|
set( LZMA_FILES
|
||||||
C/7zBuf.c
|
C/7zBuf.c
|
||||||
|
|
|
@ -15,14 +15,14 @@ else( NOT APPLE )
|
||||||
# At the moment asm code doesn't work with OS X, so disable by default
|
# At the moment asm code doesn't work with OS X, so disable by default
|
||||||
option( NO_ASM "Disable assembly code" ON )
|
option( NO_ASM "Disable assembly code" ON )
|
||||||
endif( NOT APPLE )
|
endif( NOT APPLE )
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
option( NO_STRIP "Do not strip Release or MinSizeRel builds" )
|
option( NO_STRIP "Do not strip Release or MinSizeRel builds" )
|
||||||
# At least some versions of Xcode fail if you strip with the linker
|
# At least some versions of Xcode fail if you strip with the linker
|
||||||
# instead of the separate strip utility.
|
# instead of the separate strip utility.
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
set( NO_STRIP ON )
|
set( NO_STRIP ON )
|
||||||
endif( APPLE )
|
endif( APPLE )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
||||||
option( DYN_FLUIDSYNTH "Dynamically load fluidsynth" ON )
|
option( DYN_FLUIDSYNTH "Dynamically load fluidsynth" ON )
|
||||||
|
|
||||||
|
@ -446,7 +446,7 @@ endif( SSE_MATTERS )
|
||||||
|
|
||||||
# Set up flags for GCC
|
# Set up flags for GCC
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
if( PROFILE )
|
if( PROFILE )
|
||||||
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -pg" )
|
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -pg" )
|
||||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg" )
|
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg" )
|
||||||
|
@ -475,7 +475,7 @@ if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STRE
|
||||||
set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" )
|
set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s" )
|
||||||
set (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s" )
|
set (CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s" )
|
||||||
endif( NOT NO_STRIP )
|
endif( NOT NO_STRIP )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
||||||
# Check for functions that may or may not exist.
|
# Check for functions that may or may not exist.
|
||||||
|
|
||||||
|
@ -611,15 +611,15 @@ if( WIN32 )
|
||||||
set( SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} )
|
set( SYSTEM_SOURCES ${PLAT_WIN32_SOURCES} )
|
||||||
set( OTHER_SYSTEM_SOURCES ${PLAT_SDL_SOURCES} ${PLAT_MAC_SOURCES} )
|
set( OTHER_SYSTEM_SOURCES ${PLAT_SDL_SOURCES} ${PLAT_MAC_SOURCES} )
|
||||||
|
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
# CMake is not set up to compile and link rc files with GCC. :(
|
# CMake is not set up to compile and link rc files with GCC. :(
|
||||||
add_custom_command( OUTPUT zdoom-rc.o
|
add_custom_command( OUTPUT zdoom-rc.o
|
||||||
COMMAND windres -o zdoom-rc.o -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zdoom.rc
|
COMMAND windres -o zdoom-rc.o -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zdoom.rc
|
||||||
DEPENDS win32/zdoom.rc )
|
DEPENDS win32/zdoom.rc )
|
||||||
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} zdoom-rc.o )
|
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} zdoom-rc.o )
|
||||||
else( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
else( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} win32/zdoom.rc )
|
set( SYSTEM_SOURCES ${SYSTEM_SOURCES} win32/zdoom.rc )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
else( WIN32 )
|
else( WIN32 )
|
||||||
set( SYSTEM_SOURCES_DIR sdl )
|
set( SYSTEM_SOURCES_DIR sdl )
|
||||||
set( SYSTEM_SOURCES ${PLAT_SDL_SOURCES} )
|
set( SYSTEM_SOURCES ${PLAT_SDL_SOURCES} )
|
||||||
|
@ -1197,16 +1197,16 @@ if( NOT WIN32 )
|
||||||
COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/link-make
|
COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/link-make
|
||||||
COMMAND /bin/sh -c ${CMAKE_CURRENT_BINARY_DIR}/link-make )
|
COMMAND /bin/sh -c ${CMAKE_CURRENT_BINARY_DIR}/link-make )
|
||||||
endif( NOT WIN32 )
|
endif( NOT WIN32 )
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
|
if( CMAKE_COMPILER_IS_GNUCXX )
|
||||||
# GCC misoptimizes this file
|
# GCC misoptimizes this file
|
||||||
set_source_files_properties( oplsynth/fmopl.cpp PROPERTIES COMPILE_FLAGS "-fno-tree-dominator-opts -fno-tree-fre" )
|
set_source_files_properties( oplsynth/fmopl.cpp PROPERTIES COMPILE_FLAGS "-fno-tree-dominator-opts -fno-tree-fre" )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
|
endif( CMAKE_COMPILER_IS_GNUCXX )
|
||||||
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
# Need to enable intrinsics for this file.
|
# Need to enable intrinsics for this file.
|
||||||
if( SSE_MATTERS )
|
if( SSE_MATTERS )
|
||||||
set_source_files_properties( x86.cpp PROPERTIES COMPILE_FLAGS "-msse2 -mmmx" )
|
set_source_files_properties( x86.cpp PROPERTIES COMPILE_FLAGS "-msse2 -mmmx" )
|
||||||
endif( SSE_MATTERS )
|
endif( SSE_MATTERS )
|
||||||
endif( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
|
|
||||||
source_group("Assembly Files\\ia32" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/asm_ia32/.+")
|
source_group("Assembly Files\\ia32" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/asm_ia32/.+")
|
||||||
source_group("Assembly Files\\x86_64" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/asm_x86_64/.+")
|
source_group("Assembly Files\\x86_64" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/asm_x86_64/.+")
|
||||||
|
|
|
@ -33,11 +33,17 @@
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define USE_WINDOWS_DWORD
|
||||||
|
#endif
|
||||||
|
#include "LzmaDec.h"
|
||||||
|
|
||||||
#include "files.h"
|
#include "files.h"
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
#include "templates.h"
|
#include "templates.h"
|
||||||
#include "m_misc.h"
|
#include "m_misc.h"
|
||||||
|
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// FileReader
|
// FileReader
|
||||||
|
@ -370,6 +376,15 @@ extern "C" void bz_internal_error (int errcode)
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
|
// This is retarded but necessary to work around the inclusion of windows.h in recent
|
||||||
|
// LZMA versions, meaning it's no longer possible to include the LZMA headers in files.h.
|
||||||
|
// As a result we cannot declare the CLzmaDec member in the header so we work around
|
||||||
|
// it my wrapping it into another struct that can be declared anonymously in the header.
|
||||||
|
struct FileReaderLZMA::StreamPointer
|
||||||
|
{
|
||||||
|
CLzmaDec Stream;
|
||||||
|
};
|
||||||
|
|
||||||
static void *SzAlloc(void *, size_t size) { return malloc(size); }
|
static void *SzAlloc(void *, size_t size) { return malloc(size); }
|
||||||
static void SzFree(void *, void *address) { free(address); }
|
static void SzFree(void *, void *address) { free(address); }
|
||||||
ISzAlloc g_Alloc = { SzAlloc, SzFree };
|
ISzAlloc g_Alloc = { SzAlloc, SzFree };
|
||||||
|
@ -398,20 +413,22 @@ FileReaderLZMA::FileReaderLZMA (FileReader &file, size_t uncompressed_size, bool
|
||||||
|
|
||||||
FillBuffer();
|
FillBuffer();
|
||||||
|
|
||||||
LzmaDec_Construct(&Stream);
|
Streamp = new StreamPointer;
|
||||||
err = LzmaDec_Allocate(&Stream, header + 4, LZMA_PROPS_SIZE, &g_Alloc);
|
LzmaDec_Construct(&Streamp->Stream);
|
||||||
|
err = LzmaDec_Allocate(&Streamp->Stream, header + 4, LZMA_PROPS_SIZE, &g_Alloc);
|
||||||
|
|
||||||
if (err != SZ_OK)
|
if (err != SZ_OK)
|
||||||
{
|
{
|
||||||
I_Error("FileReaderLZMA: LzmaDec_Allocate failed: %d\n", err);
|
I_Error("FileReaderLZMA: LzmaDec_Allocate failed: %d\n", err);
|
||||||
}
|
}
|
||||||
|
|
||||||
LzmaDec_Init(&Stream);
|
LzmaDec_Init(&Streamp->Stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
FileReaderLZMA::~FileReaderLZMA ()
|
FileReaderLZMA::~FileReaderLZMA ()
|
||||||
{
|
{
|
||||||
LzmaDec_Free(&Stream, &g_Alloc);
|
LzmaDec_Free(&Streamp->Stream, &g_Alloc);
|
||||||
|
delete Streamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
long FileReaderLZMA::Read (void *buffer, long len)
|
long FileReaderLZMA::Read (void *buffer, long len)
|
||||||
|
@ -426,7 +443,7 @@ long FileReaderLZMA::Read (void *buffer, long len)
|
||||||
size_t out_processed = len;
|
size_t out_processed = len;
|
||||||
size_t in_processed = InSize;
|
size_t in_processed = InSize;
|
||||||
|
|
||||||
err = LzmaDec_DecodeToBuf(&Stream, next_out, &out_processed, InBuff + InPos, &in_processed, finish_mode, &status);
|
err = LzmaDec_DecodeToBuf(&Streamp->Stream, next_out, &out_processed, InBuff + InPos, &in_processed, finish_mode, &status);
|
||||||
InPos += in_processed;
|
InPos += in_processed;
|
||||||
InSize -= in_processed;
|
InSize -= in_processed;
|
||||||
next_out += out_processed;
|
next_out += out_processed;
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
#include "bzlib.h"
|
#include "bzlib.h"
|
||||||
#include "LzmaDec.h"
|
|
||||||
#include "doomtype.h"
|
#include "doomtype.h"
|
||||||
#include "m_swap.h"
|
#include "m_swap.h"
|
||||||
|
|
||||||
|
@ -257,6 +256,8 @@ private:
|
||||||
// Wraps around a FileReader to decompress a lzma stream
|
// Wraps around a FileReader to decompress a lzma stream
|
||||||
class FileReaderLZMA : public FileReaderBase
|
class FileReaderLZMA : public FileReaderBase
|
||||||
{
|
{
|
||||||
|
struct StreamPointer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FileReaderLZMA (FileReader &file, size_t uncompressed_size, bool zip);
|
FileReaderLZMA (FileReader &file, size_t uncompressed_size, bool zip);
|
||||||
~FileReaderLZMA ();
|
~FileReaderLZMA ();
|
||||||
|
@ -308,7 +309,7 @@ private:
|
||||||
|
|
||||||
FileReader &File;
|
FileReader &File;
|
||||||
bool SawEOF;
|
bool SawEOF;
|
||||||
CLzmaDec Stream;
|
StreamPointer *Streamp; // anonymous pointer to LKZA decoder struct - to avoid including the LZMA headers globally
|
||||||
size_t Size;
|
size_t Size;
|
||||||
size_t InPos, InSize;
|
size_t InPos, InSize;
|
||||||
size_t OutProcessed;
|
size_t OutProcessed;
|
||||||
|
|
|
@ -187,7 +187,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_VolcanoBlast)
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(AActor, A_VolcBallImpact)
|
DEFINE_ACTION_FUNCTION(AActor, A_VolcBallImpact)
|
||||||
{
|
{
|
||||||
int i;
|
unsigned int i;
|
||||||
AActor *tiny;
|
AActor *tiny;
|
||||||
angle_t angle;
|
angle_t angle;
|
||||||
|
|
||||||
|
|
|
@ -797,7 +797,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_FireBlasterPL1)
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(AActor, A_SpawnRippers)
|
DEFINE_ACTION_FUNCTION(AActor, A_SpawnRippers)
|
||||||
{
|
{
|
||||||
int i;
|
unsigned int i;
|
||||||
angle_t angle;
|
angle_t angle;
|
||||||
AActor *ripper;
|
AActor *ripper;
|
||||||
|
|
||||||
|
|
|
@ -171,7 +171,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_WhirlwindSeek)
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(AActor, A_LichIceImpact)
|
DEFINE_ACTION_FUNCTION(AActor, A_LichIceImpact)
|
||||||
{
|
{
|
||||||
int i;
|
unsigned int i;
|
||||||
angle_t angle;
|
angle_t angle;
|
||||||
AActor *shard;
|
AActor *shard;
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_IceGuyDie)
|
||||||
DEFINE_ACTION_FUNCTION(AActor, A_IceGuyMissileExplode)
|
DEFINE_ACTION_FUNCTION(AActor, A_IceGuyMissileExplode)
|
||||||
{
|
{
|
||||||
AActor *mo;
|
AActor *mo;
|
||||||
int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
|
|
20
src/m_swap.h
20
src/m_swap.h
|
@ -29,51 +29,51 @@
|
||||||
// WAD files are stored little endian.
|
// WAD files are stored little endian.
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <libkern/OSByteOrder.h>
|
||||||
|
|
||||||
inline short LittleShort(short x)
|
inline short LittleShort(short x)
|
||||||
{
|
{
|
||||||
return (short)CFSwapInt16LittleToHost((uint16_t)x);
|
return (short)OSSwapLittleToHostInt16((uint16_t)x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline unsigned short LittleShort(unsigned short x)
|
inline unsigned short LittleShort(unsigned short x)
|
||||||
{
|
{
|
||||||
return CFSwapInt16LittleToHost(x);
|
return OSSwapLittleToHostInt16(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline short LittleShort(int x)
|
inline short LittleShort(int x)
|
||||||
{
|
{
|
||||||
return CFSwapInt16LittleToHost((uint16_t)x);
|
return OSSwapLittleToHostInt16((uint16_t)x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int LittleLong(int x)
|
inline int LittleLong(int x)
|
||||||
{
|
{
|
||||||
return CFSwapInt32LittleToHost((uint32_t)x);
|
return OSSwapLittleToHostInt32((uint32_t)x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline unsigned int LittleLong(unsigned int x)
|
inline unsigned int LittleLong(unsigned int x)
|
||||||
{
|
{
|
||||||
return CFSwapInt32LittleToHost(x);
|
return OSSwapLittleToHostInt32(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline short BigShort(short x)
|
inline short BigShort(short x)
|
||||||
{
|
{
|
||||||
return (short)CFSwapInt16BigToHost((uint16_t)x);
|
return (short)OSSwapBigToHostInt16((uint16_t)x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline unsigned short BigShort(unsigned short x)
|
inline unsigned short BigShort(unsigned short x)
|
||||||
{
|
{
|
||||||
return CFSwapInt16BigToHost(x);
|
return OSSwapBigToHostInt16(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int BigLong(int x)
|
inline int BigLong(int x)
|
||||||
{
|
{
|
||||||
return CFSwapInt32BigToHost((uint32_t)x);
|
return OSSwapBigToHostInt32((uint32_t)x);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline unsigned int BigLong(unsigned int x)
|
inline unsigned int BigLong(unsigned int x)
|
||||||
{
|
{
|
||||||
return CFSwapInt32BigToHost(x);
|
return OSSwapBigToHostInt32(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -32,6 +32,12 @@
|
||||||
**
|
**
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define USE_WINDOWS_DWORD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "7z.h"
|
||||||
|
#include "7zCrc.h"
|
||||||
|
|
||||||
#include "resourcefile.h"
|
#include "resourcefile.h"
|
||||||
#include "cmdlib.h"
|
#include "cmdlib.h"
|
||||||
|
@ -41,8 +47,6 @@
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
#include "w_wad.h"
|
#include "w_wad.h"
|
||||||
|
|
||||||
#include "7z.h"
|
|
||||||
#include "7zCrc.h"
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
|
|
|
@ -303,8 +303,8 @@ int main (int argc, char **argv)
|
||||||
vid_defwidth = videoInfo->current_w;
|
vid_defwidth = videoInfo->current_w;
|
||||||
vid_defheight = videoInfo->current_h;
|
vid_defheight = videoInfo->current_h;
|
||||||
vid_defbits = videoInfo->vfmt->BitsPerPixel;
|
vid_defbits = videoInfo->vfmt->BitsPerPixel;
|
||||||
vid_vsync = True;
|
vid_vsync = true;
|
||||||
fullscreen = True;
|
fullscreen = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __APPLE__
|
#endif // __APPLE__
|
||||||
|
|
|
@ -103,10 +103,8 @@ int (*I_GetTime) (bool saveMS);
|
||||||
int (*I_WaitForTic) (int);
|
int (*I_WaitForTic) (int);
|
||||||
void (*I_FreezeTime) (bool frozen);
|
void (*I_FreezeTime) (bool frozen);
|
||||||
|
|
||||||
void I_Tactile (int on, int off, int total)
|
void I_Tactile (int /*on*/, int /*off*/, int /*total*/)
|
||||||
{
|
{
|
||||||
// UNUSED.
|
|
||||||
on = off = total = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ticcmd_t emptycmd;
|
ticcmd_t emptycmd;
|
||||||
|
@ -323,8 +321,8 @@ void SetLanguageIDs ()
|
||||||
size_t langlen = strlen(language);
|
size_t langlen = strlen(language);
|
||||||
|
|
||||||
DWORD lang = (langlen < 2 || langlen > 3) ?
|
DWORD lang = (langlen < 2 || langlen > 3) ?
|
||||||
MAKE_ID('e','n','u','0') :
|
MAKE_ID('e','n','u','\0') :
|
||||||
MAKE_ID(language[0],language[1],language[2],'0');
|
MAKE_ID(language[0],language[1],language[2],'\0');
|
||||||
|
|
||||||
LanguageIDs[3] = LanguageIDs[2] = LanguageIDs[1] = LanguageIDs[0] = lang;
|
LanguageIDs[3] = LanguageIDs[2] = LanguageIDs[1] = LanguageIDs[0] = lang;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1340,14 +1340,11 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FireCustomMissile)
|
||||||
self->pitch -= pitch;
|
self->pitch -= pitch;
|
||||||
AActor * misl=P_SpawnPlayerMissile (self, x, y, z, ti, shootangle, &linetarget);
|
AActor * misl=P_SpawnPlayerMissile (self, x, y, z, ti, shootangle, &linetarget);
|
||||||
self->pitch = SavedPlayerPitch;
|
self->pitch = SavedPlayerPitch;
|
||||||
if (Flags & FPF_TRANSFERTRANSLATION)
|
|
||||||
{
|
|
||||||
misl->Translation = self->Translation;
|
|
||||||
}
|
|
||||||
|
|
||||||
// automatic handling of seeker missiles
|
// automatic handling of seeker missiles
|
||||||
if (misl)
|
if (misl)
|
||||||
{
|
{
|
||||||
|
if (Flags & FPF_TRANSFERTRANSLATION) misl->Translation = self->Translation;
|
||||||
if (linetarget && misl->flags2&MF2_SEEKERMISSILE) misl->tracer=linetarget;
|
if (linetarget && misl->flags2&MF2_SEEKERMISSILE) misl->tracer=linetarget;
|
||||||
if (!(Flags & FPF_AIMATANGLE))
|
if (!(Flags & FPF_AIMATANGLE))
|
||||||
{
|
{
|
||||||
|
|
|
@ -167,7 +167,7 @@ INTBOOL CheckActorFlag(const AActor *owner, FFlagDef *fd)
|
||||||
{
|
{
|
||||||
return fd->flagbit & *(DWORD *)(((char*)owner) + fd->structoffset);
|
return fd->flagbit & *(DWORD *)(((char*)owner) + fd->structoffset);
|
||||||
}
|
}
|
||||||
#ifdef __BID_ENDIAN__
|
#ifdef __BIG_ENDIAN__
|
||||||
else if (fd->fieldsize == 2)
|
else if (fd->fieldsize == 2)
|
||||||
{
|
{
|
||||||
return fd->flagbit & *(WORD *)(((char*)owner) + fd->structoffset);
|
return fd->flagbit & *(WORD *)(((char*)owner) + fd->structoffset);
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
cmake_minimum_required( VERSION 2.4 )
|
cmake_minimum_required( VERSION 2.4 )
|
||||||
|
|
||||||
if( WIN32 )
|
if( WIN32 )
|
||||||
if( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE OR ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/trustinfo.o
|
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/trustinfo.o
|
||||||
COMMAND windres -o ${CMAKE_CURRENT_BINARY_DIR}/trustinfo.o -i ${CMAKE_CURRENT_SOURCE_DIR}/trustinfo.rc
|
COMMAND windres -o ${CMAKE_CURRENT_BINARY_DIR}/trustinfo.o -i ${CMAKE_CURRENT_SOURCE_DIR}/trustinfo.rc
|
||||||
DEPENDS trustinfo.rc )
|
DEPENDS trustinfo.rc )
|
||||||
set( TRUSTINFO trustinfo.o )
|
set( TRUSTINFO trustinfo.o )
|
||||||
else( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
else( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE OR ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
if( MSVC_VERSION GREATER 1399 )
|
if( MSVC_VERSION GREATER 1399 )
|
||||||
# VC 8+ adds a manifest automatically to the executable. We need to
|
# VC 8+ adds a manifest automatically to the executable. We need to
|
||||||
# merge ours with it.
|
# merge ours with it.
|
||||||
|
@ -14,7 +14,7 @@ if( WIN32 )
|
||||||
else( MSVC_VERSION GREATER 1399 )
|
else( MSVC_VERSION GREATER 1399 )
|
||||||
set( TRUSTINFO trustinfo.rc )
|
set( TRUSTINFO trustinfo.rc )
|
||||||
endif( MSVC_VERSION GREATER 1399 )
|
endif( MSVC_VERSION GREATER 1399 )
|
||||||
endif( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
|
endif( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE OR ZD_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
|
||||||
else( WIN32 )
|
else( WIN32 )
|
||||||
set( TRUSTINFO "" )
|
set( TRUSTINFO "" )
|
||||||
endif( WIN32 )
|
endif( WIN32 )
|
||||||
|
|
|
@ -129,7 +129,7 @@ typedef struct compressor_s
|
||||||
int method;
|
int method;
|
||||||
} compressor_t;
|
} compressor_t;
|
||||||
|
|
||||||
typedef unsigned int DWORD;
|
typedef unsigned int UINT32;
|
||||||
typedef unsigned short WORD;
|
typedef unsigned short WORD;
|
||||||
typedef unsigned char BYTE;
|
typedef unsigned char BYTE;
|
||||||
|
|
||||||
|
@ -139,49 +139,49 @@ typedef unsigned char BYTE;
|
||||||
//#pragma pack(push,1)
|
//#pragma pack(push,1)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
DWORD Magic; // 0
|
UINT32 Magic; // 0
|
||||||
BYTE VersionToExtract[2]; // 4
|
BYTE VersionToExtract[2]; // 4
|
||||||
WORD Flags; // 6
|
WORD Flags; // 6
|
||||||
WORD Method; // 8
|
WORD Method; // 8
|
||||||
WORD ModTime; // 10
|
WORD ModTime; // 10
|
||||||
WORD ModDate; // 12
|
WORD ModDate; // 12
|
||||||
DWORD CRC32; // 14
|
UINT32 CRC32; // 14
|
||||||
DWORD CompressedSize; // 18
|
UINT32 CompressedSize; // 18
|
||||||
DWORD UncompressedSize; // 22
|
UINT32 UncompressedSize; // 22
|
||||||
WORD NameLength; // 26
|
WORD NameLength; // 26
|
||||||
WORD ExtraLength; // 28
|
WORD ExtraLength; // 28
|
||||||
} LocalFileHeader;
|
} LocalFileHeader;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
DWORD Magic;
|
UINT32 Magic;
|
||||||
BYTE VersionMadeBy[2];
|
BYTE VersionMadeBy[2];
|
||||||
BYTE VersionToExtract[2];
|
BYTE VersionToExtract[2];
|
||||||
WORD Flags;
|
WORD Flags;
|
||||||
WORD Method;
|
WORD Method;
|
||||||
WORD ModTime;
|
WORD ModTime;
|
||||||
WORD ModDate;
|
WORD ModDate;
|
||||||
DWORD CRC32;
|
UINT32 CRC32;
|
||||||
DWORD CompressedSize;
|
UINT32 CompressedSize;
|
||||||
DWORD UncompressedSize;
|
UINT32 UncompressedSize;
|
||||||
WORD NameLength;
|
WORD NameLength;
|
||||||
WORD ExtraLength;
|
WORD ExtraLength;
|
||||||
WORD CommentLength;
|
WORD CommentLength;
|
||||||
WORD StartingDiskNumber;
|
WORD StartingDiskNumber;
|
||||||
WORD InternalAttributes;
|
WORD InternalAttributes;
|
||||||
DWORD ExternalAttributes;
|
UINT32 ExternalAttributes;
|
||||||
DWORD LocalHeaderOffset;
|
UINT32 LocalHeaderOffset;
|
||||||
} CentralDirectoryEntry;
|
} CentralDirectoryEntry;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
DWORD Magic;
|
UINT32 Magic;
|
||||||
WORD DiskNumber;
|
WORD DiskNumber;
|
||||||
WORD FirstDisk;
|
WORD FirstDisk;
|
||||||
WORD NumEntries;
|
WORD NumEntries;
|
||||||
WORD NumEntriesOnAllDisks;
|
WORD NumEntriesOnAllDisks;
|
||||||
DWORD DirectorySize;
|
UINT32 DirectorySize;
|
||||||
DWORD DirectoryOffset;
|
UINT32 DirectoryOffset;
|
||||||
WORD ZipCommentLength;
|
WORD ZipCommentLength;
|
||||||
} EndOfCentralDirectory;
|
} EndOfCentralDirectory;
|
||||||
//#pragma pack(pop)
|
//#pragma pack(pop)
|
||||||
|
@ -1373,7 +1373,7 @@ BYTE *find_central_dir(FILE *fin)
|
||||||
back_read = 4;
|
back_read = 4;
|
||||||
while (back_read < max_back)
|
while (back_read < max_back)
|
||||||
{
|
{
|
||||||
DWORD read_size, read_pos;
|
UINT32 read_size, read_pos;
|
||||||
int i;
|
int i;
|
||||||
if (back_read + BUFREADCOMMENT > max_back)
|
if (back_read + BUFREADCOMMENT > max_back)
|
||||||
back_read = max_back;
|
back_read = max_back;
|
||||||
|
@ -1420,12 +1420,12 @@ BYTE *find_central_dir(FILE *fin)
|
||||||
free(dir);
|
free(dir);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (*(DWORD *)dir != ZIP_CENTRALFILE)
|
if (*(UINT32 *)dir != ZIP_CENTRALFILE)
|
||||||
{
|
{
|
||||||
free(dir);
|
free(dir);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
*(DWORD *)(dir + LittleLong(eod.DirectorySize)) = ZIP_ENDOFDIR;
|
*(UINT32 *)(dir + LittleLong(eod.DirectorySize)) = ZIP_ENDOFDIR;
|
||||||
return dir;
|
return dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1444,7 +1444,7 @@ CentralDirectoryEntry *find_file_in_zip(BYTE *dir, const char *path, unsigned in
|
||||||
CentralDirectoryEntry *ent;
|
CentralDirectoryEntry *ent;
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
while (*(DWORD *)dir == ZIP_CENTRALFILE)
|
while (*(UINT32 *)dir == ZIP_CENTRALFILE)
|
||||||
{
|
{
|
||||||
ent = (CentralDirectoryEntry *)dir;
|
ent = (CentralDirectoryEntry *)dir;
|
||||||
if (pathlen == LittleShort(ent->NameLength) &&
|
if (pathlen == LittleShort(ent->NameLength) &&
|
||||||
|
@ -1455,7 +1455,7 @@ CentralDirectoryEntry *find_file_in_zip(BYTE *dir, const char *path, unsigned in
|
||||||
}
|
}
|
||||||
dir += sizeof(*ent) + LittleShort(ent->NameLength) + LittleShort(ent->ExtraLength) + LittleShort(ent->CommentLength);
|
dir += sizeof(*ent) + LittleShort(ent->NameLength) + LittleShort(ent->ExtraLength) + LittleShort(ent->CommentLength);
|
||||||
}
|
}
|
||||||
if (*(DWORD *)dir != ZIP_CENTRALFILE)
|
if (*(UINT32 *)dir != ZIP_CENTRALFILE)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1495,7 +1495,7 @@ int copy_zip_file(FILE *zip, file_entry_t *file, FILE *ozip, CentralDirectoryEnt
|
||||||
{
|
{
|
||||||
LocalFileHeader lfh;
|
LocalFileHeader lfh;
|
||||||
BYTE *buf;
|
BYTE *buf;
|
||||||
DWORD buf_size;
|
UINT32 buf_size;
|
||||||
|
|
||||||
if (fseek(ozip, LittleLong(ent->LocalHeaderOffset), SEEK_SET) != 0)
|
if (fseek(ozip, LittleLong(ent->LocalHeaderOffset), SEEK_SET) != 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue