1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-23 01:59:43 +01:00
Commit graph

2998 commits

Author SHA1 Message Date
NyakoFox
c6dd712376 Fix script error, only show touch tutorial once 2024-10-04 19:54:19 -03:00
NyakoFox
dc04fccf71 Initial control tutorial 2024-10-04 19:15:49 -03:00
NyakoFox
44632e1624 Swipe control scheme
The current mobile version of VVVVVV has three movement types: swipe,
d-pad and sides. Swipe is the default, but my PRs have only implemented
d-pad. This commit adds swipe and adds it as the default.
2024-09-29 17:22:45 -03:00
NyakoFox
30abc8a64b Add checkpoint saving option to touch controls 2024-09-29 17:22:27 -03:00
NyakoFox
9f9c813835 Remove buggy switch to touch controls in touch input menu 2024-09-29 17:09:14 -03:00
NyakoFox
757e20ae24 Fix saveless saving and quitting hiding buttons
Basically, when you save and quit, if you have a save, it attempts to
return to the `play` menu. Unfortunately for us, if you don't have a
save first, that menu never existed. You went directly from `mainmenu`
to the gameplay state. Since `play` never existed, the code didn't
have any menu to return to, so no buttons got created.

My fix is simple: if the menu isn't found, just make it.
2024-09-29 17:09:14 -03:00
NyakoFox
c394a6381e Offset back button, fix buttons appearing in ingame menu when returning from options 2024-09-29 17:09:14 -03:00
NyakoFox
e0debda422 Working back button 2024-09-29 17:09:14 -03:00
NyakoFox
a396424230 Comment out player levels for now 2024-09-29 17:09:14 -03:00
NyakoFox
44a40c1e90 Secret lab buttons, fix preloader buttons 2024-09-29 17:09:14 -03:00
NyakoFox
42ab55d3a1 Remove save and exit button 2024-09-29 17:09:14 -03:00
NyakoFox
8c06371eed Language menu changes 2024-09-29 17:09:13 -03:00
NyakoFox
504208ec30 Fix a few options 2024-09-29 17:09:13 -03:00
NyakoFox
07dfb6e313 Fix M&P builds failing 2024-09-29 17:09:13 -03:00
NyakoFox
d54af27e9a Fix first-time lang screen 2024-09-29 17:09:13 -03:00
NyakoFox
a32bf13691 Fix bug with graphics menu 2024-09-29 17:09:13 -03:00
NyakoFox
eef83a01a5 Buttonify map screen 2024-09-29 17:09:13 -03:00
NyakoFox
1ba14b037f Summary changes 2024-09-29 17:09:13 -03:00
NyakoFox
8b455290f9 Finish language menu 2024-09-29 17:09:13 -03:00
NyakoFox
b47955e9b6 Work on language menu 2024-09-29 17:09:12 -03:00
NyakoFox
21496e32f1 Accessibility menu 2024-09-29 17:08:16 -03:00
NyakoFox
3bdeaf8ed3 Touch input menu 2024-09-29 17:08:16 -03:00
NyakoFox
e96d1391cd Slider inputs for audio volume 2024-09-29 17:08:16 -03:00
NyakoFox
59a97d2404 Modify a few menus 2024-09-29 17:08:16 -03:00
NyakoFox
eea8741689 Automatic menu buttons 2024-09-29 17:08:16 -03:00
NyakoFox
018cbd98ed Initial touch button attempt 2024-09-29 17:08:16 -03:00
NyakoFox
a53addecde Replace float scale with int scale 2024-09-29 17:08:16 -03:00
NyakoFox
c5b3664d5e Replace screen_tapped with screen_down 2024-09-29 17:08:15 -03:00
NyakoFox
1412c90a92 Don't close ingame menu when pressing confirm btn
For some reason, the code that handled button presses for the ingame
menu checked the confirm button in the wrong places.
2024-09-29 17:08:15 -03:00
NyakoFox
9c83a4bfed Ignore Android's back button when disabling touch
Touch input automatically "disables" when you press a key on your
keyboard. The back button on Android counts as a key press, so let's
just ignore it.
2024-09-29 17:08:15 -03:00
AllyTally
9eeb737d82 Add string to language files 2024-09-29 17:08:15 -03:00
AllyTally
a5795a6778 Initial touch input support
This commit adds virtual buttons on-screen to let you navigate through
menus, and play the game.
2024-09-29 17:08:15 -03:00
Misa
a0bd2f3da4 Refactor: Use fullmap() everywhere
This replaces all instances of unlocking all rooms on the map with calls
to map.fullmap(), for consistency.

This also fixes two comments that got swapped around in startgamemode().
I don't know how that happened.

[skip ci]
2024-09-28 00:52:19 +00:00
mothbeanie
8a00ea7aab Add mapexplored(), mapreveal() commands 2024-09-27 17:47:19 -07:00
NyakoFox
c04c6bc552 Abstract checkpoint saving to its own function
This also makes the save failed textbox not appear in special modes,
and allows custom levels to quicksave from checkpoints as well.
2024-09-27 17:14:57 -07:00
NyakoFox
41d5e688e9 Fix menu option, show textbox when save failed
In my last commit, I accidentally inverted whether the description says
ON or OFF.
2024-09-27 17:14:57 -07:00
NyakoFox
e58fd606cf add menu option for checkpoint saving 2024-09-27 17:14:57 -07:00
NyakoFox
8aec83daec Checkpoint autosaving 2024-09-27 17:14:57 -07:00
Misa
c870df4e5b Remove slowdown during death animation
Some discussion on the Discord server resulted in this change. It's a
quality-of-life improvement where, if the game is in slowdown mode, it
will return to 100% speed for the duration of the death animation.

