Hi everyone!
I just finished my last semester of my Computer Science degree and I find I have a lot of time on my hands. I always wanted to get involved in programming of openmw. So far I have submitted a few bug fixes here and there when I find them.
I'd like to officially take on a small task and then work up to features once I get more confidant with the code (short term hand holding, I swear!).
I have a basic understanding of game engine architecture through university, I am experienced with C++, getting good with CMake, OpenGL, GLSL, learning Ogre, Bullet, as well as QT and I am good at getting things to work. I have been maintaining the Arch Linux version of openmw since version 0.16.0, I also took up maintenance and revived ogre related packages such as ogrebullet and Ogitor (ogre scene builder), though I have nothing to do with development or their teams.
I have read the Developer's Checklist and I'm all set up. If someone wants to suggest an IDE to use in linux and the best way to do it, it would help me. Currently I generate a code::blocks project with CMake, but debugging (breakpoints) don't seem to work for me and I'm not a fan of the look.
@Zedd, I think I discovered openmw 3 years ago (?) through a site like slashdot or omgubuntu.
Application - Sandy Carter
- bwrsandman
- Posts: 45
- Joined: 25 Sep 2011, 05:30
- Location: Montreal
- Contact:
Re: Application - Sandy Carter
Hey Sandy!
Since you know Qt I think you could help Zini with the editor.
As an IDE I would suggest Qt Creator, It's really easy to use and it is able to load CMakeLists.txts.
Since you know Qt I think you could help Zini with the editor.
As an IDE I would suggest Qt Creator, It's really easy to use and it is able to load CMakeLists.txts.
Re: Application - Sandy Carter
Yeah, the OpenCS is the area where we need more manpower the most.
I am still waiting for the new user settings system from graffy, which hopefully should become available in a few days. That will open up a large number of tasks. I have handed out quite a few of the available editor tasks to various people, but haven't seen any code so far. Still, I don't want to reclaim any tasks yet. Therefore the selection is a bit more limited right now.
Maybe this one: Editor: Get ID for new records from user ?
I am still waiting for the new user settings system from graffy, which hopefully should become available in a few days. That will open up a large number of tasks. I have handed out quite a few of the available editor tasks to various people, but haven't seen any code so far. Still, I don't want to reclaim any tasks yet. Therefore the selection is a bit more limited right now.
Maybe this one: Editor: Get ID for new records from user ?
Re: Application - Sandy Carter
Haha, thanks! It's funny how most of our developers have learned about the project from sites not listed on our outreach page. Good luck.bwrsandman wrote: @Zedd, I think I discovered openmw 3 years ago (?) through a site like slashdot or omgubuntu.
- bwrsandman
- Posts: 45
- Joined: 25 Sep 2011, 05:30
- Location: Montreal
- Contact:
Re: Application - Sandy Carter
I'm not 100% sure what is wanted from that. I am interpreting it as:Zini wrote:Maybe this one: Editor: Get ID for new records from user ?
A bar that allows adding new records into the table. The record needs an ID before it can be added to the table, so the user needs to input it before adding the record.
I made a mock up:
Do I understand this correctly?
Re: Application - Sandy Carter
Yeah, that is about right. We have this feature implemented already, but the "New ID" function does not get the ID from the user and instead uses a fixed string with an incrementing number. You need to hook into this function, pop up the bar (as shown in the mockup), make sure that the entered ID is valid, remove the bar and continue with the existing code for ID creation.
Definition: An ID is valid, if:
1. it starts with an underscore or a letter (should also accept non-english ones)
2. It contains only letters, numbers, underscores and spaces
3. It does not match any existing ID.
This is somewhat more restrictive than the original CS, but I think we have to make a point here. The lax ID naming policy in the TES-CS causes us problems all over the place. Note that this does not mean that OpenCS will stop supporting existing content with less restrictive IDs in use. We just don't allow creating of new ones.
1. & 2. might be a bit hard to implement. Therefore I propose an alternative method, that is a good approximation and trivial to implement: Do not check, if every character in the ID is on the list of valid ones. Instead check for every character, if it is an invalid one in the ASCII range (up to 127). That will allow some non-ASCII non-letters to be usable in IDs, but since there is no chance for a conflict anywhere else, that should not cause us any problems.
Definition: An ID is valid, if:
1. it starts with an underscore or a letter (should also accept non-english ones)
2. It contains only letters, numbers, underscores and spaces
3. It does not match any existing ID.
This is somewhat more restrictive than the original CS, but I think we have to make a point here. The lax ID naming policy in the TES-CS causes us problems all over the place. Note that this does not mean that OpenCS will stop supporting existing content with less restrictive IDs in use. We just don't allow creating of new ones.
1. & 2. might be a bit hard to implement. Therefore I propose an alternative method, that is a good approximation and trivial to implement: Do not check, if every character in the ID is on the list of valid ones. Instead check for every character, if it is an invalid one in the ASCII range (up to 127). That will allow some non-ASCII non-letters to be usable in IDs, but since there is no chance for a conflict anywhere else, that should not cause us any problems.
- bwrsandman
- Posts: 45
- Joined: 25 Sep 2011, 05:30
- Location: Montreal
- Contact:
Re: Application - Sandy Carter
I could probably use QT's regex to validate the IDs.
Where should I put the ID checking code?
It seems that there are a lot of checking classes in opencs/model/tools, so maybe there?
Where should I put the ID checking code?
It seems that there are a lot of checking classes in opencs/model/tools, so maybe there?
Re: Application - Sandy Carter
Nope. This is one case where you need to verify the correctness immediately. At least the uniqueness of the ID needs to be checked or we risk breaking something. And when we check the uniqueness anyway, we can check for invalid characters as well.
I suggest adding a function to CSMWorld::Data that returns the result of the check as an enum, which can then be used in the UI code.
I suggest adding a function to CSMWorld::Data that returns the result of the check as an enum, which can then be used in the UI code.