summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2025-05-23 21:02:02 +0200
committerRichard Braun <rbraun@sceen.net>2025-05-23 21:02:02 +0200
commit882495a7c583bf9022e9eca9490063d37a08ef58 (patch)
tree4008e22a675a4239ea1647e4430142a309db0e1a
parentf65cfedbb6a427f37eef12fccfaa5f64bd3d8c6f (diff)
Looks pretty good
-rw-r--r--src/et/et.c47
-rw-r--r--src/et/et.h5
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];