1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-26 14:38:30 +02:00
VVVVVV/desktop_version/src
Misa e93d8989d3 Revert "Fix Secret Lab Time Trial trophies having wrong colors"
As reported by Dav999, Victoria and Vermilion's trophy colors are
swapped again in 2.4. He points to
37b7615b71, the commit where I fixed the
color masks of every single surface to always be RGB or RGBA.

It sounded plausible to me, because it did have to do with colors, after
all. However, it didn't make sense to me, because I was like, I didn't
touch the trophy colors at all after I originally fixed them.

After I ruled out the RGBf() function as a confounder, I decided to see
whether intentionally reversing the color order in RGBf() to be BGR
would do anything, and to my surprise it actually swapped the colors
back around and it didn't actually look bad.

And then I realized: Swapping the trophy colors between RGB and BGR
ordering results in similar colors that still look good, but are simply
wrong, but not so wrong that they take on a color that no crewmate uses,
so it'd appear as if the crewmates were swapped, when in reality the
only thing that was swapped was actually the color order of the colors.

Trying to fix this by swapping the colors again, I actively confused
colors 33 and 35 (Vermilion and Victoria) with colors 32 and 34
(Vitellary and Viridian), so I was confused when Vermilion and Victoria
weren't swapping. Then as a debugging step, I only changed 34 to 32
without swapping 32 as well, and then finally noticed that I was
swapping Vitellary and Viridian, because there were now two Vitellarys.
And then I was reminded that Vitellary and Viridian were also wrongly
swapped since 2.0 as well.

And so then I finally realized: The original comments accompanying the
colors were correct after all. The only problem was that they were fed
into a function, RGBf(), that read the colors backwards, because the
codebase habitually changed the color order on a whim and it was really
hard to reason out which color order should be used at a given time, so
it ended up reading RGB colors as BGR, while it looked like it was
passing them through as-is.

So what happened was that in the first place, RGBf() was swapping RGB to
BGR. Then I came and swapped Vermilion and Victoria, and Vitellary and
Viridian around. Then later I fixed all the color masks, so RGBf()
stopped swapping RGB and BGR around. But then this ended up swapping the
colors of Vermilion and Victoria, and Vitellary and Viridian once again!

Therefore, swapping Vermilion and Victoria, and Vitellary and Viridian
was incorrect. Or at least, not the fix to the root cause. The root
cause would be to swap the colors in RGBf(), but this would be sort of
confusing to reason about - at least if I didn't bother to just type the
RGB values into an image editor. But that doesn't fix the real issue,
which is that the game kept swapping RGB and BGR around in every corner
of the codebase.

I further confirmed that there was no more RGB or BGR swapping by
deleting the plus-one-divide-by-three transformation in RGBf() and
seeing if the colors looked okay. Now with the colors being brighter, I
could see that passing it straight through looked fine, but
intentionally reversing it to be BGR resulted in colors that at a
distance looked okay, but were either washed out or too bright. At least
finally I could use my 8 years of playing this game for something.

