1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-28 15:38:30 +02:00
VVVVVV/desktop_version/src
Misa 891ca527f9 Remove overcomplicated integer divisions
Believe it or not, there are still some remnants of the ActionScript
coding standards in the codebase! And one of them sometimes pops up
whenever an integer division happens.

As it so happens, it seems like division in ActionScript automatically
produces a decimal number. So to prevent that, the game sometimes
subtracts off the remainder of the number to be divided before
performing the division on it.

Thus, we get statements that look like

    (a - (a % b)) / b

And probably more parentheses surrounding it too, since it would be
copy-pasted into yet another larger expression, because of course it
would.

`(a % b)` here is subtracting the remainder of `a` divided by `b`, using
the modulo operator, before it gets divided by `b`. Thus, the number
will always be divisible by `b`, so dividing it will mathematically not
produce a decimal number.

Needless to say, this is unnecessary, and very unreadable. In fact, when
I saw these for the first time, I thought they were overcomplicated
_modulos_, _not_ integer division! In C and C++, dividing an integer by
an integer will always result in an integer, so there's no need to do
all this runaround just to divide two integers.

To find all of these, I used the command

    rg --pcre2 '(.+?).+?-.+?(?=\1).+?%.+?([\d]+?).+?\/.+?(?=\2)'

which basically matches expressions of the form 'a - a % b / b', where
'a' and 'b' are identical and there could be any characters in the
spaces.
2021-09-24 17:39:31 -07: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 Replace setblockcolour() argument with const char* 2021-09-12 21:06:26 -07:00
BlockV.h Replace setblockcolour() argument with const char* 2021-09-12 21:06:26 -07:00
Constants.h Remove vmult lookup tables 2021-09-24 16:37:27 -07:00
Credits.h Move Misa to C++ credits 2021-08-31 23:22:22 -07:00
CustomLevels.cpp Remove overcomplicated integer divisions 2021-09-24 17:39:31 -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 overcomplicated integer divisions 2021-09-24 17:39:31 -07: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 Remove overcomplicated integer divisions 2021-09-24 17:39:31 -07:00
Entity.h Refactor colors in internal commands 2021-08-31 15:09:51 -07:00
Enums.h Untabify every single file 2021-09-06 18:56:39 -07:00
Exit.h Add noreturn qualifier to VVV_exit 2021-09-22 19:58:31 -07:00
FileSystemUtils.cpp Remove Ethan's binary-or comment 2021-09-23 23:26:28 -07: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 Remove overcomplicated integer divisions 2021-09-24 17:39:31 -07:00
Game.h Remove scmmoveme 2021-09-11 22:23:47 -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 Remove vmult lookup tables 2021-09-24 16:37:27 -07:00
Graphics.h Rename textbox to textboxes and textbox line to lines 2021-09-12 21:06:27 -07:00
GraphicsResources.cpp Fix surface color masks 2021-09-06 20:12:48 -07:00
GraphicsResources.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
GraphicsUtil.cpp Use SDL_BlitScaled in ScaleSurface 2021-09-05 20:07:18 -07:00
GraphicsUtil.h Add ClearSurface() 2021-02-25 19:38:25 -05:00
Input.cpp Fix VSync renderer workaround 2021-09-14 20:23:22 -07:00
Input.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
KeyPoll.cpp Handle lost focus on Emscripten 2021-09-07 09:43:48 -07: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 overcomplicated integer divisions 2021-09-24 17:39:31 -07:00
Logic.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
main.cpp Mark VVV_exit implementation as VVV_NORETURN 2021-09-23 23:02:46 -07:00
MakeAndPlay.h Use multiline comments in C files 2021-04-17 00:50:04 -04:00
Map.cpp Remove vmult lookup tables 2021-09-24 16:37:27 -07:00
Map.h Remove vmult lookup tables 2021-09-24 16:37:27 -07:00
Maths.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
Music.cpp Music: Do not do fades if not playing 2021-09-10 19:37:33 -07:00
Music.h Move Mix_PausedMusic() call into wrapper function 2021-09-10 19:37:31 -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 Untabify every single file 2021-09-06 18:56:39 -07: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 Fix VSync renderer workaround 2021-09-14 20:23:22 -07: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 Fix VSync renderer workaround 2021-09-14 20:23:22 -07:00
Screen.h Fix VSync renderer workaround 2021-09-14 20:23:22 -07:00
ScreenSettings.h Untabify every single file 2021-09-06 18:56:39 -07:00
Script.cpp Rename textbox to textboxes and textbox line to lines 2021-09-12 21:06:27 -07: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
SoundSystem.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
SoundSystem.h Untabify every single file 2021-09-06 18:56:39 -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 Remove unused Steam GetStat/SetStat 2021-09-22 20:04:34 -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 Remove overcomplicated integer divisions 2021-09-24 17:39:31 -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 Remove overcomplicated integer divisions 2021-09-24 17:39:31 -07:00
UtilityClass.h Remove splitseconds lookup table and inline it 2021-09-24 16:03:14 -07: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 Add debug logs 2021-09-01 14:34:55 -07:00
Vlogging.h Add debug logs 2021-09-01 14:34:55 -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