Pile.fromAddress constructor
Pile.fromAddress(
- int ptr, {
- bool pair = false,
})
Implementation
factory Pile.fromAddress(int ptr, {bool pair = false}) {
ffi.Pointer<lib.Pile> data = ffi.Pointer.fromAddress(ptr);
final cards = data.ref.cards.elements
.where((cid) => cid < 52)
.map((cid) => Card.fromInt(cid))
.toList();
final value = data.ref.value;
Mark mark = Mark.empty;
if (cards.isNotEmpty) {
if (cards.length == 1) {
mark = Mark.single;
} else if (data.ref.build) {
mark = Mark.build;
} else {
mark = Mark.group;
}
}
if (pair) {
mark = Mark.pair;
}
return Pile(cards: cards, value: value, mark: mark, owner: data.ref.owner);
}