Graph Screen Grid Rendering

a relatively simple method to render the grid to display our data.
this is the most efficient method i could come up with.
also: it looks correct to the pixel.
Let's enable those other buttons

let's provide functionality for those 5 buttons, even if they won't do
anything yet.
Add Horizontal Scale to graphs

this commit is a bit like me really... raw, brutal, horrifically ugly but
dammit, it gets the job done.
if you don't like it, then YOU spend 3 hours trying to get this crap to line up.
Add Vertical Scale to graphs

oh god, this is a mess.
this class is starting to suffer some serious bloat issues,
but for the life of me, i can't figure out a better optimized method that
results in the text actually being where i want it.

if you can think of a better method... don't hesitate to send a PR.
Fixed bad formula - graph complete!

that didn't look right at all.
this looks a LOT better.

oh also, the graphs screen now has a working graph (background) that scales
properly according to the scores it's measuring, accurately displays month
and year information, and STUFF!
Merge branch 'master' of https://github.com/SupSuper/OpenXcom.git into ActivityScreens
Refactor: save more funding info

we now store the last 12 month's worth of month-ending funding levels.
because your savedgame is evil and needs to be punished.
more refactoring + code cleanup

and a few more coding buzz words.
moved some of the things we'll be doing a lot out into their own functions.
those buttons actually do something now, they change the vertical scale
units of the graph.
still no LINES drawn on it yet, but i'll need 7.4 billion buttons for that.
7.4 billion buttons added.

one for each country and region, and a total for both.
this is SO not gonna be modder friendly.
they'll have to add buttons by haxxoring code.
better graph scaling

now we have nice round numbers on the graphs screens
using these methods to get the results i wanted makes me sick to the stomach
if someone can come up with a formula that does the same thing PLEASE send a PR,
because this feels like the worst optimized piece of shitty code i've submitted.
i could substitute the series of else-ifs to a case statement, but that's just
a different way of dealing with the problem, not a solution.
Code Optimizations

aka: how i learned to stop worrying and love the array,
commonly known as "vectors! vectors! hooray for vectors!"

- refactored 7.4 billion buttons into 2 vectors who's size is a function
of the number of countries/regions defined in the ruleset.
- reduced overall file size considerably, while simultaneously adding modability support.
Make buttons prettyful.

now that we have too many buttons, let's make them all do something.
for starters, let's make the graph selection buttons display the right set
of buttons, and let's create some variables/pointers to use further on down
the road (for example, an array of which buttons are currently on)

then, let's make the country/region buttons toggle their colours
on and off when you click on them.
Line Drawing Method

Now that we have prettyful buttons that toggle boolean flags, let's draw
some dots to try and figure out how to plot the information accurately
on the graph.

while it may not look like much, this represents the result of WAY too
many hours and approximately 8 cups of coffees worth of testing with
variables and adjusting the formula and then retesting and readjusting
and yelling and geting frustrated and hitting things until they behaved.

protip: if you're looking at a country graph, and you can't get the data
to line up... double check that you're using COUNTRY data and not REGION
data, because i can't even tell you how long it took me to notice.
Line Drawing Method

now that we have the pixels lining up nicely and where we want them,
and the buttons are all doing things, let's try drawing some lines, and use
a bunch of surfaces that we can toggle with the boolean flags that the
buttons are setting for us.

what the hell. that worked and it took like 5 minutes.
do i draw my powers from exhaustion or something? because i'm damned if i
can code like this with a clear head.

anyway, that's one working graph screen, it should basically be copy/pasta
from here on out, then i can wrap a bow on this bitch and call it a day.
Landmark: everything but finances.

comitting at this point because everything is more or less working how it should
with the exception of the finances window, which uses a completely different
set of buttons and will likely require some refactoring and save game breaking
because we'll have to store a LOT more things as vectors rather than integers
notably: facility, craft and personnel maintainence. or something. i have to
check the original so i'd know for sure what needs added, but at this point i'm happy.
Code Cleanup

a lot of stuff here.
code cleanups mostly, moving things out into their own functions and such.
now we're using the same buttons for ufo screens
there's a lot of vanilla-izing here, like the dynamic scale, and persistent
buttons and graphs and stuff.

there's also a metric shit ton of code removed.
committing now in case i mess it up
Fixed Totals and code cleanup

all the totals were messed up, i was processing things in the wrong order
should have been going back to front instead of front to front.
(so obvious)
at this point EVERYTHING is working as intended, except 3 buttons on the finance screen
expenditure will be easy: last month's balance + this month's income - this month's balance
maintenance will require a new vector in saved games. (yay for breakage)
score is easy enough: total xcom region/country activity - total alien region/country activity / number of regions/countries
Graphs finished

added another save field "maintenance" to keep track of monthly maintenance
costs so we can display them on the graph.

at this point everything is WORKING and ready to send upstream, however i
feel like there's a bit of optimization in order here, as i'm making a lot
of redundant calls and setting variables way more often than needed.

the horrible mess that is the code at this point represents my approach to
coding. "whatever it takes" seems to describe it nicely.
fix bad indenting and add some comments

no real code changes, moved some variables around, added some comments
here and there, and fixed some bad indenting