diff --git a/.efrocachemap b/.efrocachemap
index 846e4a06..fb411c5e 100644
--- a/.efrocachemap
+++ b/.efrocachemap
@@ -3934,14 +3934,14 @@
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
"build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ac/96/c3b9934061393fe09cc90ff24b8d",
"build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/38/2b/5641b3b40846f74f232771ac0457",
- "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/24/b7/f7a54a77a43a97670bd448dfd3cc",
- "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ae/55/a35c61332f2b6d761f87f9ec2094",
- "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4d/04/9b581b616ff015783ae7933dcd6b",
- "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/db/89/e20095265d6f9ba568d983cf7e1f",
- "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/88/e3/65bba5e8585d7fc3f181ad6a3ad4",
- "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/78/26/83c0879bee2364c7ebac1aa0fa0d",
- "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/14/89/b155bde4ec2b545f02dd95948a1d",
- "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/56/d7/34926c551b6af98f8cfc038eb772",
- "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/ed/4e/8c5687c5130c5e99e355ddca6e92",
- "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8d/38/e075856c1a5bac98885c03c92c3e"
+ "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e3/43/5df3f99b46aa9b6aff2db87fabb4",
+ "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b1/06/b993362a65a5760ddfb10f2c59b9",
+ "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4f/99/2234c89a65d7e5d8463556d9df5e",
+ "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e4/96/f289ec31cdada6f41de5dce382bd",
+ "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/62/8d/6f2752d858b097c318920ff09cf5",
+ "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/77/1d/7986d62c92d9f34ca85396168923",
+ "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/a3/da/d5f88e92926543f61bd5dd80321e",
+ "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/60/8e/d7efd5e7d7a94439453909527d4e",
+ "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d3/b3/8124ea626db8dbd7b1744c335c7c",
+ "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/27/f7/87a5d3b8648352ac40398f86dc8e"
}
\ No newline at end of file
diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml
index 5bde834d..fae1c944 100644
--- a/.idea/dictionaries/ericf.xml
+++ b/.idea/dictionaries/ericf.xml
@@ -29,8 +29,8 @@
achname
achs
acinstance
- ack
ack'ed
+ ack
acked
acks
acnt
@@ -151,8 +151,8 @@
bacommon
badguy
bafoundation
- ballistica
ballistica's
+ ballistica
ballisticacore
ballisticacorecb
bamaster
@@ -793,8 +793,8 @@
gamedata
gameinstance
gamemap
- gamepad
gamepad's
+ gamepad
gamepadadvanced
gamepads
gamepadselect
@@ -1177,8 +1177,8 @@
lsqlite
lssl
lstart
- lstr
lstr's
+ lstr
lstrs
lsval
ltex
@@ -1362,6 +1362,9 @@
nosub
nosyncdir
nosyncdirs
+ nosyncfile
+ nosyncfiles
+ nosynctool
nosynctools
notdir
npos
@@ -1800,8 +1803,8 @@
sessionname
sessionplayer
sessionplayers
- sessionteam
sessionteam's
+ sessionteam
sessionteams
sessiontype
setactivity
@@ -2131,8 +2134,8 @@
txtw
typeargs
typecheck
- typechecker
typechecker's
+ typechecker
typedval
typeshed
typestr
diff --git a/config/config.json b/config/config.json
index 793059ca..ac760956 100644
--- a/config/config.json
+++ b/config/config.json
@@ -2,6 +2,22 @@
"code_source_dirs": [
"src/ballistica"
],
+ "cpplint_blacklist": [
+ "src/ballistica/generic/json.cc",
+ "src/ballistica/generic/json.h",
+ "src/ballistica/generic/utf8.cc",
+ "src/ballistica/graphics/texture/dds.h",
+ "src/ballistica/graphics/texture/ktx.cc",
+ "src/ballistica/platform/android/android_gl3.h",
+ "src/ballistica/platform/apple/app_delegate.h",
+ "src/ballistica/platform/apple/scripting_bridge_music.h",
+ "src/ballistica/platform/android/utf8/checked.h",
+ "src/ballistica/platform/android/utf8/unchecked.h",
+ "src/ballistica/platform/android/utf8/core.h",
+ "src/ballistica/platform/apple/sdl_main_mac.h",
+ "src/ballistica/platform/oculus/main_rift.cc",
+ "src/ballistica/platform/android/android_gl3.c"
+ ],
"name": "BallisticaCore",
"public": true,
"pylint_ignored_untracked_deps": [
diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc
new file mode 100644
index 00000000..82fa265b
--- /dev/null
+++ b/src/ballistica/ballistica.cc
@@ -0,0 +1,343 @@
+// Copyright (c) 2011-2020 Eric Froemling
+
+#include "ballistica/ballistica.h"
+
+#include