Added sort by rank/suit buttons (#351)
* Added definitions for sorting buttons (cherry pick, does not compile) * Re-applied changes lost in merge * Added sort buttons functionality (cherry-pick, has issues) * Fixed sort buttons issue * Removed stray code from merge * clang-format * Removed code from merge error * Removed unused function from merge error * Removed "E" typo from "SUIT" button * Changed all the 2x5 S's in the UI to be 1 pixel wider at 3x5 * Revert "Changed all the 2x5 S's in the UI to be 1 pixel wider at 3x5" This reverts commit f70e0d5ab76dd851c564672c01ab60cd25c28b63. * Changed the width of the "SUIT" button to be consistent with the "RANK" button
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.5 KiB |
+64
-33
@@ -87,6 +87,7 @@
|
||||
#define TM_BLIND_SELECT_START 1
|
||||
#define TM_END_ANIM_SEQ 12
|
||||
|
||||
// TODO: Rename "PID" to "PAL_IDX"
|
||||
// Palette IDs
|
||||
#define BOSS_BLIND_PRIMARY_PID 1
|
||||
#define MAIN_MENU_PLAY_BUTTON_OUTLINE_PID 2
|
||||
@@ -96,14 +97,10 @@
|
||||
#define NEXT_ROUND_BTN_SELECTED_BORDER_PID 5
|
||||
#define BLIND_BG_SHADOW_PID 5
|
||||
#define SHOP_PANEL_SHADOW_PID 6
|
||||
#define PLAY_HAND_BTN_PID 6
|
||||
#define BOSS_BLIND_SHADOW_PID 7
|
||||
#define PLAY_HAND_BTN_BORDER_PID 7
|
||||
#define REROLL_BTN_SELECTED_BORDER_PID 7
|
||||
#define SHOP_LIGHTS_1_PID 8
|
||||
#define DISCARD_BTN_BORDER_PID 8
|
||||
#define BLIND_SKIP_BTN_SELECTED_BORDER_PID 10
|
||||
#define DISCARD_BTN_PID 13
|
||||
#define SHOP_LIGHTS_2_PID 14
|
||||
#define BLIND_SELECT_BTN_PID 15
|
||||
#define NEXT_ROUND_BTN_PID 16
|
||||
@@ -114,6 +111,15 @@
|
||||
#define REWARD_PANEL_BORDER_PID 19
|
||||
#define SHOP_LIGHTS_4_PID 22
|
||||
#define SHOP_BOTTOM_PANEL_BORDER_PID 26
|
||||
|
||||
#define PLAY_HAND_BTN_PID 6
|
||||
#define PLAY_HAND_BTN_BORDER_PID 7
|
||||
#define DISCARD_BTN_PID 13
|
||||
#define DISCARD_BTN_BORDER_PID 8
|
||||
#define SORT_BTNS_PID 9
|
||||
#define SORT_BY_RANK_BTN_BORDER_PID 22
|
||||
#define SORT_BY_SUIT_BTN_BORDER_PID 23
|
||||
|
||||
// Naming the stage where cards return from the discard pile to the deck "undiscard"
|
||||
|
||||
/* This needs to stay a power of 2 and small enough
|
||||
@@ -251,6 +257,9 @@ static void game_over_anim_frame(void);
|
||||
|
||||
static void game_playing_discard_on_pressed(void);
|
||||
static void game_playing_play_hand_on_pressed(void);
|
||||
static void game_playing_sort_by_rank_on_pressed(void);
|
||||
static void game_playing_sort_by_suit_on_pressed(void);
|
||||
|
||||
static int game_playing_button_row_get_size(void);
|
||||
static bool game_playing_button_row_on_selection_changed(
|
||||
SelectionGrid* selection_grid,
|
||||
@@ -308,7 +317,8 @@ static void remove_owned_joker(int owned_joker_idx);
|
||||
|
||||
static int hand_sel_idx_to_card_idx(int selection_index);
|
||||
static void hand_select_card(int index);
|
||||
static void hand_change_sort(void);
|
||||
static void hand_toggle_sort(void);
|
||||
static void hand_change_sort(bool to_sort_by_suit);
|
||||
static void hand_deselect_all_cards(void);
|
||||
static bool can_play_hand(void);
|
||||
static bool can_discard_hand(void);
|
||||
@@ -468,8 +478,10 @@ SelectionGrid game_playing_selection_grid = {
|
||||
|
||||
// Array of buttons by horizontal selection index (x)
|
||||
Button game_playing_buttons[] = {
|
||||
{PLAY_HAND_BTN_BORDER_PID, PLAY_HAND_BTN_PID, game_playing_play_hand_on_pressed, can_play_hand },
|
||||
{DISCARD_BTN_BORDER_PID, DISCARD_BTN_PID, game_playing_discard_on_pressed, can_discard_hand},
|
||||
{PLAY_HAND_BTN_BORDER_PID, PLAY_HAND_BTN_PID, game_playing_play_hand_on_pressed, can_play_hand },
|
||||
{SORT_BY_RANK_BTN_BORDER_PID, SORT_BTNS_PID, game_playing_sort_by_rank_on_pressed, NULL },
|
||||
{SORT_BY_SUIT_BTN_BORDER_PID, SORT_BTNS_PID, game_playing_sort_by_suit_on_pressed, NULL },
|
||||
{DISCARD_BTN_BORDER_PID, DISCARD_BTN_PID, game_playing_discard_on_pressed, can_discard_hand},
|
||||
};
|
||||
|
||||
SelectionGridRow shop_selection_rows[] = {
|
||||
@@ -2025,6 +2037,50 @@ static void game_playing_discard_on_pressed(void)
|
||||
selection_grid_move_selection_vert(&game_playing_selection_grid, -1);
|
||||
}
|
||||
|
||||
static void game_playing_sort_by_rank_on_pressed(void)
|
||||
{
|
||||
hand_change_sort(false);
|
||||
}
|
||||
|
||||
static void game_playing_sort_by_suit_on_pressed(void)
|
||||
{
|
||||
hand_change_sort(true);
|
||||
}
|
||||
|
||||
static void hand_deselect_all_cards(void)
|
||||
{
|
||||
bool any_cards_deselected = false;
|
||||
for (int i = 0; i <= get_hand_top(); i++)
|
||||
{
|
||||
if (card_object_is_selected(hand[i]))
|
||||
{
|
||||
card_object_set_selected(hand[i], false);
|
||||
hand_selections--;
|
||||
any_cards_deselected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (any_cards_deselected)
|
||||
{
|
||||
play_sfx(SFX_CARD_DESELECT, MM_BASE_PITCH_RATE, SFX_DEFAULT_VOLUME);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void hand_toggle_sort(void)
|
||||
{
|
||||
sort_by_suit = !sort_by_suit;
|
||||
sort_cards();
|
||||
}
|
||||
|
||||
static inline void hand_change_sort(bool to_sort_by_suit)
|
||||
{
|
||||
if (to_sort_by_suit != sort_by_suit)
|
||||
{
|
||||
sort_by_suit = to_sort_by_suit;
|
||||
sort_cards();
|
||||
}
|
||||
}
|
||||
|
||||
static void game_playing_play_hand_on_pressed(void)
|
||||
{
|
||||
if (!can_play_hand())
|
||||
@@ -2161,7 +2217,7 @@ static void game_playing_hand_row_on_key_transit(
|
||||
}
|
||||
else if (key_hit(SORT_HAND))
|
||||
{
|
||||
hand_change_sort();
|
||||
hand_toggle_sort();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2208,31 +2264,6 @@ static void game_playing_button_row_on_key_hit(SelectionGrid* selection_grid, Se
|
||||
}
|
||||
}
|
||||
|
||||
static void hand_deselect_all_cards(void)
|
||||
{
|
||||
bool any_cards_deselected = false;
|
||||
for (int i = 0; i <= get_hand_top(); i++)
|
||||
{
|
||||
if (card_object_is_selected(hand[i]))
|
||||
{
|
||||
card_object_set_selected(hand[i], false);
|
||||
hand_selections--;
|
||||
any_cards_deselected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (any_cards_deselected)
|
||||
{
|
||||
play_sfx(SFX_CARD_DESELECT, MM_BASE_PITCH_RATE, SFX_DEFAULT_VOLUME);
|
||||
}
|
||||
}
|
||||
|
||||
static void hand_change_sort(void)
|
||||
{
|
||||
sort_by_suit = !sort_by_suit;
|
||||
sort_cards();
|
||||
}
|
||||
|
||||
static bool can_play_hand(void)
|
||||
{
|
||||
if (hand_state != HAND_SELECT || hand_selections == 0)
|
||||
|
||||
Reference in New Issue
Block a user