Commit Graph

22386 Commits

Author SHA1 Message Date
Deve
3a6038fc67 Simplify linux build script a bit 2021-03-20 00:35:40 +01:00
Mary
6631dbdfb9
RichPresence: support addon tracks and karts (#4506)
* RichPresence: support addon tracks and karts

* RichPresence: use 'Story Mode' for internal tracks

* RichPresence: only cache is assets has data

* RichPresence: update RPC after asset list retrieved

* RichPresence: move AssetRequest processing to main thread
2021-03-19 23:37:06 +08:00
Benau
dd5fcfce47 Remove assertion for discord rich presence 2021-03-18 11:03:16 +08:00
Benau
b59c65e989 Fix addon karts display of online games 2021-03-18 10:58:06 +08:00
Benau
7763d851be Add spectate icon in discord rich presence 2021-03-18 10:38:29 +08:00
Benau
cf6bbfae05 Update translation and AppData 2021-03-13 00:52:30 +08:00
Benau
723b13e9c7 Update translation source 2021-03-13 00:52:15 +08:00
Benau
9767f73da6 Don't make debug message translatable 2021-03-13 00:50:54 +08:00
Benau
2dde385cf5 Use dns c library if enabled 2021-03-12 09:32:40 +08:00
Mary Strodl
67af723087 Fix switch compilation 2021-03-11 20:13:27 -05:00
Benau
f1aa29634b Add dns c library 2021-03-12 09:07:14 +08:00
Mary Strodl
9d57deb35b
RichPresence: return on doConnect even when disabled 2021-03-11 07:42:51 -05:00
Benau
da05d1e905 Make discord code more thread safe 2021-03-11 10:44:24 +08:00
Benau
f2cc6559e6 Fix coding style and use Log::error instead 2021-03-10 16:49:20 +08:00
Benau
d1092349f7 Fix compiler warnings 2021-03-10 10:57:03 +08:00
Mary
0dd3c62a43
Discord rich presence (#4500)
* WIP RPC support

* Might have windows support now, don't peek

* Windows support

* RichPresence: __SWITCH__ => DISABLE_RPC (for MOBILE_STK support)

* RichPresence: Handle JSON strings according to spec, support for addons icon

* RichPresence: use translated difficulty name

* RichPresence: disable when client_id=-1

* RichPresence: thread connection, show server name on RPC

* RichPresence: destroy on close

* RichPresence: don't compile methods at all if DISABLE_RPC

* RichPresence: fix windows compile (untested)

* RichPresence: fix for mac

* RichPresence: Linux needs MSG_NOSIGNAL still

* RichPresence: fix memory leaks, don't spam update while not connected

* RichPresence: free thread on terminate

* RichPresence: handle initial registration

* RichPresence: fix compiler warning
2021-03-10 10:47:33 +08:00
Mary
8daf149895
Switch fixes (rest of cherry pick) (#4504)
* InputManager: support split joycons, fix mappings

* CFileSystem: getAbsoluteFilename() - replace double slashes

* CFileSystem: typo in macro

* debug: use touch handler for debug (strange behaviour on switch SDL)

* InputManager: don't need SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS

* CFileSystem: getAbsoluteFilename() - replace double slashes

* MaterialManager: hack to make material properties apply properly
2021-03-10 09:59:48 +08:00
Mary
cc125c5f68
Switch fixes (#4503)
* InputManager: support split joycons, fix mappings

* CFileSystem: getAbsoluteFilename() - replace double slashes

* CFileSystem: typo in macro

* debug: use touch handler for debug (strange behaviour on switch SDL)

* InputManager: don't need SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS
2021-03-09 23:42:48 +08:00
Benau
cee737e405 Fix incorrect shortcut help 2021-03-09 15:08:08 +08:00
Benau
61d7aec726 Fix missing engine sound after changeKart 2021-03-09 15:05:11 +08:00
Benau
48b73520f0 Allow custom skid sound for newly exported karts 2021-03-09 15:02:54 +08:00
Benau
0a97efc37c Add scripting function to instantly change kart 2021-03-09 13:19:38 +08:00
Richard Qian
f269b4db91 Make demo mode use less hard-coded items
The player kart, difficulty, game mode, and reverse are no longer static values

Also ensure that there is a value pressed when exiting demo via a keypress
2021-03-08 21:27:39 -06:00
Richard Qian
969de9e751
Improved artist debug mode (#4501)
* Add more functionality to the debug menu

Includes:
* Front of kart view
* Inverse side of kart view
* Change to kart #9 or #10
* Attachments for AI karts

* Fix enumeration value not handled in switch for debug camera

* More enhancements to the debug menu, part 2

Includes:
* Restore access to the anchor/anvil powerup
* Clear the current powerup or attachment
* Change to kart #11 or #12
* Flatten karts as if they were hit by a swatter
* Block most of the view with plungers

* Enable executing some keypress actions from the debug menu in a new sub-menu

Includes:
* Rescuing karts from menu
* Pausing the game from menu (but keypresses will cause the game to crash)
* Moved "To next kart" menu entry to be right below "To previous kart" for easier reach

* Change print kart positions to info level, better labeling of side kart views

* Prevent crashes when trying to use 'Behind wheel view' on a ghost kart

* Add close button to the debug slider dialog, and a function to enable/disable spinners

* Make it easier to read and select kart camera targets from the debug menu

* Add another dialog (reusing the debug slider code) to allow the user to select
from a slider the kart number to change to

* The 11th and 12th target slots have been removed to make the submenu cleaner,
but the 9th and 10th slots have been left in place

* The predefined slots (1st place to 10th place) actually use numbers

* Improve the appearance of the FPS (frames per second) counter

* Shift the position closer to the center, so that in-race kart icons are not obscured
* The box and text position adapt based on the screen resolution
* Use a thin black border for the font, and make the font white-colored
* Decrease the font scaling to 0.7, so that other UI elements can be seen more easily

* Improve debug keyboard shortcuts handling, rearrange some shortcuts

Most shortcuts are now handled by Debug instead of InputManager directly
Other changes include:
* Fix moving right in 1st-person view not working
* Change the 1st-person view shortcuts to work more like in Blender
* Add more keyboard shortcuts for quickly seeing the top and sides of a kart
* The key to show player list in soccer mode no longer needs to be held down
* Rearrange some shortcuts to flow more naturally

New list of debug keyboard shortcuts:
* F1 - Normal view
* F2 - Top view
* F3 - Right side of kart view
* F4 - Left side of kart view
* F5 - 1st-person view
* F6 - Reload SP textures
* F7 - Next kart
* F8 - Previous kart
* F9 - Show player list in soccer mode
* Q - Move 1st-person view camera down
* E - Move 1st-person view camera up
* R - Rotate 1st-person view camera right
* F - Rotate 1st-person view camera left

* Exit demo mode when there also are no dialogs active; fixes related crashes

* Improve the debug menu, various fixes to some menu items, and mouse-accessible actions

Includes:
* Debug menu opens at the cursor position, but not at off-screen places
* Ensure that the debug menu stays (almost) within the actual window
* Middle mouse button can also be used to access the debug menu
* Move all items into submenus, rearrange most submenus to keep a compact size
* Add ability to set powerup and nitro amount by debug slider dialog
* Label the some commands with the new keyboard shortcuts
* Screenshots can now be saved via the debug menu
* Texture reloading can now be done via the debug menu

* Add more debug shortcut keys, change many of the existing ones

The full shortcuts list will be explained later

Includes:
* Use Control and Shift keys to fit more shortcuts onto fewer keys
* Label the debug menu items with the keys that can be used to activate them
* Fix more debug menu items causing game crashes in certain situations
* Add help message dialog to tell users the list of static/debug shortcuts; incomplete
* Slightly alter the free margins that the debug menu can appear in
* Render target textures (RTT) can now be dumped via the debug menu
* Replace the 10th kart camera target with the last kart camera target
* Switch the shortcuts used for activating history save and manual replay saving

* Finish labelling the remaining debug actions, complete the debug keys help dialog

Unfortunately, the now unused tutorial message dialog has been repurposed for this use,
and the font sizes greater than 'Large' will cause some text to draw outside the dialog

* Document the remaining command-line parameters, clean up some of them

This adds another method that will print out the previously undocumented debug options

Rename --gamepad-visuali[s,z]ation to --gamepad-visuals

Also fix some comments related to the user config, including the game mode numbers

* The AI cannot handle the anvil powerup anymore, but it won't spam logs anymore
2021-03-08 11:23:28 +08:00
Richard Qian
142c9ccf22 Use the last used input device when launching the tutorial from the help menu 2021-03-07 12:16:23 -06:00
Richard Qian
68e6e93f2e Use a button bar for the keypress dialog that appears during controller configuration 2021-03-07 12:13:32 -06:00
Richard Qian
33b75eae96 Use a button bar for the confirm resolution dialog, and make it slightly smaller 2021-03-07 12:09:47 -06:00
Benau
1d65cd9ffc Move premultiplied alpha to shader 2021-03-07 15:41:00 +08:00
Benau
db98783f09 Make switch broadcast detection ipv6 aware (even unused for now) 2021-03-05 09:47:20 +08:00
Mary Strodl
b93a24a184
Clock up CPU while loading 2021-03-04 09:57:02 -05:00
Mary
7509e1bc0a
Support broadcast address on switch (and better service calls) (#4498)
* Support broadcast address on switch. Also use R_SUCCEEDED for service calls

* servers_manager: fallback to default broadcast address
2021-03-04 11:23:03 +08:00
Mary
d9b8b7acad
Support for Nintendo Switch (#4491)
* WIP support for Nintendo Switch

* OpenAL is usable

* Remove some debug code, add manual crash when DEBUG_NXLINK is on

* Remove more debug logs

* Support touch, account name detection, language detection. Remove resolution settings

* Stylistic changes

* SFXManager: update on main thread

* Add build script, remove crypto.hpp changes, disable opengl recorder on switch

* make: use sudo where needed, libs=>lib, portlib=>portlibs

* make: build harfbuzz with freetype

* main: remove DEBUG_NXLINK

* socket_address: this comment is no longer relevant

* Fix indentation in SDL, remove extra debug logs from InputManager

* InputManager: make log debug, not info

* CMakeLists: add mbedtls include dirs on switch

* main: deinitialize stuff

* main_loop: fix format
2021-03-04 09:23:23 +08:00
Benau
d1e73f550d Update desktop and AppData files 2021-02-26 16:23:20 +08:00
Benau
460c95fb66 Generate desktop and AppData files with python script 2021-02-26 16:08:15 +08:00
Benau
16c52a693e Warn inappropriate network console usage 2021-02-26 12:01:23 +08:00
Benau
3e0a651e01 Fix possible infinite when broken navmesh with separated nodes 2021-02-26 11:55:16 +08:00
Benau
b05452a9c9 Fix possible crash for mbedtls 2021-02-25 12:15:26 +08:00
Benau
fe6d38b9e2 Fix untranslated non-ready fps string 2021-02-25 11:07:54 +08:00
Benau
073c6bcee9 Update country names 2021-02-22 11:25:11 +08:00
Benau
2947ba42a8 Update translation 2021-02-22 11:19:02 +08:00
Benau
035a761b30 Fix text overlapped with long translation 2021-02-22 10:14:06 +08:00
Semphris
d6967050ab Repaired GitHub actions workflow 2021-02-21 00:40:06 -05:00
Benau
d753393f4d Use MbedTLS instead of Nettle 2021-02-21 01:06:22 +08:00
Benau
39c42c3f0c Fix 1st time infinite start after server creation failure 2021-02-19 10:25:46 +08:00
Benau
b6fd98675a Update translation source 2021-02-16 09:27:52 +08:00
QwertyChouskie
559a72aab5
Fix english
Minor fix.
2021-02-15 15:38:48 -08:00
Benau
262c8f2f07 Fix #4488 2021-02-13 10:33:26 +08:00
Benau
cde382bcff Update translation source, appdata and desktop file 2021-02-12 12:47:57 +08:00
samuncle
5cb36e38cf
Feature/enable lod autocompute (#3970)
* Enable LoD autocompute

* bring back the autocompute lod function

* Add the area as main function to compute the lod level

* Bring back the area based auto lod computation

Co-authored-by: samuncle <samuncle06@gmail.com>
2021-02-12 11:16:38 +08:00
Richard Qian
f136c6fe36
In-game high scores management (#4483)
* Add in-game high score selection screens, based on the ghost replay screens

Its functionality is basic for now, mainly to let players have a central place to view
their high scores

Other things to improve:
* Allow sorting the high score entries by criteria
* Allow deleting high score nodes and possibly entries
* Use better icons

* The string for the high scores title in the track info screen can now be translated

* Refine in-game high score selection screens

Includes:
* High score info dialog now shows track and setup information
* A race can be started with the displayed setup, using the current player and kart
* Icon to access the screen now placed between the tutorial and achievements buttons
* It is possible to delete a specific high score group or all of the high score groups
* Change the order of some columns to make them easier to hide for non-linear modes
* The list will now filter out enpty high score groups

* Replace bomb icon (as used in the help menu) with the full object version from STK 0.8

It has been edited to remove most of the transparency in the object itself

* Implement column clicking in the high score selection screen, and minor GUI fixes

Note that high score entry sorting is not yet working properly

Includes:
* Top right buttons replaced by button bar containing them; fixes unreliable clicking
* High score manager has some one-line functions moved into its header file
* High scores can be sorted by some criteria
* Sorting is done before every time high scores are saved

* Fix header define names for the high score info dialog

* Fix high score sorting, reorganize its associated code

* More refinements to the high score selection screen

Includes:
* Clearing high scores no longer causes memory leaks
* The manual refresh button has been removed, as it has been deemed useless

* Remove unused header files for the high scores information dialog header

* The high scores box in the track information screen no longer has '='

* Fix pressing escape key in the high score information dialog crashing the game

Also remove unused widget variables and unnecessary function overrides

* Do not write high scores for races that have 0 laps and/or have no real karts

* Allow passing a parameter to prevent high scores from temporarily being written

This setting lasts only as long as the game runs; it is useful during track and
kart animation testing, where unwanted high score entries should not be written

* Force update sources.cmake, as new source files are being added for high scores screens

* Fix memory leak and strings

Co-authored-by: Benau <Benau@users.noreply.github.com>
2021-02-12 11:12:43 +08:00