Routines |
Prev: 9073 | Up: Map | Next: 90BB |
Used by the routine at MarkCards.
|
||||
Count the number of cards marked already, there is a maximum limit of 03 markable cards.
|
||||
MarkCards_SelectCard | 9093 | LD HL,$9055 | HL=MarkedCards. | |
9096 | LD B,$05 | Set a counter of 05 for the total number of cards in a hand. | ||
9098 | LD C,$00 | Use C to count the number of already marked cards. | ||
CountMarkedCards_Loop | 909A | LD A,(HL) | A=*HL. | |
909B | OR A | Jump to CountMarkedCards_Next if this card isn't marked. | ||
909C | JR Z,CountMarkedCards_Next | |||
This card is marked, so increment the "already marked" counter.
|
||||
909E | INC C | Increment C by one. | ||
CountMarkedCards_Next | 909F | INC HL | Move the marked card pointer to the next card. | |
90A0 | DJNZ CountMarkedCards_Loop | Decrease the card count by one and loop back to CountMarkedCards_Loop until all card slots have been checked. | ||
Find the marked card data.
|
||||
90A2 | LD A,($9054) | A=*SelectedMarkedCard. | ||
90A5 | INC A | Increment A by one for the loop below. | ||
90A6 | LD HL,$9054 | HL=SelectedMarkedCard. | ||
FindMarkedCard_Loop | 90A9 | INC HL | Increment HL by one. | |
90AA | DEC A | Decrease A by one. | ||
90AB | JR NZ,FindMarkedCard_Loop | Jump to FindMarkedCard_Loop until A is zero. | ||
Have less than 03 cards been marked already?
|
||||
90AD | LD A,C | Jump to ToggleMarkedCard if there are less than 03 marked cards. | ||
90AE | CP $03 | |||
90B0 | JR C,ToggleMarkedCard | |||
The maximum limit of 03 marked cards has already been reached, so don't allow this card to be marked.
|
||||
90B2 | XOR A | A=00. | ||
90B3 | JR WriteMarkedCardData | Jump to WriteMarkedCardData. | ||
Switch the state of the card, if it was selected - make it now unselected, and if it was unselected - make it selected.
|
||||
ToggleMarkedCard | 90B5 | LD A,(HL) | A=*HL. | |
90B6 | XOR %00111111 | Flip bits 0-5. | ||
WriteMarkedCardData | 90B8 | LD (HL),A | Write A to *HL. | |
90B9 | JR Alias_FindSelectedCardAttribute | Jump to Alias_FindSelectedCardAttribute. |
Prev: 9073 | Up: Map | Next: 90BB |