mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-11-07 03:39:40 +01:00
No description
4f6835c485
This removes duplicate code that came about as a result of various possible permutations of menu options, depending on being M&P, having no custom level support, having no editor support, and having MMMMMM. The menus with such permutations are the following: - main menu - "start game" is gone in MAKEANDPLAY - "player levels" is gone in NO_CUSTOM_LEVELS - "view credits" is gone in MAKEANDPLAY - "game options" - "unlock play data" is gone in MAKEANDPLAY - "soundtrack" is gone if you don't have an mmmmmm.vvv file - "player levels" - "level editor" is gone in NO_EDITOR I achieve this de-duplication by clever use of calculating offsets, which I feel is the best way to de-duplicate the code with the least amount of work, if a little brittle. The other options are to (1) put function pointers on each MenuOption object, which is pretty verbose and would inflate Game::createmenu() by a lot, (2) switch all game.currentmenuoption checks to instead check for the text of the currently-selected menu option, which is very error-prone because if you make a typo it won't be caught at compile-time, (3) add a unique ID to each MenuOption object that represents a text but will error at compile-time if you make a typo, however this just duplicates all the menu option text, which is more code than was duplicated previously. So I just went with this one. |
||
---|---|---|
.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).