The reasoning is obvious. There is nothing to do during the death
animation, so making it take longer during slowdown is just an annoyance
to the player, almost a penalty for them using an accessibility option.
This is the same reason why slowdown no longer applies in menus, etc.
2024-09-25 21:14:02 -07:00
Misa
32562f03a9 Give MotU trophy in normal mode
This makes it so that it is possible to obtain the Master of the
Universe trophy/achievement, usually unlocked by beating No Death Mode,
outside of NDM.

There are several conditions that need to be met:

1. The game needs to be started from a new game and cannot be from
   loading a save.
2. Accessibility modes (invincibility and slowdown) must never be
   enabled.

If either condition is violated, then the boolean that keeps track of
NDM eligibility will be set to false.
2024-09-23 22:23:45 -07:00
NyakoFox
d8b2b3542a Add enemy speed as a room property
Currently, you can change platform speed, but not enemy speed, which is
always hardcoded to be 4. This commit fixes that, by adding the
"enemyv" property, which is an offset to the speed of 4. Since it
defaults to 0, older levels are not broken by this change.
2024-09-23 18:56:41 -07:00
Misa
8b62bb1d65 Bump version to v2.5
I consider the 2.4 development cycle over now, after the most important
bugs (and regressions) were fixed in 2.4.2.

[skip ci]
2024-08-27 15:13:24 -07:00
Dav999
149f5fbebc Tweak IME selection background left bound
Just extending the selection background left by one pixel so there's
not one pixel of black background to the left of a selection that
starts at the beginning of the text, and so some characters being
selected show up better (particularly where there's a long vertical bar
at the first pixel). We shouldn't be overlapping any part of the
previous character, since every character normally has a pixel of
spacing on the right.
2024-08-06 18:16:46 -07:00
Dav999
9ec8d8b637 Add selection background to IME rendering
Decided to implement it anyway since the broken behavior (selection
length always being 0, at least on Windows) may get fixed later in SDL,
so let's do it right in one go.
2024-08-02 22:25:00 -07:00
Dav999
8b8f827b70 Add IME text rendering
This shows the uncommitted text in a box in the bottom left corner.
This doesn't show the selection (defined by the start and length fields
in the event) yet, but this is already much better than it was on its
own, and I don't know how urgent the selection is since it's broken on
Windows anyway.
2024-08-02 22:25:00 -07:00
Dav999
a9ca63b367 Add buffer for IME editing events
When inputting uncommitted text from an IME, this is now stored in a
std::string imebuffer, just like keybuffer. It also enables extended
editing events, so text longer than what fits in the standard editing
event is also supported. This commit does not yet display the text
onscreen.
2024-08-02 22:25:00 -07:00
Misa
345eca5e10 Fix regression: Escape from conveyor spikes
This fixes a regression from 2.3. Consider the following diagram:

       CC
    X  CC
      <<<<

"C" indicates one tile of a checkpoint entity, "X" indicates a spike
tile, and "<" indicates one tile of a conveyor entity that has the
default speed (4 pixels per frame) going leftwards.

Now consider if the player were to touch the checkpoint and die. In 2.2,
they would be able to escape from the spike by holding right. But in
2.3, they would not be able to, and would die from the spike
continuously with no escape.

This happens because in 2.2, the player would spawn a couple pixels off
the surface, and this gained them an extra frame of movement to move
away from the conveyor. 2.3 places the player directly on the ground,
moving them one frame earlier and thus forcing them to their doom.

Now consider the following diagram:

      CC
    X CC
     <<<<

The difference with the previous diagram is that this time, the spike is
one tile closer. This time, there is no escape in 2.2 and you will
always die no matter what.

By the way, both diagrams have the same behavior if the conveyor is
rightwards and if everything is flipped upside-down. Thankfully, it
doesn't seem to be direction-dependent.

The reason 2.3 lowered the player onto the surface was for consistency
(see PR #502), and I don't want to undo that. So I think the best
solution here is to re-add the extra frame of control by conveyors only
moving the player after lifeseq has advanced enough.
2024-07-31 22:17:50 -07:00
Misa
6930bde91b Use variable timestep for SDL_Delay
This fixes a bug where fast-forward wouldn't work in 30-FPS-only mode.

This is because the 30-FPS-only code has a hardcoded check for the
number 34, as in 34 milliseconds must pass before the next frame can
advance. This is why slowdown still worked, because slowdown means
you're waiting longer than 34 ms anyways, but fast-forward tries to wait
for only 1 ms, which wouldn't work if the 34 limit was still enforced.

So instead, swap out the 34 with game.get_timestep() and this will be
fixed.

Fixes #1185.
2024-07-20 18:40:16 -07:00
mothbeanie
487e0c6b2d fix music ear blast bug 2024-07-13 13:11:05 -07:00
Misa
c636713a43 Use add_custom_command over add_custom_target
This fixes an issue where the CentOS CI kept failing because it couldn't
find the generated InterimVersion output file.

It seems like using the BYPRODUCTS statement in add_custom_target
didn't work because BYPRODUCTS was only added in CMake 3.2, so then
add_custom_target never ran, which is obviously a problem.

The solution is to use add_custom_command instead, and to solve the
problem that the interim version needs to be regenerated every time no
matter what (which is what BYPRODUCTS was supposed to do) we just add a
dummy output instead.
2024-07-12 21:34:53 -07:00