Fixed hands and discards being infinite and palette issue
This commit is contained in:
+18
-16
@@ -50,7 +50,7 @@ static int discards = 0;
|
|||||||
|
|
||||||
static int round = 0;
|
static int round = 0;
|
||||||
static int ante = 1;
|
static int ante = 1;
|
||||||
static int money = 10;
|
static int money = 4;
|
||||||
static int score = 0;
|
static int score = 0;
|
||||||
static int temp_score = 0; // This is the score that shows in the same spot as the hand type.
|
static int temp_score = 0; // This is the score that shows in the same spot as the hand type.
|
||||||
static FIXED lerped_score = 0;
|
static FIXED lerped_score = 0;
|
||||||
@@ -64,6 +64,7 @@ static int cards_drawn = 0;
|
|||||||
static int hand_selections = 0;
|
static int hand_selections = 0;
|
||||||
|
|
||||||
static int card_focused = 0;
|
static int card_focused = 0;
|
||||||
|
static int previous_card_focused = 0;
|
||||||
static int selection_y = 0;
|
static int selection_y = 0;
|
||||||
|
|
||||||
static bool sort_by_suit = false;
|
static bool sort_by_suit = false;
|
||||||
@@ -423,7 +424,7 @@ void change_background(int id)
|
|||||||
{
|
{
|
||||||
if (background == BG_ID_CARD_PLAYING)
|
if (background == BG_ID_CARD_PLAYING)
|
||||||
{
|
{
|
||||||
int offset = 12;
|
int offset = 11;
|
||||||
memcpy16(&se_mem[MAIN_BG_SBB][SE_ROW_LEN * offset], &background_gfxMap[SE_ROW_LEN * offset], SE_ROW_LEN * 8);
|
memcpy16(&se_mem[MAIN_BG_SBB][SE_ROW_LEN * offset], &background_gfxMap[SE_ROW_LEN * offset], SE_ROW_LEN * 8);
|
||||||
tte_erase_rect_wrapper(HAND_SIZE_RECT_PLAYING);
|
tte_erase_rect_wrapper(HAND_SIZE_RECT_PLAYING);
|
||||||
REG_WIN0V = (REG_WIN0V << 8) | 0x80;
|
REG_WIN0V = (REG_WIN0V << 8) | 0x80;
|
||||||
@@ -696,7 +697,7 @@ static void print_hand_type(const char* hand_type_str)
|
|||||||
{
|
{
|
||||||
if (hand_type_str == NULL)
|
if (hand_type_str == NULL)
|
||||||
return; // NULL-checking paranoia
|
return; // NULL-checking paranoia
|
||||||
tte_printf("#{P:%d,%d;}%s", HAND_TYPE_RECT.left, HAND_TYPE_RECT.top, hand_type_str);
|
tte_printf("#{P:%d,%d; cx:0xF000}%s", HAND_TYPE_RECT.left, HAND_TYPE_RECT.top, hand_type_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_hand()
|
void set_hand()
|
||||||
@@ -852,18 +853,12 @@ int hand_get_max_size()
|
|||||||
bool hand_discard()
|
bool hand_discard()
|
||||||
{
|
{
|
||||||
if (hand_state != HAND_SELECT || hand_selections == 0) return false;
|
if (hand_state != HAND_SELECT || hand_selections == 0) return false;
|
||||||
hand_state = HAND_DISCARD;
|
|
||||||
card_focused = 0;
|
|
||||||
selection_y = 0;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hand_play()
|
bool hand_play()
|
||||||
{
|
{
|
||||||
if (hand_state != HAND_SELECT || hand_selections == 0) return false;
|
if (hand_state != HAND_SELECT || hand_selections == 0) return false;
|
||||||
hand_state = HAND_PLAY;
|
|
||||||
card_focused = 0;
|
|
||||||
selection_y = 0;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1037,11 +1032,12 @@ static void game_playing_process_input_and_state()
|
|||||||
else if (key_hit(KEY_UP) && selection_y != 0)
|
else if (key_hit(KEY_UP) && selection_y != 0)
|
||||||
{
|
{
|
||||||
selection_y = 0;
|
selection_y = 0;
|
||||||
card_focused = 0;
|
card_focused = previous_card_focused;
|
||||||
}
|
}
|
||||||
else if (key_hit(KEY_DOWN) && selection_y != 1)
|
else if (key_hit(KEY_DOWN) && selection_y != 1)
|
||||||
{
|
{
|
||||||
selection_y = 1;
|
selection_y = 1;
|
||||||
|
previous_card_focused = card_focused;
|
||||||
|
|
||||||
if (card_focused > hand_top / 2)
|
if (card_focused > hand_top / 2)
|
||||||
{
|
{
|
||||||
@@ -1058,10 +1054,13 @@ static void game_playing_process_input_and_state()
|
|||||||
memset16(&pal_bg_mem[1], 0xFFFF, 1);
|
memset16(&pal_bg_mem[1], 0xFFFF, 1);
|
||||||
memcpy16(&pal_bg_mem[9], &pal_bg_mem[12], 1);
|
memcpy16(&pal_bg_mem[9], &pal_bg_mem[12], 1);
|
||||||
|
|
||||||
if (key_hit(SELECT_CARD) && hands > 0 && hand_play() && card_focused == -2)
|
if (key_hit(SELECT_CARD) && hands > 0 && hand_play())
|
||||||
{
|
{
|
||||||
hands--;
|
hand_state = HAND_PLAY;
|
||||||
tte_printf("#{P:%d,%d; cx:0xD000}%d", HANDS_TEXT_RECT.left, HANDS_TEXT_RECT.top, hands);
|
card_focused = 0;
|
||||||
|
selection_y = 0;
|
||||||
|
previous_card_focused = 0;
|
||||||
|
set_hands(--hands);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (card_focused == -3) // Discard button logic
|
else if (card_focused == -3) // Discard button logic
|
||||||
@@ -1069,10 +1068,14 @@ static void game_playing_process_input_and_state()
|
|||||||
memcpy16(&pal_bg_mem[1], &pal_bg_mem[7], 1);
|
memcpy16(&pal_bg_mem[1], &pal_bg_mem[7], 1);
|
||||||
memset16(&pal_bg_mem[9], 0xFFFF, 1);
|
memset16(&pal_bg_mem[9], 0xFFFF, 1);
|
||||||
|
|
||||||
if (key_hit(SELECT_CARD) && discards > 0 && hand_discard() && card_focused == -3)
|
if (key_hit(SELECT_CARD) && discards > 0 && hand_discard())
|
||||||
{
|
{
|
||||||
|
hand_state = HAND_DISCARD;
|
||||||
|
card_focused = 0;
|
||||||
|
selection_y = 0;
|
||||||
|
previous_card_focused = 0;
|
||||||
|
set_hands(--discards);
|
||||||
set_hand();
|
set_hand();
|
||||||
discards--;
|
|
||||||
tte_printf("#{P:%d,%d; cx:0xE000}%d", DISCARDS_TEXT_RECT.left, DISCARDS_TEXT_RECT.top, discards);
|
tte_printf("#{P:%d,%d; cx:0xE000}%d", DISCARDS_TEXT_RECT.left, DISCARDS_TEXT_RECT.top, discards);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2090,7 +2093,6 @@ void game_round_end()
|
|||||||
state = 8; // Go to the next state
|
state = 8; // Go to the next state
|
||||||
timer = 0; // Reset the timer
|
timer = 0; // Reset the timer
|
||||||
|
|
||||||
memset16(&pal_bg_mem[6], 0x0174, 1);
|
|
||||||
obj_hide(round_end_blind_token->obj); // Hide the blind token object
|
obj_hide(round_end_blind_token->obj); // Hide the blind token object
|
||||||
tte_erase_rect_wrapper(BLIND_TOKEN_TEXT_RECT); // Erase the blind token text
|
tte_erase_rect_wrapper(BLIND_TOKEN_TEXT_RECT); // Erase the blind token text
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user