mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-25 15:15:40 +00:00
build fixes for mac
This commit is contained in:
parent
858b84f424
commit
5e434e2644
|
@ -1,13 +1,8 @@
|
||||||
#
|
|
||||||
# TODO: MacOS port is probably broken. Someone with MacOS needs to figure out
|
|
||||||
# how to compile with SDL2.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## Supermodel
|
## Supermodel
|
||||||
## A Sega Model 3 Arcade Emulator.
|
## A Sega Model 3 Arcade Emulator.
|
||||||
## Copyright 2011-2017 Bart Trzynadlowski, Nik Henson, Ian Curtis
|
## Copyright 2011-2020 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
|
## Harry Tuttle, and Spindizzi
|
||||||
##
|
##
|
||||||
## This file is part of Supermodel.
|
## This file is part of Supermodel.
|
||||||
##
|
##
|
||||||
|
@ -28,7 +23,7 @@
|
||||||
#
|
#
|
||||||
# Makefile.OSX
|
# Makefile.OSX
|
||||||
#
|
#
|
||||||
# Makefile for Mac OS X systems using gcc.
|
# Makefile for Mac OS X systems using clang.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,12 +40,17 @@ DELETE = rm -d -r -f
|
||||||
# Edit library and include paths as needed.
|
# Edit library and include paths as needed.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Must be included first
|
||||||
|
#
|
||||||
|
include Makefiles/Options.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Toolchain
|
# Toolchain
|
||||||
#
|
#
|
||||||
CC = gcc
|
CC = clang
|
||||||
CXX = g++
|
CXX = clang
|
||||||
LD = gcc
|
LD = clang
|
||||||
|
|
||||||
#
|
#
|
||||||
# SDL
|
# SDL
|
||||||
|
@ -58,12 +58,15 @@ LD = gcc
|
||||||
|
|
||||||
SDL_CFLAGS =
|
SDL_CFLAGS =
|
||||||
SDL_LIBS = -framework SDL2 -framework AGL -framework OpenGL -framework GLUT -framework Cocoa
|
SDL_LIBS = -framework SDL2 -framework AGL -framework OpenGL -framework GLUT -framework Cocoa
|
||||||
|
ifeq ($(strip $(NET_BOARD)),1)
|
||||||
|
SDL_LIBS += -framework SDL2_net
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# OSX-specific
|
# OSX-specific
|
||||||
#
|
#
|
||||||
|
|
||||||
PLATFORM_CFLAGS = $(SDL_CFLAGS) -DSUPERMODEL_OSX -DUSE_FILE32API -F/Library/Frameworks/
|
PLATFORM_CFLAGS = $(SDL_CFLAGS) -DSUPERMODEL_OSX -F/Library/Frameworks/
|
||||||
PLATFORM_LDFLAGS = $(SDL_LIBS) -lz -lm -lstdc++ -F/Library/Frameworks/
|
PLATFORM_LDFLAGS = $(SDL_LIBS) -lz -lm -lstdc++ -F/Library/Frameworks/
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,7 +74,7 @@ PLATFORM_LDFLAGS = $(SDL_LIBS) -lz -lm -lstdc++ -F/Library/Frameworks/
|
||||||
# Core Makefile
|
# Core Makefile
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
include Makefiles/Makefile.inc
|
include Makefiles/Rules.inc
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
|
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
##
|
##
|
||||||
## Supermodel
|
## Supermodel
|
||||||
## A Sega Model 3 Arcade Emulator.
|
## A Sega Model 3 Arcade Emulator.
|
||||||
## Copyright 2011-2017 Bart Trzynadlowski, Nik Henson, Ian Curtis
|
## Copyright 2011-2020 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
|
## Harry Tuttle, and Spindizzi
|
||||||
##
|
##
|
||||||
## This file is part of Supermodel.
|
## This file is part of Supermodel.
|
||||||
##
|
##
|
||||||
|
@ -39,6 +40,11 @@ DELETE = rm -d -r -f
|
||||||
# Edit library and include paths as needed.
|
# Edit library and include paths as needed.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Must be included first
|
||||||
|
#
|
||||||
|
include Makefiles/Options.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Toolchain
|
# Toolchain
|
||||||
#
|
#
|
||||||
|
@ -65,7 +71,7 @@ PLATFORM_LDFLAGS = $(SDL2_LIBS) -lGL -lGLU -lz -lm -lstdc++ -lpthread -lSDL2_net
|
||||||
# Core Makefile
|
# Core Makefile
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
include Makefiles/Makefile.inc
|
include Makefiles/Rules.inc
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
|
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
##
|
##
|
||||||
## Supermodel
|
## Supermodel
|
||||||
## A Sega Model 3 Arcade Emulator.
|
## A Sega Model 3 Arcade Emulator.
|
||||||
## Copyright 2011-2017 Bart Trzynadlowski, Nik Henson, Ian Curtis
|
## Copyright 2011-2020 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
|
## Harry Tuttle, and Spindizzi
|
||||||
##
|
##
|
||||||
## This file is part of Supermodel.
|
## This file is part of Supermodel.
|
||||||
##
|
##
|
||||||
|
@ -36,6 +37,11 @@
|
||||||
# section as well, namely SDL2_LIBS and PLATFORM_LIBS.
|
# section as well, namely SDL2_LIBS and PLATFORM_LIBS.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Must be included first
|
||||||
|
#
|
||||||
|
include Makefiles/Options.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bitness of build ('32' or '64')
|
# Bitness of build ('32' or '64')
|
||||||
#
|
#
|
||||||
|
@ -44,15 +50,12 @@ BITS = 64
|
||||||
#
|
#
|
||||||
# Path to SDL2
|
# Path to SDL2
|
||||||
#
|
#
|
||||||
SDL2_INCLUDE_DIR = c:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/SDL2
|
SDL2_INCLUDE_DIR = C:\TDM-GCC-64\x86_64-w64-mingw32\include\SDL2
|
||||||
SDL2_LIB_DIR = c:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/lib
|
SDL2_LIB_DIR = C:\TDM-GCC-64\x86_64-w64-mingw32\lib
|
||||||
#SDL2_INCLUDE_DIR = $(MINGW)/include/SDL2
|
|
||||||
#SDL2_LIB_DIR = $(MINGW)/lib
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Toolchain
|
# Toolchain
|
||||||
#
|
#
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CXX = g++
|
CXX = g++
|
||||||
LD = g++
|
LD = g++
|
||||||
|
@ -78,8 +81,11 @@ endif
|
||||||
#
|
#
|
||||||
# SDL2
|
# SDL2
|
||||||
#
|
#
|
||||||
SDL2_LIBS = -lmingw32 -lSDL2main -lSDL2 -luser32 -lgdi32 -lwinmm -limm32 -lversion -lsetupapi -lsdl2_net -liphlpapi
|
SDL2_LIBS = -lmingw32 -lSDL2main -lSDL2 -luser32 -lgdi32 -lwinmm -limm32 -lversion -lsetupapi -liphlpapi
|
||||||
SDL2_CFLAGS =
|
SDL2_CFLAGS =
|
||||||
|
ifeq ($(strip $(NET_BOARD)),1)
|
||||||
|
SDL2_LIBS += -lSDL2_net
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# MinGW/Windows-specific
|
# MinGW/Windows-specific
|
||||||
|
@ -100,7 +106,7 @@ PLATFORM_SRC_FILES = \
|
||||||
Src/OSD/Windows/DirectInputSystem.cpp \
|
Src/OSD/Windows/DirectInputSystem.cpp \
|
||||||
Src/OSD/Windows/WinOutputs.cpp
|
Src/OSD/Windows/WinOutputs.cpp
|
||||||
|
|
||||||
include Makefiles/Makefile.inc
|
include Makefiles/Rules.inc
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(SILENT)echo Cleaning up $(BIN_DIR) and $(OBJ_DIR)...
|
$(SILENT)echo Cleaning up $(BIN_DIR) and $(OBJ_DIR)...
|
||||||
|
|
76
Makefiles/Options.inc
Normal file
76
Makefiles/Options.inc
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
##
|
||||||
|
## Supermodel
|
||||||
|
## A Sega Model 3 Arcade Emulator.
|
||||||
|
## Copyright 2011-2020 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
|
## Harry Tuttle, and Spindizzi
|
||||||
|
##
|
||||||
|
## This file is part of Supermodel.
|
||||||
|
##
|
||||||
|
## Supermodel 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 3 of the License, or (at your option)
|
||||||
|
## any later version.
|
||||||
|
##
|
||||||
|
## Supermodel 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 Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
##
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options.inc
|
||||||
|
#
|
||||||
|
# Build options.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Build Options
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Verbose progression
|
||||||
|
#
|
||||||
|
VERBOSE =
|
||||||
|
ifneq ($(filter $(strip $(VERBOSE)),0 1),$(strip $(VERBOSE)))
|
||||||
|
override VERBOSE =
|
||||||
|
endif
|
||||||
|
SILENT = @
|
||||||
|
ifeq ($(strip $(VERBOSE)),1)
|
||||||
|
SILENT =
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable render state analyser for the legacy 3D engine (will slow down emulation!)
|
||||||
|
#
|
||||||
|
DEBUG =
|
||||||
|
ifneq ($(filter $(strip $(DEBUG)),0 1),$(strip $(DEBUG)))
|
||||||
|
override DEBUG =
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable support for Model3 Net Board emulation
|
||||||
|
#
|
||||||
|
NET_BOARD =
|
||||||
|
ifneq ($(filter $(strip $(NET_BOARD)),0 1),$(strip $(NET_BOARD)))
|
||||||
|
override NET_BOARD =
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable Bart's new (experimental) Real3D frame timing
|
||||||
|
#
|
||||||
|
NEW_FRAME_TIMING =
|
||||||
|
ifneq ($(filter $(strip $(NEW_FRAME_TIMING)),0 1),$(strip $(NEW_FRAME_TIMING)))
|
||||||
|
override NEW_FRAME_TIMING =
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Include console-based debugger in emulator ('yes' or 'no')
|
||||||
|
#
|
||||||
|
ENABLE_DEBUGGER =
|
||||||
|
ifneq ($(filter $(strip $(ENABLE_DEBUGGER)),0 1),$(strip $(ENABLE_DEBUGGER)))
|
||||||
|
override ENABLE_DEBUGGER =
|
||||||
|
endif
|
|
@ -1,7 +1,8 @@
|
||||||
##
|
##
|
||||||
## Supermodel
|
## Supermodel
|
||||||
## A Sega Model 3 Arcade Emulator.
|
## A Sega Model 3 Arcade Emulator.
|
||||||
## Copyright 2011-2017 Bart Trzynadlowski, Nik Henson, Ian Curtis
|
## Copyright 2011-2020 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
|
## Harry Tuttle, and Spindizzi
|
||||||
##
|
##
|
||||||
## This file is part of Supermodel.
|
## This file is part of Supermodel.
|
||||||
##
|
##
|
||||||
|
@ -20,61 +21,12 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
#
|
#
|
||||||
# Makefile.inc
|
# Rules.inc
|
||||||
#
|
#
|
||||||
# Core GNU Makefile, included by all (platform-specific) top-level Makefiles.
|
# Build rules, included by all (platform-specific) top-level Makefiles.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Build Options
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
# Verbose progression
|
|
||||||
#
|
|
||||||
VERBOSE =
|
|
||||||
ifneq ($(filter $(strip $(VERBOSE)),0 1),$(strip $(VERBOSE)))
|
|
||||||
override VERBOSE =
|
|
||||||
endif
|
|
||||||
SILENT = @
|
|
||||||
ifeq ($(strip $(VERBOSE)),1)
|
|
||||||
SILENT =
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Enable render state analyser for the legacy 3D engine (will slow down emulation!)
|
|
||||||
#
|
|
||||||
DEBUG =
|
|
||||||
ifneq ($(filter $(strip $(DEBUG)),0 1),$(strip $(DEBUG)))
|
|
||||||
override DEBUG =
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Enable support for Model3 Net Board emulation
|
|
||||||
#
|
|
||||||
NET_BOARD =
|
|
||||||
ifneq ($(filter $(strip $(NET_BOARD)),0 1),$(strip $(NET_BOARD)))
|
|
||||||
override NET_BOARD =
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Enable Bart's new (experimental) Real3D frame timing
|
|
||||||
#
|
|
||||||
NEW_FRAME_TIMING =
|
|
||||||
ifneq ($(filter $(strip $(NEW_FRAME_TIMING)),0 1),$(strip $(NEW_FRAME_TIMING)))
|
|
||||||
override NEW_FRAME_TIMING =
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include console-based debugger in emulator ('yes' or 'no')
|
|
||||||
#
|
|
||||||
ENABLE_DEBUGGER =
|
|
||||||
ifneq ($(filter $(strip $(ENABLE_DEBUGGER)),0 1),$(strip $(ENABLE_DEBUGGER)))
|
|
||||||
override ENABLE_DEBUGGER =
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Source Files
|
# Source Files
|
||||||
###############################################################################
|
###############################################################################
|
|
@ -109,7 +109,7 @@ bool GameLoader::LoadZippedFile(std::shared_ptr<uint8_t> *buffer, size_t *file_s
|
||||||
}
|
}
|
||||||
*file_size = zipped_file->uncompressed_size;
|
*file_size = zipped_file->uncompressed_size;
|
||||||
buffer->reset(new uint8_t[*file_size], std::default_delete<uint8_t[]>());
|
buffer->reset(new uint8_t[*file_size], std::default_delete<uint8_t[]>());
|
||||||
ZPOS64_T bytes_read = unzReadCurrentFile(zipped_file->zf, buffer->get(), *file_size);
|
size_t bytes_read = (size_t) unzReadCurrentFile(zipped_file->zf, buffer->get(), *file_size);
|
||||||
if (bytes_read != *file_size)
|
if (bytes_read != *file_size)
|
||||||
{
|
{
|
||||||
ErrorLog("Unable to read '%s' from '%s'. Is zip file corrupt?", zipped_file->filename.c_str(), zipped_file->zipfilename.c_str());
|
ErrorLog("Unable to read '%s' from '%s'. Is zip file corrupt?", zipped_file->filename.c_str(), zipped_file->zipfilename.c_str());
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "SDL_net.h"
|
#include "SDLIncludes.h"
|
||||||
|
|
||||||
class TCPReceive
|
class TCPReceive
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define _TCPSEND_H_
|
#define _TCPSEND_H_
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "SDL_net.h"
|
#include "SDLIncludes.h"
|
||||||
|
|
||||||
class TCPSend
|
class TCPSend
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,14 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Supermodel.h"
|
#include "Supermodel.h"
|
||||||
|
#include "SDLIncludes.h"
|
||||||
#ifdef SUPERMODEL_OSX
|
|
||||||
#include <SDL/SDL.h>
|
|
||||||
#include <SDL/SDL_audio.h>
|
|
||||||
#else
|
|
||||||
#include <SDL.h>
|
|
||||||
#include <SDL_audio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/**
|
/**
|
||||||
** Supermodel
|
** Supermodel
|
||||||
** A Sega Model 3 Arcade Emulator.
|
** A Sega Model 3 Arcade Emulator.
|
||||||
** Copyright 2011-2019 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
** Copyright 2011-2020 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
** Harry Tuttle, and Spindizzi
|
** Harry Tuttle, and Spindizzi
|
||||||
**
|
**
|
||||||
** This file is part of Supermodel.
|
** This file is part of Supermodel.
|
||||||
|
@ -57,11 +57,6 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "Pkgs/glew.h"
|
#include "Pkgs/glew.h"
|
||||||
#ifdef SUPERMODEL_OSX
|
|
||||||
#include <SDL/SDL.h>
|
|
||||||
#else
|
|
||||||
#include <SDL.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "Supermodel.h"
|
#include "Supermodel.h"
|
||||||
#include "Util/Format.h"
|
#include "Util/Format.h"
|
||||||
|
@ -73,6 +68,7 @@
|
||||||
#include "DirectInputSystem.h"
|
#include "DirectInputSystem.h"
|
||||||
#include "WinOutputs.h"
|
#include "WinOutputs.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include "SDLIncludes.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
@ -1418,7 +1414,7 @@ static Util::Config::Node DefaultConfig()
|
||||||
static void Title(void)
|
static void Title(void)
|
||||||
{
|
{
|
||||||
puts("Supermodel: A Sega Model 3 Arcade Emulator (Version " SUPERMODEL_VERSION ")");
|
puts("Supermodel: A Sega Model 3 Arcade Emulator (Version " SUPERMODEL_VERSION ")");
|
||||||
puts("Copyright 2011-2019 by Bart Trzynadlowski, Nik Henson, Ian Curtis,");
|
puts("Copyright 2011-2020 by Bart Trzynadlowski, Nik Henson, Ian Curtis,");
|
||||||
puts(" Harry Tuttle, and Spindizzi\n");
|
puts(" Harry Tuttle, and Spindizzi\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
48
Src/OSD/SDL/SDLIncludes.h
Normal file
48
Src/OSD/SDL/SDLIncludes.h
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/**
|
||||||
|
** Supermodel
|
||||||
|
** A Sega Model 3 Arcade Emulator.
|
||||||
|
** Copyright 2011-2019 Bart Trzynadlowski, Nik Henson, Ian Curtis,
|
||||||
|
** Harry Tuttle, and Spindizzi
|
||||||
|
**
|
||||||
|
** This file is part of Supermodel.
|
||||||
|
**
|
||||||
|
** Supermodel 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 3 of the License, or (at your option)
|
||||||
|
** any later version.
|
||||||
|
**
|
||||||
|
** Supermodel 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 Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
**/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SDLIncludes.h
|
||||||
|
*
|
||||||
|
* Header file for SDL library.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef INCLUDED_SDLINCLUDES_H
|
||||||
|
#define INCLUDED_SDLINCLUDES_H
|
||||||
|
|
||||||
|
#ifdef SUPERMODEL_OSX
|
||||||
|
#include <SDL2/SDL.h>
|
||||||
|
#include <SDL2/SDL_audio.h>
|
||||||
|
#else
|
||||||
|
#include <SDL.h>
|
||||||
|
#include <SDL_audio.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NET_BOARD
|
||||||
|
#ifdef SUPERMODEL_OSX
|
||||||
|
#include <SDL2_net/SDL_net.h>
|
||||||
|
#else
|
||||||
|
#include <SDL_net.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // INCLUDED_SDLINCLUDES_H
|
|
@ -29,8 +29,8 @@
|
||||||
* - Implement multiple keyboard and mouse support.
|
* - Implement multiple keyboard and mouse support.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "SDLInputSystem.h"
|
|
||||||
#include "Supermodel.h"
|
#include "Supermodel.h"
|
||||||
|
#include "SDLInputSystem.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -31,12 +31,7 @@
|
||||||
#include "Types.h"
|
#include "Types.h"
|
||||||
#include "Inputs/InputSource.h"
|
#include "Inputs/InputSource.h"
|
||||||
#include "Inputs/InputSystem.h"
|
#include "Inputs/InputSystem.h"
|
||||||
|
#include "SDLIncludes.h"
|
||||||
#ifdef SUPERMODEL_OSX
|
|
||||||
#include <SDL/SDL.h>
|
|
||||||
#else
|
|
||||||
#include <SDL.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -26,14 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Supermodel.h"
|
#include "Supermodel.h"
|
||||||
|
#include "SDLIncludes.h"
|
||||||
#ifdef SUPERMODEL_OSX
|
|
||||||
#include <SDL/SDL.h>
|
|
||||||
#include <SDL/SDL_thread.h>
|
|
||||||
#else
|
|
||||||
#include <SDL.h>
|
|
||||||
#include <SDL_thread.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void CThread::Sleep(UINT32 ms)
|
void CThread::Sleep(UINT32 ms)
|
||||||
{
|
{
|
||||||
|
@ -95,7 +88,7 @@ CThread::~CThread()
|
||||||
// User should have called Wait() before thread object is destroyed
|
// User should have called Wait() before thread object is destroyed
|
||||||
if (nullptr != m_impl)
|
if (nullptr != m_impl)
|
||||||
{
|
{
|
||||||
ErrorLog("Runaway thread error. A thread was not properly halted: %s\n", GetName());
|
ErrorLog("Runaway thread error. A thread was not properly halted: %s\n", GetName().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
131
Src/Pkgs/crypt.h
Normal file
131
Src/Pkgs/crypt.h
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
/* crypt.h -- base code for crypt/uncrypt ZIPfile
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.01e, February 12th, 2005
|
||||||
|
|
||||||
|
Copyright (C) 1998-2005 Gilles Vollant
|
||||||
|
|
||||||
|
This code is a modified version of crypting code in Infozip distribution
|
||||||
|
|
||||||
|
The encryption/decryption parts of this source code (as opposed to the
|
||||||
|
non-echoing password parts) were originally written in Europe. The
|
||||||
|
whole source package can be freely distributed, including from the USA.
|
||||||
|
(Prior to January 2000, re-export from the US was a violation of US law.)
|
||||||
|
|
||||||
|
This encryption code is a direct transcription of the algorithm from
|
||||||
|
Roger Schlafly, described by Phil Katz in the file appnote.txt. This
|
||||||
|
file (appnote.txt) is distributed with the PKZIP program (even in the
|
||||||
|
version without encryption capabilities).
|
||||||
|
|
||||||
|
If you don't need crypting in your application, just define symbols
|
||||||
|
NOCRYPT and NOUNCRYPT.
|
||||||
|
|
||||||
|
This code support the "Traditional PKWARE Encryption".
|
||||||
|
|
||||||
|
The new AES encryption added on Zip format by Winzip (see the page
|
||||||
|
http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
|
||||||
|
Encryption is not supported.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8))
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Return the next byte in the pseudo-random sequence
|
||||||
|
*/
|
||||||
|
static int decrypt_byte(unsigned long* pkeys, const z_crc_t* pcrc_32_tab)
|
||||||
|
{
|
||||||
|
unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an
|
||||||
|
* unpredictable manner on 16-bit systems; not a problem
|
||||||
|
* with any known compiler so far, though */
|
||||||
|
|
||||||
|
temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
|
||||||
|
return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Update the encryption keys with the next byte of plain text
|
||||||
|
*/
|
||||||
|
static int update_keys(unsigned long* pkeys,const z_crc_t* pcrc_32_tab,int c)
|
||||||
|
{
|
||||||
|
(*(pkeys+0)) = CRC32((*(pkeys+0)), c);
|
||||||
|
(*(pkeys+1)) += (*(pkeys+0)) & 0xff;
|
||||||
|
(*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
|
||||||
|
{
|
||||||
|
register int keyshift = (int)((*(pkeys+1)) >> 24);
|
||||||
|
(*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
|
||||||
|
}
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* Initialize the encryption keys and the random header according to
|
||||||
|
* the given password.
|
||||||
|
*/
|
||||||
|
static void init_keys(const char* passwd,unsigned long* pkeys,const z_crc_t* pcrc_32_tab)
|
||||||
|
{
|
||||||
|
*(pkeys+0) = 305419896L;
|
||||||
|
*(pkeys+1) = 591751049L;
|
||||||
|
*(pkeys+2) = 878082192L;
|
||||||
|
while (*passwd != '\0') {
|
||||||
|
update_keys(pkeys,pcrc_32_tab,(int)*passwd);
|
||||||
|
passwd++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#define zdecode(pkeys,pcrc_32_tab,c) \
|
||||||
|
(update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab)))
|
||||||
|
|
||||||
|
#define zencode(pkeys,pcrc_32_tab,c,t) \
|
||||||
|
(t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c))
|
||||||
|
|
||||||
|
#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED
|
||||||
|
|
||||||
|
#define RAND_HEAD_LEN 12
|
||||||
|
/* "last resort" source for second part of crypt seed pattern */
|
||||||
|
# ifndef ZCR_SEED2
|
||||||
|
# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
|
||||||
|
# endif
|
||||||
|
|
||||||
|
static int crypthead(const char* passwd, /* password string */
|
||||||
|
unsigned char* buf, /* where to write header */
|
||||||
|
int bufSize,
|
||||||
|
unsigned long* pkeys,
|
||||||
|
const z_crc_t* pcrc_32_tab,
|
||||||
|
unsigned long crcForCrypting)
|
||||||
|
{
|
||||||
|
int n; /* index in random header */
|
||||||
|
int t; /* temporary */
|
||||||
|
int c; /* random byte */
|
||||||
|
unsigned char header[RAND_HEAD_LEN-2]; /* random header */
|
||||||
|
static unsigned calls = 0; /* ensure different random header each time */
|
||||||
|
|
||||||
|
if (bufSize<RAND_HEAD_LEN)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* First generate RAND_HEAD_LEN-2 random bytes. We encrypt the
|
||||||
|
* output of rand() to get less predictability, since rand() is
|
||||||
|
* often poorly implemented.
|
||||||
|
*/
|
||||||
|
if (++calls == 1)
|
||||||
|
{
|
||||||
|
srand((unsigned)(time(NULL) ^ ZCR_SEED2));
|
||||||
|
}
|
||||||
|
init_keys(passwd, pkeys, pcrc_32_tab);
|
||||||
|
for (n = 0; n < RAND_HEAD_LEN-2; n++)
|
||||||
|
{
|
||||||
|
c = (rand() >> 7) & 0xff;
|
||||||
|
header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
|
||||||
|
}
|
||||||
|
/* Encrypt random header (last two bytes is high word of crc) */
|
||||||
|
init_keys(passwd, pkeys, pcrc_32_tab);
|
||||||
|
for (n = 0; n < RAND_HEAD_LEN-2; n++)
|
||||||
|
{
|
||||||
|
buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
|
||||||
|
}
|
||||||
|
buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
|
||||||
|
buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -10,10 +10,22 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if (defined(_WIN32))
|
#if defined(_WIN32) && (!(defined(_CRT_SECURE_NO_WARNINGS)))
|
||||||
#define _CRT_SECURE_NO_WARNINGS
|
#define _CRT_SECURE_NO_WARNINGS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__APPLE__) || defined(IOAPI_NO_64)
|
||||||
|
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
|
||||||
|
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
||||||
|
#define FTELLO_FUNC(stream) ftello(stream)
|
||||||
|
#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
|
||||||
|
#else
|
||||||
|
#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
|
||||||
|
#define FTELLO_FUNC(stream) ftello64(stream)
|
||||||
|
#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include "ioapi.h"
|
#include "ioapi.h"
|
||||||
|
|
||||||
voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)
|
voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)
|
||||||
|
@ -47,7 +59,7 @@ ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
|
uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
|
||||||
if ((tell_uLong) == ((uLong)-1))
|
if ((tell_uLong) == MAXU32)
|
||||||
return (ZPOS64_T)-1;
|
return (ZPOS64_T)-1;
|
||||||
else
|
else
|
||||||
return tell_uLong;
|
return tell_uLong;
|
||||||
|
@ -112,7 +124,7 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename,
|
||||||
mode_fopen = "wb";
|
mode_fopen = "wb";
|
||||||
|
|
||||||
if ((filename!=NULL) && (mode_fopen != NULL))
|
if ((filename!=NULL) && (mode_fopen != NULL))
|
||||||
file = fopen64((const char*)filename, mode_fopen);
|
file = FOPEN_FUNC((const char*)filename, mode_fopen);
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +154,7 @@ static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
|
||||||
static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
|
static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
|
||||||
{
|
{
|
||||||
ZPOS64_T ret;
|
ZPOS64_T ret;
|
||||||
ret = ftello64((FILE *)stream);
|
ret = FTELLO_FUNC((FILE *)stream);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +200,7 @@ static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T
|
||||||
}
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
if(fseeko64((FILE *)stream, offset, fseek_origin) != 0)
|
if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#ifndef _ZLIBIOAPI64_H
|
#ifndef _ZLIBIOAPI64_H
|
||||||
#define _ZLIBIOAPI64_H
|
#define _ZLIBIOAPI64_H
|
||||||
|
|
||||||
#if (!defined(_WIN32)) && (!defined(WIN32))
|
#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
|
||||||
|
|
||||||
// Linux needs this to support file operation on files larger then 4+GB
|
// Linux needs this to support file operation on files larger then 4+GB
|
||||||
// But might need better if/def to select just the platforms that needs them.
|
// But might need better if/def to select just the platforms that needs them.
|
||||||
|
@ -38,6 +38,7 @@
|
||||||
#ifndef _FILE_OFFSET_BIT
|
#ifndef _FILE_OFFSET_BIT
|
||||||
#define _FILE_OFFSET_BIT 64
|
#define _FILE_OFFSET_BIT 64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -49,6 +50,11 @@
|
||||||
#define ftello64 ftell
|
#define ftello64 ftell
|
||||||
#define fseeko64 fseek
|
#define fseeko64 fseek
|
||||||
#else
|
#else
|
||||||
|
#ifdef __FreeBSD__
|
||||||
|
#define fopen64 fopen
|
||||||
|
#define ftello64 ftello
|
||||||
|
#define fseeko64 fseeko
|
||||||
|
#endif
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#define fopen64 fopen
|
#define fopen64 fopen
|
||||||
#if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC)))
|
#if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC)))
|
||||||
|
@ -85,6 +91,8 @@ typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
|
||||||
typedef uint64_t ZPOS64_T;
|
typedef uint64_t ZPOS64_T;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
/* Maximum unsigned 32-bit value used as placeholder for zip64 */
|
||||||
|
#define MAXU32 0xffffffff
|
||||||
|
|
||||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||||||
typedef unsigned __int64 ZPOS64_T;
|
typedef unsigned __int64 ZPOS64_T;
|
||||||
|
|
|
@ -188,7 +188,7 @@ typedef struct
|
||||||
|
|
||||||
# ifndef NOUNCRYPT
|
# ifndef NOUNCRYPT
|
||||||
unsigned long keys[3]; /* keys defining the pseudo-random sequence */
|
unsigned long keys[3]; /* keys defining the pseudo-random sequence */
|
||||||
const unsigned long* pcrc_32_tab;
|
const z_crc_t* pcrc_32_tab;
|
||||||
# endif
|
# endif
|
||||||
} unz64_s;
|
} unz64_s;
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ typedef struct
|
||||||
/* ===========================================================================
|
/* ===========================================================================
|
||||||
Read a byte from a gz_stream; update next_in and avail_in. Return EOF
|
Read a byte from a gz_stream; update next_in and avail_in. Return EOF
|
||||||
for end of file.
|
for end of file.
|
||||||
IN assertion: the stream s has been sucessfully opened for reading.
|
IN assertion: the stream s has been successfully opened for reading.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -801,9 +801,9 @@ extern unzFile ZEXPORT unzOpen64 (const void *path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Close a ZipFile opened with unzipOpen.
|
Close a ZipFile opened with unzOpen.
|
||||||
If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
|
If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
|
||||||
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
these files MUST be closed with unzCloseCurrentFile before call unzClose.
|
||||||
return UNZ_OK if there is no problem. */
|
return UNZ_OK if there is no problem. */
|
||||||
extern int ZEXPORT unzClose (unzFile file)
|
extern int ZEXPORT unzClose (unzFile file)
|
||||||
{
|
{
|
||||||
|
@ -1040,26 +1040,26 @@ local int unz64local_GetCurrentFileInfoInternal (unzFile file,
|
||||||
{
|
{
|
||||||
uLong uL;
|
uLong uL;
|
||||||
|
|
||||||
if(file_info.uncompressed_size == (ZPOS64_T)(unsigned long)-1)
|
if(file_info.uncompressed_size == MAXU32)
|
||||||
{
|
{
|
||||||
if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
|
if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
|
||||||
err=UNZ_ERRNO;
|
err=UNZ_ERRNO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(file_info.compressed_size == (ZPOS64_T)(unsigned long)-1)
|
if(file_info.compressed_size == MAXU32)
|
||||||
{
|
{
|
||||||
if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
|
if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
|
||||||
err=UNZ_ERRNO;
|
err=UNZ_ERRNO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(file_info_internal.offset_curfile == (ZPOS64_T)(unsigned long)-1)
|
if(file_info_internal.offset_curfile == MAXU32)
|
||||||
{
|
{
|
||||||
/* Relative Header offset */
|
/* Relative Header offset */
|
||||||
if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
|
if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
|
||||||
err=UNZ_ERRNO;
|
err=UNZ_ERRNO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(file_info.disk_num_start == (unsigned long)-1)
|
if(file_info.disk_num_start == MAXU32)
|
||||||
{
|
{
|
||||||
/* Disk Start Number */
|
/* Disk Start Number */
|
||||||
if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
|
if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
|
||||||
|
@ -1145,7 +1145,7 @@ extern int ZEXPORT unzGetCurrentFileInfo (unzFile file,
|
||||||
szFileName,fileNameBufferSize,
|
szFileName,fileNameBufferSize,
|
||||||
extraField,extraFieldBufferSize,
|
extraField,extraFieldBufferSize,
|
||||||
szComment,commentBufferSize);
|
szComment,commentBufferSize);
|
||||||
if (err==UNZ_OK)
|
if ((err==UNZ_OK) && (pfile_info != NULL))
|
||||||
{
|
{
|
||||||
pfile_info->version = file_info64.version;
|
pfile_info->version = file_info64.version;
|
||||||
pfile_info->version_needed = file_info64.version_needed;
|
pfile_info->version_needed = file_info64.version_needed;
|
||||||
|
@ -1223,7 +1223,7 @@ extern int ZEXPORT unzGoToNextFile (unzFile file)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Try locate the file szFileName in the zipfile.
|
Try locate the file szFileName in the zipfile.
|
||||||
For the iCaseSensitivity signification, see unzipStringFileNameCompare
|
For the iCaseSensitivity signification, see unzStringFileNameCompare
|
||||||
|
|
||||||
return value :
|
return value :
|
||||||
UNZ_OK if the file is found. It becomes the current file.
|
UNZ_OK if the file is found. It becomes the current file.
|
||||||
|
@ -1696,7 +1696,7 @@ extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned len)
|
||||||
return UNZ_PARAMERROR;
|
return UNZ_PARAMERROR;
|
||||||
|
|
||||||
|
|
||||||
if ((pfile_in_zip_read_info->read_buffer == NULL))
|
if (pfile_in_zip_read_info->read_buffer == NULL)
|
||||||
return UNZ_END_OF_LIST_OF_FILE;
|
return UNZ_END_OF_LIST_OF_FILE;
|
||||||
if (len==0)
|
if (len==0)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1998,7 +1998,7 @@ extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Close the file in zip opened with unzipOpenCurrentFile
|
Close the file in zip opened with unzOpenCurrentFile
|
||||||
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
Return UNZ_CRCERROR if all the file was read but the CRC is not good
|
||||||
*/
|
*/
|
||||||
extern int ZEXPORT unzCloseCurrentFile (unzFile file)
|
extern int ZEXPORT unzCloseCurrentFile (unzFile file)
|
||||||
|
|
|
@ -197,9 +197,9 @@ extern unzFile ZEXPORT unzOpen2_64 OF((const void *path,
|
||||||
|
|
||||||
extern int ZEXPORT unzClose OF((unzFile file));
|
extern int ZEXPORT unzClose OF((unzFile file));
|
||||||
/*
|
/*
|
||||||
Close a ZipFile opened with unzipOpen.
|
Close a ZipFile opened with unzOpen.
|
||||||
If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
|
If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
|
||||||
these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
|
these files MUST be closed with unzCloseCurrentFile before call unzClose.
|
||||||
return UNZ_OK if there is no problem. */
|
return UNZ_OK if there is no problem. */
|
||||||
|
|
||||||
extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
|
extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
|
||||||
|
|
Loading…
Reference in a new issue