Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 1391 for code/branches


Ignore:
Timestamp:
May 23, 2008, 4:02:03 PM (17 years ago)
Author:
rgrieder
Message:
  • fixed some bugs
Location:
code/branches/network
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • code/branches/network/bin/keybindings.ini

    r1379 r1391  
    1717KeyTAB=
    1818KeyQ=
    19 KeyW=
    20 KeyE=
    21 KeyR=
     19KeyW=scale -1 moveRoll
     20KeyE=moveLongitudinal
     21KeyR=moveRoll
    2222KeyT=
    2323KeyY=
     
    3131KeyLCONTROL=
    3232KeyA=
    33 KeyS=
    34 KeyD=
    35 KeyF=
     33KeyS=scale -1 moveLateral
     34KeyD=scale -1 moveLongitudinal
     35KeyF=moveLateral
    3636KeyG=
    37 KeyH=
    38 KeyJ=
    39 KeyK=
    40 KeyL=
     37KeyH=scale -0.3 moveYaw
     38KeyJ=scale -0.3 movePitch
     39KeyK=scale  0.3 movePitch
     40KeyL=scale  0.3 moveYaw
    4141KeySEMICOLON=
    4242KeyAPOSTROPHE=
     
    146146KeyMAIL=
    147147KeyMEDIASELECT=
    148 MouseLeft=
    149 MouseRight=
    150 MouseMiddle=
    151 MouseButton3=
    152 MouseButton4=
    153 MouseButton5=
    154 MouseButton6=
    155 MouseButton7=
    156 MouseWheel1Up=AxisAmp 0.1 slomo
    157 MouseWheel1Down=AxisAmp 0.1 slomo
     148MouseLeft=fire
     149MouseRight=fire
     150MouseMiddle=fire
     151MouseButton3=fire
     152MouseButton4=fire
     153MouseButton5=fire
     154MouseButton6=fire
     155MouseButton7=fire
     156MouseWheel1Up=scale 0.1 slomo
     157MouseWheel1Down=scale 0.1 slomo
    158158MouseWheel2Up=
    159159MouseWheel2Down=
    160 MouseXPos= #exit | ButtonThreshold 0.85
    161 MouseXNeg=
    162 MouseYPos=
    163 MouseYNeg=
     160MouseXPos=scale  1 moveYaw
     161MouseXNeg=scale -1 moveYaw
     162MouseYPos=scale  1 movePitch
     163MouseYNeg=scale -1 movePitch
    164164Empty1Pos=
    165165Empty1Neg=
    166166Empty2Pos=
    167167Empty2Neg=
    168 JoyAxis1Pos=
    169 JoyAxis1Neg=
     168JoyAxis1Pos=scale -1 movePitch
     169JoyAxis1Neg=scale  1 movePitch
    170170JoyAxis2Pos=
    171171JoyAxis2Neg=
     
    175175JoyAxis4Neg=
    176176JoyAxis5Pos=
    177 JoyAxis5Neg= #AxisAmp 10 slomo | ButtonThreshold 0.9 | onPress exit
    178 JoyAxis6Pos= #AxisAmp  10 slomo
     177JoyAxis5Neg=
     178JoyAxis6Pos=
    179179JoyAxis6Neg=
    180180JoyAxis7Pos=
     
    182182JoyAxis8Pos=
    183183JoyAxis8Neg=
    184 JoyAxis9Pos=
    185 JoyAxis9Neg=
     184JoyAxis9Pos=scale   1 moveYaw
     185JoyAxis9Neg=scale  -1 moveYaw
    186186JoyAxis10Pos=
    187187JoyAxis10Neg=
    188 JoyAxis11Pos=
    189 JoyAxis11Neg=
    190 JoyAxis12Pos=
    191 JoyAxis12Neg=
     188JoyAxis11Pos=scale -1 moveLongitudinal
     189JoyAxis11Neg=scale  1 moveLongitudinal
     190JoyAxis12Pos=scale  1 moveLateral
     191JoyAxis12Neg=scale -1 moveLateral
    192192JoyAxis13Pos=
    193193JoyAxis13Neg=
     
    214214JoyAxis24Pos=
    215215JoyAxis24Neg=
    216 JoyButton0=
     216JoyButton0=cycleFocus
    217217JoyButton1=
    218218JoyButton2=
     
    220220JoyButton4=
    221221JoyButton5=
    222 JoyButton6=
    223 JoyButton7=
     222JoyButton6=scale  1 moveRoll
     223JoyButton7=scale -1 moveRoll
    224224JoyButton8=
    225 JoyButton9=
     225JoyButton9=fire
    226226JoyButton10=
    227227JoyButton11=
  • code/branches/network/src/core/CommandExecutor.cc

    r1349 r1391  
    403403        if (evaluation.bEvaluatedParams_ && evaluation.evaluatedExecutor_)
    404404        {
    405 std::cout << "CE_execute (evaluation): " << evaluation.evaluatedExecutor_->getName() << " " << evaluation.param_[0] << " " << evaluation.param_[1] << " " << evaluation.param_[2] << " " << evaluation.param_[3] << " " << evaluation.param_[4] << std::endl;
     405//std::cout << "CE_execute (evaluation): " << evaluation.evaluatedExecutor_->getName() << " " << evaluation.param_[0] << " " << evaluation.param_[1] << " " << evaluation.param_[2] << " " << evaluation.param_[3] << " " << evaluation.param_[4] << std::endl;
    406406            (*evaluation.evaluatedExecutor_)(evaluation.param_[0], evaluation.param_[1], evaluation.param_[2], evaluation.param_[3], evaluation.param_[4]);
    407407            return true;
    408408        }
    409409
    410 std::cout << "CE_execute: " << evaluation.processedCommand_ << "\n";
     410//std::cout << "CE_execute: " << evaluation.processedCommand_ << "\n";
    411411        switch (evaluation.state_)
    412412        {
  • code/branches/network/src/core/InputHandler.cc

    r1349 r1391  
    159159        // default amplitude is 1.0f
    160160        float paramModifier = 1.0f;
    161         if (getLowercase(tokens[iToken]) == "axisamp")
     161        if (getLowercase(tokens[iToken]) == "scale")
    162162        {
    163163          iToken++;
     
    307307  KeyBinder::KeyBinder() : deriveTime_(0.0f)
    308308  {
     309    mouseRelative_[0] = 0;
     310    mouseRelative_[1] = 0;
     311    mousePosition_[0] = 0;
     312    mousePosition_[1] = 0;
     313
    309314    RegisterObject(KeyBinder);
    310315
     
    477482  {
    478483    SetConfigValue(analogThreshold_, 0.01f)  .description("Threshold for analog axes until which the state is 0.");
     484    SetConfigValue(mouseSensitivity_, 1.0f)  .description("Mouse sensitivity.");
    479485    SetConfigValue(bDeriveMouseInput_, false).description("Whether or not to derive moues movement for the absolute value.");
    480     SetConfigValue(derivePeriod_, 0.1f)      .description("Accuracy of the mouse input deriver. The higher the more precise, but laggier.");
    481     SetConfigValue(mouseSensitivity_, 1.0f)  .description("Mouse sensitivity.");
     486    SetConfigValue(derivePeriod_, 0.1f).description("Accuracy of the mouse input deriver. The higher the more precise, but laggier.");
     487    SetConfigValue(mouseSensitivityDerived_, 1.0f).description("Mouse sensitivity if mouse input is derived.");
    482488
    483489    float oldThresh = buttonThreshold_;
     
    574580      if (halfAxes_[i].relVal_ > analogThreshold_ || halfAxes_[i].absVal_ > analogThreshold_)
    575581      {
     582        COUT(3) << halfAxes_[i].name_ << "\t" << halfAxes_[i].absVal_ << std::endl;
    576583        halfAxes_[i].execute();
    577584      }
     
    588595          if (mouseRelative_[i] > 0)
    589596          {
    590             halfAxes_[2*i + 0].absVal_ = mouseRelative_[i] * derivePeriod_ / 500 * mouseSensitivity_;
     597            halfAxes_[2*i + 0].absVal_ =  mouseRelative_[i] / derivePeriod_ / 5000 * mouseSensitivityDerived_;
    591598            halfAxes_[2*i + 1].absVal_ = 0.0f;
    592599          }
    593           else if (mouseRelative_[0] < 0)
     600          else if (mouseRelative_[i] < 0)
    594601          {
    595602            halfAxes_[2*i + 0].absVal_ = 0.0f;
    596             halfAxes_[2*i + 1].absVal_ = -mouseRelative_[i] * derivePeriod_ / 500 * mouseSensitivity_;
     603            halfAxes_[2*i + 1].absVal_ = -mouseRelative_[i] / derivePeriod_ / 5000 * mouseSensitivityDerived_;
     604          }
     605          else
     606          {
     607            halfAxes_[2*i + 0].absVal_ = 0.0f;
     608            halfAxes_[2*i + 1].absVal_ = 0.0f;
    597609          }
    598610          //COUT(3) << mouseRelative_[i] << " | ";
     
    672684            }
    673685            else
    674               halfAxes_[1 + 2*i].absVal_ =  ((float)mousePosition_[i])/1024 * mouseSensitivity_;
     686              halfAxes_[0 + 2*i].absVal_ =  ((float)mousePosition_[i])/1024 * mouseSensitivity_;
    675687          }
    676688          else
     
    687699              halfAxes_[1 + 2*i].absVal_ = -((float)mousePosition_[i])/1024 * mouseSensitivity_;
    688700          }
     701          //COUT(3) << "half axis 0: " << halfAxes_[0].absVal_ << std::endl;
     702          //COUT(3) << "half axis 1: " << halfAxes_[1].absVal_ << std::endl;
     703          //COUT(3) << "half axis 2: " << halfAxes_[2].absVal_ << std::endl;
     704          //COUT(3) << "half axis 3: " << halfAxes_[3].absVal_ << std::endl;
    689705
    690706          // relative
     
    722738  {
    723739    // TODO: check whether 16 bit integer as general axis value is a good idea (works under windows)
    724     CCOUT(3) << halfAxes_[8 + axis].name_ << std::endl;
     740    int i = 8 + axis * 2;
    725741    if (value >= 0)
    726742    {
    727       halfAxes_[8 + axis].absVal_ = ((float)value)/0x8000;
    728       halfAxes_[8 + axis].relVal_ = ((float)value)/0x8000;
    729       halfAxes_[8 + axis].hasChanged_ = true;
     743      //if (value > 10000)
     744      //{ CCOUT(3) << halfAxes_[i].name_ << std::endl; }
     745
     746      halfAxes_[i].absVal_ = ((float)value)/0x8000;
     747      halfAxes_[i].relVal_ = ((float)value)/0x8000;
     748      halfAxes_[i].hasChanged_ = true;
     749      if (halfAxes_[i + 1].absVal_ > 0)
     750      {
     751        halfAxes_[i + 1].absVal_ = -0.0f;
     752        halfAxes_[i + 1].relVal_ = -0.0f;
     753        halfAxes_[i + 1].hasChanged_ = true;
     754      }
    730755    }
    731756    else
    732757    {
    733       halfAxes_[8 + axis + 1].absVal_ = -((float)value)/0x8000;
    734       halfAxes_[8 + axis + 1].relVal_ = -((float)value)/0x8000;
    735       halfAxes_[8 + axis + 1].hasChanged_ = true;
     758      //if (value < -10000)
     759      //{ CCOUT(3) << halfAxes_[i + 1].name_ << std::endl; }
     760
     761      halfAxes_[i + 1].absVal_ = -((float)value)/0x8000;
     762      halfAxes_[i + 1].relVal_ = -((float)value)/0x8000;
     763      halfAxes_[i + 1].hasChanged_ = true;
     764      if (halfAxes_[i].absVal_ > 0)
     765      {
     766        halfAxes_[i].absVal_ = -0.0f;
     767        halfAxes_[i].relVal_ = -0.0f;
     768        halfAxes_[i].hasChanged_ = true;
     769      }
    736770    }
    737771  }
  • code/branches/network/src/core/InputHandler.h

    r1349 r1391  
    208208
    209209    //! Keeps track of the absolute mouse value (incl. scroll wheel)
    210     int mousePosition_[3];
     210    int mousePosition_[2];
    211211    //! Used to derive mouse input if requested
    212212    int mouseRelative_[2];
     
    224224    //! mouse sensitivity
    225225    float mouseSensitivity_;
     226    //! mouse sensitivity if mouse input is derived
     227    float mouseSensitivityDerived_;
    226228  };
    227229
  • code/branches/network/src/core/InputManager.cc

    r1349 r1391  
    603603
    604604    // check whether the button already is in the list (can happen when focus was lost)
    605     std::vector<int> buttonsDown = joyStickButtonsDown_[iJoyStick];
     605    std::vector<int>& buttonsDown = joyStickButtonsDown_[iJoyStick];
    606606    unsigned int iButton = 0;
    607607    while (iButton < buttonsDown.size() && buttonsDown[iButton] != button)
     
    625625
    626626    // remove the button from the joyStickButtonsDown_ list
    627     std::vector<int> buttonsDown = joyStickButtonsDown_[iJoyStick];
     627    std::vector<int>& buttonsDown = joyStickButtonsDown_[iJoyStick];
    628628    for (unsigned int iButton = 0; iButton < buttonsDown.size(); iButton++)
    629629    {
     
    643643  bool InputManager::axisMoved(const OIS::JoyStickEvent &arg, int axis)
    644644  {
    645     //CCOUT(3) << arg.state.mAxes[axis].abs << std::endl;
     645    //if (arg.state.mAxes[axis].abs > 10000 || arg.state.mAxes[axis].abs < -10000)
     646    //{ CCOUT(3) << "axis " << axis << " moved" << arg.state.mAxes[axis].abs << std::endl;}
    646647    // use the device to identify which one called the method
    647648    OIS::JoyStick* joyStick = (OIS::JoyStick*)arg.device;
     
    659660  bool InputManager::sliderMoved(const OIS::JoyStickEvent &arg, int id)
    660661  {
     662    //if (arg.state.mSliders[id].abX > 10000 || arg.state.mSliders[id].abX < -10000)
     663    //{CCOUT(3) << "slider " << id << " moved" << arg.state.mSliders[id].abX << std::endl;}
    661664    //CCOUT(3) << arg.state.mSliders[id].abX << "\t |" << arg.state.mSliders[id].abY << std::endl;
    662665    // use the device to identify which one called the method
  • code/branches/network/src/orxonox/Orxonox.cc

    r1379 r1391  
    517517      // again, just to be sure ogre works fine
    518518      ogreRoot._fireFrameEnded(evt);
     519      //msleep(100);
    519520          }
    520521
  • code/branches/network/src/orxonox/objects/SpaceShip.cc

    r1386 r1391  
    5353    ConsoleCommand(SpaceShip, setMaxSpeedTest, AccessLevel::Debug, false);
    5454    ConsoleCommand(SpaceShip, whereAmI, AccessLevel::User, true);
     55    ConsoleCommand(SpaceShip, moveLongitudinal, AccessLevel::User, true).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
     56    ConsoleCommand(SpaceShip, moveLateral, AccessLevel::User, true).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
     57    ConsoleCommand(SpaceShip, moveYaw, AccessLevel::User, true).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
     58    ConsoleCommand(SpaceShip, movePitch, AccessLevel::User, true).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
     59    ConsoleCommand(SpaceShip, moveRoll, AccessLevel::User, true).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
     60    ConsoleCommand(SpaceShip, fire, AccessLevel::User, true).setKeybindMode(KeybindMode::OnHold);
    5561    ConsoleCommandGeneric(test1, SpaceShip, createExecutor(createFunctor(&SpaceShip::setMaxSpeedTest), "setMaxSpeed", AccessLevel::Debug), false);
    5662    ConsoleCommandGeneric(test2, SpaceShip, createExecutor(createFunctor(&SpaceShip::setMaxSpeedTest), "setMaxBlubber", AccessLevel::Debug), false);
     
    308314    }
    309315
    310     void SpaceShip::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
    311     {
    312 /*
    313         this->mouseX += e.state.X.rel;
    314         if (this->bInvertMouse_)
    315             this->mouseY += e.state.Y.rel;
    316         else
    317             this->mouseY -= e.state.Y.rel;
    318 
    319 //        if(mouseX>maxMouseX) maxMouseX = mouseX;
    320 //        if(mouseX<minMouseX) minMouseX = mouseX;
    321 //        cout << "mouseX: " << mouseX << "\tmouseY: " << mouseY << endl;
    322 
    323         this->moved = true;
    324 */
    325         if (this->bRMousePressed_)
    326         {
    327             this->camNode_->roll(Degree(-rel.x * 0.10));
    328             this->camNode_->yaw(Degree(rel.y * 0.10));
    329         }
    330         else
    331         {
    332             float minDimension = clippingSize.y;
    333             if (clippingSize.x < minDimension)
    334                 minDimension = clippingSize.x;
    335 
    336             this->mouseX_ += rel.x;
    337             if (this->mouseX_ < -minDimension)
    338                 this->mouseX_ = -minDimension;
    339             if (this->mouseX_ > minDimension)
    340                 this->mouseX_ = minDimension;
    341 
    342             this->mouseY_ += rel.y;
    343             if (this->mouseY_ < -minDimension)
    344                 this->mouseY_ = -minDimension;
    345             if (this->mouseY_ > minDimension)
    346                 this->mouseY_ = minDimension;
    347 
    348             float xRotation = this->mouseX_ / minDimension;
    349             xRotation = xRotation*xRotation * sgn(xRotation);
    350             xRotation *= -this->rotationAcceleration_;
    351             if (xRotation > this->maxRotation_)
    352                 xRotation = this->maxRotation_;
    353             if (xRotation < -this->maxRotation_)
    354                 xRotation = -this->maxRotation_;
    355             this->mouseXRotation_ = Radian(xRotation);
    356 
    357             float yRotation = this->mouseY_ / minDimension;
    358             yRotation = yRotation*yRotation * sgn(yRotation);
    359             yRotation *= this->rotationAcceleration_;
    360             if (yRotation > this->maxRotation_)
    361                 yRotation = this->maxRotation_;
    362             if (yRotation < -this->maxRotation_)
    363                 yRotation = -this->maxRotation_;
    364             this->mouseYRotation_ = Radian(yRotation);
    365         }
    366     }
    367 
    368316    void SpaceShip::mouseButtonPressed(MouseButton::Enum id)
    369317    {
    370         if (id == MouseButton::Left)
    371             this->bLMousePressed_ = true;
    372         else if (id == MouseButton::Right)
     318        if (id == MouseButton::Right)
    373319            this->bRMousePressed_ = true;
    374320    }
     
    376322    void SpaceShip::mouseButtonReleased(MouseButton::Enum id)
    377323    {
    378         if (id == MouseButton::Left)
    379             this->bLMousePressed_ = false;
    380         else if (id == MouseButton::Right)
     324        if (id == MouseButton::Right)
    381325        {
    382326            this->bRMousePressed_ = false;
     
    495439        }
    496440
    497         if( (network::Client::getSingleton() &&  network::Client::getSingleton()->getShipID() == objectID) || server_ )
    498         {
    499           COUT(4) << "steering our ship: " << objectID << std::endl;
    500           if (InputManager::isKeyDown(KeyCode::Up) || InputManager::isKeyDown(KeyCode::W))
    501             this->acceleration_.x = this->translationAcceleration_;
    502           else if(InputManager::isKeyDown(KeyCode::Down) || InputManager::isKeyDown(KeyCode::S))
    503             this->acceleration_.x = -this->translationAcceleration_;
    504           else
    505             this->acceleration_.x = 0;
    506 
    507           if (InputManager::isKeyDown(KeyCode::Right) || InputManager::isKeyDown(KeyCode::D))
    508             this->acceleration_.y = -this->translationAcceleration_;
    509           else if (InputManager::isKeyDown(KeyCode::Left) || InputManager::isKeyDown(KeyCode::A))
    510             this->acceleration_.y = this->translationAcceleration_;
    511           else
    512             this->acceleration_.y = 0;
    513 
    514           if (InputManager::isKeyDown(KeyCode::Delete) || InputManager::isKeyDown(KeyCode::Q))
    515             this->momentum_ = Radian(-this->rotationAccelerationRadian_);
    516           else if (InputManager::isKeyDown(KeyCode::PageDown) || InputManager::isKeyDown(KeyCode::E))
    517             this->momentum_ = Radian(this->rotationAccelerationRadian_);
    518           else
    519             this->momentum_ = 0;
    520         }/*else
    521           COUT(4) << "not steering ship: " << objectID << " our ship: " << network::Client::getSingleton()->getShipID() << std::endl;*/
    522441
    523442        WorldEntity::tick(dt);
     
    533452        else
    534453            this->tt_->setRate(0);
    535     }
    536 
     454
     455        if( (network::Client::getSingleton() &&  network::Client::getSingleton()->getShipID() == objectID) || server_ )
     456        {
     457          COUT(4) << "steering our ship: " << objectID << std::endl;
     458          this->acceleration_.x = 0;
     459          this->acceleration_.y = 0;
     460          this->momentum_ = 0;
     461          this->mouseXRotation_ = Radian(0);
     462          this->mouseYRotation_ = Radian(0);
     463          this->bLMousePressed_ = false;
     464        }/*else
     465          COUT(4) << "not steering ship: " << objectID << " our ship: " << network::Client::getSingleton()->getShipID() << std::endl;*/
     466    }
     467    void SpaceShip::movePitch(float val)
     468    {
     469        SpaceShip* this_ = getLocalShip();
     470        val = -val * val * sgn(val) * this_->rotationAcceleration_;
     471        if (val > this_->maxRotation_)
     472            val = this_->maxRotation_;
     473        if (val < -this_->maxRotation_)
     474            val = -this_->maxRotation_;
     475        this_->mouseYRotation_ = Radian(val);
     476    }
     477
     478    void SpaceShip::moveYaw(float val)
     479    {
     480        SpaceShip* this_ = getLocalShip();
     481        val = -val * val * sgn(val) * this_->rotationAcceleration_;
     482        if (val > this_->maxRotation_)
     483            val = this_->maxRotation_;
     484        if (val < -this_->maxRotation_)
     485            val = -this_->maxRotation_;
     486        this_->mouseXRotation_ = Radian(val);
     487    }
     488
     489    void SpaceShip::moveRoll(float val)
     490    {
     491        SpaceShip* this_ = getLocalShip();
     492        this_->momentum_ = Radian(-this_->rotationAccelerationRadian_ * val);
     493    }
     494
     495    void SpaceShip::moveLongitudinal(float val)
     496    {
     497        SpaceShip* this_ = getLocalShip();
     498        COUT(3) << val << std::endl;
     499        this_->acceleration_.x = this_->translationAcceleration_ * val;
     500    }
     501
     502    void SpaceShip::moveLateral(float val)
     503    {
     504        SpaceShip* this_ = getLocalShip();
     505        this_->acceleration_.y = -this_->translationAcceleration_ * val;
     506    }
     507
     508    void SpaceShip::fire()
     509    {
     510        SpaceShip* this_ = getLocalShip();
     511        this_->bLMousePressed_ = true;
     512    }
    537513}
  • code/branches/network/src/orxonox/objects/SpaceShip.h

    r1362 r1391  
    6666
    6767            void getFocus();
    68             static SpaceShip* instance_s;
    6968            static Vector3 getSPosition();
    7069            static Quaternion getSOrientation();
     
    7372                { SpaceShip::instance_s->setMaxSpeed(value); }
    7473
     74            static void movePitch(float value);
     75            static void moveYaw(float value);
     76            static void moveRoll(float value);
     77            static void moveLongitudinal(float value);
     78            static void moveLateral(float value);
     79            static void fire();
     80
    7581            void mouseButtonPressed (MouseButton::Enum id);
    7682            void mouseButtonReleased(MouseButton::Enum id);
    7783            void mouseButtonHeld    (MouseButton::Enum id) { }
    78             void mouseMoved         (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize);
     84            void mouseMoved         (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize) { }
    7985            void mouseScrolled      (int abs, int rel) { }
    8086
     
    131137            float emitterRate_;
    132138            bool server_;
     139
     140            static SpaceShip* instance_s;
    133141    };
    134142}
Note: See TracChangeset for help on using the changeset viewer.