nevermind, the right edge is on the inside too, it's just the bottom, so lets file this under off by one errors... I'm just too used to the two dimensions being consistent
ended up reworking a lot of the ui code... all the Xes and Ys and half-assed SDL wrappers were getting on my nerves, so partially replaced them with my own half-assed SDL wrappers and vector library...
https://notabug.org/fuglycodelord420/openbw/commits/1aa93b122d1da807267d78d52e600f1dee390777
what's new objectively? well you can make an SCV now by pressing S...
things that bit me:
operator precedence
note: algebra am I right?
overload resolution
note: a universal reference without type constraints in an overload set should be a yellow flag
value/reference semantics:
note: if you want to absolutely make sure you are referring to a value as a constant and not owning one, use const pointer to const value (or something like std::reference_wrapper to exclude nullptr), not a const reference, since, as we all know, a const reference can bind to a temporary and extend its lifetime.
final thoughts: god I wish I had a garbage collector or a borrow checker to save me from... wait none of these are memory errors? how come?
witness code compression (>^-^)>
http://ix.io/3vy0/cpp
>but you introduced three new libraries :v
libraries don't count :V
>but your version is also slower :v
it can be optimized >:V nothing inherently slow about it :<
#cpp