Added a number of base classes for the new competition system - They are
very similar to existing classes so far (most of it has been
copy-pasting so far), with the change that Problems can be created on
their own, Languages now also have UIDs, and Languages are part of
LanguageSet.
The cleanliness of events is now not to be understated.
EventHandler now accepts Event or integer as valid event identifiers.
The event's ordinal is used as the underlying integer.
Moved in a large amount of old competition files verbatim to the new
competition package (Judging doesn't need any changes, for example).
Added more EventHandling Event-based functions, and full event handling
to Problem and ProblemSet so far.
Interim commit to show status. Everything is still broken, so don't try
to pull or run this branch. Made a significant amount of progress on
virtually everything - Judging needs to be moved over to the new
package, but the system should be operable again at the end of the day.
The big looming issue is how to effectively keep persistence of two
Competition objects exactly. Some solution will present itself
eventually.
competition2 no longer has errors - now in the process of creating the
true Competition persistence system. This commit was created as the
competition package is about to be deleted and the competition2 package
refactored.
Ah, woe betide us! For the old competition is no more, and in its place
is a new, better Competition system which now supports loading/saving
and reading. However, networking is still broken and the patching system
which will manage Competition updating from now on is only partially
done.
Progress on the CompetitionUpdate system is about halfway.
Fixed a huge amount of classes - persistence is broken again, but a few
more commits and everything should bei n working order.
There are no errors anymore in SCL's serverfreeze branch! However,
persistence is nonexistent and some Events need to be moved out of the
NetworkActions.
Fixed the inevitable IO save/load issues - next up is fixing competition
persistence.
Finished the basic Competition Update system; however, the actually
creation and sending of the update objects is not implemented.
The new Competition Update system is working well enough, except the
silly factory system which I wholesomely despise. Need to add the
automatic CompetitionUpdate creation system as well as some admin
CompetitionUpdate objects like User changed and stuff. All in all, a
massive pain. Perhaps having 30000 different network actions was the
better choice, perhaps not.
Merge branch 'serverfreeze' into dev