No description
Find a file
jacekpoz b978fb2288
fix pretty much everything, read description
this is a big (or dare I say, huge) commit that pretty much fixes every
problem I've had so far with the basic parsing

I still need to do a custom operator>> for some types but at this point
the parser goes through the entire file and prints out everything which
is a large milestone I'd say

changes in this commit:
- add SECTION_LIST for a section containing a single list of values
  examples: TimingPoints, HitObjects
- improve operator>> for enums making it accept int values and fail
  properly when the value is incorrect (there's a warning I need to get
  rid of but it's ok for now)
- skip over blank lines: adding this single line (src/osuparser.cpp:52)
  made the parser go from shitting itself to actually going through the
  whole file and printing everything (with some errors but still)
- new string util: isBlank() used for the above
- new __VA_ARGS__ util: ARG_COUNT() and rename foreach.hpp to
  va_args_util.hpp as that name no longer fits
2024-04-26 19:05:35 +02:00
include fix pretty much everything, read description 2024-04-26 19:05:35 +02:00
nix make nix build/run work by adding installPhase 2024-04-18 22:08:44 +02:00
src fix pretty much everything, read description 2024-04-26 19:05:35 +02:00
.ccls init 2024-03-18 11:25:15 +01:00
.envrc init 2024-03-18 11:25:15 +01:00
.gitignore add make preprocess 2024-04-24 19:30:34 +02:00
flake.lock init 2024-03-18 11:25:15 +01:00
flake.nix refactor shell out into nix/ and add nix package 2024-04-18 17:46:50 +02:00
LICENSE init 2024-03-18 11:25:15 +01:00
Makefile massively improve the awk fuckery 2024-04-25 11:49:09 +02:00
README.md add dev instructions 2024-04-25 23:31:09 +02:00

osu++

osu client written in c++ using sfml

building

make
./target/osu++

there's also a flake with a shell and package - if you know nix you know what to do with those

dev

nix develop if you're cool and use nix

otherwise check nix/shell.nix for an up-to-date list of dependencies

if you want to debug the macros (good luck keeping your sanity) run make pp to preprocess and format the files (output in preprocessed/)

TODO

  • parser generator:
    • handle section-lists (e.g. TimingPoints or HitObjects)
    • learn and parse sliders
    • rename macros to look better (CONFIG -> PARSE, etc.)
    • get rid of STREAM_STRUCT_OPS - make the STRUCT and CONFIG macros generate stream ops themselves
    • numbered lists and colors
    • extract into standalone library with both native c and c++ support (?)

license

agpl3