void CTangImageData::SetSelected(const TInt& aIndex) { iElements[iSelectedIndex]->SetSelected(EFalse); iElements[aIndex]->SetSelected(ETrue); iSelectedIndex = aIndex; ChangeLayer(); }
/* ====================================== Input for "editing" mode ====================================== */ void Listener::ListenEditing() { // -------------------- Text ------------- strcat (mText, mLayerName); mResources->GetFontEntity ()->setText (mText); // -------------------- Brush position ------------- // Here we calculate the position of the brush. We first translate it to the origin (the screen center) // then we scale it using the zooming factor. Finally we translate it back to the camera position // You should use the zoom and coordiante for the specific layer you are editing // (Fixed by Metadon) // old version of the brush version supplied by Metadon //switch (mLayer) //{ // case 0: // mPosBrushX = ( ( mMouseX - (mScreenWidth / 2) ) * ( 1 / (mCameraB->GetZoom()) ) ) + mCameraB->getPosX(); // mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / (mCameraB->GetZoom()) ) ) + mCameraB->getPosY(); // break; // case 1: // mPosBrushX = ( ( mMouseX - (mScreenWidth / 2) ) * ( 1 / (mCameraN->GetZoom()) ) ) + mCameraN->getPosX(); // mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / (mCameraN->GetZoom()) ) ) + mCameraN->getPosY(); // break; // case 2: // mPosBrushX = ( ( mMouseX - (mScreenWidth / 2) ) * ( 1 / (mCameraM->GetZoom()) ) ) + mCameraM->getPosX(); // mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / (mCameraM->GetZoom()) ) ) + mCameraM->getPosY(); // break; // default: // mPosBrushX = ( ( mMouseX - (mScreenWidth / 2) ) * ( 1 / mCameraZoomLayers ) ) + mCameraLayersX; // mPosBrushY = ( ( mMouseY - (mScreenHeight / 2) ) * ( 1 / mCameraZoomLayers ) ) + mCameraLayersY; // break; //} // new version supplied of the brush position supplied by Ratata : read more http://indielib.com/forum/viewtopic.php?f=13&p=2472&sid=691d012b25a214b8a09c4fa8dbf22727#p2472 switch (mLayer) { case 0: mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) + mCameraLayersX; mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY; break; case 1: mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) + mCameraLayersX; mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY; break; case 2: mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) + mCameraLayersX; mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY; break; default: mPosBrushX = ((mMouseX / 32) * 32)-(mScreenWidth/2) + mCameraLayersX; mPosBrushY = ((mMouseY / 32) * 32)-(mScreenHeight/2) + mCameraLayersY; break; } // Sets mouse position and scale in the brush position mResources->GetMouseEntity()->setPosition (mPosBrushX, mPosBrushY, 1); mResources->GetMouseEntity()->setScale (1 / mCameraZoomLayers, 1 / mCameraZoomLayers); // -------------------- Check collisions between the mouse an the backdrop images of the current layer -------------------- // We are currently making a backdrop transformation if (mIsTranslatingBackDrop || mIsRotatingBackDrop || mIsScalingBackDrop || mIsTintingBackDrop) { ListenHoverBackDrop (); } // Only check collisions if we are not already making a transformation over a backdrop else { // Check a collision between the mouse a node Node *mNewBackDropNodeOver = CheckMouseCollisions (mLayer); // The cursor is over a backdrop image if (mNewBackDropNodeOver) { // New backdrop if (mNewBackDropNodeOver != mBackDropNodeOver) { if (mBackDropNodeOver) mBackDropNodeOver->GetEntity()->showGridAreas (false); mBackDropNodeOver = mNewBackDropNodeOver; } // Show red rectangle mBackDropNodeOver->GetEntity()->showGridAreas (true); // Hide backdrop brush mBackDropBrushes [mCurrentBackDropBrush].mEntity.setShow (false); // Listen for possible changes that the selected backdrop can suffer ListenHoverBackDrop (); } // The cursor is not over any backdrop (brush mode por droping images) else { if (mBackDropNodeOver) mBackDropNodeOver->GetEntity()->showGridAreas (false); // Show backdrop brush mBackDropBrushes [mCurrentBackDropBrush].mEntity.setShow (true); // Listen for switching between backdrop images on the brush, drop them in the map, etc ListenBackDropBrush (); } } // -------------------- Switch between layers -------------------- // Parallax layer (b, n, m) if (mI->_input->onKeyPress (IND_B)) ChangeLayer (0, "Layer B (1st Parallax Layer)"); if (mI->_input->onKeyPress (IND_N) && !mI->_input->isKeyPressed (IND_LCTRL)) ChangeLayer (1, "Layer N (2nd Parallax Layer)"); if (mI->_input->onKeyPress (IND_M)) ChangeLayer (2, "Layer M (3rd Parallax Layer)"); // Layers 1-9 if (mI->_input->onKeyPress (IND_1)) ChangeLayer (3, "Layer 1 (Tiled surfaces)"); if (mI->_input->onKeyPress (IND_2)) ChangeLayer (4, "Layer 2"); if (mI->_input->onKeyPress (IND_3)) ChangeLayer (5, "Layer 3"); if (mI->_input->onKeyPress (IND_4)) ChangeLayer (6, "Layer 4"); if (mI->_input->onKeyPress (IND_5)) ChangeLayer (7, "Layer 5"); if (mI->_input->onKeyPress (IND_6)) ChangeLayer (8, "Layer 6"); if (mI->_input->onKeyPress (IND_7)) ChangeLayer (9, "Layer 7"); if (mI->_input->onKeyPress (IND_8)) ChangeLayer (10, "Layer 8"); if (mI->_input->onKeyPress (IND_9)) ChangeLayer (11, "Layer 9"); // Dark layer (j) if (mI->_input->onKeyPress (IND_J)) ChangeLayer (12, "Layer J (Dark Layer)"); }