diff options
author | Iru Cai <mytbk920423@gmail.com> | 2018-09-23 11:29:39 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2018-09-23 11:29:39 +0800 |
commit | 3680eaeddd230bf4bb7f63402973b9255323e6ad (patch) | |
tree | 174ddb1905f3492d9e9385dc7abcff5c64420b5a | |
parent | d1a9ea8213f2d7cef08e0083ee23af9b3ee8a9e8 (diff) | |
download | rich4-3680eaeddd230bf4bb7f63402973b9255323e6ad.tar.xz |
tortoise walking card
-rw-r--r-- | csrc/cards.c | 43 | ||||
-rw-r--r-- | csrc/player_action.c | 3 |
2 files changed, 45 insertions, 1 deletions
diff --git a/csrc/cards.c b/csrc/cards.c index 5479a35..bffd2d9 100644 --- a/csrc/cards.c +++ b/csrc/cards.c @@ -903,3 +903,46 @@ int angel_card() // 0x4436d9 return ebp; } + +int tortoise_walking_card() +{ + if (players[current_player].who_plays == 1) { + edi = fcn.00446ae8(0xe0c0010); + } else { + edi = fcn.0041e6f2(0); + } + if (edi == 0) + return 0; + + esi = ebx = fcn.0040d293(edi); + int selected_player = fcn.0040d293(edi); + consume_a_card(current_player, 30); + ebp = current_player; + if (selected_player != current_player) { + int c = players[current_player].character; + player_say(current_player, 3, card_strings[c][0][29]); + } + if (players[current_player].who_plays != 1) { + sub.WINMM.dll_timeGetTime_669(0, + players[current_player].f8, players[current_player].f10, + players[selected_player].f8, players[selected_player].f10, 100); + } + + if (selected_player >= 4) { + special_players[selected_player].days_tortoise_walking = 3; + return edi; + } + + if (selected_player == current_player) { + int c = players[current_player].character; + player_say(current_player, 3, card_strings[c][1][29]); + players[current_player].days_tortoise_walking = 2; + return edi; + } else { + int c = players[selected_player].character; + player_say(selected_player, 2, card_strings[c][2][29]); + players[selected_player].days_tortoise_walking = 3; + fcn_41d546(); + return edi; + } +} diff --git a/csrc/player_action.c b/csrc/player_action.c index f2fb2be..e0d349e 100644 --- a/csrc/player_action.c +++ b/csrc/player_action.c @@ -23,7 +23,8 @@ typedef struct uint16_t f2; uint16_t f4; uint16_t f6; - uint8_t f8[8]; + uint8_t f8[7]; + uint8_t days_tortoise_walking; } special_player_info; special_player_info special_players[10]; // 0x498de8 |