mirror of
https://github.com/blupi-games/planetblupi
synced 2024-12-30 10:15:36 +01:00
Use the right mouse click (when building) for deleting
- It fixes issue #55.
This commit is contained in:
parent
0bc1d00074
commit
403b5dbb3d
@ -4269,7 +4269,7 @@ static Sint32 tableHome[] = {
|
|||||||
// Modifie le décor lorsque le bouton de la souris est pressé.
|
// Modifie le décor lorsque le bouton de la souris est pressé.
|
||||||
|
|
||||||
bool
|
bool
|
||||||
CEvent::BuildDown (Point pos, Uint16 mod, bool bMix)
|
CEvent::BuildDown (Point pos, Uint16 mod, const SDL_Event * event, bool bMix)
|
||||||
{
|
{
|
||||||
Point cel;
|
Point cel;
|
||||||
Sint32 menu, channel, icon;
|
Sint32 menu, channel, icon;
|
||||||
@ -4282,12 +4282,14 @@ CEvent::BuildDown (Point pos, Uint16 mod, bool bMix)
|
|||||||
pos.y > POSDRAWY + DIMDRAWY)
|
pos.y > POSDRAWY + DIMDRAWY)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
bool isRightClick = event ? event->button.button == SDL_BUTTON_RIGHT : false;
|
||||||
|
|
||||||
if (bMix)
|
if (bMix)
|
||||||
{
|
{
|
||||||
m_pDecor->UndoCopy (); // copie le décor pour undo év.
|
m_pDecor->UndoCopy (); // copie le décor pour undo év.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetState (EV_DECOR1) == 1) // pose d'un sol
|
if (GetState (EV_DECOR1) == 1 && !isRightClick) // pose d'un sol
|
||||||
{
|
{
|
||||||
cel = m_pDecor->ConvPosToCel2 (pos);
|
cel = m_pDecor->ConvPosToCel2 (pos);
|
||||||
menu = GetMenu (EV_DECOR1);
|
menu = GetMenu (EV_DECOR1);
|
||||||
@ -4321,10 +4323,10 @@ CEvent::BuildDown (Point pos, Uint16 mod, bool bMix)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetState (EV_DECOR2) == 1) // pose d'un objet
|
if (GetState (EV_DECOR2) == 1 || isRightClick) // pose d'un objet
|
||||||
{
|
{
|
||||||
cel = m_pDecor->ConvPosToCel2 (pos);
|
cel = m_pDecor->ConvPosToCel2 (pos);
|
||||||
menu = GetMenu (EV_DECOR2);
|
menu = isRightClick ? 0 : GetMenu (EV_DECOR2);
|
||||||
|
|
||||||
if (!m_pDecor->GetObject (cel, channel, icon))
|
if (!m_pDecor->GetObject (cel, channel, icon))
|
||||||
return false;
|
return false;
|
||||||
@ -4352,10 +4354,10 @@ CEvent::BuildDown (Point pos, Uint16 mod, bool bMix)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetState (EV_DECOR3) == 1) // pose d'un batiment
|
if (GetState (EV_DECOR3) == 1 || isRightClick) // pose d'un batiment
|
||||||
{
|
{
|
||||||
cel = m_pDecor->ConvPosToCel2 (pos);
|
cel = m_pDecor->ConvPosToCel2 (pos);
|
||||||
menu = GetMenu (EV_DECOR3);
|
menu = isRightClick ? 0 : GetMenu (EV_DECOR3);
|
||||||
|
|
||||||
if (!m_pDecor->GetObject (cel, channel, icon))
|
if (!m_pDecor->GetObject (cel, channel, icon))
|
||||||
return false;
|
return false;
|
||||||
@ -4383,10 +4385,10 @@ CEvent::BuildDown (Point pos, Uint16 mod, bool bMix)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetState (EV_DECOR4) == 1) // pose d'un blupi
|
if (GetState (EV_DECOR4) == 1 || isRightClick) // pose d'un blupi
|
||||||
{
|
{
|
||||||
cel = m_pDecor->ConvPosToCel (pos);
|
cel = m_pDecor->ConvPosToCel (pos);
|
||||||
menu = GetMenu (EV_DECOR4);
|
menu = isRightClick ? 0 : GetMenu (EV_DECOR4);
|
||||||
|
|
||||||
if (menu == 0) // supprime ?
|
if (menu == 0) // supprime ?
|
||||||
m_pDecor->BlupiDelete (cel);
|
m_pDecor->BlupiDelete (cel);
|
||||||
@ -4410,10 +4412,10 @@ CEvent::BuildDown (Point pos, Uint16 mod, bool bMix)
|
|||||||
m_pDecor->BlupiCreate (cel, ACTION_STOP, DIRECT_S, 4, MAXENERGY);
|
m_pDecor->BlupiCreate (cel, ACTION_STOP, DIRECT_S, 4, MAXENERGY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetState (EV_DECOR5) == 1) // pose d'une cata
|
if (GetState (EV_DECOR5) == 1 || isRightClick) // pose d'une cata
|
||||||
{
|
{
|
||||||
cel = m_pDecor->ConvPosToCel2 (pos);
|
cel = m_pDecor->ConvPosToCel2 (pos);
|
||||||
menu = GetMenu (EV_DECOR5);
|
menu = isRightClick ? 0 : GetMenu (EV_DECOR5);
|
||||||
|
|
||||||
if (menu == 0) // supprime ?
|
if (menu == 0) // supprime ?
|
||||||
m_pDecor->SetFire (cel, false);
|
m_pDecor->SetFire (cel, false);
|
||||||
@ -4432,8 +4434,7 @@ bool
|
|||||||
CEvent::BuildMove (Point pos, Uint16 mod, const SDL_Event & event)
|
CEvent::BuildMove (Point pos, Uint16 mod, const SDL_Event & event)
|
||||||
{
|
{
|
||||||
if (event.motion.state & SDL_BUTTON (SDL_BUTTON_LEFT)) // bouton souris pressé
|
if (event.motion.state & SDL_BUTTON (SDL_BUTTON_LEFT)) // bouton souris pressé
|
||||||
// ?
|
BuildDown (pos, mod, nullptr, false);
|
||||||
BuildDown (pos, mod, false);
|
|
||||||
|
|
||||||
if (GetState (EV_DECOR4) == 1) // pose d'un blupi
|
if (GetState (EV_DECOR4) == 1) // pose d'un blupi
|
||||||
m_pDecor->CelHili (pos, 1);
|
m_pDecor->CelHili (pos, 1);
|
||||||
@ -5652,7 +5653,7 @@ CEvent::TreatEventBase (const SDL_Event & event)
|
|||||||
return true;
|
return true;
|
||||||
if (m_phase == EV_PHASE_BUILD)
|
if (m_phase == EV_PHASE_BUILD)
|
||||||
{
|
{
|
||||||
if (BuildDown (pos, m_keymod))
|
if (BuildDown (pos, m_keymod, &event))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (m_phase == EV_PHASE_PLAY)
|
if (m_phase == EV_PHASE_PLAY)
|
||||||
|
@ -170,7 +170,8 @@ protected:
|
|||||||
|
|
||||||
void BuildFloor (Point cel, Sint32 insIcon);
|
void BuildFloor (Point cel, Sint32 insIcon);
|
||||||
void BuildWater (Point cel, Sint32 insIcon);
|
void BuildWater (Point cel, Sint32 insIcon);
|
||||||
bool BuildDown (Point pos, Uint16 mod, bool bMix = true);
|
bool
|
||||||
|
BuildDown (Point pos, Uint16 mod, const SDL_Event * event, bool bMix = true);
|
||||||
bool BuildMove (Point pos, Uint16 mod, const SDL_Event & event);
|
bool BuildMove (Point pos, Uint16 mod, const SDL_Event & event);
|
||||||
|
|
||||||
void PrivateLibelle ();
|
void PrivateLibelle ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user