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

2872 commits

Author SHA1 Message Date
Misa
3b0757bd82 Add bounds check to setlinegap
This is for consistency with all other functions dealing with the latest
created text box. There are several cases in custom levels where these
functions can be called even though there are no text boxes on screen.
2024-02-02 15:00:44 -08:00
Misa
2b476bb4c1 Remove trailing whitespace on getlinegap decl 2024-02-02 14:59:52 -08:00
TerryCavanagh
69684994be added translation category support to ending credits also 2024-02-02 18:24:49 +01:00
TerryCavanagh
5f9e326b67 Added proxy string for "Editing and LQA"
I checked the pt_BR one with our translators, so that one's correct
2024-02-02 18:15:45 +01:00
TerryCavanagh
62ab594976 added Ivan Lopes and Lucas Nunes to credits 2024-02-02 17:37:23 +01:00
TerryCavanagh
9986696604 updated pt_BR translation with new proofread version 2024-02-02 16:04:24 +01:00
TerryCavanagh
2afcf85ad6 added placeholder translations for the three Spanish variants in the credits
these are proxy strings for now, will need to be replaced properly later
2024-02-01 20:25:00 +01:00
TerryCavanagh
1db33d9cb8 added Guido Di Carlo and LocQuest to credits 2024-02-01 20:23:39 +01:00
TerryCavanagh
8b73a38ed2 don't apply linegap to certain special textboxes
level complete, game complete and "You have rescued a crew member!"
2024-02-01 20:03:17 +01:00
TerryCavanagh
cc1528aacc add a one pixel gap between each line in textboxes (main game only) 2024-02-01 20:03:17 +01:00
Terry Cavanagh
2807524c78
Added link to Wii port github in license exceptions 2024-02-01 18:23:30 +01:00
Alberto Mardegan
a5575933b2 Update to latest FAudio
This fixes audio playback on big-endian machines.
2024-02-01 11:08:02 -05:00
Terry Cavanagh
1b70fc5b15
Added Wii port to License exceptions 2024-02-01 12:07:23 +01:00
TerryCavanagh
b67ceb2c0f Merge branch 'master' of https://github.com/TerryCavanagh/VVVVVV 2024-02-01 11:34:01 +01:00
TerryCavanagh
319ed3a22e renamed es_AR and es_419 folders 2024-02-01 11:33:51 +01:00
Ethan Lee
5523d5597d CI: Replace -o with -OutFile, works around Invoke-WebRequest regression 2024-01-31 18:19:22 -05:00
TerryCavanagh
b1f378de60 Added Argentine Spanish localisation 2024-01-31 18:37:31 +01:00
TerryCavanagh
a6b8b90f3c Added Latin American Spanish localisation 2024-01-31 18:36:57 +01:00
Dav999
448c4a5514 Apply updates to Arabic language files
This update was delivered earlier today!
2024-01-25 16:16:00 -08:00
Terry Cavanagh
1f7c9fa9ff
added link to ARMHF port 2024-01-24 11:00:46 +01:00
Misa
1c6cfcd2a5 Remove 'all' argument from setrtl
It doesn't make sense to change the alignment of all existing text boxes
when you're not otherwise able to mutate the text. Whereas the point of
the 'all' argument in setfont is to be able to animate text boxes using
fonts.
2024-01-23 16:53:01 -08:00
Misa
a9f0d81804 Properly fix setfont/setrtl in between text boxes
There used to be a problem with the setfont and setrtl script commands.
Namely, if you used them in between text boxes naïvely, without any
careful thought, then the fading out text box would suddenly gain the
font of the new one. A kludge solution to this was implemented by simply
blocking the script until the existing text box faded out before
switching the font or RTL, and shipped for 2.4.0.

However, a better solution is to simply bake the font flags in to the
text box, so that way, if the level font switches, then the text box
keeps its font.

This is only for custom levels, because in the main game, the font in a
text box needs to be able to change depending on language. But it seems
like custom level translations weren't much on the roadmap, and so even
the existing hack didn't support changing the font based on translation
(even though translation of custom level cutscenes is supported). So
baking the font flags into the text box here doesn't make things any
worse.

It also makes things better, arguably, by allowing multiple text boxes
to exist on screen at once with different fonts.

Maybe in the future we'll need a flag that specifies that the font
should change depending on language if a translation in said language
exists for the text box, or something like that.

For people that want to override the fonts of every existing text box on
screen, you can specify "all" as the second parameter of setfont or
setrtl to do so.
2024-01-23 15:33:38 -08:00
Misa
ea8633514d Fix using int for mode indicator flags
For consistency. Print flags are supposed to be uint32_t.
2024-01-23 14:29:03 -08:00
Misa
8d2a0c2457 Allow overriding state lock in glitchrunner <= 2.2
This fixes a regression where attempting to warp to ship with a trinket
text box open in glitchrunner 2.0, and then incrementing the gamestate
afterwards, would result in a softlock. This is a speedrunning strat
that speedrunners use.

The state lock wasn't ever intended to remove any strats or anything,
just fix warping to ship under normal circumstances. So it's okay to
re-enable interrupting the state by having glitchrunner enabled.

