66ba557c4d
Or well, lock yourself out if you don't have (easy) access to a keyboard, like on Steam Deck. In 2.3, this problem used to be much worse, since you could bind any button to "menu" - which is actually also "return" in menus - and that button could then no longer be bound to any other action, because exiting the bindings menu had priority over assigning a different binding. The result would be that people could have all their buttons bound to "escape" with no way of undoing it or using their controllers at all other than manually going into their config file to change it. In 2.4, the most important bugs in the bindings menu are fixed, but it's still possible to remove all your bindings from the "flip" (confirm) action, meaning you can't navigate the menus anymore with a controller to fix your bindings or even do anything. There is one interesting part to all this: if an action has no buttons bound to it at all when the game is started, then that action is populated with the default button for that action. This is done for each action separately, without accounting for the case where the default button was already bound to another action which was not empty. (This is something that the binding menu does try to prevent). Therefore, having no buttons bound to "flip" while having A and B bound to "menu", would result in A being bound to "flip" and A and B bound to "menu". That would still make you unable to enter the gamepad menu, since both "confirm" and "return" are pressed in a row. This commit fixes the specific situation where flip/confirm buttons are also bound to menu/return, by removing all buttons that are in the flip button list from the menu list. This means that, on Steam Deck, you can still go to your bindings menu. |
||
---|---|---|
.. | ||
fonts | ||
lang | ||
src | ||
VVVVVV-android | ||
.dockerignore | ||
.gitignore | ||
CMakeLists.txt | ||
CONTRIBUTORS.txt | ||
Dockerfile | ||
fixupMac.sh | ||
icon.ico | ||
icon.rc | ||
README.md | ||
version.cmake |
How to Build
VVVVVV's official desktop versions are built with the following environments:
- Windows: Visual Studio 2010
- macOS: Xcode CLT, currently targeting 10.9 SDK
- GNU/Linux: CentOS 7
The engine depends solely on SDL2 2.24.0+. All other dependencies are statically linked into the engine. The development libraries for Windows can be downloaded from SDL's website, Linux developers can find the dev libraries from their respective repositories, and macOS developers should compile and install from source. (If you're on Ubuntu and your Ubuntu is too old to have this SDL version, then see here for workarounds.)
Since VVVVVV 2.4, git submodules are used for the
third party libraries.
After cloning, run git submodule update --init
to set all of these up.
You can also use this command whenever the submodules need to be updated.
Steamworks support is included and the DLL is loaded dynamically, you do not need the SDK headers and there is no special Steam or non-Steam version. The current implementation has been tested with Steamworks SDK v1.46.
To build the Make and Play edition of the game, uncomment #define MAKEANDPLAY
in MakeAndPlay.h
.
To generate the projects on Windows:
# Put your SDL2 folders somewhere nice!
mkdir flibitBuild
cd flibitBuild
cmake -A Win32 -G "Visual Studio 10 2010" .. -DSDL2_INCLUDE_DIRS="C:\SDL2-2.24.0\include" -DSDL2_LIBRARIES="C:\SDL2-2.24.0\lib\x86\SDL2;C:\SDL2-2.24.0\lib\x86\SDL2main"
Note that on some systems, the SDL2_LIBRARIES
list on Windows may need
SDL2/SDL2main to have .lib
at the end of them. The reason for this
inconsistency is unknown.
Also note that if you're using a Visual Studio later than 2010, you will need to
change the -G
string accordingly; otherwise you will get a weird cryptic
error. Refer to the list below:
- VS 2012:
"Visual Studio 11 2012"
- VS 2013:
"Visual Studio 12 2013"
- VS 2015:
"Visual Studio 14 2015"
- VS 2017:
"Visual Studio 15 2017"
- VS 2019:
"Visual Studio 16 2019"
- VS 2022:
"Visual Studio 17 2022"
To generate everywhere else:
mkdir flibitBuild
cd flibitBuild
cmake ..
macOS may be fussy about the SDK version. How to fix this is up to the whims of however Apple wants to make CMAKE_OSX_SYSROOT annoying to configure and retain each time Xcode updates.
Including data.zip
You'll need the data.zip file from VVVVVV to actually run the game! You can grab it from your copy of the game, or you can download it for free from the Make and Play page. Put this file next to your executable and the game should run.
This is intended for personal use only - our license doesn't allow you to actually distribute this data.zip file with your own forks without getting permission from us first. See LICENSE.md for more details. (If you've got a project in mind that requires distributing this file, get in touch!)