| 38 | | * You can't fire (quite limitating) |
| 39 | | * ... |
| 40 | | In order to change this there are a few steps required: |
| 41 | | 1. Open the files TutorialShip.cc and TurorialShip.h (in trunk/src/orxonox/objects) with your favorite IDE or console |
| 42 | | 2. (???) |
| 43 | | 3. ... |
| 44 | | 4. Now edit the levelfile ( Media/levels/sample.oxw ) to use TutorialShip instead of !SpaceShip instead |
| 45 | | - find the line where the the !SpaceShip gets loaded |
| 46 | | - change !SpaceShip to TutorialShip |
| 47 | | - add the new parameters (???) |
| 48 | | - save and close the levelfile |
| | 38 | * No special effects |
| | 39 | * You can't fire in continuous mode |
| | 40 | |
| | 41 | == TutorialShip Class == |
| | 42 | We have derived a new type of SpaceShip for you: TutorialShip. The back end doesn't have to bother you (you will notice that some functions don't seem to be doing anything at all). [[br]] |
| | 43 | At the moment, you are using the SpaceShip class. We would like to change this. Fortunately this can be done in an XML file where we load the level. |
| | 44 | 1. Go to your media repository (orxonox/Media) and open ''tutorial.oxw'' in the ''level'' folder with a text editor like vim, nano, etc. |
| | 45 | 1. Find the second paragraph (about 5th line) and change ''SpaceShip'' to ''TutorialShip'' |
| | 46 | 1. Save the file. You can keep it open, we need it again later. |
| | 47 | Next thing will be to change the code accordingly, since the game will probably crash now when started. [[br]] |
| | 48 | We organise our source files via CMake as you have already found out. You now have to tell CMake to also compile the ''TutorialShip'': |
| | 49 | 1. Open orxonox/trunk/src/orxonox/CMakeLists.txt |
| | 50 | 1. You will see a large list of source files (*.cc). You can add "TutorialShip.cc" anywhere you like, but it is preferred to organise the file a little bit. So look for SpaceShip.cc and add things there. |
| | 51 | 1. Save and close. |
| | 52 | The interesting part: Modifying the C++ code. '''Open orxonox/trunk/src/orxonox/objects/TutorialShip.cc'''. As you have already heard from Fabian, the Core Framework is like a language extension to C++. But it cannot be 100% automatic. That means you have to add a few lines accordingly: |
| | 53 | 1. Find the constructor (TutorialShip::TutorialShip()) and add '''RegisterObject(TutorialShip)''' as the first statement. This is used for the class hierarchy and for the ObjectLists. |
| | 54 | 1. do more stuff |
| | 55 | 1. (???) |
| | 56 | 1. ... |
| | 57 | |