diff options
author | Richard Braun <rbraun@sceen.net> | 2025-05-23 21:02:02 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2025-05-23 21:02:02 +0200 |
commit | 882495a7c583bf9022e9eca9490063d37a08ef58 (patch) | |
tree | 4008e22a675a4239ea1647e4430142a309db0e1a | |
parent | f65cfedbb6a427f37eef12fccfaa5f64bd3d8c6f (diff) |
Looks pretty good
-rw-r--r-- | src/et/et.c | 47 | ||||
-rw-r--r-- | src/et/et.h | 5 |
2 files changed, 37 insertions, 15 deletions
diff --git a/src/et/et.c b/src/et/et.c index fcc3bbb..d1130d0 100644 --- a/src/et/et.c +++ b/src/et/et.c @@ -68,7 +68,7 @@ /* * Saint Basil's Cathedral by umrain. */ -#define ET_TITLE_SPRITE \ +#define ET_CATHEDRAL_SPRITE \ " . \n" \ " T \n" \ " () \n" \ @@ -91,6 +91,19 @@ " :;:////\\:::.'.| || || ||-||-|/\\/\\/\\+|+| | | \n" \ " ;:;;\\////::::,='======='=====umrain=/\\/\\=====. \n" +#define ET_LOGO_SPRITE \ +"+-----------------------------+\n" \ +"| _____ ___ _____ ___ ___ ___ |\n" \ +"||_ _| __|_ _| _ \\_ _/ __||\n" \ +"| | | | _| | | | /| |\\__ \\|\n" \ +"| |_| |___| |_| |_|_\\___|___/|\n" \ +"+--------+ +---------+\n" \ +" | | \n" \ +" | | \n" \ +" | | \n" \ +" | | \n" \ +" +----------+ \n" + #define ET_HELP_SPRITE \ " S = left \n" \ " D = down \n" \ @@ -211,12 +224,13 @@ "\\___/_/ |_/_/ /_/___/ \\____/|___/___/_/|_| \n" #define ET_TYPE_TITLE 0 -#define ET_TYPE_HELP 1 -#define ET_TYPE_START 2 -#define ET_TYPE_BG 3 -#define ET_TYPE_WALL 4 -#define ET_TYPE_STATUS 5 -#define ET_TYPE_PIECE 6 +#define ET_TYPE_CATHEDRAL 1 +#define ET_TYPE_HELP 2 +#define ET_TYPE_START 3 +#define ET_TYPE_BG 4 +#define ET_TYPE_WALL 5 +#define ET_TYPE_STATUS 6 +#define ET_TYPE_PIECE 7 #define ET_TYPE_END_TITLE 10 static bool @@ -833,7 +847,7 @@ et_game_end(struct et_game *game) eetg_world_clear(&game->world); - eetg_world_add(&game->world, &game->end_title, 12, 10, 0); + eetg_world_add(&game->world, &game->game_over, 12, 10, 0); eetg_world_add(&game->world, &game->status, 26, 8, 0); eetg_world_add(&game->world, &game->start, 30, 20, 0); @@ -1279,6 +1293,9 @@ et_game_hold_current_piece(struct et_game *game) return; } + game->gravity_counter = game->gravity_counter_reload; + game->nr_lockdown_moves = -1; + if (!game->held_piece) { game->held_piece = et_game_get_next_piece(game); } @@ -1380,8 +1397,11 @@ et_game_init(struct et_game *game, eetg_write_fn write_fn, void *arg) eetg_world_init(&game->world, write_fn, arg); eetg_world_set_collision_fn(&game->world, et_game_handle_collision, game); - eetg_object_init(&game->title, ET_TYPE_TITLE, ET_TITLE_SPRITE); - eetg_object_set_color(&game->title, EETG_COLOR_BLUE); + eetg_object_init(&game->cathedral, ET_TYPE_CATHEDRAL, ET_CATHEDRAL_SPRITE); + eetg_object_set_color(&game->cathedral, EETG_COLOR_BLUE); + + eetg_object_init(&game->logo, ET_TYPE_TITLE, ET_LOGO_SPRITE); + eetg_object_set_color(&game->logo, EETG_COLOR_YELLOW); eetg_object_init(&game->help, ET_TYPE_HELP, ET_HELP_SPRITE); eetg_object_set_color(&game->help, EETG_COLOR_RED); @@ -1413,12 +1433,13 @@ et_game_init(struct et_game *game, eetg_write_fn write_fn, void *arg) eetg_object_init(&game->status, ET_TYPE_STATUS, game->status_sprite); eetg_object_set_color(&game->status, EETG_COLOR_RED); - eetg_object_init(&game->end_title, ET_TYPE_END_TITLE, ET_END_TITLE_SPRITE); - eetg_object_set_color(&game->end_title, EETG_COLOR_WHITE); + eetg_object_init(&game->game_over, ET_TYPE_END_TITLE, ET_END_TITLE_SPRITE); + eetg_object_set_color(&game->game_over, EETG_COLOR_WHITE); et_game_reset(game); - eetg_world_add(&game->world, &game->title, 2, 1, 0); + eetg_world_add(&game->world, &game->cathedral, 1, 1, 0); + eetg_world_add(&game->world, &game->logo, 46, 1, 0); eetg_world_add(&game->world, &game->start, 52, 15, 0); } diff --git a/src/et/et.h b/src/et/et.h index 7132b00..dfd754d 100644 --- a/src/et/et.h +++ b/src/et/et.h @@ -79,7 +79,8 @@ struct et_bag { struct et_game { struct eetg_world world; - struct eetg_object title; + struct eetg_object cathedral; + struct eetg_object logo; struct eetg_object help; struct eetg_object start; struct eetg_object left_wall; @@ -89,7 +90,7 @@ struct et_game { struct eetg_object next_queue_frame; struct eetg_object held_piece_frame; struct eetg_object status; - struct eetg_object end_title; + struct eetg_object game_over; struct et_piece pieces[256]; struct et_bag bag; struct et_piece *next_pieces[ET_NEXT_QUEUE_SIZE]; |