mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 17:49:43 +01:00
No description
58c518c856
GCC warns on casting `void*` to function pointers. This is because the C standard makes a clear distinction between pointers to objects (`void*`) and pointers to functions (function pointers), and does not specify anything related to being able to cast object pointers to function pointers. The warning message is factually wrong, though - it states that it is forbidden by ISO C, when in fact it is not, and is actually just unspecified. We can't get rid of the cast entirely, because we need the explicit cast (the C standard _does_ mandate you need an explicit cast when converting between object pointers and function pointers), and at the end of the day, this is simply how `SDL_LoadFunction()` works (and more importantly, how `dlsym()` works), so we can't get rid of it, and we have no reason to anyways since it means we don't have a hard runtime dependency on Steam (unlike some other games) and casting `void*` to function pointers always behaves well on every single platform we ship on that supports Steam. Unfortunately, this warning seems to be a part of -Wpedantic, and there's no way to disable this warning specifically without disabling -Wpedantic. Luckily, I've found a workaround - just cast to `intptr_t` before casting to the function pointer. Hopefully the compiler doesn't get smarter in the future and this ends up breaking or anything... |
||
---|---|---|
.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).