diff --git a/.efrocachemap b/.efrocachemap
index 94814226..3303ac68 100644
--- a/.efrocachemap
+++ b/.efrocachemap
@@ -3932,6 +3932,8 @@
"assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/f5/8b/14895df9caf46f326a3c939b34a4",
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
+ "ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
+ "ballisticacore-windows/build/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/51/8b/d7e62f3cac378d7898fd22219485",
"build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5d/1a/f0735adad6a5a61f7d057e857136",
"build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/fd/86/cf11d3e6becd308a242931196d89",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/40/24/47b24a97c48212c9fcf76afaf47b",
@@ -3948,10 +3950,10 @@
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/99/34/e6326c63e19988cca538bcfa0334",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4a/fe/0ee1bbd9d9f36347c9e260736a56",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/84/65/ea739b8a06e6da4e7c996747fea3",
- "build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/f8/da/7252bf0643502eebc6dd5ef1b2f0",
- "build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8d/98/3f53432a0e3223069127cb58ff4e",
- "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/85/79/abd5230a99d939a748ccce6b3a85",
- "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/5e/09/e1b81fcef9325fa3a01f31b4c18e",
+ "build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/4e/8a/c51595ec01924cda2719fdd61d39",
+ "build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2b/84/f1a39a6a1bbc5e6f1e05d565009a",
+ "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/f8/e5/9465d12b4bfb76609a768ec9fc81",
+ "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/f7/44/57914fe765f16f815f9a3655c8d8",
"build/prefab/lib/linux_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1a/ff/0027a7c84610c331be09633907ef",
"build/prefab/lib/linux_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e0/05/94ac67cbf2e665eeecfc77246caf",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/72/a8/bdf8597296d539357b344f75082d",
@@ -3960,12 +3962,12 @@
"build/prefab/lib/linux_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1f/b3/80375870a9ab83bbb63b50b03a73",
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e7/b0/f52d213949d05db13145a5247285",
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b6/6b/37174b3a0d72a05f1bb3d904b78b",
- "build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/44/6b/04af78e97ee050995d817a45eb3e",
- "build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4e/54/7882a3ffb858c5fd9d3864710608",
- "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b1/83/6f7ddb7287c0255ff47f1278d61e",
- "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e2/4e/bee642f19d7bd85c88d78f527edf",
- "build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8b/34/7763edde71ffbe5086fa1511fda3",
- "build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/eb/39/08cb2947d22333788cac329b119e",
- "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cf/88/cb670e31099da72cdb45ae1b2d51",
- "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/58/32/e6cfdb737ec9e1ac3952d5a60520"
+ "build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/be/a7/195ae804624dbeb6803f93a1a012",
+ "build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/05/51/1ae5692b76ed59fad0503f237d93",
+ "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ba/c5/9182deecb4828e2931ea4c06591a",
+ "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ba/a5/e4843ba222e159d7b163580e440c",
+ "build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3a/bd/ece30026ff3c39df47e80626bd4d",
+ "build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/08/74/826f2b32c7576bbf646794bfc189",
+ "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/c6/631cf07ec92de021afaa648646a6",
+ "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6c/54/618ae7f3191d1e6b9b0c18c4af85"
}
\ No newline at end of file
diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml
index 3c172cc6..f325f390 100644
--- a/.idea/dictionaries/ericf.xml
+++ b/.idea/dictionaries/ericf.xml
@@ -2469,6 +2469,7 @@
workdir
workflows
wpath
+ wprjp
wref
writeclasses
writefuncs
diff --git a/Makefile b/Makefile
index 047c3ab8..8089436d 100644
--- a/Makefile
+++ b/Makefile
@@ -162,7 +162,7 @@ prefab-clean:
# Specific platform prefab targets:
-# (what visual studio calls their x86 target platform)
+# (what visual studio calls their x86 (32 bit) target platform)
WINPLAT_X86 = Win32
# Mac debug:
@@ -411,7 +411,7 @@ build/prefab/full/linux_%_server/release/dist/ballisticacore_headless: .efrocach
build/prefab/lib/linux_%_server/release/libballisticacore_internal.a: .efrocachemap
@tools/pcommand efrocache_get $@
-# Windows debug:
+# Windows prefab debug:
RUN_PREFAB_WINDOWS_X86_DEBUG = cd build/prefab/full/windows_x86/debug \
&& ./BallisticaCore.exe
@@ -428,7 +428,7 @@ build/prefab/full/windows_x86/debug
build/prefab/full/windows_x86/debug/BallisticaCore.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-# Windows release:
+# Windows prefab release:
RUN_PREFAB_WINDOWS_X86_RELEASE = cd build/prefab/full/windows_x86/release \
&& ./BallisticaCore.exe
@@ -446,7 +446,7 @@ build/prefab/full/windows_x86/release
build/prefab/full/windows_x86/release/BallisticaCore.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-# Windows server debug:
+# Windows prefab server debug:
RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG = cd \
build/prefab/full/windows_x86_server/debug \
@@ -465,7 +465,7 @@ prefab-windows-x86-server-debug-build: prereqs \
build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-# Windows server release:
+# Windows prefab server release:
RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE = cd \
build/prefab/full/windows_x86_server/release \
@@ -484,6 +484,24 @@ prefab-windows-x86-server-release-build: prereqs \
build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
+# Windows visual-studio-compiled debug
+
+ballisticacore-windows/build/Debug_%/BallisticaCoreGenericInternal.lib: .efrocachemap
+ @tools/pcommand efrocache_get $@
+
+ballisticacore-windows/Generic/BallisticaCore.ico: .efrocachemap
+ @tools/pcommand efrocache_get $@
+
+ballisticacore-windows/build/Debug_%/BallisticaCoreGenericInternal.exe: \
+ ballisticacore-windows/build/Debug_%/BallisticaCoreGenericInternal.lib \
+ ballisticacore-windows/Generic/BallisticaCore.ico \
+ prereqs code resources
+ ${WIN_MSBUILD_EXE_B} \
+ ${shell wslpath -m -a \
+ ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj} \
+ -target:Build -property:Configuration=Debug \
+ -property:Platform=Generic ${VISUAL_STUDIO_VERSION}
+
# Tell make which of these targets don't represent files.
.PHONY: prefab-debug prefab-release prefab-debug-build prefab-release-build \
prefab-server-debug prefab-server-release prefab-server-debug-build \
diff --git a/ballisticacore-cmake/.idea/dictionaries/ericf.xml b/ballisticacore-cmake/.idea/dictionaries/ericf.xml
index 206e4a9e..c2759a89 100644
--- a/ballisticacore-cmake/.idea/dictionaries/ericf.xml
+++ b/ballisticacore-cmake/.idea/dictionaries/ericf.xml
@@ -1099,6 +1099,7 @@
wofocj
wonkiness
worldspace
+ wprjp
wsroot
wunused
wvmpth
diff --git a/ballisticacore-windows/Generic/BallisticaCore.rc b/ballisticacore-windows/Generic/BallisticaCore.rc
new file mode 100755
index 00000000..070f782f
Binary files /dev/null and b/ballisticacore-windows/Generic/BallisticaCore.rc differ
diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
new file mode 100644
index 00000000..f8c3df8e
--- /dev/null
+++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
@@ -0,0 +1,737 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {B0B090EA-92E7-457D-9785-ACDF917F9C93}
+ Win32Proj
+ BallisticaCoreGeneric
+ 10.0
+
+
+
+ Application
+ true
+ Unicode
+ v142
+
+
+ Application
+ true
+ Unicode
+ v142
+
+
+ Application
+ false
+ true
+ Unicode
+ v142
+
+
+ Application
+ false
+ true
+ Unicode
+ v142
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)..\build\$(Configuration)_$(Platform)\
+ $(ProjectDir)..\build\obj\$(MSBuildProjectName)\$(Platform)_$(Configuration)\
+
+
+ true
+ $(ProjectDir)..\build\$(Configuration)_$(Platform)\
+ $(ProjectDir)..\build\obj\$(MSBuildProjectName)\$(Platform)_$(Configuration)\
+
+
+ false
+ $(ProjectDir)..\build\$(Configuration)_$(Platform)\
+ $(ProjectDir)..\build\obj\$(MSBuildProjectName)\$(Platform)_$(Configuration)\
+
+
+ false
+ $(ProjectDir)..\build\$(Configuration)_$(Platform)\
+ $(ProjectDir)..\build\obj\$(MSBuildProjectName)\$(Platform)_$(Configuration)\
+
+
+
+ Use
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ stdafx.h
+ true
+ false
+ SyncCThrow
+ true
+ ../../src;../../src/external/windows/include/SDL2;../../src/external/windows/include/Python;../../src/external/windows/include;../../src/external/open_dynamics_engine-ef;../../src/external/qrencode-3.4.4
+ stdcpp17
+ Fast
+
+
+ Console
+ true
+
+
+ Default
+ ../../src/external/windows/lib/$(Platform)
+
+
+
+
+ Use
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ stdafx.h
+ true
+ false
+ SyncCThrow
+ true
+ ../../src;../../src/external/windows/include/SDL2;../../src/external/windows/include/Python;../../src/external/windows/include;../../src/external/open_dynamics_engine-ef
+ stdcpp17
+ Fast
+
+
+ Console
+ true
+
+
+ Default
+ ../../src/external/windows/lib/$(Platform)
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ stdafx.h
+ true
+ SyncCThrow
+ false
+ ../../src;../../src/external/windows/include/SDL2;../../src/external/windows/include/Python;../../src/external/windows/include;../../src/external/open_dynamics_engine-ef
+ stdcpp17
+ Fast
+
+
+ Console
+ true
+ true
+ true
+ UseFastLinkTimeCodeGeneration
+ ../../src/external/windows/lib/$(Platform)
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ stdafx.h
+ true
+ SyncCThrow
+ false
+ ../../src;../../src/external/windows/include/SDL2;../../src/external/windows/include/Python;../../src/external/windows/include;../../src/external/open_dynamics_engine-ef
+ stdcpp17
+ Fast
+
+
+ Console
+ true
+ true
+ true
+ UseFastLinkTimeCodeGeneration
+ ../../src/external/windows/lib/$(Platform)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+ {f20bed71-1a94-428b-b7f5-8aac3665753d}
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
new file mode 100644
index 00000000..25c8e135
--- /dev/null
+++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
@@ -0,0 +1,1619 @@
+
+
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica
+
+
+ ballistica
+
+
+ ballistica\config
+
+
+ ballistica\config
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\core
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\platform\apple
+
+
+ ballistica\platform\linux
+
+
+ ballistica\platform\linux
+
+
+ ballistica\platform
+
+
+ ballistica\platform
+
+
+ ballistica\platform
+
+
+ ballistica\platform\sdl
+
+
+ ballistica\platform\sdl
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene
+
+
+ ballistica\scene
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\open_dynamics_engine-ef\ode
+
+
+ external\qr_code_generator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Generic/Resource.h b/ballisticacore-windows/Generic/Resource.h
new file mode 100755
index 00000000..75ce2eb4
--- /dev/null
+++ b/ballisticacore-windows/Generic/Resource.h
@@ -0,0 +1,31 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by BallisticaCore.rc
+//
+
+#define IDS_APP_TITLE 103
+
+#define IDR_MAINFRAME 128
+#define IDD_BALLISTICACORE_DIALOG 102
+#define IDD_ABOUTBOX 103
+#define IDM_ABOUT 104
+#define IDM_EXIT 105
+#define IDI_BALLISTICACORE 107
+#define IDI_SMALL 108
+#define IDC_BALLISTICACORE 109
+#define IDC_MYICON 2
+#ifndef IDC_STATIC
+#define IDC_STATIC -1
+#endif
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+
+#define _APS_NO_MFC 130
+#define _APS_NEXT_RESOURCE_VALUE 129
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 110
+#endif
+#endif
diff --git a/ballisticacore-windows/Generic/stdafx.cpp b/ballisticacore-windows/Generic/stdafx.cpp
new file mode 100644
index 00000000..63dbd9a5
--- /dev/null
+++ b/ballisticacore-windows/Generic/stdafx.cpp
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// Ballistica.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file
diff --git a/ballisticacore-windows/Generic/stdafx.h b/ballisticacore-windows/Generic/stdafx.h
new file mode 100644
index 00000000..f15cf639
--- /dev/null
+++ b/ballisticacore-windows/Generic/stdafx.h
@@ -0,0 +1,8 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+#include "ballistica/config/config_windows_generic.h"
diff --git a/ballisticacore-windows/Generic/targetver.h b/ballisticacore-windows/Generic/targetver.h
new file mode 100644
index 00000000..dd4dee81
--- /dev/null
+++ b/ballisticacore-windows/Generic/targetver.h
@@ -0,0 +1,14 @@
+#pragma once
+
+// Including SDKDDKVer.h defines the highest available Windows platform.
+
+// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
+// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
+
+#include
+
+// Targeting Windows 7
+#define WINVER _WIN32_WINNT_WIN7
+#define _WIN32_WINNT _WIN32_WINNT_WIN7
+
+#include