@moriarity:
first of all, I'd like to thank you for your response.
what I've written here is related strictly to the post. the proposed way to learn to code in c++ is inferior, and leads nowhere near the basics that are actually required to call an individual a qualified c++ coder.
...complete re-design would actually help this project...
please take a re-read of my posts, and you will find yourself wrong on that.
the main coders of openXcom are not coders at all
a coder is not the same thing as a qualified coder. for example a qualified c++ coder easily handles tons of problems that simply couldn't ever occur in this project, thus which can't be learnt here.
But I do know that what you are doing right now is claiming that the code is all wrong
you "assume", you do not "know", and please quote anything in this post, or any other of my posts, that proves that statement
to add even more: I never said anything like this - the code does approximately what the users want, but its quality is really poor. (approximately, because there are still bugs, I've found some really quickly, tough one of them did not reproduce on other machines, but I still have one or two to post with saves)
and yeah, I can lie as well that the code is perfect quality, and its design is really intuitive if you think this will help out anything. I have never believed in the "don't worry timmy, you didn't lose. you're just the last winner" attitude -THIS does nothing but helps bad things corrupt into worse
reaction and psi attack logic is in the TileEngine class
and here I don't think you actually understand what stands behind these words. here's an projection of that situation to real life:
imagine you have a vacuum cleaner, and a blender. now imagine, that in order to use the blender you must bring the vacuum cleaner every time, open its dust container and that deep there's the button that turns the blender on.
now please tell me, how intuitive that is, and how a new user would be able to swiftly start using the blender without a manual
answering another point from what you've written:
complete re-design would actually help this project.
of course it wouldn't help this project, because a complete redesign basically means a rewrite, and it is a widely known fact that the deathrate of projects that get rewritten is tremendous.
You are necroing threads just to press your points.
I'm not. if you read carefully, you'd notice that I start being cynic when something "fuzzy" appears. I am not tolerant to lies, that is all. AND I really respect truth, such as you expressing your thoughts on my posts.
when I see a sentence "well, we didn't use polymorphism, because <something that makes sense as a justification>" then it's a valid decission that was made thoughtfully, but when I see "well, we didn't use polymorphism, because it doesn't line up with game development" then it's inavoidable, to recieve a proper comment to that.
false things are false, and insisting on them being true means either that someone is wrong, or is intentionally lying.
finally, if you think that speaking the truth is ill tempered, bad attitude or insulting, then please consider your honest words, as the same kind of temper, attitude or tone.
last comment:
learning materials need to be as close to being flawless as possible. there are tons of materials posted as "learning resources" that should be destroyed, because of their low quality - even if you take out all the crap that contains errors (in code samples or in the explanations of topics).
I have actually been teaching programming in java and c++ and managed to make people write their final projects on their own despite they were starting from different programming paradigms at best, so I know how this looks like. Still, I wouldn't call any of the people I've been teaching how to program in a certain language a decent, or qualified person.