So I was once again thinking about my ressource manager system and I'm sort of pissed how long it takes for me. I think it's now the second time that I tried to find another solution for something I already solved but simply didn't remember it because I also had to do other stuff which I, personally, find less important for my own goals but is necessary to get my bachelor. That beeing said, I hate to turn my back on those important parts of game programming just because some stupid lecturer thinks we have to solve his stupid magic square puzzles with esoteric programming languages. Even worse, it makes me start over and over again without making actual progress.
I'll change this this weekend and noone's gonna stop me. To make my work with this way easier, I'll generalize the idea of priorities and merge it the tasker. It'll have, for simplicity's sake, have two task lists it'll use to get new task. The original one will be the low priority list, used if there are no high priority tasks. The new, additional one is reserved for high priority tasks and seperates the total of tasks. If the tasker did execute it's current task and put it back into it's list or not, it'll first look for a task in the high priority list and, if it's empty, in it's low priority list. All tasks in both lists will have the same possible runtime behaviour, thus making it possible to abuse for a few more things than only priority. This also makes it rather simple to define the interface as every lock of the tasker will lock both lists. I prefer this solution over all the others and it'll provide enough feature set to do all the stuff I want. And that'll be the final concept, no more changes, no more delays. There's no more time for such stupid hazzles. The project has to go on.