119 lines
1.7 KiB
Text
119 lines
1.7 KiB
Text
|
|
#IFNDEF __lib_piles
|
|
#DEFINE __lib_piles 1
|
|
|
|
GOTO __skip_lib_piles
|
|
|
|
// Pile data structures
|
|
// byte 0 = count, bytes 1-52 = cards
|
|
// Cards use CARD_FACEDOWN bit for face-down flag
|
|
|
|
LABEL pile_stock
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_waste
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab0
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab1
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab2
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab3
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab4
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab5
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_tab6
|
|
ASM
|
|
!fill 53, 0
|
|
ENDASM
|
|
|
|
LABEL pile_found0
|
|
ASM
|
|
!fill 14, 0
|
|
ENDASM
|
|
|
|
LABEL pile_found1
|
|
ASM
|
|
!fill 14, 0
|
|
ENDASM
|
|
|
|
LABEL pile_found2
|
|
ASM
|
|
!fill 14, 0
|
|
ENDASM
|
|
|
|
LABEL pile_found3
|
|
ASM
|
|
!fill 14, 0
|
|
ENDASM
|
|
|
|
|
|
// ============================================================================
|
|
// FUNC clear_all_piles
|
|
// Clear all piles (waste, foundations, tableaus) by setting their counts to 0
|
|
// Stock is not cleared as it's managed by stock_init()
|
|
// ============================================================================
|
|
FUNC clear_all_piles
|
|
WORD ptr @ $f0
|
|
|
|
// Clear waste pile
|
|
POINTER ptr -> pile_waste
|
|
POKE ptr[0] , 0
|
|
|
|
// Clear all foundation piles
|
|
POINTER ptr -> pile_found0
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_found1
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_found2
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_found3
|
|
POKE ptr[0] , 0
|
|
|
|
// Clear all tableau piles
|
|
POINTER ptr -> pile_tab0
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_tab1
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_tab2
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_tab3
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_tab4
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_tab5
|
|
POKE ptr[0] , 0
|
|
POINTER ptr -> pile_tab6
|
|
POKE ptr[0] , 0
|
|
FEND
|
|
|
|
|
|
LABEL __skip_lib_piles
|
|
|
|
#IFEND
|