diff --git a/src/controller.h b/src/controller.h index ea52312..f5bd677 100644 --- a/src/controller.h +++ b/src/controller.h @@ -848,7 +848,9 @@ struct Controller { dist -= d; pos = pos + dir * d; - px = (int)pos.x, py = (int)pos.y, pz = (int)pos.z; + px = (int)pos.x; + py = (int)pos.y; + pz = (int)pos.z; } return pos; @@ -1350,4 +1352,4 @@ struct Controller { Controller *Controller::first = NULL; -#endif \ No newline at end of file +#endif diff --git a/src/format.h b/src/format.h index d173c71..3018b7b 100644 --- a/src/format.h +++ b/src/format.h @@ -1864,8 +1864,8 @@ namespace TR { switch (rotation.value / 0x4000) { case 0 : dx = 0; dz = 1; break; case 1 : dx = 1; dz = 0; break; - case 2 : dx = 0, dz = -1; break; - case 3 : dx = -1, dz = 0; break; + case 2 : dx = 0; dz = -1; break; + case 3 : dx = -1; dz = 0; break; default : dx = 0; dz = 0; break; } } diff --git a/src/gapi_gl.h b/src/gapi_gl.h index 997c430..2085c11 100644 --- a/src/gapi_gl.h +++ b/src/gapi_gl.h @@ -91,9 +91,17 @@ #define GL_CLAMP_TO_BORDER 0x812D #define GL_TEXTURE_BORDER_COLOR 0x1004 - #define GL_TEXTURE_COMPARE_MODE GL_TEXTURE_COMPARE_MODE_EXT - #define GL_TEXTURE_COMPARE_FUNC GL_TEXTURE_COMPARE_FUNC_EXT - #define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_REF_TO_TEXTURE_EXT + #undef GL_RGBA32F + #undef GL_RGBA16F + #undef GL_HALF_FLOAT + + #define GL_RGBA32F GL_RGBA + #define GL_RGBA16F GL_RGBA + #define GL_HALF_FLOAT GL_HALF_FLOAT_OES + + //#define GL_TEXTURE_COMPARE_MODE GL_TEXTURE_COMPARE_MODE_EXT + //#define GL_TEXTURE_COMPARE_FUNC GL_TEXTURE_COMPARE_FUNC_EXT + //#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_REF_TO_TEXTURE_EXT #else #include #include @@ -228,7 +236,7 @@ PFNGLPROGRAMBINARYPROC glProgramBinary; #endif -#if defined(_GAPI_GLES) && !defined(_OS_RPI) && !defined(_OS_CLOVER) +#if defined(_GAPI_GLES) && !defined(_OS_RPI) && !defined(_OS_CLOVER) && !defined(_OS_IOS) PFNGLDISCARDFRAMEBUFFEREXTPROC glDiscardFramebufferEXT; #endif @@ -342,7 +350,7 @@ namespace GAPI { void setParam(UniformType uType, const mat4 &value, int count = 1) {} void setParam(UniformType uType, const Basis &value, int count = 1) {} #else - uint32 ID; + GLuint ID; int32 uID[uMAX]; void init(Core::Pass pass, int type, int *def, int defCount) { @@ -382,7 +390,7 @@ namespace GAPI { char fileName[255]; // generate shader file path if (Core::support.shaderBinary) { - uint32 hash = fnv32(defines, strlen(defines), fnv32(source, strlen(source))); + uint32 hash = fnv32(defines, (int32)strlen(defines), fnv32(source, (int32)strlen(source))); sprintf(fileName, "%08X.xsh", hash); } diff --git a/src/level.h b/src/level.h index 96d2bf8..0faa286 100644 --- a/src/level.h +++ b/src/level.h @@ -132,7 +132,7 @@ struct Level : IGame { } } - save->size = ptr - data; + save->size = int32(ptr - data); save->version = level.version & TR::VER_VERSION; //osSaveGame(new Stream("savegame", data, int(ptr - data))); diff --git a/src/mesh.h b/src/mesh.h index 0ffdd2d..5c95d34 100644 --- a/src/mesh.h +++ b/src/mesh.h @@ -609,9 +609,9 @@ struct MeshBuilder { short4 res = v; switch (dir) { - case 1 : res.x = v.z, res.z = -v.x; break; - case 2 : res.x = -v.x, res.z = -v.z; break; - case 3 : res.x = -v.z, res.z = v.x; break; + case 1 : res.x = v.z; res.z = -v.x; break; + case 2 : res.x = -v.x; res.z = -v.z; break; + case 3 : res.x = -v.z; res.z = v.x; break; default : ASSERT(false); } return res; diff --git a/src/platform/ios/AppDelegate.mm b/src/platform/ios/AppDelegate.mm index 9f8349b..d84718c 100644 --- a/src/platform/ios/AppDelegate.mm +++ b/src/platform/ios/AppDelegate.mm @@ -7,7 +7,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; - + self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = [[ViewController alloc] init]; [self.window makeKeyAndVisible]; diff --git a/src/platform/ios/ViewController.mm b/src/platform/ios/ViewController.mm index 3667a35..43ae924 100644 --- a/src/platform/ios/ViewController.mm +++ b/src/platform/ios/ViewController.mm @@ -19,6 +19,14 @@ char Stream::cacheDir[255]; char Stream::contentDir[255]; +bool osJoyReady(int index) { + return false; +} + +void osJoyVibrate(int index, float L, float R) { + // TODO +} + int osGetTime() { const int64_t kOneMillion = 1000 * 1000; static mach_timebase_info_data_t info; @@ -110,10 +118,7 @@ void soundInit() { strcat(Stream::contentDir, [path UTF8String]); strcat(Stream::contentDir, "/"); - Stream *lvl = new Stream("LEVEL2.PSX"); - Stream *snd = new Stream("05.ogg"); - - Game::init(lvl, snd); + Game::init(); soundInit(); Input::reset(); @@ -133,7 +138,7 @@ void soundInit() { - (void)glkView:(GLKView *)view drawInRect:(CGRect)rect { [((GLKView *) self.view) bindDrawable]; - glGetIntegerv(GL_FRAMEBUFFER_BINDING, (GLint*)&Core::defaultFBO); + glGetIntegerv(GL_FRAMEBUFFER_BINDING, (GLint*)&GAPI::defaultFBO); float scale = [[UIScreen mainScreen] scale]; Core::width = self.view.bounds.size.width * scale; @@ -152,7 +157,7 @@ void soundInit() { continue; CGPoint pos = [touch locationInView:self.view]; - NSUInteger id = int(touch); + NSUInteger id = (uintptr_t)touch; InputKey key = Input::getTouch(id); if (key == ikNone) return; diff --git a/src/platform/ios/openlara-Info.plist b/src/platform/ios/openlara-Info.plist index 22a407c..5ef00cd 100644 --- a/src/platform/ios/openlara-Info.plist +++ b/src/platform/ios/openlara-Info.plist @@ -21,7 +21,7 @@ CFBundleIdentifier - org.xproger.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/src/platform/ios/openlara.xcodeproj/project.pbxproj b/src/platform/ios/openlara.xcodeproj/project.pbxproj index cf09653..8c3b33e 100644 --- a/src/platform/ios/openlara.xcodeproj/project.pbxproj +++ b/src/platform/ios/openlara.xcodeproj/project.pbxproj @@ -9,6 +9,9 @@ /* Begin PBXBuildFile section */ 99266D7E160A568B003FFEBA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99266D7D160A568B003FFEBA /* AudioToolbox.framework */; }; 99266D81160A5E7C003FFEBA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99266D80160A5E7C003FFEBA /* UIKit.framework */; }; + 992B0783212BC0DA00B42DDC /* tinflate.c in Sources */ = {isa = PBXBuildFile; fileRef = 992B0782212BC0DA00B42DDC /* tinflate.c */; }; + 992B0786212BC39300B42DDC /* level in Resources */ = {isa = PBXBuildFile; fileRef = 992B0784212BC39200B42DDC /* level */; }; + 992B0787212BC39300B42DDC /* audio in Resources */ = {isa = PBXBuildFile; fileRef = 992B0785212BC39300B42DDC /* audio */; }; 996585AF160A31450097B128 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 996585AE160A31450097B128 /* Foundation.framework */; }; 996585CB160A3A8B0097B128 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 996585C8160A3A8B0097B128 /* AppDelegate.mm */; }; 996585CC160A3A8B0097B128 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 996585CA160A3A8B0097B128 /* ViewController.mm */; }; @@ -17,14 +20,15 @@ 99CF06251E9145830072E389 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 996585B8160A31450097B128 /* main.m */; }; 99CF06301E91505D0072E389 /* minimp3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 99CF062E1E91505D0072E389 /* minimp3.cpp */; }; 99CF06311E91505D0072E389 /* stb_vorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 99CF062F1E91505D0072E389 /* stb_vorbis.c */; }; - 99CF06351E9154170072E389 /* LEVEL2.PSX in Resources */ = {isa = PBXBuildFile; fileRef = 99CF06331E9154170072E389 /* LEVEL2.PSX */; }; - 99CF06361E9154170072E389 /* 05.ogg in Resources */ = {isa = PBXBuildFile; fileRef = 99CF06341E9154170072E389 /* 05.ogg */; }; 99CF06381E9193370072E389 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99CF06231E9143C60072E389 /* Default-568h@2x.png */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 99266D7D160A568B003FFEBA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 99266D80160A5E7C003FFEBA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 992B0782212BC0DA00B42DDC /* tinflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = tinflate.c; path = ../../libs/tinf/tinflate.c; sourceTree = ""; }; + 992B0784212BC39200B42DDC /* level */ = {isa = PBXFileReference; lastKnownFileType = folder; name = level; path = ../../../bin/level; sourceTree = ""; }; + 992B0785212BC39300B42DDC /* audio */ = {isa = PBXFileReference; lastKnownFileType = folder; name = audio; path = ../../../bin/audio; sourceTree = ""; }; 996585A8160A31450097B128 /* OpenLara.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenLara.app; sourceTree = BUILT_PRODUCTS_DIR; }; 996585AE160A31450097B128 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 996585B0160A31450097B128 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -38,8 +42,6 @@ 996585CA160A3A8B0097B128 /* ViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = ""; }; 996585FA160A3B500097B128 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 996585FC160A3C620097B128 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; - 99CF06021E913FE90072E389 /* bin */ = {isa = PBXFileReference; lastKnownFileType = text; name = bin; path = ../../../bin; sourceTree = ""; }; - 99CF06031E913FE90072E389 /* bin */ = {isa = PBXFileReference; lastKnownFileType = text; name = bin; path = ../../../bin; sourceTree = ""; }; 99CF06061E9140630072E389 /* animation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = animation.h; path = ../../animation.h; sourceTree = ""; }; 99CF06071E9140630072E389 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cache.h; path = ../../cache.h; sourceTree = ""; }; 99CF06081E9140630072E389 /* camera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = camera.h; path = ../../camera.h; sourceTree = ""; }; @@ -91,6 +93,9 @@ 9965859D160A31450097B128 = { isa = PBXGroup; children = ( + 992B0785212BC39300B42DDC /* audio */, + 992B0784212BC39200B42DDC /* level */, + 992B0782212BC0DA00B42DDC /* tinflate.c */, 996585CD160A3AC50097B128 /* src */, 996585B8160A31450097B128 /* main.m */, 996585C8160A3A8B0097B128 /* AppDelegate.mm */, @@ -98,7 +103,6 @@ 996585CA160A3A8B0097B128 /* ViewController.mm */, 996585BB160A31450097B128 /* AppDelegate.h */, 996585B3160A31450097B128 /* Supporting Files */, - 996585FE160A3C960097B128 /* data */, 996585AB160A31450097B128 /* Frameworks */, 996585A9160A31450097B128 /* Products */, ); @@ -173,15 +177,6 @@ path = ../src; sourceTree = ""; }; - 996585FE160A3C960097B128 /* data */ = { - isa = PBXGroup; - children = ( - 99CF06021E913FE90072E389 /* bin */, - 99CF06031E913FE90072E389 /* bin */, - ); - path = data; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -208,7 +203,7 @@ 9965859F160A31450097B128 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0940; TargetAttributes = { 996585A7160A31450097B128 = { DevelopmentTeam = L49L654K86; @@ -238,9 +233,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 992B0786212BC39300B42DDC /* level in Resources */, + 992B0787212BC39300B42DDC /* audio in Resources */, 99CF06381E9193370072E389 /* Default-568h@2x.png in Resources */, - 99CF06351E9154170072E389 /* LEVEL2.PSX in Resources */, - 99CF06361E9154170072E389 /* 05.ogg in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -251,6 +246,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 992B0783212BC0DA00B42DDC /* tinflate.c in Sources */, 99CF06301E91505D0072E389 /* minimp3.cpp in Sources */, 99CF06311E91505D0072E389 /* stb_vorbis.c in Sources */, 99CF06251E9145830072E389 /* main.m in Sources */, @@ -277,13 +273,32 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = c99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -291,11 +306,14 @@ ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = ""; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.1; - ONLY_ACTIVE_ARCH = NO; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + ONLY_ACTIVE_ARCH = YES; PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -306,17 +324,38 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = c99; + GCC_NO_COMMON_BLOCKS = YES; GCC_VERSION = ""; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 5.1; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; PROVISIONING_PROFILE = ""; @@ -329,6 +368,7 @@ 996585C1160A31450097B128 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEVELOPMENT_TEAM = L49L654K86; @@ -336,6 +376,7 @@ GCC_PREFIX_HEADER = "openlara-Prefix.pch"; INFOPLIST_FILE = "openlara-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_BUNDLE_IDENTIFIER = "org.xproger.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "${TARGET_NAME}"; PROVISIONING_PROFILE = ""; WRAPPER_EXTENSION = app; @@ -345,6 +386,7 @@ 996585C2160A31450097B128 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEVELOPMENT_TEAM = L49L654K86; @@ -352,6 +394,7 @@ GCC_PREFIX_HEADER = "openlara-Prefix.pch"; INFOPLIST_FILE = "openlara-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_BUNDLE_IDENTIFIER = "org.xproger.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "${TARGET_NAME}"; PROVISIONING_PROFILE = ""; WRAPPER_EXTENSION = app; diff --git a/src/sound.h b/src/sound.h index c8ac93d..99beed4 100644 --- a/src/sound.h +++ b/src/sound.h @@ -63,7 +63,8 @@ namespace Sound { float process(float x, int delay) { index = (index + 1) % delay; float y = out[index]; - return out[index] = x, y; + out[index] = x; + return y; } }; @@ -1054,4 +1055,4 @@ namespace Sound { } } -#endif \ No newline at end of file +#endif diff --git a/src/texture.h b/src/texture.h index 374b925..c3feb28 100644 --- a/src/texture.h +++ b/src/texture.h @@ -1,4 +1,4 @@ -#ifndef H_TEXTURE + #ifndef H_TEXTURE #define H_TEXTURE #include "core.h" @@ -563,7 +563,7 @@ struct Texture : GAPI::Texture { delete[] cdata; height = 256; - width = (dst - data) / height / 2; + width = uint32(dst - data) / height / 2; uint32 *data32 = new uint32[width * height]; { @@ -843,4 +843,4 @@ struct Atlas { } }; -#endif \ No newline at end of file +#endif diff --git a/src/utils.h b/src/utils.h index bed3002..c58bd08 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1244,7 +1244,7 @@ struct Stream { #endif } else { fseek(f, 0, SEEK_END); - size = ftell(f); + size = (int32)ftell(f); fseek(f, 0, SEEK_SET); if (name) { @@ -1308,7 +1308,7 @@ struct Stream { int raw(void *data, int count) { if (!count) return 0; if (f) - count = fread(data, 1, count, f); + count = (int)fread(data, 1, count, f); else memcpy(data, this->data + pos, count); pos += count; @@ -1364,7 +1364,7 @@ void osCacheRead(Stream *stream) { FILE *f = fopen(path, "rb"); if (f) { fseek(f, 0, SEEK_END); - int size = ftell(f); + int size = (int)ftell(f); fseek(f, 0, SEEK_SET); char *data = new char[size]; fread(data, 1, size, f); @@ -1389,11 +1389,13 @@ void osLoadGame(Stream *stream) { #ifdef OS_PTHREAD_MT +#include + // multi-threading void* osMutexInit() { pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); -#ifndef _OS_WEB +#if !defined(_OS_WEB) && !defined(_OS_IOS) pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); #endif