Mobile: minor update

master
MoNTE48 2021-11-03 23:24:27 +01:00
parent d3e0c28c54
commit 96f80d2c30
31 changed files with 269 additions and 154 deletions

View File

@ -4,7 +4,7 @@ apply plugin: 'kotlin-android'
android {
compileSdkVersion 31
buildToolsVersion '31.0.0'
ndkVersion '23.0.7599858'
ndkVersion '23.1.7779620'
defaultConfig {
applicationId 'com.multicraft.game'
minSdkVersion 19

View File

@ -4,7 +4,7 @@ apply plugin: 'de.undercouch.download'
android {
compileSdkVersion 31
buildToolsVersion '31.0.0'
ndkVersion '23.0.7599858'
ndkVersion '23.1.7779620'
defaultConfig {
minSdkVersion 19
targetSdkVersion 31

View File

@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
@ -34,18 +34,20 @@
4B35A9F11EEE014F00274961 /* l_storage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B35A9EF1EEE014F00274961 /* l_storage.cpp */; };
4B35A9F41EEE017000274961 /* scripting_client.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B35A9F21EEE017000274961 /* scripting_client.cpp */; };
4B35A9F71EEE018D00274961 /* scripting_server.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B35A9F51EEE018D00274961 /* scripting_server.cpp */; };
842A808C2339174C00A89418 /* ads.mm in Sources */ = {isa = PBXBuildFile; fileRef = 842A808B2339174C00A89418 /* ads.mm */; };
842A808C2339174C00A89418 /* ads.m in Sources */ = {isa = PBXBuildFile; fileRef = 842A808B2339174C00A89418 /* ads.m */; };
843F4C3126617D0D005277FA /* ZipArchive in Frameworks */ = {isa = PBXBuildFile; productRef = 843F4C3026617D0D005277FA /* ZipArchive */; };
8465A76522A7D4500095B7CA /* libintl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8465A76422A7D4500095B7CA /* libintl.cpp */; };
8473ED8125C055F80053293B /* static_text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8473ED7F25C055F80053293B /* static_text.cpp */; };
8473ED8425C0562C0053293B /* lutf8lib.c in Sources */ = {isa = PBXBuildFile; fileRef = 8473ED8225C0562C0053293B /* lutf8lib.c */; };
849C4F86209656D3005EB041 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 849C4F85209656D2005EB041 /* ru.lproj */; };
84A4380425535BA5002571D4 /* soft_oal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84A4380325535BA5002571D4 /* soft_oal.framework */; };
84A4380525535BA5002571D4 /* soft_oal.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84A4380325535BA5002571D4 /* soft_oal.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
84A608A425F0A02900D79FCD /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = 84A608A325F0A02900D79FCD /* Sentry */; };
84B9C11724A4D82400016BCE /* ConsentAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B9C11524A4D82400016BCE /* ConsentAlertViewController.swift */; };
84B9C11824A4D82400016BCE /* ConsentAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B9C11624A4D82400016BCE /* ConsentAlertViewController.xib */; };
84C0FB1B24B35D9200606FAA /* Bugsnag in Frameworks */ = {isa = PBXBuildFile; productRef = 84C0FB1A24B35D9200606FAA /* Bugsnag */; };
84C32A3724AF7A4500445E92 /* Nantes in Frameworks */ = {isa = PBXBuildFile; productRef = 84C32A3624AF7A4500445E92 /* Nantes */; };
84C32A3924AF7DDE00445E92 /* UITextViewPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C32A3824AF7DDE00445E92 /* UITextViewPlaceholder.swift */; };
84C67B1E25D5E06B002E2735 /* AppTrackingTransparency.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84C67B1D25D5E06B002E2735 /* AppTrackingTransparency.framework */; };
84CD4A64248782720019B81D /* MainWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CD4A59248782720019B81D /* MainWindow.swift */; };
84CD4A65248782720019B81D /* ProgressViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84CD4A5B248782720019B81D /* ProgressViewController.xib */; };
84CD4A66248782720019B81D /* MessageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84CD4A5C248782720019B81D /* MessageViewController.xib */; };
@ -53,6 +55,8 @@
84CD4A68248782720019B81D /* MessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CD4A5E248782720019B81D /* MessageViewController.swift */; };
84CD4A69248782720019B81D /* ProgressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CD4A5F248782720019B81D /* ProgressViewController.swift */; };
84CD4A6C2487A0180019B81D /* ZipManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CD4A6B2487A0170019B81D /* ZipManager.swift */; };
84E2968925E29004000C495A /* libluajit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E2968825E28FF6000C495A /* libluajit.a */; };
84E2968C25E2A10F000C495A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84E2968E25E2A10F000C495A /* InfoPlist.strings */; };
84FE40E224439C2F008E29DB /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FE40E124439C2F008E29DB /* libcurl.a */; };
8E0FFE3234B35EC9603EC82A /* Pods_MultiCraft.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73B0001862274A8FCC7614F0 /* Pods_MultiCraft.framework */; };
F87DC8BA210887C700393B64 /* mapgen_v7p.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F87DC8B9210887C700393B64 /* mapgen_v7p.cpp */; };
@ -306,7 +310,7 @@
73B0001862274A8FCC7614F0 /* Pods_MultiCraft.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MultiCraft.framework; sourceTree = BUILT_PRODUCTS_DIR; };
840E2F9E233410F90088E7F7 /* SDVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDVersion.h; path = SDVersion/SDVersion.h; sourceTree = "<group>"; };
842A808A2339174B00A89418 /* ads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ads.h; path = Ads/ads.h; sourceTree = "<group>"; };
842A808B2339174C00A89418 /* ads.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ads.mm; path = Ads/ads.mm; sourceTree = "<group>"; };
842A808B2339174C00A89418 /* ads.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ads.m; path = Ads/ads.m; sourceTree = "<group>"; };
8465A76122A7D4500095B7CA /* MessageCatalog.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = MessageCatalog.hpp; path = ../../../../lib/intl/MessageCatalog.hpp; sourceTree = "<group>"; };
8465A76222A7D4500095B7CA /* libintl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libintl.h; path = ../../../../lib/intl/libintl.h; sourceTree = "<group>"; };
8465A76322A7D4500095B7CA /* Util.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Util.hpp; path = ../../../../lib/intl/Util.hpp; sourceTree = "<group>"; };
@ -320,6 +324,7 @@
84B9C11524A4D82400016BCE /* ConsentAlertViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsentAlertViewController.swift; sourceTree = "<group>"; };
84B9C11624A4D82400016BCE /* ConsentAlertViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConsentAlertViewController.xib; sourceTree = "<group>"; };
84C32A3824AF7DDE00445E92 /* UITextViewPlaceholder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITextViewPlaceholder.swift; sourceTree = "<group>"; };
84C67B1D25D5E06B002E2735 /* AppTrackingTransparency.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppTrackingTransparency.framework; path = System/Library/Frameworks/AppTrackingTransparency.framework; sourceTree = SDKROOT; };
84CD4A55248781420019B81D /* Bridge-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Bridge-Header.h"; sourceTree = "<group>"; };
84CD4A59248782720019B81D /* MainWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainWindow.swift; sourceTree = "<group>"; };
84CD4A5B248782720019B81D /* ProgressViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ProgressViewController.xib; sourceTree = "<group>"; };
@ -328,6 +333,9 @@
84CD4A5E248782720019B81D /* MessageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageViewController.swift; sourceTree = "<group>"; };
84CD4A5F248782720019B81D /* ProgressViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewController.swift; sourceTree = "<group>"; };
84CD4A6B2487A0170019B81D /* ZipManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZipManager.swift; sourceTree = "<group>"; };
84E2968825E28FF6000C495A /* libluajit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libluajit.a; path = ../deps/luajit/lib/libluajit.a; sourceTree = "<group>"; };
84E2968D25E2A10F000C495A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
84E2968F25E2A164000C495A /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
84FE40E124439C2F008E29DB /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = ../deps/libcurl/lib/libcurl.a; sourceTree = "<group>"; };
F87DC8B8210887C600393B64 /* mapgen_v7p.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mapgen_v7p.h; path = ../../../../src/mapgen_v7p.h; sourceTree = "<group>"; };
F87DC8B9210887C700393B64 /* mapgen_v7p.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mapgen_v7p.cpp; path = ../../../../src/mapgen_v7p.cpp; sourceTree = "<group>"; };
@ -335,7 +343,7 @@
F8E6C4E81DCA3B7900F64426 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
F8E6C4EB1DCA3B7900F64426 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
F8E6C4ED1DCA3B7900F64426 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F8E6C4F31DCA3EA400F64426 /* ioswrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ioswrap.h; sourceTree = "<group>"; };
F8E6C4F31DCA3EA400F64426 /* ioswrap.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc.preprocessed; fileEncoding = 4; path = ioswrap.h; sourceTree = "<group>"; };
F8E6C4F41DCA3EA400F64426 /* ioswrap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ioswrap.m; sourceTree = "<group>"; };
F8E6C4F71DCA3F9900F64426 /* activeobject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = activeobject.h; path = ../../../../src/activeobject.h; sourceTree = "<group>"; };
F8E6C4F81DCA3F9900F64426 /* ban.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ban.cpp; path = ../../../../src/ban.cpp; sourceTree = "<group>"; };
@ -726,17 +734,20 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84C0FB1B24B35D9200606FAA /* Bugsnag in Frameworks */,
F8E6C7CD1DCA431B00F64426 /* Foundation.framework in Frameworks */,
84FE40E224439C2F008E29DB /* libcurl.a in Frameworks */,
F8E6C7D71DCA477600F64426 /* libfreetype.a in Frameworks */,
F8E6C7D51DCA476800F64426 /* libIrrlicht.a in Frameworks */,
84A608A425F0A02900D79FCD /* Sentry in Frameworks */,
843F4C3126617D0D005277FA /* ZipArchive in Frameworks */,
84C32A3724AF7A4500445E92 /* Nantes in Frameworks */,
F8E6C7C91DCA430300F64426 /* OpenGLES.framework in Frameworks */,
8E0FFE3234B35EC9603EC82A /* Pods_MultiCraft.framework in Frameworks */,
F8E6C7C51DCA42F300F64426 /* QuartzCore.framework in Frameworks */,
84C67B1E25D5E06B002E2735 /* AppTrackingTransparency.framework in Frameworks */,
84A4380425535BA5002571D4 /* soft_oal.framework in Frameworks */,
F8E6C7C71DCA42FA00F64426 /* UIKit.framework in Frameworks */,
84E2968925E29004000C495A /* libluajit.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -840,6 +851,7 @@
F8E6C4E81DCA3B7900F64426 /* Assets.xcassets */,
F8E6C4EA1DCA3B7900F64426 /* LaunchScreen.storyboard */,
F8E6C4ED1DCA3B7900F64426 /* Info.plist */,
84E2968E25E2A10F000C495A /* InfoPlist.strings */,
F8E6C4DC1DCA3B7900F64426 /* Supporting Files */,
F8E6C4F61DCA3EAF00F64426 /* src */,
);
@ -856,7 +868,7 @@
F8E6C4F41DCA3EA400F64426 /* ioswrap.m */,
840E2F9E233410F90088E7F7 /* SDVersion.h */,
842A808A2339174B00A89418 /* ads.h */,
842A808B2339174C00A89418 /* ads.mm */,
842A808B2339174C00A89418 /* ads.m */,
F8E6C7E01DCA4EB300F64426 /* assets.zip */,
);
name = "Supporting Files";
@ -1379,6 +1391,8 @@
F8E6C7C31DCA42F300F64426 /* Frameworks */ = {
isa = PBXGroup;
children = (
84E2968825E28FF6000C495A /* libluajit.a */,
84C67B1D25D5E06B002E2735 /* AppTrackingTransparency.framework */,
84FE40E124439C2F008E29DB /* libcurl.a */,
F8E6C7D61DCA477600F64426 /* libfreetype.a */,
F8E6C7D41DCA476800F64426 /* libIrrlicht.a */,
@ -1404,10 +1418,10 @@
F8E6C4D51DCA3B7900F64426 /* Sources */,
F8E6C4D61DCA3B7900F64426 /* Frameworks */,
F8E6C4D71DCA3B7900F64426 /* Resources */,
E156912616D2E9233FC1C9F4 /* [CP] Copy Pods Resources */,
7055146ABE25F98BDC1A6400 /* [CP] Embed Pods Frameworks */,
4EB364AA68EABAF7EBC092CB /* Upload Bugsnag dSYM */,
84A4380625535BA5002571D4 /* Embed Frameworks */,
84F1E21825F0B70500A731AE /* Upload Sentry */,
A91BBBFDFB91D0CBDAABCA4E /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@ -1416,7 +1430,8 @@
name = MultiCraft;
packageProductDependencies = (
84C32A3624AF7A4500445E92 /* Nantes */,
84C0FB1A24B35D9200606FAA /* Bugsnag */,
84A608A325F0A02900D79FCD /* Sentry */,
843F4C3026617D0D005277FA /* ZipArchive */,
);
productName = MultiCraft;
productReference = F8E6C4D91DCA3B7900F64426 /* MultiCraft.app */;
@ -1429,7 +1444,7 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1210;
LastUpgradeCheck = 1250;
ORGANIZATIONNAME = MultiCraft;
TargetAttributes = {
F8E6C4D81DCA3B7900F64426 = {
@ -1444,17 +1459,19 @@
};
};
buildConfigurationList = F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "MultiCraft" */;
compatibilityVersion = "Xcode 12.0";
compatibilityVersion = "Xcode 13.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
ru,
);
mainGroup = F8E6C4D01DCA3B7900F64426;
packageReferences = (
84C32A3524AF7A4500445E92 /* XCRemoteSwiftPackageReference "Nantes" */,
84C0FB1924B35D9200606FAA /* XCRemoteSwiftPackageReference "bugsnag-cocoa" */,
84A608A225F0A02900D79FCD /* XCRemoteSwiftPackageReference "sentry-cocoa" */,
843F4C2F26617D0D005277FA /* XCRemoteSwiftPackageReference "ZipArchive" */,
);
productRefGroup = F8E6C4DA1DCA3B7900F64426 /* Products */;
projectDirPath = "";
@ -1476,6 +1493,7 @@
F8E6C7E11DCA4EB300F64426 /* assets.zip in Resources */,
84B9C11824A4D82400016BCE /* ConsentAlertViewController.xib in Resources */,
84CD4A65248782720019B81D /* ProgressViewController.xib in Resources */,
84E2968C25E2A10F000C495A /* InfoPlist.strings in Resources */,
84CD4A66248782720019B81D /* MessageViewController.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -1483,25 +1501,6 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
4EB364AA68EABAF7EBC092CB /* Upload Bugsnag dSYM */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Upload Bugsnag dSYM";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = "/usr/bin/env ruby";
shellScript = "# First, attempt to get the API key from an environment variable\napi_key = ENV[\"BUGSNAG_API_KEY\"]\n\n# If not present, attempt to lookup the value from the Info.plist\nif !api_key\n default_info_plist_location = Dir.glob(\"./{ios/,}*/Info.plist\").reject {|path| path =~ /build|test/i }\n plist_buddy_response = `/usr/libexec/PlistBuddy -c \"print :BugsnagAPIKey\" \"#{default_info_plist_location.first}\"`\n api_key = plist_buddy_response if $?.success?\nend\n\nfork do\n Process.setsid\n STDIN.reopen(\"/dev/null\")\n STDOUT.reopen(\"/dev/null\", \"a\")\n STDERR.reopen(\"/dev/null\", \"a\")\n\n require 'shellwords'\n\n Dir[\"#{ENV[\"DWARF_DSYM_FOLDER_PATH\"]}/*/Contents/Resources/DWARF/*\"].each do |dsym|\n curl_command = \"curl -F dsym=@#{Shellwords.escape(dsym)} -F projectRoot=#{Shellwords.escape(ENV[\"PROJECT_DIR\"])} \"\n curl_command += \"-F apiKey=#{Shellwords.escape(api_key)} \" if api_key\n curl_command += \"https://upload.bugsnag.com/\"\n system(curl_command)\n end\nend\n";
showEnvVarsInLog = 0;
};
7055146ABE25F98BDC1A6400 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -1519,6 +1518,38 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
84F1E21825F0B70500A731AE /* Upload Sentry */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
inputPaths = (
"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}",
);
name = "Upload Sentry";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if which sentry-cli >/dev/null; then\nexport SENTRY_ORG=multicraft\nexport SENTRY_PROJECT=multicraft-ios\nexport SENTRY_AUTH_TOKEN=8343341b264d4dc5aadfaac4b3927ad6402ed898b8b340a380ac506b432677aa\nERROR=$(sentry-cli upload-dif \"$DWARF_DSYM_FOLDER_PATH\" 2>&1 >/dev/null)\nif [ ! $? -eq 0 ]; then\necho \"warning: sentry-cli - $ERROR\"\nfi\nelse\necho \"warning: sentry-cli not installed, download from https://github.com/getsentry/sentry-cli/releases\"\nfi\n";
};
A91BBBFDFB91D0CBDAABCA4E /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources.sh\"\n";
showEnvVarsInLog = 0;
};
C73312165F97B96FC254B124 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -1537,23 +1568,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
E156912616D2E9233FC1C9F4 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MultiCraft/Pods-MultiCraft-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@ -1576,7 +1590,7 @@
4B35A9B31EEDD16C00274961 /* database-files.cpp in Sources */,
F8E6C64E1DCA3F9900F64426 /* rollback_interface.cpp in Sources */,
4B35A9F71EEE018D00274961 /* scripting_server.cpp in Sources */,
842A808C2339174C00A89418 /* ads.mm in Sources */,
842A808C2339174C00A89418 /* ads.m in Sources */,
F8E6C6441DCA3F9900F64426 /* noise.cpp in Sources */,
F8E6C7BB1DCA428800F64426 /* numeric.cpp in Sources */,
4B35A9B91EEDD1AC00274961 /* itemstackmetadata.cpp in Sources */,
@ -1776,6 +1790,15 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
84E2968E25E2A10F000C495A /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
84E2968D25E2A10F000C495A /* en */,
84E2968F25E2A164000C495A /* ru */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
F8E6C4EA1DCA3B7900F64426 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
@ -1783,6 +1806,8 @@
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
tabWidth = 4;
usesTabs = 1;
};
/* End PBXVariantGroup section */
@ -1790,6 +1815,7 @@
F8E6C4EE1DCA3B7900F64426 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@ -1808,7 +1834,7 @@
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_UNROLL_LOOPS = YES;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
STRIP_PNG_TEXT = NO;
@ -1820,6 +1846,7 @@
F8E6C4EF1DCA3B7900F64426 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@ -1837,7 +1864,7 @@
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
GCC_UNROLL_LOOPS = YES;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LLVM_LTO = YES;
SDKROOT = iphoneos;
STRIP_PNG_TEXT = NO;
@ -1854,7 +1881,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 117;
CURRENT_PROJECT_VERSION = 137;
DEVELOPMENT_TEAM = R3RLJ9TW52;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
@ -1870,15 +1897,18 @@
"HAVE_TOUCHSCREENGUI=1",
"ENABLE_GLES=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${SRCROOT}/../../../src",
"${SRCROOT}/../../../src/script",
"${SRCROOT}/../../../lib/gmp",
"${SRCROOT}/../../../lib/intl",
"${SRCROOT}/../../../lib/jsoncpp",
"${SRCROOT}/../deps/freetype/include/freetype2",
"${SRCROOT}/../../../lib/intl",
"${SRCROOT}/../deps/irrlicht/include",
"${SRCROOT}/../deps/libcurl/include",
"${SRCROOT}/../deps/luajit/include",
);
INFOPLIST_FILE = MultiCraft/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@ -1886,13 +1916,9 @@
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = "$(inherited)";
MARKETING_VERSION = 1.15.2;
MARKETING_VERSION = 1.17.0;
OTHER_CFLAGS = (
"$(inherited)",
"-isystem",
"\"${PODS_ROOT}/Headers/Public\"",
"-isystem",
"\"${PODS_ROOT}/Headers/Public/SSZipArchive\"",
"-fvisibility=hidden",
"-fdata-sections",
"-ffunction-sections",
@ -1905,6 +1931,7 @@
"-L${SRCROOT}/../deps/freetype/lib",
"-L${SRCROOT}/../deps/irrlicht",
"-L${SRCROOT}/../deps/libcurl/lib",
"-L${SRCROOT}/../deps/luajit/lib",
"-Wl,-dead_strip",
);
OTHER_SWIFT_FLAGS = "$(inherited) -DDEBUG";
@ -1920,7 +1947,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 117;
CURRENT_PROJECT_VERSION = 137;
DEVELOPMENT_TEAM = R3RLJ9TW52;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
@ -1937,15 +1964,18 @@
"HAVE_TOUCHSCREENGUI=1",
"ENABLE_GLES=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${SRCROOT}/../../../src",
"${SRCROOT}/../../../src/script",
"${SRCROOT}/../../../lib/gmp",
"${SRCROOT}/../../../lib/intl",
"${SRCROOT}/../../../lib/jsoncpp",
"${SRCROOT}/../deps/freetype/include/freetype2",
"${SRCROOT}/../../../lib/intl",
"${SRCROOT}/../deps/irrlicht/include",
"${SRCROOT}/../deps/libcurl/include",
"${SRCROOT}/../deps/luajit/include",
);
INFOPLIST_FILE = MultiCraft/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@ -1953,13 +1983,9 @@
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = "$(inherited)";
MARKETING_VERSION = 1.15.2;
MARKETING_VERSION = 1.17.0;
OTHER_CFLAGS = (
"$(inherited)",
"-isystem",
"\"${PODS_ROOT}/Headers/Public\"",
"-isystem",
"\"${PODS_ROOT}/Headers/Public/SSZipArchive\"",
"-fvisibility=hidden",
"-fdata-sections",
"-ffunction-sections",
@ -1972,6 +1998,7 @@
"-L${SRCROOT}/../deps/freetype/lib",
"-L${SRCROOT}/../deps/irrlicht",
"-L${SRCROOT}/../deps/libcurl/lib",
"-L${SRCROOT}/../deps/luajit/lib",
"-Wl,-dead_strip",
);
PRODUCT_BUNDLE_IDENTIFIER = mobi.MultiCraft;
@ -2004,12 +2031,20 @@
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
84C0FB1924B35D9200606FAA /* XCRemoteSwiftPackageReference "bugsnag-cocoa" */ = {
843F4C2F26617D0D005277FA /* XCRemoteSwiftPackageReference "ZipArchive" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/bugsnag/bugsnag-cocoa";
repositoryURL = "https://github.com/ZipArchive/ZipArchive";
requirement = {
kind = upToNextMinorVersion;
minimumVersion = 6.6.0;
kind = upToNextMajorVersion;
minimumVersion = 2.4.0;
};
};
84A608A225F0A02900D79FCD /* XCRemoteSwiftPackageReference "sentry-cocoa" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/getsentry/sentry-cocoa";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 7.5.0;
};
};
84C32A3524AF7A4500445E92 /* XCRemoteSwiftPackageReference "Nantes" */ = {
@ -2023,10 +2058,15 @@
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
84C0FB1A24B35D9200606FAA /* Bugsnag */ = {
843F4C3026617D0D005277FA /* ZipArchive */ = {
isa = XCSwiftPackageProductDependency;
package = 84C0FB1924B35D9200606FAA /* XCRemoteSwiftPackageReference "bugsnag-cocoa" */;
productName = Bugsnag;
package = 843F4C2F26617D0D005277FA /* XCRemoteSwiftPackageReference "ZipArchive" */;
productName = ZipArchive;
};
84A608A325F0A02900D79FCD /* Sentry */ = {
isa = XCSwiftPackageProductDependency;
package = 84A608A225F0A02900D79FCD /* XCRemoteSwiftPackageReference "sentry-cocoa" */;
productName = Sentry;
};
84C32A3624AF7A4500445E92 /* Nantes */ = {
isa = XCSwiftPackageProductDependency;

View File

@ -1 +0,0 @@

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

After

Width:  |  Height:  |  Size: 189 KiB

View File

@ -11,9 +11,9 @@
"top" : 0
},
"center" : {
"height" : 64,
"height" : 128,
"mode" : "tile",
"width" : 64
"width" : 128
},
"mode" : "9-part"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_0" orientation="landscape" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@ -16,11 +16,11 @@
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="844" height="390"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_bg" translatesAutoresizingMaskIntoConstraints="NO" id="fTI-Ku-Y1H">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_bg" translatesAutoresizingMaskIntoConstraints="NO" id="fTI-Ku-Y1H">
<rect key="frame" x="0.0" y="0.0" width="844" height="390"/>
</imageView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@ -38,6 +38,6 @@
</scene>
</scenes>
<resources>
<image name="icon_bg" width="64" height="64"/>
<image name="icon_bg" width="128" height="128"/>
</resources>
</document>

View File

@ -342,10 +342,5 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>bugsnag</key>
<dict>
<key>apiKey</key>
<string>1</string>
</dict>
</dict>
</plist>

View File

@ -1,6 +1,6 @@
import Foundation
import SSZipArchive
import Bugsnag
import ZipArchive
import Sentry
private enum Constants {
static let percentProgressIndex: Int = 0
@ -54,7 +54,7 @@ final class VersionManager {
do {
try content.write(toFile: filename, atomically: false, encoding: .ascii)
} catch {
Bugsnag.notifyError(error)
SentrySDK.capture(error: error)
}
}
}
@ -99,10 +99,9 @@ private extension ZipManager {
SSZipArchive.unzipFile(atPath: path, toDestination: destination, overwrite: true, password: ZIPPWD, progressHandler: { (file, zipInfo, progress, total) in
block(progress * 100 / total)
}) { (path, success, error) in
if let error = error {
Bugsnag.notifyError(error)
SentrySDK.capture(error: error)
errorBlock(error)
} else {
block(100)

View File

@ -40,6 +40,10 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
iPhone12 = 123,
iPhone12Pro = 124,
iPhone12ProMax = 125,
iPhone13Mini = 122,
iPhone13 = 123,
iPhone13Pro = 124,
iPhone13ProMax = 125,
// iPad
iPadAir = 205,
@ -56,6 +60,7 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
iPadPro11Inch = 216,
iPadPro12Dot9Inch3Gen = 217,
iPadMini5 = 218,
iPadMini6 = 219,
iPadAir3 = 219,
iPad7 = 220,
iPadPro11Inch2Gen = 216,
@ -114,6 +119,10 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
@"iPhone13,2" : @(iPhone12),
@"iPhone13,3" : @(iPhone12Pro),
@"iPhone13,4" : @(iPhone12ProMax),
@"iPhone14,4" : @(iPhone13Mini),
@"iPhone14,5" : @(iPhone13),
@"iPhone14,2" : @(iPhone13Pro),
@"iPhone14,3" : @(iPhone13ProMax),
// iPad
@"iPad6,11" : @(iPad5),
@ -145,6 +154,8 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
@"iPad5,2" : @(iPadMini4),
@"iPad11,1" : @(iPadMini5),
@"iPad11,2" : @(iPadMini5),
@"iPad14,1" : @(iPadMini6),
@"iPad14,2" : @(iPadMini6),
@"iPad6,3" : @(iPadPro9Dot7Inch),
@"iPad6,4" : @(iPadPro9Dot7Inch),
@ -189,17 +200,18 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
#define SDVersion4and7Inch (([SDVersion deviceVersion] == iPhone6) || ([SDVersion deviceVersion] == iPhone6S) || ([SDVersion deviceVersion] == iPhone7) || ([SDVersion deviceVersion] == iPhone8) || ([SDVersion deviceVersion] == iPhoneSE2Gen))
#define SDVersion5and5Inch (([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhone7Plus) || ([SDVersion deviceVersion] == iPhone8Plus) | ([SDVersion deviceVersion] == iPhone12Mini))
#define SDVersion5and5Inch (([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhone7Plus) || ([SDVersion deviceVersion] == iPhone8Plus) || ([SDVersion deviceVersion] == iPhone12Mini) || ([SDVersion deviceVersion] == iPhone13Mini))
#define SDVersion5and8Inch (([SDVersion deviceVersion] == iPhoneX) || ([SDVersion deviceVersion] == iPhoneXS) || ([SDVersion deviceVersion] == iPhone11Pro))
#define SDVersion6and1Inch (([SDVersion deviceVersion] == iPhoneXR) || ([SDVersion deviceVersion] == iPhone11) | ([SDVersion deviceVersion] == iPhone12) | ([SDVersion deviceVersion] == iPhone12Pro))
#define SDVersion6and1Inch (([SDVersion deviceVersion] == iPhoneXR) || ([SDVersion deviceVersion] == iPhone11) || ([SDVersion deviceVersion] == iPhone12) || ([SDVersion deviceVersion] == iPhone12Pro) || ([SDVersion deviceVersion] == iPhone13) || ([SDVersion deviceVersion] == iPhone13Pro))
#define SDVersion6and5Inch (([SDVersion deviceVersion] == iPhoneXSMax) || ([SDVersion deviceVersion] == iPhone11ProMax) | ([SDVersion deviceVersion] == iPhone12ProMax))
#define SDVersion6and5Inch (([SDVersion deviceVersion] == iPhoneXSMax) || ([SDVersion deviceVersion] == iPhone11ProMax) || ([SDVersion deviceVersion] == iPhone12ProMax) || ([SDVersion deviceVersion] == iPhone13ProMax))
#define SDVersion7and9Inch (([SDVersion deviceVersion] == iPadMini2) | ([SDVersion deviceVersion] == iPadMini3) | ([SDVersion deviceVersion] == iPadMini4) | ([SDVersion deviceVersion] == iPadMini5))
#define SDVersion7and9Inch (([SDVersion deviceVersion] == iPadMini2) || ([SDVersion deviceVersion] == iPadMini3) || ([SDVersion deviceVersion] == iPadMini4) || ([SDVersion deviceVersion] == iPadMini5) || ([SDVersion deviceVersion] == iPadMini6))
#define SDVersioniPhone12Series (([SDVersion deviceVersion] == iPhone12Mini) | ([SDVersion deviceVersion] == iPhone12Mini) | ([SDVersion deviceVersion] == iPhone12Pro) | ([SDVersion deviceVersion] == iPhone12ProMax))
#define SDVersioniPhone12Series (([SDVersion deviceVersion] == iPhone12Mini) || ([SDVersion deviceVersion] == iPhone12) || ([SDVersion deviceVersion] == iPhone12Pro) || ([SDVersion deviceVersion] == iPhone12ProMax) || \
([SDVersion deviceVersion] == iPhone13Mini) || ([SDVersion deviceVersion] == iPhone13) || ([SDVersion deviceVersion] == iPhone13Pro) || ([SDVersion deviceVersion] == iPhone13ProMax))
//#define SDVersion11Inch (([SDVersion deviceVersion] == iPadPro11Inch) || ([SDVersion deviceVersion] == iPadPro11Inch2Gen) || ([SDVersion deviceVersion] == iPadAir4))

View File

@ -1 +1 @@
NSUserTrackingUsageDescription = "This identifier will be used to deliver personalized ads to you.";
NSUserTrackingUsageDescription = "Your data will be used to provide you a better and personalized ad experience.";

View File

@ -1,7 +1,6 @@
#pragma once
#if 0
#define ADS
#ifdef OFFICIAL
#import "ads.h"
#else
#define ZIPPWD @"1" // zip password
@ -17,6 +16,8 @@ enum {
PATH_LIBRARY_CACHE,
};
void ioswrap_init();
void ioswrap_paths(int type, char *dest, size_t destlen);
void ioswrap_assets(void); // extracts assets.zip to PATH_LIBRARY_SUPPORT
@ -26,7 +27,13 @@ float ioswrap_scale();
void ioswrap_show_dialog(void *uiviewcontroller, const char *accept, const char *hint, const char *current, int type);
int ioswrap_get_dialog(const char **text);
void init_IOS_Settings();
void ioswrap_init_viewc(void *uiviewcontroller);
void ioswrap_events(int event);
void ioswrap_server_connect(bool multiplayer);
void ioswrap_exit_game();
void ioswrap_open_url(const char *url);
#ifdef __cplusplus
}

View File

@ -1,18 +1,30 @@
#import <Foundation/Foundation.h>
#import "ioswrap.h"
@import AVFoundation;
@import Foundation;
@import Sentry;
#import <AVFoundation/AVFoundation.h>
#import <Bugsnag/Bugsnag.h>
#import "ioswrap.h"
#import <MultiCraft-Swift.h>
#ifdef OFFICIAL
#import "ads.h"
#endif
static UIViewController *viewc;
/* Initialization iOS Specific Things */
void init_IOS_Settings()
void ioswrap_init()
{
BugsnagConfiguration *config = [BugsnagConfiguration loadConfig];
config.enabledErrorTypes.ooms = NO;
[Bugsnag startWithConfiguration:config]; // crash analytics
#ifndef OFFICIAL
NSString *SentryDSN = @"https://a92d50327ac74b8b9aa4ea80eccfb267@o447951.ingest.sentry.io/5428557";
#endif
[SentrySDK startWithConfigureOptions:^(SentryOptions *options) {
options.dsn = SentryDSN;
options.enableOutOfMemoryTracking = NO;
}]; // crash analytics
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; // don't stop background music
[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; // disable screen off timeout
}
/* Get Path for Assets */
@ -38,7 +50,6 @@ void ioswrap_paths(int type, char *dest, size_t destlen)
snprintf(dest, destlen, "%s/Caches", path_c);
}
/* Unzip Assets */
void ioswrap_assets()
{
@ -130,3 +141,51 @@ int ioswrap_get_dialog(const char **text)
return ret;
}
void ioswrap_init_viewc(void *uiviewcontroller)
{
viewc = (__bridge UIViewController *) uiviewcontroller;
#ifdef OFFICIAL
initUpdateManager(uiviewcontroller);
#endif
}
/* Events */
void ioswrap_events(int event)
{
// EAET_WILL_RESUME 0
// EAET_DID_RESUME 1
// EAET_WILL_PAUSE 2
// EAET_DID_PAUSE 3
// EAET_WILL_TERMINATE 4
// EAET_MEMORY_WARNING 5
NSLog(@"[EVENT] got event #%d", event);
}
void ioswrap_server_connect(bool multiplayer)
{
NSLog(@"[EVENT] got event server connect, mode: %s", multiplayer ? "MP" : "SP");
#ifdef OFFICIAL
adsServerConnect(multiplayer);
#endif
}
void ioswrap_exit_game()
{
NSLog(@"[EVENT] got event exit to menu");
#ifdef OFFICIAL
adsExitGame();
#endif
}
void ioswrap_open_url(const char *url)
{
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithUTF8String:url]];
UIApplication *application = UIApplication.sharedApplication;
if ([application canOpenURL:appStoreURL])
[application openURL:appStoreURL options:@{} completionHandler:nil];
}

View File

@ -1 +1 @@
NSUserTrackingUsageDescription = "Этот идентификатор будет использоваться для персонализации показываемой вам рекламы.";
NSUserTrackingUsageDescription = "Ваши данные будут использоваться, чтобы предоставить вам более интересную и персонализированную рекламу.";

View File

@ -3,7 +3,6 @@ platform :ios, '12.0'
use_frameworks!
install! 'cocoapods', :warn_for_multiple_pod_sources => false, :warn_for_unused_master_specs_repo => false
def appodeal
# source 'https://github.com/appodeal/CocoaPods.git'
ver = '2.9.0-Beta'
@ -23,7 +22,6 @@ target 'MultiCraft' do
pod 'leveldb-library'
pod 'libvorbis'
pod 'SSZipArchive'
appodeal
end

View File

@ -1,7 +1,7 @@
#!/bin/bash -e
. sdk.sh
FREETYPE_VERSION=2.10.4
FREETYPE_VERSION=2.11.0
if [ ! -d freetype-src ]; then
wget http://download.savannah.gnu.org/releases/freetype/freetype-$FREETYPE_VERSION.tar.gz

View File

@ -1,7 +1,7 @@
#!/bin/bash -e
. sdk.sh
CURL_VERSION=7.79.0
CURL_VERSION=7.79.1
if [ ! -d libcurl-src ]; then
wget https://curl.haxx.se/download/curl-$CURL_VERSION.tar.gz

View File

@ -70,6 +70,8 @@
#include "irrString.h"
#include "path.h"
#define _IRR_DEBUG_BREAK_IF IRR_DEBUG_BREAK_IF
//! UTF-16 surrogate start values.
static const irr::u16 UTF16_HI_SURROGATE = 0xD800;
static const irr::u16 UTF16_LO_SURROGATE = 0xDC00;

View File

@ -605,9 +605,6 @@ bool ClientLauncher::create_engine_device()
#ifdef __IOS__
CIrrDeviceiOS* dev = (CIrrDeviceiOS*) device;
porting::setViewController(dev->getViewController());
#ifdef ADS
ads_startup(dev->getViewController());
#endif
#endif
}

View File

@ -30,8 +30,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting_ios.h"
#endif
#if defined(__ANDROID__) || defined(__IOS__)
extern void external_pause_game();
#if defined(__IOS__)
extern "C" void external_pause_game();
#endif
bool MyEventReceiver::OnEvent(const SEvent &event)
@ -72,16 +72,9 @@ bool MyEventReceiver::OnEvent(const SEvent &event)
#ifdef __IOS__
if (event.EventType == irr::EET_APPLICATION_EVENT) {
int AppEvent = event.ApplicationEvent.EventType;
if (AppEvent == irr::EAET_DID_PAUSE) {
ioswrap_events(AppEvent);
if (AppEvent == irr::EAET_WILL_PAUSE)
external_pause_game();
#ifdef ADS
ads_set_paused(true);
#endif
}
#ifdef ADS
if (AppEvent == irr::EAET_DID_RESUME)
ads_set_paused(false);
#endif
return true;
}
#endif

View File

@ -17,8 +17,8 @@
#define PROJECT_NAME_C "MultiCraft"
#define STATIC_SHAREDIR ""
#define VERSION_MAJOR 1
#define VERSION_MINOR 15
#define VERSION_PATCH 6
#define VERSION_MINOR 17
#define VERSION_PATCH 0
#define VERSION_STRING STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_PATCH)
#endif

View File

@ -3191,7 +3191,11 @@ inline void Game::step(f32 *dtime)
#if defined(__ANDROID__) || defined(__IOS__)
if (g_menumgr.pausesGame()) {
runData.pause_game_timer += *dtime;
if (runData.pause_game_timer > 120.0f) {
float disconnect_time = 180.0f;
#ifdef __IOS__
disconnect_time = simple_singleplayer_mode ? 60.0f : 120.0f;
#endif
if (runData.pause_game_timer > disconnect_time) {
g_gamecallback->disconnect();
return;
}
@ -4987,7 +4991,7 @@ void the_game(bool *kill,
}
#if defined(__ANDROID__) || defined(__IOS__)
void external_pause_game()
extern "C" void external_pause_game()
{
if (!g_game)
return;
@ -4996,7 +5000,7 @@ void external_pause_game()
#endif
#ifdef __IOS__
void external_statustext(const char *text, float duration)
extern "C" void external_statustext(const char *text, float duration)
{
if (!g_game)
return;

View File

@ -323,7 +323,17 @@ void GUIEngine::run()
driver->endScene();
#if defined(__ANDROID__) || defined(__IOS__)
bool keyboardActive;
if (!porting::hasRealKeyboard())
keyboardActive = m_menu->getAndroidUIInput();
#endif
u32 frametime_min = 1000 / g_settings->getFloat("pause_fps_max") / 2;
#ifdef __IOS__
if (keyboardActive)
frametime_min = 1000 / g_settings->getFloat("fps_max");
#endif
if (m_clouds_enabled)
cloudPostProcess();
@ -331,11 +341,6 @@ void GUIEngine::run()
sleep_ms(frametime_min);
m_script->step();
#if defined(__ANDROID__) || defined(__IOS__)
if (!porting::hasRealKeyboard())
m_menu->getAndroidUIInput();
#endif
}
}

View File

@ -953,9 +953,14 @@ static bool open_uri(const std::string &uri)
openURIAndroid(uri);
return true;
#elif defined(__APPLE__)
#ifdef __IOS__
ioswrap_open_url(uri.c_str());
return true;
#else
const char *argv[] = {"open", uri.c_str(), NULL};
return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv,
(*_NSGetEnviron())) == 0;
#endif
#else
const char *argv[] = {"xdg-open", uri.c_str(), NULL};
return posix_spawnp(NULL, "xdg-open", NULL, NULL, (char**)argv, environ) == 0;

View File

@ -34,7 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#endif
extern int main(int argc, char *argv[]);
extern void external_pause_game();
extern "C" void external_pause_game();
void android_main(android_app *app)
{

View File

@ -1,7 +1,7 @@
/*
MultiCraft
Copyright (C) 2014-2020 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua
Copyright (C) 2014-2021 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua
Copyright (C) 2016-2019 sfan5
This program is free software; you can redistribute it and/or modify
@ -61,6 +61,7 @@ namespace porting {
void setViewController(void *v) {
uiviewcontroller = v;
ioswrap_init_viewc(v);
}
void showInputDialog(const std::string &acceptButton, const std::string &hint,
@ -79,22 +80,18 @@ namespace porting {
}
void notifyServerConnect(bool is_multiplayer) {
#ifdef ADS
ads_allow(!is_multiplayer);
#endif
ioswrap_server_connect(is_multiplayer);
}
void notifyExitGame() {
#ifdef ADS
ads_allow(true);
#endif
ioswrap_exit_game();
}
}
extern int real_main(int argc, char *argv[]);
void irrlicht_main() {
init_IOS_Settings();
ioswrap_init();
static const char *args[] = {
PROJECT_NAME,
};

View File

@ -1,7 +1,7 @@
/*
MultiCraft
Copyright (C) 2014-2020 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua
Copyright (C) 2014-2021 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua
Copyright (C) 2016-2019 sfan5
This program is free software; you can redistribute it and/or modify

View File

@ -100,7 +100,6 @@ void *ServerThread::run()
m_server->Receive();
} catch (con::NoIncomingDataException &e) {
} catch (con::PeerNotFoundException &e) {
infostream<<"Server: PeerNotFoundException"<<std::endl;
} catch (ClientNotFoundException &e) {
@ -1071,6 +1070,9 @@ void Server::Receive()
catch(con::PeerNotFoundException &e) {
// Do nothing
}
catch(con::NoIncomingDataException &e) {
return;
}
}
PlayerSAO* Server::StageTwoClientInit(u16 peer_id)

View File

@ -474,7 +474,8 @@ void TouchScreenGUI::handleReleaseEvent(size_t evt_id)
m_joystick_status[i] = false;
applyJoystickStatus();
m_joystick_btn_off->guibutton->setVisible(true);
if (m_visible)
m_joystick_btn_off->guibutton->setVisible(true);
m_joystick_btn_bg->guibutton->setVisible(false);
m_joystick_btn_center->guibutton->setVisible(false);
} else {