1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-23 10:09:43 +01:00
VVVVVV/desktop_version/src
Misa 769f99f590 Reduce dependency on libc functions
During 2.3 development, there's been a gradual shift to using SDL stdlib
functions instead of libc functions, but there are still some libc
functions (or the same libc function but from the STL) in the code.

Well, this patch replaces all the rest of them in one fell swoop.

SDL's stdlib can replace most of these, but its SDL_min() and SDL_max()
are inadequate - they aren't really functions, they're more like macros
with a nasty penchant for double-evaluation. So I just made my own
VVV_min() and VVV_max() functions and placed them in Maths.h instead,
then replaced all the previous usages of min(), max(), std::min(),
std::max(), SDL_min(), and SDL_max() with VVV_min() and VVV_max().

Additionally, there's no SDL_isxdigit(), so I just implemented my own
VVV_isxdigit().

SDL has SDL_malloc() and SDL_free(), but they have some refcounting
built in to them, so in order to use them with LodePNG, I have to
replace the malloc() and free() that LodePNG uses. Which isn't too hard,
I did it in a new file called ThirdPartyDeps.c, and LodePNG is now
compiled with the LODEPNG_NO_COMPILE_ALLOCATORS definition.

Lastly, I also refactored the awful strcpy() and strcat() usages in
PLATFORM_migrateSaveData() to use SDL_snprintf() instead. I know save
migration is getting axed in 2.4, but it still bothers me to have
something like that in the codebase otherwise.

Without further ado, here is the full list of functions that the
codebase now uses:

- SDL_strlcpy() instead of strcpy()
- SDL_strlcat() instead of strcat()
- SDL_snprintf() instead of sprintf(), strcpy(), or strcat() (see above)
- VVV_min() instead of min(), std::min(), or SDL_min()
- VVV_max() instead of max(), std::max(), or SDL_max()
- VVV_isxdigit() instead of isxdigit()
- SDL_strcmp() instead of strcmp()
- SDL_strcasecmp() instead of strcasecmp() or Win32 strcmpi()
- SDL_strstr() instead of strstr()
- SDL_strlen() instead of strlen()
- SDL_sscanf() instead of sscanf()
- SDL_getenv() instead of getenv()
- SDL_malloc() instead of malloc() (replacing in LodePNG as well)
- SDL_free() instead of free() (replacing in LodePNG as well)
2021-01-12 14:02:31 -05:00
..
BinaryBlob.cpp Use SDL stdlib funcs for free/malloc/strcmp 2020-08-14 09:51:19 -04:00
BinaryBlob.h Check index of tracks in musicclass::init() 2020-08-14 09:51:19 -04:00
BlockV.cpp Remove unnecessary string initializations from constructors 2020-07-08 19:14:21 -04:00
BlockV.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
Credits.h Fix entities in the Warp Zone's gray tileset not being gray in the editor (#480) 2020-09-25 13:35:03 -04:00
editor.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
editor.h Clean up unnecessary exports and add static keywords 2021-01-10 12:23:59 -05:00
Ent.cpp Add entclass::ishumanoid() 2020-11-03 13:31:56 -05:00
Ent.h Add entclass::ishumanoid() 2020-11-03 13:31:56 -05:00
Entity.cpp Fix Secret Lab Time Trial trophies having wrong colors 2021-01-08 15:17:36 -08:00
Entity.h Remove unused function entityclass::fixfriction() 2021-01-02 09:06:42 -05:00
Enums.h Hello WWWWWWorld! 2020-01-08 10:37:50 -05:00
FileSystemUtils.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
FileSystemUtils.h Only re-color one-ways if assets are not mounted 2020-06-30 18:06:14 -04:00
Finalclass.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Finalclass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
Game.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Game.h Remove game.savemystats 2021-01-11 00:26:14 -05:00
GOGNetwork.c Ifdef out network code for M&P 2020-08-02 23:43:55 -04:00
Graphics.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Graphics.h Remove unused function Graphics::textboxmove() 2021-01-02 09:06:42 -05:00
GraphicsResources.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
GraphicsResources.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
GraphicsUtil.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
GraphicsUtil.h Clean up unnecessary exports and add static keywords 2021-01-10 12:23:59 -05:00
Input.cpp Remove game.savemystats 2021-01-11 00:26:14 -05:00
Input.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
KeyPoll.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
KeyPoll.h Remove unused function KeyPoll::isUp() 2021-01-02 09:06:42 -05:00
Labclass.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Labclass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
Logic.cpp Fix player being invisible upon loading into game again 2020-12-28 16:22:13 -05:00
Logic.h Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
main.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
MakeAndPlay.h Re-comment out #define MAKEANDPLAY 2020-02-09 10:42:03 -05:00
Map.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Map.h Remove map.finalx/y and map.customx/y 2021-01-11 00:24:59 -05:00
Maths.h Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Music.cpp Clean up unnecessary exports and add static keywords 2021-01-10 12:23:59 -05:00
Music.h Don't reset entire musicclass when mounting and unmounting assets 2020-11-12 19:11:13 -05:00
Network.c Remove unnecessary externs from network func forward decls 2020-08-02 23:43:55 -04:00
Network.h Add support for multiple Network backends, stub in GOGNetwork 2020-01-13 11:15:22 -05:00
Otherlevel.cpp Bounds check all entity getters that can return 0 2020-09-25 13:51:47 -04:00
Otherlevel.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
preloader.cpp Clean up unnecessary exports and add static keywords 2021-01-10 12:23:59 -05:00
preloader.h Allow pressing ACTION to skip fake loading screen 2020-12-20 15:19:22 -08:00
Render.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Render.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
RenderFixed.cpp Move mapclass r/g/b variables off onto TowerBG 2021-01-07 21:15:34 -05:00
RenderFixed.h Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
Screen.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Screen.h Allow Game::savestats() to accept a pointer to ScreenSettings 2020-12-21 20:15:30 -05:00
ScreenSettings.h Factor out screen settings to ScreenSettings struct 2020-12-18 10:02:18 -05:00
Script.cpp Remove map.finalx/y and map.customx/y 2021-01-11 00:24:59 -05:00
Script.h Clean up and prevent unnecessary qualifiers to self 2020-09-28 01:34:40 -04:00
Scripts.cpp Make 'custom_' check more readable 2020-09-27 16:31:40 -04:00
SoundSystem.cpp Remove unused function SoundSystem::playMusic() 2021-01-02 09:06:42 -05:00
SoundSystem.h Remove unused function SoundSystem::playMusic() 2021-01-02 09:06:42 -05:00
Spacestation2.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Spacestation2.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
SteamNetwork.c Ifdef out network code for M&P 2020-08-02 23:43:55 -04:00
TerminalScripts.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Textbox.cpp Remove allowspecial, replace with opaqueness check 2020-08-06 22:12:15 -04:00
Textbox.h Remove allowspecial, replace with opaqueness check 2020-08-06 22:12:15 -04:00
ThirdPartyDeps.c Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
Tower.cpp Remove zeroed arrays from tower functions in M&P 2020-08-03 00:29:15 -04:00
Tower.h Change all tilemaps to be short[1200] instead of int[1200] 2020-07-19 16:25:53 -04:00
TowerBG.h Move mapclass r/g/b variables off onto TowerBG 2021-01-07 21:15:34 -05:00
UtilityClass.cpp Reduce dependency on libc functions 2021-01-12 14:02:31 -05:00
UtilityClass.h Clean up and prevent unnecessary qualifiers to self 2020-09-28 01:34:40 -04: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
WarpClass.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
WarpClass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04: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