So in conclusion, actually, 37b7615b71
("Fix surface color masks") was the real fix, and
d271907f8c ("Fix Secret Lab Time Trial
trophies having wrong colors") was the real regression. It's just that
the regression came first, but it wasn't really a regression until I did
the other fix, so the fix isn't the regression, the regression is...
this is hurting my brain. Or the real regression was the friends we made
along the way, or something like that.

This is the most trivial bug ever caused by the technical debt of those
god-awful reversed color masks.

---

This reverts commit d271907f8c.

Fixes #862.
2022-02-12 00:41:02 -08:00
..
BinaryBlob.cpp Fix regression with VVV_COMPILEMUSIC aborting 2021-09-23 22:35:52 -07:00
BinaryBlob.h Use fixed-size int types for resourceheader 2021-09-23 22:21:49 -07:00
BlockV.cpp Add setactivityposition(x,y), add new textbox color transparent (#847) 2021-10-13 15:38:51 -07:00
BlockV.h Add setactivityposition(x,y), add new textbox color transparent (#847) 2021-10-13 15:38:51 -07:00
Constants.h Fix SCREEN_HEIGHT_PIXELS being wrong constant 2021-10-01 09:35:28 -07:00
Credits.h Move Misa to C++ credits 2021-08-31 23:22:22 -07:00
CustomLevels.cpp Fix regression with counting out-of-bounds custom entities 2021-10-27 16:49:57 -07:00
CustomLevels.h Remove vmult lookup tables 2021-09-24 16:37:27 -07: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 Remove clamp in favor of SDL_clamp 2022-02-11 17:31:41 -05:00
Editor.h Use const std::string& where possible in function params 2021-09-06 15:43:59 -07:00
Ent.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Ent.h Untabify every single file 2021-09-06 18:56:39 -07:00
Entity.cpp Revert "Fix Secret Lab Time Trial trophies having wrong colors" 2022-02-12 00:41:02 -08:00
Entity.h Add setactivityposition(x,y), add new textbox color transparent (#847) 2021-10-13 15:38:51 -07: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 Add forced fullscreen mode 2021-12-25 23:01:45 -08:00
FileSystemUtils.h Call FS.syncfs on Emscripten (#838) 2021-09-02 13:19:51 -04:00
Finalclass.cpp Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
Finalclass.h Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
Game.cpp Add forced fullscreen mode 2021-12-25 23:01:45 -08:00
Game.h Simplify time formatting functions 2021-12-25 11:38:12 -08: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 Revert "Fix Secret Lab Time Trial trophies having wrong colors" 2022-02-12 00:41:02 -08:00
Graphics.h Extern gameScreen, remove screenbuffer 2021-12-25 00:29:28 -08:00
GraphicsResources.cpp Use LoadImage in LoadIcon 2021-12-25 01:29:24 -08:00
GraphicsResources.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
GraphicsUtil.cpp Fix char overflow in Analogue Mode 2021-12-22 21:49:08 -08:00
GraphicsUtil.h Add ClearSurface() 2021-02-25 19:38:25 -05:00
Input.cpp Remove clamp in favor of SDL_clamp 2022-02-11 17:31:41 -05:00
Input.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
KeyPoll.cpp Extern gameScreen, remove screenbuffer 2021-12-25 00:29:28 -08:00
KeyPoll.h Untabify every single file 2021-09-06 18:56:39 -07:00
Labclass.cpp Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
Labclass.h Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
Logic.cpp Remove game.door_left/right/up/down variables 2021-12-17 19:43:29 -08:00
Logic.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
main.cpp Remove SDL_GetTicks64() ifdefs 2022-02-11 17:31:41 -05:00
MakeAndPlay.h Use multiline comments in C files 2021-04-17 00:50:04 -04:00
Map.cpp Remove game.door_left/right/up/down variables 2021-12-17 19:43:29 -08:00
Map.h Remove vmult lookup tables 2021-09-24 16:37:27 -07:00
Maths.h Remove clamp in favor of SDL_clamp 2022-02-11 17:31:41 -05:00
Music.cpp Point to SDL_LoadWAV for SoundTrack FAudio suggestion 2022-01-15 01:02:24 -05:00
Music.h SDL_mixer is now entirely contained in Music.cpp. 2021-12-26 08:57:38 -05: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 Fix elephant placement across rooms 2021-12-08 16:25:18 -08:00
Otherlevel.h Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
preloader.cpp Axe RGBflip() in favor of getRGB() 2021-09-11 02:15:20 -07:00
preloader.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
Render.cpp Remove clamp in favor of SDL_clamp 2022-02-11 17:31:41 -05:00
Render.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
RenderFixed.cpp Use resumegamemode to track menu animation 2021-09-05 16:59:05 -07:00
RenderFixed.h Remove now-unneeded deltaframe fix when going to in-game settings 2021-03-21 02:55:42 -04:00
Screen.cpp Remove SDL_GetTicks64() ifdefs 2022-02-11 17:31:41 -05:00
Screen.h Add forced fullscreen mode 2021-12-25 23:01:45 -08:00
ScreenSettings.h Add and use scaling mode enum 2021-12-25 23:14:12 -08:00
Script.cpp Remove SDL_GetTicks64() ifdefs 2022-02-11 17:31:41 -05:00
Script.h createentity command: Actually have p1/p2/p3/p4 defaults 2021-08-12 00:20:40 -04:00
Scripts.cpp Add message when player is kicked out of Super Gravitron 2021-09-03 12:08:31 -07:00
Spacestation2.cpp Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
Spacestation2.h Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
SteamNetwork.c Silence GCC warnings about void*-to-function-pointer casts 2021-10-21 01:00:06 -07:00
TerminalScripts.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Textbox.cpp Rename textbox to textboxes and textbox line to lines 2021-09-12 21:06:27 -07:00
Textbox.h Rename textbox to textboxes and textbox line to lines 2021-09-12 21:06:27 -07:00
ThirdPartyDeps.c Use multiline comments in C files 2021-04-17 00:50:04 -04: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 Untabify every single file 2021-09-06 18:56:39 -07:00
Unused.h Factor out UNUSED macro to header file 2021-05-25 15:23:34 -04:00
UtilityClass.cpp Simplify time formatting functions 2021-12-25 11:38:12 -08:00
UtilityClass.h Simplify time formatting functions 2021-12-25 11:38:12 -08:00
Version.h Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
Version.h.in Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
Vlogging.c Mark all vlog functions with printf attributes 2021-09-27 20:49:09 -07:00
Vlogging.h Mark all vlog functions with printf attributes 2021-09-27 20:49:09 -07:00
WarpClass.cpp Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
WarpClass.h Replace roomnames/hiddennames/glitchnames with const char* 2021-09-12 21:06:26 -07:00
XMLUtils.cpp Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00
XMLUtils.h Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00
Xoshiro.c Replace Gravitron RNG with seeded Xoshiro 2021-08-27 12:28:35 -07:00
Xoshiro.h Replace Gravitron RNG with seeded Xoshiro 2021-08-27 12:28:35 -07:00