From 5d973f7851d8bfbbbc57b339948995ae44fc2112 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Mon, 1 Mar 2021 18:02:05 +0300 Subject: o_O --- src/game.c | 11 +++++++++++ src/map.c | 2 ++ src/player.c | 4 ++-- src/player.h | 2 ++ 4 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/game.c b/src/game.c index 4c6d0a6..e6fec03 100644 --- a/src/game.c +++ b/src/game.c @@ -15,6 +15,17 @@ static void step(int d) if (xw || yw) { ttplayer.rem += d; } + if (ttplayer.zhiv_lenin) { + int oldpos = ttplayer.lenin_pos; + ttplayer.lenin_rem += d; + ttplayer.lenin_pos_rem += d * ttplayer.lenin_vel; + ttplayer.lenin_pos += ttplayer.lenin_pos_rem / 1000; + ttplayer.lenin_pos_rem = ttplayer.lenin_pos_rem % 1000; + if (ttplayer.lenin_pos < 64 || 32 * 16 < ttplayer.lenin_pos) { + ttplayer.lenin_pos = oldpos; + ttplayer.lenin_vel *= -1; + } + } static int first_gulag = 1; if (ttplayer.tobein_gulag && ttplayer.until_gulag > 0) { if (first_gulag) { diff --git a/src/map.c b/src/map.c index 8e32da6..f05e2c0 100644 --- a/src/map.c +++ b/src/map.c @@ -87,8 +87,10 @@ static void loadroom(tt_room *r, FILE *f) ttplayer.keys = 0; ttplayer.the_key = 0; ttplayer.lenin_pos = 32 * 9; + ttplayer.lenin_pos_rem = 0; ttplayer.zhiv_lenin = 0; ttplayer.lenin_rem = 0; + ttplayer.lenin_vel = -50; ttplayer.variant = 0; ttplayer.tobein_gulag = 0; ttplayer.until_gulag = 5300; diff --git a/src/player.c b/src/player.c index edaa04f..b4846bf 100644 --- a/src/player.c +++ b/src/player.c @@ -26,14 +26,14 @@ void tt_player_draw() if (ttplayer.zhiv_lenin) { { - SDL_Rect src = { 32 + 32 * (ttplayer.lenin_rem / 100 % 2), + SDL_Rect src = { 32 + 32 * (ttplayer.lenin_rem / 200 % 2), 16 * 11 + 4, 32, 38 }; SDL_Rect dst = { 14 + ttplayer.lenin_pos, 14 + 32 + 96 - 8 - 38 * 2, 64, 38 * 2 }; SDL_RenderCopy(ttrdr, tttxr, &src, &dst); } { - SDL_Rect src = { 96 + 64 * (ttplayer.lenin_rem / 100 % 2), + SDL_Rect src = { 96 + 64 * (ttplayer.lenin_rem / 200 % 2), 16 * 11, 64, 48 }; SDL_Rect dst = { 14 + ttplayer.lenin_pos - 32, 110, 128, 96 }; diff --git a/src/player.h b/src/player.h index 7c2fc56..fca14e6 100644 --- a/src/player.h +++ b/src/player.h @@ -22,6 +22,8 @@ typedef struct tt_player { int until_gulag; int lenin_pos; + int lenin_pos_rem; + int lenin_vel; int zhiv_lenin; int lenin_rem; } tt_player; -- cgit v1.2.3