1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-26 14:38:30 +02:00
VVVVVV/desktop_version/src
Misa 9a008dc77c Refactor how custom level stats are stored, read, and written
There were a few problems with the old way of doing things:

(1) Level stats were an ad-hoc object. Basically, it's an object whose
attributes are stored in separate arrays, instead of being an actual
object with its attributes stored in one array.
(2) Level filenames with pipes in them could cause trouble. This is
because the filename attribute array was stored in the XML by being
separated by pipes.
(3) There was an arbitrary limit of only having 200 level stats, for
whatever reason.

To remedy this issue, I've made a new struct named CustomLevelStat that
is a proper object. The separate attribute arrays have been replaced
with a proper vector, which also doesn't have a size limit.

For compatibility with versions 2.2 and below, I've kept being able to
read the old format. This only happens if the new format doesn't exist.
However, I also WRITE the old format as well, in case you want to go
back to version 2.2 or below for whatever reason. It's slightly
wasteful to have both, but that way there's no risk of breaking
compatibility.
2020-06-29 18:39:22 -07:00
..
BinaryBlob.cpp Maybe check the right size m8 2020-06-14 22:44:34 -04:00
BinaryBlob.h Sigh. 2020-06-15 07:37:05 -04:00
BlockV.cpp Remove blockclass::clear(), simplify blockclass initializations 2020-04-03 23:28:47 -04:00
BlockV.h Remove blockclass::clear(), simplify blockclass initializations 2020-04-03 23:28:47 -04:00
editor.cpp Add -playassets command-line option 2020-06-21 20:25:22 -04:00
editor.h Add '#if !defined(NO_EDITOR)' guards around editorinput/render/logic 2020-06-19 18:35:03 -04:00
Ent.cpp Fix red pill/mannequins/transmittor/radar dish being offset for 1 frame 2020-06-19 09:05:48 -04:00
Ent.h Fix, for in-GAMEMODE sprites, their colors updating too fast 2020-06-19 09:05:48 -04:00
Entity.cpp Add special case to color gray Warp Zone entities gray 2020-06-29 19:07:45 -04:00
Entity.h Interpolate trophy text 2020-06-19 09:05:48 -04:00
Enums.h Hello WWWWWWorld! 2020-01-08 10:37:50 -05:00
FileSystemUtils.cpp Fix gamecontrollerdb.txt path 2020-06-23 19:08:08 -04:00
FileSystemUtils.h Abstract assets mounting to FileSystemUtils.cpp 2020-06-21 20:25:22 -04:00
Finalclass.cpp Statically allocate level arrays 2020-05-29 10:21:25 -04:00
Finalclass.h Refactor Finalclass.cpp to not use strings for tilemaps 2020-05-17 22:03:29 -04:00
Game.cpp Refactor how custom level stats are stored, read, and written 2020-06-29 18:39:22 -07:00
Game.h Refactor how custom level stats are stored, read, and written 2020-06-29 18:39:22 -07:00
GOGNetwork.c Add support for multiple Network backends, stub in GOGNetwork 2020-01-13 11:15:22 -05:00
Graphics.cpp Add special case to color gray Warp Zone entities gray 2020-06-29 19:07:45 -04:00
Graphics.h Add Graphics::map_option() 2020-06-23 15:23:57 -04:00
GraphicsResources.cpp Fix some leaks 2020-06-07 22:40:03 -04:00
GraphicsResources.h Fix some leaks 2020-06-07 22:40:03 -04:00
GraphicsUtil.cpp Add BlitSurfaceTinted() 2020-06-29 19:07:45 -04:00
GraphicsUtil.h Add BlitSurfaceTinted() 2020-06-29 19:07:45 -04:00
Input.cpp Restore janky gamestate-based quit-to-title system in glitchrunnermode 2020-06-29 15:12:35 -04:00
Input.h Remove global args from Input.cpp 2020-04-03 10:40:50 -04:00
KeyPoll.cpp Fix resumemusic/musicfadein not working 2020-06-27 17:23:07 -04:00
KeyPoll.h Fix resumemusic/musicfadein not working 2020-06-27 17:23:07 -04:00
Labclass.cpp Statically allocate level arrays 2020-05-29 10:21:25 -04:00
Labclass.h Refactor Labclass.cpp to not use strings for tilemaps 2020-05-17 22:03:29 -04:00
Logic.cpp Fix the two-frame-delay when entering a room with an "init" script 2020-06-29 15:42:51 -04:00
Logic.h Fix delta rendering glitch when going to options from new Esc menu 2020-06-23 15:23:57 -04:00
main.cpp Fix the two-frame-delay when entering a room with an "init" script 2020-06-29 15:42:51 -04:00
MakeAndPlay.h Re-comment out #define MAKEANDPLAY 2020-02-09 10:42:03 -05:00
Map.cpp Reset width of player in mapclass::resetplayer() 2020-06-29 19:08:22 -04:00
Map.h Fix the two-frame-delay when entering a room with an "init" script 2020-06-29 15:42:51 -04:00
Maths.h Hello WWWWWWorld! 2020-01-08 10:37:50 -05:00
Music.cpp Remove unused/useless vars music.custompd/musicfade(in)/volume 2020-06-27 17:23:07 -04:00
Music.h Remove unused/useless vars music.custompd/musicfade(in)/volume 2020-06-27 17:23:07 -04:00
Network.c Allow for conditional building of Steam and GOG APIs 2020-06-01 14:21:06 -04:00
Network.h Add support for multiple Network backends, stub in GOGNetwork 2020-01-13 11:15:22 -05:00
Otherlevel.cpp Statically allocate level arrays 2020-05-29 10:21:25 -04:00
Otherlevel.h Remove i/j/k attributes from classes that don't need them 2020-06-14 14:37:29 -04:00
preloader.cpp Move preloader update code to new function preloaderlogic() 2020-06-19 09:05:48 -04:00
preloader.h Move preloader update code to new function preloaderlogic() 2020-06-19 09:05:48 -04:00
Render.cpp Display centiseconds on time trial result and Game Complete 2020-06-29 19:09:11 -04:00
Render.h Merge towerrender() into gamerender() 2020-04-26 19:07:40 -04:00
Screen.cpp Work around SDL2 bug where VSync hint only applies on renderer creation 2020-06-19 17:44:53 -04:00
Screen.h Don't extern gameScreen, use *graphics.screenbuffer instead 2020-06-19 17:44:53 -04:00
Script.cpp Fix the two-frame-delay when entering a room with an "init" script 2020-06-29 15:42:51 -04:00
Script.h Fix the two-frame-delay when entering a room with an "init" script 2020-06-29 15:42:51 -04:00
Scripts.cpp Remove include guards from Scripts.cpp and TerminalScripts.cpp 2020-06-11 22:13:52 -04:00
SoundSystem.cpp Revert "Add destructor for SoundTrack/MusicTrack (and explicitly define move constructor to prevent double-free)" 2020-06-07 22:40:03 -04:00
SoundSystem.h Revert "Add destructor for SoundTrack/MusicTrack (and explicitly define move constructor to prevent double-free)" 2020-06-07 22:40:03 -04:00
Spacestation2.cpp Statically allocate Prize for the Reckless tilemap 2020-05-29 19:39:05 -04:00
Spacestation2.h Refactor Spacestation2.cpp to not use strings for tilemaps 2020-05-17 22:03:29 -04:00
SteamNetwork.c Fix build on DragonFlyBSD 2020-04-23 23:35:33 -04:00
TerminalScripts.cpp Remove include guards from Scripts.cpp and TerminalScripts.cpp 2020-06-11 22:13:52 -04:00
Textbox.cpp Fix special text box images sometimes flashing 2020-06-19 09:05:48 -04:00
Textbox.h Fix special text box images sometimes flashing 2020-06-19 09:05:48 -04:00
Tower.cpp Remove now-unused fillbackground/fillcontents/fillminitower from Tower 2020-05-17 22:03:29 -04:00
Tower.h Remove i/j/k attributes from classes that don't need them 2020-06-14 14:37:29 -04:00
UtilityClass.cpp Move endsWith() to UtilityClass.cpp and put it in header file 2020-06-21 20:25:22 -04:00
UtilityClass.h Move endsWith() to UtilityClass.cpp and put it in header file 2020-06-21 20:25:22 -04:00
WarpClass.cpp Statically allocate level arrays 2020-05-29 10:21:25 -04:00
WarpClass.h Refactor WarpClass.cpp to not use strings for tilemaps 2020-05-17 22:03:29 -04:00