This bug was reported by mohoc in the VVVVVV Speedrunning Discord
server.
2024-01-23 13:55:21 -08:00
Terry Cavanagh
ac42e7f774
typo 2024-01-23 20:30:44 +01:00
Terry Cavanagh
df1a95a85d
Added license exception for armhf Port 2024-01-23 20:29:26 +01:00
Dav999
7cd1cae55a Rename capitalized no death mode in Dutch
Just like I changed the number één to be capitalized as Eén instead
of Één (due to this being a special case), I forgot to do the same
for the onelifemode.
2024-01-22 16:31:15 -08:00
Dav999
e7267c6eb6 Add missing blank lines in Irish congrats boxes
The three "Congratulations!" boxes which were supposed to have a blank
line in them didn't.
2024-01-22 16:31:15 -08:00
Dav999
5345d46c3d Fix a few spacing problems in Welsh
This involves a couple of dialog boxes ("Congratulations!" and the
jukebox) which were supposed to have blank lines, but they weren't
in the translation.
2024-01-22 16:31:15 -08:00
Dav999
1bc3e8e666 Fix Esperanto [button?] in Violet cutscene 2024-01-22 16:31:15 -08:00
Misa
67f56985eb PR template: Clarify compensation
Translators have been getting compensated for localization. Sometimes
they submit pull requests for their changes, but just because they do
doesn't mean that they won't get compensated.

The intent of this line was to make sure that any random contributor
wouldn't expect any compensation for their changes, so adding another
clause here still keeps that expectation while making it clear that it's
not like Terry _never_ compensates people. Even if, as a Swedish man
once sung, "Terry is a monster, I think we all know that".
2024-01-22 20:11:42 +01:00
Alberto Mardegan
b5abc3956c Fix loading of PNG resources on big-endian machines
LodePNG always loads PNG in big-endian RGBA format. For this reason,
when loading PNG files VVVVVV was specifying the format as ABGR and the
conversion would then be performed by SDL. However, then running on
big-endian machines, this conversion should not be performed at all, and
the surface format should then be set to RGBA.
2024-01-22 10:48:38 -05:00
Misa
32e6ab6ecd README: Add step for compiling
We recently had a user come in the VVVVVV Discord not knowing that,
after running CMake, you then need to compile the game in a separate
step. This clarifies the instructions.
2024-01-22 00:18:20 -08:00
Misa
2f217dad56 Fix segfault: unwordwrap string w/ 2 start \ns
This fixes a segmentation fault caused by an out-of-bounds indexing
caused by an attempt to unwordwrap a string that starts with two
newlines.

The problem here is that in the branch of the function
string_unwordwrap() where `consecutive_newlines == 1`, the function does
not check that the string `result` isn't empty before attempting to
index `result.size()-1`. If `result` is empty, then `result.size()` is
0, and `result.size()-1` becomes -1, and indexing a string at position
-1 is always undefined behavior.

Funnily enough, a similar indexing happens just a few lines down, but
this time, there is a check to make sure that the string isn't empty
first. I'm unsure of how Dav999 forgot that check a few lines earlier.

This situation can happen in practice, with custom level localizations.
I made a level with a filename of testloc.vvvvvv and created a file at
lang/fr/levels/testloc/custom_cutscenes.xml with the following content:

    <?xml version="1.0" encoding="UTF-8"?>
    <cutscenes>
        <cutscene id="test" explanation="">
            <dialogue speaker="cyan" english="This is text..." translation="blarg"/>
        </cutscene>
    </cutscenes>

Then I switched to French, created a script named `test`, and created a
text box that started with two newlines (so in total, the text box must
be at least 3 lines in length). Running the script triggers the segfault
when the text box is created. (Well, technically, on my machine, it
triggers an assertion fail in libstdc++ and aborts, but that's basically
the same thing.)

To fix this while still preserving the exact amount of newlines, if
`result` is empty, we add a newline instead of attempting to index the
string.
2024-01-20 17:52:17 -08:00
Dav999
ebd4fa8ad8 Clean up outdated strings
These strings had been replaced over time and the original versions
marked ***OUTDATED*** to allow for the original wordings to be reused
by the translators who had only translated the original ones.
(See lang/README-programmers.txt.)

