1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-26 06:28:30 +02:00
VVVVVV/desktop_version/src
Dav999 9045e26d3e Add support for translatable sprites
Language folders can now have a graphics folder, with these files:
- sprites.png and flipsprites.png: spritesheets which contain
  translated versions of the word enemies and checkpoints
- spritesmask.xml: an XML file containing all the sprites that should
  be copied from the translated sprites and flipsprites images to
  the original sprites/flipsprites.

This means that the translated spritesheets don't have to contain ALL
sprites - they only have to contain the translated ones. When loading
them, the game assembles a combined spritesheet with translated sprites
replacing English ones as needed, and this sheet is used to visually
substitute the normal sprites at rendering time.

It's important to note that even if 32x32 enemies have pixel-perfect
hitboxes, this is only a visual change. This has been discussed several
times on Discord - basically we don't want to give people unfair
advantages or disadvantages because of their language setting, or
change existing gameplay and speedruns tactics, which may depend on the
exact pixel arrangements of the enemies. Therefore, the hitboxes are
still based on the English sprites. This should be basically
unnoticeable for casual players, especially with some thought from
translators and artists, but there will be an option in the speedrunner
menu to display the original sprites all the time.

I removed the `VVV_freefunc(SDL_FreeSurface, *tilesheet)` in
make_array() in Graphics.cpp, which frees grphx.im_sprites_surf and
grphx.im_flipsprites_surf. Since GraphicsResources::destroy() already
frees these, it looks like the only purpose the one in make_array()
serves is to do it earlier. But now we need them again later (when
switching languages) so let's just not free them early.
2023-10-31 22:31:41 -07:00
..
ActionSets.h Add controller button layout mappings 2023-03-21 19:59:48 -07:00
Alloc.h Replace all free calls with VVV_free[func] 2022-11-30 22:50:08 -08:00
BinaryBlob.cpp Replace all free calls with VVV_free[func] 2022-11-30 22:50:08 -08:00
BinaryBlob.h Use fixed-size int types for resourceheader 2021-09-23 22:21:49 -07:00
BlockV.cpp Make activity zone prompts loc::gettext'ed at display time 2023-09-20 16:20:24 -07:00
BlockV.h Make activity zone prompts loc::gettext'ed at display time 2023-09-20 16:20:24 -07:00
ButtonGlyphs.cpp Disable editor on Android (like Steam Deck) 2023-10-25 14:44:34 -07:00
ButtonGlyphs.h Controller layout detection 2023-08-22 15:34:03 -04:00
Constants.h Fix SCREEN_HEIGHT_PIXELS being wrong constant 2021-10-01 09:35:28 -07:00
Credits.h Add Jules de Sartiges to Credits.h 2023-02-21 12:28:57 -08:00
CustomLevels.cpp Remove NO_EDITOR/NO_CUSTOM_LEVELS, disable editor on Steam Deck 2023-08-25 09:50:27 -07:00
CustomLevels.h Remove NO_EDITOR/NO_CUSTOM_LEVELS, disable editor on Steam Deck 2023-08-25 09:50:27 -07:00
CWrappers.cpp Use loc::toupper_ch instead of SDL_toupper in VFormat 2022-12-31 20:04:56 -08:00
CWrappers.h Use loc::toupper_ch instead of SDL_toupper in VFormat 2022-12-31 20:04:56 -08:00
DeferCallbacks.c Add deferred callbacks to game loop 2021-03-21 02:55:42 -04:00
DeferCallbacks.h Add deferred callbacks to game loop 2021-03-21 02:55:42 -04:00
Editor.cpp Fix double return when pressing Esc in editor font menu 2023-09-13 23:58:34 -07:00
Editor.h Remove NO_EDITOR/NO_CUSTOM_LEVELS, disable editor on Steam Deck 2023-08-25 09:50:27 -07:00
Ent.cpp Disable more flashing elements if a11y is on 2023-04-05 20:02:29 -07:00
Ent.h Use SDL_Color for colors instead of colourTransform 2023-01-01 16:36:43 -08:00
Entity.cpp Make activity zone prompts loc::gettext'ed at display time 2023-09-20 16:20:24 -07:00
Entity.h Remove x-position from setactivityposition 2023-02-17 20:47:32 -08:00
Enums.h Remove unused game-gamestates 2021-12-18 00:01:32 -08:00
Exit.h Use SDL_NORETURN 2021-09-27 10:32:23 -07:00
FileSystemUtils.cpp Fix compiler warnings on Android 2023-10-25 14:44:34 -07:00
FileSystemUtils.h Add warning messages for missing fonts/lang folders 2023-09-20 16:20:24 -07:00
Finalclass.cpp Strip out old special roomname system 2023-03-02 22:58:12 -08:00
Finalclass.h Indicate what special roomnames are in the levels 2022-12-31 20:04:56 -08:00
Font.cpp Remove NO_EDITOR/NO_CUSTOM_LEVELS, disable editor on Steam Deck 2023-08-25 09:50:27 -07:00
Font.h Change font::len text argument from std::string to const char* 2023-03-04 16:10:17 -08:00
Game.cpp Add "English sprites" setting 2023-10-31 22:31:41 -07:00
Game.h Make activity zone prompts loc::gettext'ed at display time 2023-09-20 16:20:24 -07:00
GlitchrunnerMode.c Split glitchrunner mode into multiple versions 2021-08-05 13:35:21 -04:00
GlitchrunnerMode.h Split glitchrunner mode into multiple versions 2021-08-05 13:35:21 -04:00
GOGNetwork.c Axe NETWORK_[set/get]AchievementProgress() 2021-09-19 21:49:54 -07:00
Graphics.cpp Add support for translatable sprites 2023-10-31 22:31:41 -07:00
Graphics.h Add support for translatable sprites 2023-10-31 22:31:41 -07:00
GraphicsResources.cpp Add support for translatable sprites 2023-10-31 22:31:41 -07:00
GraphicsResources.h Add support for translatable sprites 2023-10-31 22:31:41 -07:00
GraphicsUtil.cpp Fix memory leak with ApplyFilter 2023-10-27 10:25:42 -07:00
GraphicsUtil.h Fix memory leak with ApplyFilter 2023-10-27 10:25:42 -07:00
Input.cpp Add support for translatable sprites 2023-10-31 22:31:41 -07:00
Input.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
InterimVersion.h Use PR_RIGHT for interim version info in main menu 2023-02-13 23:27:00 -08:00
InterimVersion.in.c Use PR_RIGHT for interim version info in main menu 2023-02-13 23:27:00 -08:00
KeyPoll.cpp Add support for translatable sprites 2023-10-31 22:31:41 -07:00
KeyPoll.h Generalize stretch mode mouse scaling fix 2023-08-17 19:57:54 -07:00
Labclass.cpp Add level exploring menu for translators 2022-12-31 20:04:56 -08:00
Labclass.h Indicate what special roomnames are in the levels 2022-12-31 20:04:56 -08:00
Localization.cpp Add "English sprites" setting 2023-10-31 22:31:41 -07:00
Localization.h Add "English sprites" setting 2023-10-31 22:31:41 -07:00
LocalizationMaint.cpp Add button glyphs support to selection hint on language screen 2023-03-26 17:54:47 -07:00
LocalizationMaint.h Add cutscene test menu 2022-12-31 20:04:56 -08:00
LocalizationStorage.cpp Add limits check to roomnames and roomnames_special 2023-09-09 16:29:38 -07:00
LocalizationStorage.h Write max_local to language files during sync 2023-02-13 23:27:00 -08:00
lodepng_wrapper.c Migrate LodePNG to submodule 2022-03-13 23:50:37 -07:00
Logic.cpp Make activity zone prompts loc::gettext'ed at display time 2023-09-20 16:20:24 -07:00
Logic.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
main.cpp Fix "no language files found" title screen bug 2023-09-20 16:20:24 -07:00
MakeAndPlay.h Use multiline comments in C files 2021-04-17 00:50:04 -04:00
Map.cpp Remove NO_EDITOR/NO_CUSTOM_LEVELS, disable editor on Steam Deck 2023-08-25 09:50:27 -07:00
Map.h Strip out old special roomname system 2023-03-02 22:58:12 -08:00
Maths.h Use SDL_Point instead of rolling our own point struct 2023-01-28 23:32:14 -08:00
Music.cpp Implement haltedsong 2023-06-08 15:38:26 -07:00
Music.h Implement haltedsong 2023-06-08 15:38:26 -07:00
Network.c Axe NETWORK_[set/get]AchievementProgress() 2021-09-19 21:49:54 -07:00
Network.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
Otherlevel.cpp Indicate what special roomnames are in the levels 2022-12-31 20:04:56 -08:00
Otherlevel.h Indicate what special roomnames are in the levels 2022-12-31 20:04:56 -08:00
preloader.cpp Migrate more prints and graphics.len calls to font:: 2023-02-13 23:27:00 -08:00
preloader.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
ReleaseVersion.h De-duplicate release version 2022-08-23 00:00:39 -07:00
Render.cpp Add "English sprites" setting 2023-10-31 22:31:41 -07:00
Render.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
RenderFixed.cpp Remove NO_EDITOR/NO_CUSTOM_LEVELS, disable editor on Steam Deck 2023-08-25 09:50:27 -07:00
RenderFixed.h Show skip prompt during credits and ending picture 2023-06-05 17:57:23 -07:00
RoomnameTranslator.cpp Remove unused drawing overloads 2023-06-08 15:47:39 -07:00
RoomnameTranslator.h Migrate more prints to font::, determine font for most textboxes 2023-02-13 23:27:00 -08:00
Screen.cpp Address review 2023-10-25 14:44:34 -07:00
Screen.h Store display index of window to settings 2023-03-21 00:23:42 -07:00
ScreenSettings.h Store display index of window to settings 2023-03-21 00:23:42 -07:00
Script.cpp Re-add fixed bool 2023-09-09 19:19:57 -07:00
Script.h Add textboxtimer command 2023-05-08 12:49:05 -07:00
Scripts.cpp Add textbuttons() script command, make Violet's ENTER dialogue dynamic 2023-03-21 19:59:48 -07:00
Spacestation2.cpp Use enums for time trial indexes 2023-06-05 17:57:23 -07:00
Spacestation2.h Indicate what special roomnames are in the levels 2022-12-31 20:04:56 -08:00
SteamNetwork.c Silence GCC warnings about void*-to-function-pointer casts 2021-10-21 01:00:06 -07:00
TerminalScripts.cpp Add textcase(n) commands to scripts 2022-12-31 20:04:56 -08:00
Textbook.c Replace all localization SDL_free with VVV_free 2022-12-31 20:04:56 -08:00
Textbook.h Add Textbook 2022-12-31 20:04:56 -08:00
Textbox.cpp Add textbuttons() script command, make Violet's ENTER dialogue dynamic 2023-03-21 19:59:48 -07:00
Textbox.h Add textbuttons() script command, make Violet's ENTER dialogue dynamic 2023-03-21 19:59:48 -07:00
ThirdPartyDeps.c Replace all free calls with VVV_free[func] 2022-11-30 22:50:08 -08:00
Tower.cpp Add POS_MOD macro and use for all positive modulos 2021-09-24 17:48:15 -07:00
Tower.h Remove vmult lookup tables 2021-09-24 16:37:27 -07:00
TowerBG.h Move from surfaces to the SDL render system 2023-01-28 14:36:28 -08:00
Unreachable.h Use _SDL_HAS_BUILTIN 2022-12-29 16:13:54 -08:00
Unused.h Factor out UNUSED macro to header file 2021-05-25 15:23:34 -04:00
UTF8.c Add UTF8.c 2023-02-27 23:00:41 -08:00
UTF8.h Add UTF8.c 2023-02-27 23:00:41 -08:00
UtilityClass.cpp Add controller button layout mappings 2023-03-21 19:59:48 -07:00
UtilityClass.h Add controller button layout mappings 2023-03-21 19:59:48 -07:00
VFormat.c Add controller button layout mappings 2023-03-21 19:59:48 -07:00
VFormat.h Add support for button glyph display 2023-03-21 19:59:48 -07:00
Vlogging.c Provide error code if SetConsoleOutputCP fails 2023-10-25 17:21:11 -07:00
Vlogging.h Add -console option on Windows 2022-11-14 19:40:23 -08:00
WarpClass.cpp Add level exploring menu for translators 2022-12-31 20:04:56 -08:00
WarpClass.h Indicate what special roomnames are in the levels 2022-12-31 20:04:56 -08:00
XMLUtils.cpp Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00
XMLUtils.h Add localization "foundation" (many code changes) 2022-12-31 20:04:56 -08:00
Xoshiro.c Move xoshiro_seed debug print to top 2022-11-14 13:14:25 -08:00
Xoshiro.h Replace Gravitron RNG with seeded Xoshiro 2021-08-27 12:28:35 -07:00