Application - Sandy Carter

Join the team. This area is for people who want to participate in OpenMW's development in one way or another.
Post Reply
User avatar
bwrsandman
Posts: 45
Joined: 25 Sep 2011, 05:30
Location: Montreal
Contact:

Application - Sandy Carter

Post by bwrsandman »

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.
User avatar
pvdk
Posts: 528
Joined: 12 Aug 2011, 16:34

Re: Application - Sandy Carter

Post by pvdk »

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.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Application - Sandy Carter

Post by Zini »

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 ?
User avatar
sirherrbatka
Posts: 2159
Joined: 07 Aug 2011, 17:21

Re: Application - Sandy Carter

Post by sirherrbatka »

hi sandy.
User avatar
Zedd
Posts: 288
Joined: 05 Sep 2012, 12:08

Re: Application - Sandy Carter

Post by Zedd »

bwrsandman wrote: @Zedd, I think I discovered openmw 3 years ago (?) through a site like slashdot or omgubuntu.
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.
User avatar
bwrsandman
Posts: 45
Joined: 25 Sep 2011, 05:30
Location: Montreal
Contact:

Re: Application - Sandy Carter

Post by bwrsandman »

Zini wrote:Maybe this one: Editor: Get ID for new records from user ?
I'm not 100% sure what is wanted from that. I am interpreting it as:
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:
Image

Do I understand this correctly?
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Application - Sandy Carter

Post by Zini »

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.
User avatar
bwrsandman
Posts: 45
Joined: 25 Sep 2011, 05:30
Location: Montreal
Contact:

Re: Application - Sandy Carter

Post by bwrsandman »

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?
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Application - Sandy Carter

Post by Zini »

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.
Post Reply