mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-12-29 09:26:18 -05:00
60 lines
1.7 KiB
C++
60 lines
1.7 KiB
C++
|
#include "Ablagestapel.h"
|
||
|
#include "Karte.h"
|
||
|
#include "Proportionen.h"
|
||
|
#include "Scene.h"
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
Ablagestapel::Ablagestapel(const QPixmap& pixmap, Scene* oparent, QGraphicsItem* gparent) : Basisstapel(pixmap, oparent, gparent)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
Ablagestapel::~Ablagestapel()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
QPointF Ablagestapel::ablageposition() const
|
||
|
{
|
||
|
QPointF erg;
|
||
|
|
||
|
// im ablagestapel sollen die karten aufgefaechert abgelegt werden, deshalb YDRIFT hinzufuegen. die position ist relative zum parent grafik objekt
|
||
|
if (kartenliste.size() > 0) erg.setY(boundingRect().height() / ABLAGESTAPEL_YDRIFT_VERHAELTNIS);
|
||
|
|
||
|
return erg;
|
||
|
}
|
||
|
|
||
|
|
||
|
bool Ablagestapel::ablage_moeglich(Karte* karte) const
|
||
|
{
|
||
|
bool erg = false;
|
||
|
|
||
|
if (Basisstapel::ablage_moeglich(karte) == true && ((oberste_karte() == 0 && karte->wert() == 13) || (oberste_karte() != 0 && oberste_karte()->farbe() != karte->farbe() && karte->wert() == (oberste_karte()->wert() - 1)))) erg = true;
|
||
|
|
||
|
if (erg == true && oberste_karte() != 0)
|
||
|
{
|
||
|
if (karte->farbe() == KARTEN_KREUTZ && oberste_karte()->farbe() == KARTEN_PIK) erg = false;
|
||
|
else if (karte->farbe() == KARTEN_PIK && oberste_karte()->farbe() == KARTEN_KREUTZ) erg = false;
|
||
|
else if (karte->farbe() == KARTEN_HERZ && oberste_karte()->farbe() == KARTEN_KARO) erg = false;
|
||
|
else if (karte->farbe() == KARTEN_KARO && oberste_karte()->farbe() == KARTEN_HERZ) erg = false;
|
||
|
}
|
||
|
|
||
|
return erg;
|
||
|
}
|
||
|
|
||
|
|
||
|
void Ablagestapel::passe_groesse_an(double wert)
|
||
|
{
|
||
|
if (oberste_karte() != 0) oberste_karte()->nach_hause();
|
||
|
|
||
|
Basisstapel::passe_groesse_an(wert);
|
||
|
|
||
|
for (register int idx = 1; idx < kartenliste.size(); idx++)
|
||
|
{
|
||
|
kartenliste.at(idx)->setPos(kartenliste.at(idx)->pos().x(), (double) boundingRect().height() / ABLAGESTAPEL_YDRIFT_VERHAELTNIS);
|
||
|
|
||
|
kartenliste.at(idx)->speichere_zuhause();
|
||
|
}
|
||
|
}
|