From d210675242b766eb8dcf309327ae53aa83ad856f Mon Sep 17 00:00:00 2001 From: Eric Froemling Date: Sun, 20 Feb 2022 15:50:00 -0600 Subject: [PATCH] language updates, clipboard support in mac test builds, tidying --- .efrocachemap | 82 +++++++++---------- .idea/dictionaries/ericf.xml | 2 + CHANGELOG.md | 3 +- .../.idea/dictionaries/ericf.xml | 3 + .../inspectionProfiles/Project_Default.xml | 31 +++++++ src/ballistica/ballistica.cc | 2 +- src/ballistica/game/host_activity.cc | 6 +- src/ballistica/input/device/joystick.cc | 42 +--------- src/ballistica/input/device/joystick.h | 1 - src/ballistica/input/input.cc | 3 + .../platform/apple/platform_apple.h | 73 +++++++++-------- src/ballistica/platform/platform.cc | 4 +- 12 files changed, 132 insertions(+), 120 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index d839c82f..37b9fdff 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,7 +420,7 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/51/eb/0a567253cc08c94c5d315a64d9af", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/bc/8f/a9c51a09c418136e386b7fdf21c7", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/02/e5/84916e123f47ccf11ddda380d699", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/92/86/8888faee87cda525007485ddf0e8", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/de/d7/c8c170867f5ba0682c6600d388ca", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/0f/e1/94378b32c786d5365a7810a15d73", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/55/8c/8d0a0585e434b94865ae4befc090", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/f6/21/951b7ff02b0ad14b1f0ac55763c4", @@ -438,7 +438,7 @@ "assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/8c/8e/67de1d9997a66299c8881d44ab22", "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/c2/f5/e7549f5179c22c6da97fafffc058", "assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/2d/e5/3737c6c3979cf381321c5472bea5", - "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/b1/81/d99fb5b8c368430944b357aa15fe", + "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/75/70/e33e6ee95830052e8f36cd2135f7", "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/c7/16/e31ce16d1b4150c271401669f24f", "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/d7/8b/acdfb39196be7856f8bad77eb6a0", "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/02/ab/e310f81582b6dc2ae93348d45166", @@ -452,7 +452,7 @@ "assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0", "assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/cb/11/e11957be752c3dc552898b60ab20", "assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/74/3d/c3d40a1e5ee1edf82555da05eda9", - "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/e8/0b/6825043ce101a831732eb9c97e4f", + "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/0a/4f/90fcd63bd12a7648b2a1e9b01586", "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/87/20/259904441097b886b841d7c4d09a", "assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/71/59/356404b8db683d8c946a40ca02e5", "assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/0b/24/3cc2b5a6ebe4bca1e01b40f8ed09", @@ -3971,50 +3971,50 @@ "assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e", "assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34", "ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a", - "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e7/5e/59333b9db5a9486c94b616d7d547", + "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ed/48/5b2f69e4f296dab9a564ef4ba0b2", "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/58/9b/76b597f4a14af112d343a02c727a", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/49/72/9d6dddb041e6d5948af59f42c6fc", - "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c6/d8/6c0f703639df3ce0caff7b2b6218", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cc/dc/9e3907edeff5bdcdf130f8b46043", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/86/cf/640a60d55fa9af110489e9f7d654", + "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/77/12/80eb1c3d63fc6bf5327566645541", "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/58/c8/b8b3ff0a84252fae685f4e0f0124", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a9/82/f26d0ff0283e7a6f32d4adb3b4ab", - "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/dc/72/32b9ae11568f811657edcb5129de", - "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/db/94/c3cb06d3bcd9564005863e40335a", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/22/bf/a66488be7a126cd94f7502b5be5e", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/92/50/97e262eaa0339f42f871aaab91da", - "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ca/cc/8c1200e34d617267627d91db8486", - "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/77/c6/7ca8897282baad0a079fdc3b12a0", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/82/a3/6c571299d0a7719bb6024561547b", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d2/ba/5614593a7ab4e2988e65bb92216f", - "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/e1/3f/78f91ddf22d58b430b8cd8bb7287", - "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/84/80/b3aa1869048ec7fc9fdad0ae877f", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/b0/61/528f9bb9f3776cab9504d7ac415a", - "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/11/16/174d4992497dcf9c936745036855", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3f/7d/b103ee4aa60c1713d8959fb37bdb", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/73/8e/afa74f2d49b74723aa64b478e103", + "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1f/e1/cb24f26e1a1e48fc134e87857a12", + "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/bd/a1/2e854d38392de862f27690289276", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/84/92/4d157d6cca2ede298dc52fd8e6e0", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e5/f9/7d8c05b6e3d71a486953afe02d2e", + "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a0/02/dbeec08c32a6532395a63f7ce7a3", + "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/36/d6/1ec4ee0bbb0697c886c19afc1464", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5a/11/aa1d5f115d7f5a3c036d5a170e5e", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/33/19/4dfc1c0930f2e22cad9cbed245bb", + "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/55/06/790f0c625ff2bbc37ec45a192fb2", + "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/dd/a3/aaf84cba25bcc7920d46fdf6051a", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/2c/99/71c64f151f39d4758285863604f2", + "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/ae/1e/84924ade4179dd92122302be3813", "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c0/e6/606201d69229c046ed9fb5c3338b", "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/63/a9/9da6ca254d462675cdce8abdbf0b", "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/61/45/eee74c4c33a9a76376b452a75689", "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7a/74/60613067338c57246225eb95828d", - "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f9/75/28d109017fc6233bf6c5e18c3ad3", - "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bc/38/15e5bde3bd60cd8d760cacb7c825", - "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ff/4d/95cf853485249ae7110b10093e65", - "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/43/6a/85802eec068c4aad35253ade806c", - "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b1/07/3409386feb1e5cd448a4e89007db", - "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/87/6c/560bd65f3fbdb007e562593079df", - "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3e/03/8d57f7814793dab7907834cf29ff", - "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d9/c8/6e1236bd6f7e6067fd43a2a3b28d", - "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c5/d7/7b3d6226d950c09d90ca8dbf3732", - "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/78/3a/d36f49ada60ed6d8cb4fabceca2d", - "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d0/49/5818e127d362afa6ab928323ff43", - "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6c/d9/dce5d751277c55ad994446dcf4e2", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/0e/56/c00af8d4bc0fdb76402fca28b5d3", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/59/e4/297cefcd5c754fbeb154d7354dba", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/4e/51/b1420c4c937efdc09581e511c7f9", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/ce/13/8112685d64b9dd0e24edd87dafdc", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/e0/c6/be6eec53dc23d864ffb0919429fb", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/47/18/9dac3ea464b3e93fb132d1a66f45", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/4f/77/4130b38ddac3afb2f11bbeb3b9b5", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/6a/4c/c035ab61ffd17d70c2cb4091eb91", + "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/57/03/10ed96783f925f635679fd54f52b", + "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ef/d3/3ce6784fb56347646d4e8c7479ec", + "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/39/25/8f3ffb98cb73cf0bdd974b98d947", + "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e5/be/fba3c5fbf804aed9e0fea8d9f7c1", + "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/de/1e/5016a6a654464001226d6d84c3dc", + "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/25/05/df2cc676d8bb4e715826984fcd5f", + "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/16/98/97ddbdaf3e1369e292d6cdf67dc2", + "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fa/a9/9ef499b38e4d899f7fd362f4b59e", + "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f9/35/d728d8ab9fe691366225c5a7e199", + "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bf/ef/c48e4357202b00879e6848e81130", + "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a1/90/c69d9978cc8808612fde4bae8232", + "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1c/4d/a1a2da08fd6e76aa051c301a5ab8", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/99/21/b71e35e4a679f8677ea00973a9e2", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/8f/1f/473567523fd49f1ffbff870422a9", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/15/52/5e13d441ffd25d1daa220dbde46e", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/0c/c8/a617edbe5d634364964ee956239f", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/c8/83/db874353ce5a53932abd8c4066e8", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/d8/47/b007731fa81a438ba3eff999bdca", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/1d/8c/795b3914ad039b5dad704199a7e4", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/89/a8/aa768714b1fd24649f08f7ef5905", "src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/c5/18/29d9fe8e483ce222d3263336f7e6", "src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/9d/7e/0a5125aa421e722c59d22b8beb19" } \ No newline at end of file diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 28760bb1..8c6095a7 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -614,6 +614,7 @@ downmix dpad dpath + dpos dprofilename drawscore drawscreen @@ -2538,6 +2539,7 @@ useragentstring userbase userfunctions + usid utcnow utimensat uuidmodule diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f1cba3e..9b2e0f97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ -### 1.6.9 (20469, 2022-02-19) +### 1.6.9 (20472, 2022-02-20) - Upgraded Android Python to 3.9.10 - Fixed an issue with SSL in Android builds that was preventing communication with the master-server in 1.6.8 - Added a new network-diagnostics tool at 'Settings->Advanced->Network Testing'. Can be used to diagnose issues talking to master-servers/etc. (especially useful now that SSL can factor in) +- Added clipboard support to Mac test build (thought pasting currently requires ctrl-v instead of cmd-v). ### 1.6.8 (20458, 2022-02-16) - Added Filipino language (Thanks David!) diff --git a/ballisticacore-cmake/.idea/dictionaries/ericf.xml b/ballisticacore-cmake/.idea/dictionaries/ericf.xml index 4e9a01f4..cf4cbd5a 100644 --- a/ballisticacore-cmake/.idea/dictionaries/ericf.xml +++ b/ballisticacore-cmake/.idea/dictionaries/ericf.xml @@ -304,6 +304,7 @@ downsample dpad dpads + dpos drpt dsize dsound @@ -412,6 +413,7 @@ fovs fovx fovy + fpath framebuffers framedef frameldefs @@ -1203,6 +1205,7 @@ unsynchronized uppercased userspace + usid uther uuidmodule uuids diff --git a/ballisticacore-cmake/.idea/inspectionProfiles/Project_Default.xml b/ballisticacore-cmake/.idea/inspectionProfiles/Project_Default.xml index f52b6fcd..4d495b1e 100644 --- a/ballisticacore-cmake/.idea/inspectionProfiles/Project_Default.xml +++ b/ballisticacore-cmake/.idea/inspectionProfiles/Project_Default.xml @@ -13,6 +13,37 @@ + + + diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index 15a5cda7..258cb842 100644 --- a/src/ballistica/ballistica.cc +++ b/src/ballistica/ballistica.cc @@ -21,7 +21,7 @@ namespace ballistica { // These are set automatically via script; don't modify them here. -const int kAppBuildNumber = 20469; +const int kAppBuildNumber = 20472; const char* kAppVersion = "1.6.9"; // Our standalone globals. diff --git a/src/ballistica/game/host_activity.cc b/src/ballistica/game/host_activity.cc index 5cabe4bb..961a09c1 100644 --- a/src/ballistica/game/host_activity.cc +++ b/src/ballistica/game/host_activity.cc @@ -385,7 +385,7 @@ auto HostActivity::Update(millisecs_t time_advance) -> millisecs_t { // If we haven't been told to start yet, don't do anything more. if (!_started) { - return 1000; + return 100; } // Advance base time by the specified amount, stopping at all timers along the @@ -426,7 +426,9 @@ void HostActivity::GraphicsQualityChanged(GraphicsQuality q) { } void HostActivity::Draw(FrameDef* frame_def) { - if (!_started) return; + if (!_started) { + return; + } scene()->Draw(frame_def); } diff --git a/src/ballistica/input/device/joystick.cc b/src/ballistica/input/device/joystick.cc index d82e8f82..1f211a57 100644 --- a/src/ballistica/input/device/joystick.cc +++ b/src/ballistica/input/device/joystick.cc @@ -99,7 +99,6 @@ Joystick::Joystick(int sdl_joystick_id, const std::string& custom_device_name, sdl_joystick_ = nullptr; is_mfi_controller_ = (custom_device_name_ == kMFiControllerName); - is_mac_wiimote_ = (custom_device_name_ == "Wiimote"); // Hard code a few remote controls. // The newer way to do this is just set 'UI-Only' on the device config @@ -297,27 +296,6 @@ Joystick::~Joystick() { child_joy_stick_ = nullptr; } - // If we're a wiimote, announce our departure. - if (g_buildconfig.ostype_macos() && is_mac_wiimote_) { - char msg[255]; - - int num = device_number(); - - // If we disconnected before any events came through, treat it as an error. - snprintf(msg, sizeof(msg), "Wii Remote #%d", num); - - // Ask the user to try again if the disconnect was immediate. - std::string s; - if (GetRealTime() - creation_time_ < 5000) { - s = g_game->GetResourceString("controllerDisconnectedTryAgainText"); - } else { - s = g_game->GetResourceString("controllerDisconnectedText"); - } - Utils::StringReplaceOne(&s, "${CONTROLLER}", msg); - ScreenMessage(s); - g_audio->PlaySound(g_media->GetSound(SystemSoundID::kCorkPop)); - } - // Have SDL actually close the joystick in the main thread. // Send a message back to the main thread to close this SDL Joystick. // HMMM - can we just have the main thread close the joystick immediately @@ -342,25 +320,7 @@ auto Joystick::GetDefaultPlayerName() -> std::string { return InputDevice::GetDefaultPlayerName(); } -void Joystick::ConnectionComplete() { - assert(InGameThread()); - - // Special case for mac wiimotes. - if (g_buildconfig.ostype_macos() && is_mac_wiimote_) { - char msg[128]; - - int num = device_number(); - - snprintf(msg, sizeof(msg), "Wii Remote #%d", num); - g_audio->PlaySound(g_media->GetSound(SystemSoundID::kGunCock)); - - // Replace ${CONTROLLER} with it in our message. - std::string s = g_game->GetResourceString("controllerConnectedText"); - Utils::StringReplaceOne(&s, "${CONTROLLER}", msg); - ScreenMessage(s); - return; - } -} +void Joystick::ConnectionComplete() { assert(InGameThread()); } auto Joystick::ShouldBeHiddenFromUser() -> bool { std::string d_name = GetDeviceName(); diff --git a/src/ballistica/input/device/joystick.h b/src/ballistica/input/device/joystick.h index 597ec4a4..0b5a587a 100644 --- a/src/ballistica/input/device/joystick.h +++ b/src/ballistica/input/device/joystick.h @@ -115,7 +115,6 @@ class Joystick : public InputDevice { bool is_remote_app_{}; bool is_mfi_controller_{}; bool is_mac_ps3_controller_{}; - bool is_mac_wiimote_{}; millisecs_t ps3_last_joy_press_time_{-10000}; diff --git a/src/ballistica/input/input.cc b/src/ballistica/input/input.cc index 12f8007f..016efaf7 100644 --- a/src/ballistica/input/input.cc +++ b/src/ballistica/input/input.cc @@ -1219,6 +1219,9 @@ void Input::HandleKeyPress(const SDL_Keysym* keysym) { // Ctrl-V or Cmd-V sends paste commands to any interested text fields. // Command-Q or Control-Q quits. + if (!repeat_press && keysym->sym == SDLK_v) { + printf("PASTE?"); + } if (!repeat_press && keysym->sym == SDLK_v && ((keysym->mod & KMOD_CTRL) || (keysym->mod & KMOD_GUI))) { // NOLINT g_ui->SendWidgetMessage(WidgetMessage(WidgetMessage::Type::kPaste)); diff --git a/src/ballistica/platform/apple/platform_apple.h b/src/ballistica/platform/apple/platform_apple.h index bf7c3114..e5f02c0d 100644 --- a/src/ballistica/platform/apple/platform_apple.h +++ b/src/ballistica/platform/apple/platform_apple.h @@ -25,56 +25,65 @@ class PlatformApple : public Platform { auto DoHasTouchScreen() -> bool override; auto GetUIScale() -> UIScale override; auto IsRunningOnDesktop() -> bool override; - void HandleLog(const std::string& msg) override; - void SetupDataDirectory() override; - void GetTextBoundsAndWidth(const std::string& text, Rect* r, - float* width) override; - void FreeTextTexture(void* tex) override; + auto HandleLog(const std::string& msg) -> void override; + auto SetupDataDirectory() -> void override; + auto GetTextBoundsAndWidth(const std::string& text, Rect* r, float* width) + -> void override; + auto FreeTextTexture(void* tex) -> void override; auto CreateTextTexture(int width, int height, const std::vector& strings, const std::vector& positions, const std::vector& widths, float scale) -> void* override; auto GetTextTextureData(void* tex) -> uint8_t* override; - void GetFriendScores(const std::string& game, const std::string& game_version, - void* py_callback) override; - void SubmitScore(const std::string& game, const std::string& version, - int64_t score) override; - void ReportAchievement(const std::string& achievement) override; + auto GetFriendScores(const std::string& game, const std::string& game_version, + void* py_callback) -> void override; + auto SubmitScore(const std::string& game, const std::string& version, + int64_t score) -> void override; + auto ReportAchievement(const std::string& achievement) -> void override; auto HaveLeaderboard(const std::string& game, const std::string& config) -> bool override; - void ShowOnlineScoreUI(const std::string& show, const std::string& game, - const std::string& game_version) override; - void Purchase(const std::string& item) override; - void RestorePurchases() override; + auto ShowOnlineScoreUI(const std::string& show, const std::string& game, + const std::string& game_version) -> void override; + auto Purchase(const std::string& item) -> void override; + auto RestorePurchases() -> void override; auto NewAutoReleasePool() -> void* override; - void DrainAutoReleasePool(void* pool) override; - void DoOpenURL(const std::string& url) override; - void ResetAchievements() override; - void GameCenterLogin() override; - void PurchaseAck(const std::string& purchase, - const std::string& order_id) override; + auto DrainAutoReleasePool(void* pool) -> void override; + auto DoOpenURL(const std::string& url) -> void override; + auto ResetAchievements() -> void override; + auto GameCenterLogin() -> void override; + auto PurchaseAck(const std::string& purchase, const std::string& order_id) + -> void override; auto IsOSPlayingMusic() -> bool override; - void SetHardwareCursorVisible(bool visible) override; - void QuitApp() override; - void GetScoresToBeat(const std::string& level, const std::string& config, - void* py_callback) override; - void OpenFileExternally(const std::string& path) override; - void OpenDirExternally(const std::string& path) override; - void MacMusicAppInit() override; + auto SetHardwareCursorVisible(bool visible) -> void override; + auto QuitApp() -> void override; + auto GetScoresToBeat(const std::string& level, const std::string& config, + void* py_callback) -> void override; + auto OpenFileExternally(const std::string& path) -> void override; + auto OpenDirExternally(const std::string& path) -> void override; + auto MacMusicAppInit() -> void override; auto MacMusicAppGetVolume() -> int override; - void MacMusicAppSetVolume(int volume) override; - void MacMusicAppGetLibrarySource() override; - void MacMusicAppStop() override; + auto MacMusicAppSetVolume(int volume) -> void override; + auto MacMusicAppGetLibrarySource() -> void override; + auto MacMusicAppStop() -> void override; auto MacMusicAppPlayPlaylist(const std::string& playlist) -> bool override; auto MacMusicAppGetPlaylists() -> std::list override; - void StartListeningForWiiRemotes() override; - void StopListeningForWiiRemotes() override; + auto StartListeningForWiiRemotes() -> void override; + auto StopListeningForWiiRemotes() -> void override; auto IsEventPushMode() -> bool override; auto ContainsPythonDist() -> bool override; auto GetPlatformName() -> std::string override; auto GetSubplatformName() -> std::string override; + auto DoClipboardIsSupported() -> bool override; + auto DoClipboardHasText() -> bool override; + auto DoClipboardSetText(const std::string& text) -> void override; + auto DoClipboardGetText() -> std::string override; + + /// Return current text from the clipboard. Raises an Exception if + /// clipboard is unsupported or if there's no text on the clipboard. + auto ClipboardGetText() -> std::string; + private: // std::mutex log_mutex_; // std::string log_line_; diff --git a/src/ballistica/platform/platform.cc b/src/ballistica/platform/platform.cc index 5c6c228d..d6092d51 100644 --- a/src/ballistica/platform/platform.cc +++ b/src/ballistica/platform/platform.cc @@ -1479,7 +1479,9 @@ auto Platform::DoClipboardGetText() -> std::string { if (out == nullptr) { throw Exception("Error fetching clipboard contents.", PyExcType::kRuntime); } - return out; + std::string out_s{out}; + SDL_free(out); + return out_s; #else // Shouldn't get here since we default to no clipboard support. FatalError("Shouldn't get here.");