Now, these strings have all been updated in every language, so it's
time to clean them up!
2024-01-19 16:31:39 -08:00
Dav999
403136df46 Translate new strings to Dutch 2024-01-19 16:31:39 -08:00
Dav999
5a91d09a20 Add in-game mode indications (#1096) to language files
These were not in the English or any other language files. They should
be though, so that they can be translated and generally kept track of.
These aren't urgent either, since we have proxy strings that are used
if these are untranslated.
2024-01-19 16:31:39 -08:00
Dav999
3849ed7a24 Sync language files
This hasn't been done since before we got some deliveries for 2.4,
so there are a few languages which added apostrophes as ' instead of
&apos; in the XML (which is not wrong, but it gives diff noise whenever
there's a sync since VVVVVV writes them back as &apos;...)

Also, we never synced "[Press {button} to toggle gameplay]" across
language files (now two strings with unfreeze/freeze), but that was
also a pretty last-minute string as far as I remember. Arabic did have
it because that language was added after the string was added, so it
got copied from English. I don't think this one is that urgent to
translate into every language for 2.4.1 since it's pretty well hidden
for most people, and it's surrounded by things that have to be English,
so it's as if it's supposed to be like that. Let's just include these
with whatever the next batch of strings is.
2024-01-19 16:31:39 -08:00
Dav999
60fd0bc0c2 Replace [Press {button} to toggle gameplay] by freeze/unfreeze
This is both easier for translators ("toggle" can be an annoying word)
and is useful in general because you can tell if gameplay is frozen
without having to have anything in the room that should normally be
moving but isn't.

I didn't follow the rule in lang/README-programmers.txt to keep the
original string around as ***OUTDATED*** in this case, since I know
only Arabic has it translated - we can just tell the Arabic translators
on Discord that this string was replaced.
2024-01-19 16:31:39 -08:00
Ethan Lee
afbcb3f867 Add support for GameCube glyphs.
It's kind of a bummer that L/R don't actually do anything... we should add ZL/ZR support at some point.

Also note that GameCube binds X to 'back' rather than B, this will be fixed by SDL_ActionSet for 2.5.
2024-01-18 00:10:20 -05:00
TerryCavanagh
ceaaea1597 fix Arabic credits
Eternal Dream Arabization team name was missing from the main credits page
2024-01-17 15:59:16 +01:00
Dav999
d299b42ee8 Replace Chinese font
The original Chinese font (which we call "the Indienova font") was
received from the Chinese translators directly, and didn't come with
any license or copyright information other than that it was made by
Indienova. Questions have now been raised about the actual origin of
the characters in the font, and while we do have confirmation from the
translators that we're probably in the clear, they did suggest another
font for us to use, which we're switching to to be sure.

Some background information: the ideal font would probably be Ark Pixel
(https://github.com/TakWolf/ark-pixel-font/), but this font is not
finished yet. Therefore, the creators of Ark Pixel have made a font
that can be used as a placeholder to use in the meantime, Fusion Pixel
(https://github.com/TakWolf/fusion-pixel-font), which combines some
other fonts together in order to get full coverage. This is the font
we're now switching to.

It's not _that_ simple though - the ASCII part of Fusion Pixel is kinda
bad for us using it as a monospaced font. Normally I just replace the
ASCII set by the fullwidth characters, but in this font they were
almost entirely the same. So I instead picked the fullwidth characters
from Galmuri 12px, which is one of the "fusioned" fonts. Interestingly,
we happen to also use the 10px version of this as our Korean font, and
I like these Latin letters, so yay.

I also made the call to split the Chinese font into separate variants
for Simplified and Traditional Chinese. I was aware of the problem with
the Han Unification, but the Traditional Chinese translator said the
Indienova font also contains all the Traditional Chinese characters,
and they proofread the translation, so it was probably fine. Apparently
the difference between Simplified and Traditional Chinese variants of
the same characters are not that big, and it's acceptable. But
Fusion Pixel gives us separate versions of the font for Simplified and
Traditional Chinese, so this is a chance to get it right. Just kidding,
Fusion Pixel's Traditional variant switches out many characters that
were shared between Simplified and Traditional Chinese to Japanese
variants which are noticeably different. So it would be better to keep
using the SC font for TC, just like the Indienova font is SC only.
However:  Ark Pixel does have a version with correct characters for
Traditional Chinese! So for the TC version of our font, I just took all
Chinese characters from the TC version of Ark Pixel where available.
That way, all characters I checked have changed to TC variants
correctly.
2024-01-16 16:54:28 -08:00
Dav999
52b099f7d0 Replace U+2013 (–) by standard dash in Ukrainian
The Ukrainian strings.xml turns out to have two en-dashes which are
not in the font. This commit replaces them with standard dashes.
2024-01-16 16:46:24 -08:00
TerryCavanagh
9c656fd5e1 Added SnDream to contributors
for this pull request: https://github.com/TerryCavanagh/VVVVVV/pull/1119
2024-01-16 12:05:45 +01:00
TerryCavanagh
82576c73ca Copied new localised sprites to zh_TW 2024-01-16 12:05:45 +01:00
sndream
f70eb0db86 Simplified Chinese graphics fine-tuning 2024-01-16 12:05:45 +01:00
TerryCavanagh
8dd5414e8d minor fixes for Welsh
as suggested from player feedback, confirmed by translator
2024-01-14 00:35:34 +01:00
TerryCavanagh
4acc96e707 added Space-G to contributors
for this pull request: https://github.com/TerryCavanagh/VVVVVV/pull/1114
2024-01-13 15:47:09 +01:00
Space-G
47561d44f0 Fixes some pt_BR mistranslations noted by zaratustra on Cohost 2024-01-13 15:44:46 +01:00
Space-G
e51ae2a3c5 Fixes a handful of pt_BR mistranslations 2024-01-13 15:44:46 +01:00