diff options
-rw-r--r-- | data/map/L | 32 | ||||
-rw-r--r-- | src/game.c | 46 | ||||
-rw-r--r-- | src/map.c | 2 |
3 files changed, 59 insertions, 21 deletions
@@ -1,18 +1,18 @@ -5 +3 .... r0r4r4r4r4r4r4r4r4r4r4r4r4r4r4r4r4r4r4r1 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7. . . . . . . . . . . . . . . . . . r5 -r7^1. . . . . . . . . . . . . . . . . r5 -r7^2. . . . . . . . . . . . . . . . ^2r5 -r2r6r6r9. . . . . . . . . . . . r8r6r6r3 -.3.3.3r7^1. . . . . . . . . . ^2r5.3.3.3 -.3.7.3r7^0^3^0. . . . . . . . ^2r5.3.7.3 -.3.3.3r2r6r6r6r6r6r6r6r6r6r6r6r6r3.3.3.3 +r7.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5r5 +r7.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5r5 +r7.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5r5 +r7.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5r5 +r7.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5r5 +r7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7r5 +r7.7. . . . . . . . . . . . . . . . .7r5 +r7.7. . r8r9. . . . . . . . r8r9. . .7r5 +r7.7. . rarb. . . . . . . . rarb. . .7r5 +r7.7. . . . . . . . . . . . . . . . .7r5 +r7.7.7.7.7.7.7.7.7. . .7.7.7.7.7.7.7.7r5 +r2r6r6r6r6r6r6r9.7. . .7r8r6r6r6r6r6r6r3 +^2^0^3^0^2^3^0r7.7. . .7r5^0^3^2^1^0^2^3 +^3^1^2^3^1^2^1r7.7.7.7.7r5^1^0^3^0^3^1^3 +^0^3^1^0^3^0^3r2r6r6r6r6r3^2^1^2^3^2^3^3 @@ -8,6 +8,15 @@ int magic = 0; static int ticks; +static const char *gulagmsg = " GULAG HAS YOU"; + +static void directly_gulag(tt_body *b) +{ + gulagmsg = " Communism is Indestructable"; + magic = tt_gotogulag; + Mix_PlayMusic(ussr, -1); +} + static void step(int d) { int xw = ttplayer.xwalk * 200; @@ -25,6 +34,35 @@ static void step(int d) ttplayer.lenin_pos = oldpos; ttplayer.lenin_vel *= -1; } + static int lenin_grib = 0; + if (ttplayer.lenin_rem % 1000 > 500) { + if (!lenin_grib) { + lenin_grib = 1; + ttplayer.room->bodies_count++; + ttplayer.room->bodies = realloc( + ttplayer.room->bodies, + sizeof(tt_body) * ttplayer.room->bodies_count + ); + tt_body *b = ttplayer.room->bodies + + ttplayer.room->bodies_count - 1; + b->x = ttplayer.lenin_pos; + b->y = 32; + b->xrem = 0; + b->yrem = 0; + b->rem = 0; + b->txrrow = 7; + b->txrcol = rand() % 4; + b->anim = 4; + b->rate = 150 + (rand() % 50 - 25); + b->collision_act = directly_gulag; + b->msg = 0; + b->msglen = 0; + b->yvel = rand() % 100 - 50; + b->yvel = b->yvel < 0 ? b->yvel - 50 : b->yvel + 50; + b->xvel = rand() % 100 - 50; + b->xvel = b->yvel < 0 ? b->yvel - 50 : b->yvel + 50; + } + } else if (lenin_grib) lenin_grib = 0; } static int first_gulag = 1; if (ttplayer.tobein_gulag && ttplayer.until_gulag > 0) { @@ -202,9 +240,9 @@ static void gotogulag() if (delta < 4200) { SDL_Color c = { 128, 20, 20, min(255, delta * 256 / 800) }; SDL_Surface *surf = TTF_RenderText_Blended( - ttfont, "GULAG HAS YOU", c); + ttfont, gulagmsg, c); SDL_Texture *t = SDL_CreateTextureFromSurface(ttrdr, surf); - SDL_Rect dst = { 14 + 32 * 5, 14 + 32 * 7, + SDL_Rect dst = { 14, 14 + 32 * 7, surf->w * 2, surf->h * 2 }; SDL_RenderCopy(ttrdr, t, 0, &dst); SDL_DestroyTexture(t); @@ -212,9 +250,9 @@ static void gotogulag() } else { SDL_Color c = { 128, 20, 20, 255 - (delta - 4200) * 256 / 800 }; SDL_Surface *surf = TTF_RenderText_Blended( - ttfont, "GULAG HAS YOU", c); + ttfont, gulagmsg, c); SDL_Texture *t = SDL_CreateTextureFromSurface(ttrdr, surf); - SDL_Rect dst = { 14 + 32 * 5, 14 + 32 * 7, + SDL_Rect dst = { 14, 14 + 32 * 7, surf->w * 2, surf->h * 2 }; SDL_RenderCopy(ttrdr, t, 0, &dst); SDL_DestroyTexture(t); @@ -90,7 +90,7 @@ static void loadroom(tt_room *r, FILE *f) ttplayer.lenin_pos_rem = 0; ttplayer.zhiv_lenin = 0; ttplayer.lenin_rem = 0; - ttplayer.lenin_vel = -50; + ttplayer.lenin_vel = -53; ttplayer.variant = 0; ttplayer.tobein_gulag = 0; ttplayer.until_gulag = 5300; |