mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-11-05 02:39:41 +01:00
No description
952a130595
So... it looks like being able to switch through tilesets backwards has been in 2.3 for a while, guess no one just uses 2.3 or the level editor that much. It seems like it's always been broken, too. If you were on the Space Station tileset (tileset 0), pressing Shift+F1 would keep you on the Space Station tileset instead of switching to the Ship (tileset 4). It looks like the problem here was mixing size_t and int together - so the modulus operation promoted the left-hand side to size_t, which is unsigned, so the -1 turned into SIZE_MAX, which is 18446744073709551615 on my system. You'll note that that ends in a 5, so the number is divisible by 5, meaning taking it modulo 5 leads to 0. So the tileset would be kept at 0. At least unsigned integer underflow/overflow is properly defined, so there's no UB here. Just careless type mixing going on. The solution is to make the modulus an int instead of a size_t. This introduces an implicit conversion, but I don't care because my compiler doesn't warn about it, and implicit conversion warnings ought to be disabled on MSVC anyway. |
||
---|---|---|
.github | ||
desktop_version | ||
mobile_version | ||
third_party | ||
tools | ||
.gitattributes | ||
License exceptions.md | ||
LICENSE.md | ||
README.md |
This is the source code to VVVVVV, version 2.0+. For more context about this release, see the announcement on Terry's blog!
License
VVVVVV's source code is made available under a custom license. See LICENSE.md for more details.
In general, if you're interested in creating something that falls outside the license terms, get in touch with Terry and we'll talk about it!
Authors
- Created by Terry Cavanagh
- Room Names by Bennett Foddy
- Music by Magnus Pålsson
- Metal Soundtrack by FamilyJules
- 2.0 Update (C++ Port) by Simon Roth
- 2.2 Update (SDL2/PhysicsFS/Steamworks port) by Ethan Lee
- Beta Testing by Sam Kaplan and Pauli Kohberger
- Ending Picture by Pauli Kohberger
Versions
There are two versions of the VVVVVV source code available - the desktop version (based on the C++ port, and currently live on Steam), and the mobile version (based on a fork of the original flash source code, and currently live on iOS and Android).