summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/bullet.h6
-rw-r--r--src/enemies.h6
-rw-r--r--src/input.h6
-rw-r--r--src/main.c49
-rw-r--r--src/player.h6
-rw-r--r--src/wall.h6
6 files changed, 56 insertions, 23 deletions
diff --git a/src/bullet.h b/src/bullet.h
index e335d7d..7bb8d6c 100644
--- a/src/bullet.h
+++ b/src/bullet.h
@@ -21,6 +21,12 @@ init_bullets(void);
void
deinit_bullets(void);
+#define bullets_init_do() \
+ mrodeo_defer_do( \
+ init_bullets(), \
+ deinit_bullets() \
+ )
+
bullet_t *
spawn_bullet(
float x,
diff --git a/src/enemies.h b/src/enemies.h
index b111885..b2e9b6b 100644
--- a/src/enemies.h
+++ b/src/enemies.h
@@ -49,6 +49,12 @@ init_enemies(void);
void
deinit_enemies(void);
+#define enemies_init_do() \
+ mrodeo_defer_do( \
+ init_enemies(), \
+ deinit_enemies() \
+ )
+
enemy_t*
spawn_enemy(
float x,
diff --git a/src/input.h b/src/input.h
index c03c454..c73e59a 100644
--- a/src/input.h
+++ b/src/input.h
@@ -77,3 +77,9 @@ register_inputs(void);
void
unregister_inputs(void);
+
+#define inputs_register_do() \
+ mrodeo_defer_do( \
+ register_inputs(), \
+ unregister_inputs() \
+ )
diff --git a/src/main.c b/src/main.c
index 81e0248..4a08439 100644
--- a/src/main.c
+++ b/src/main.c
@@ -92,8 +92,6 @@ main_loop(void)
int
main(void)
{
- register_inputs();
-
rodeo_log(
rodeo_logLevel_info,
"Testing logging... It seems to work!"
@@ -108,29 +106,34 @@ main(void)
);
- mrodeo_window_do(window_height, window_width, cstr_lit("Rodeo Window"))
+ register_inputs();
+ inputs_register_do()
{
- renderer = rodeo_renderer_name_get();
- rodeo_frame_limit_set(60);
-
- scratch = rodeo_audio_sound_create_from_path(cstr_lit("assets/sample.wav"));
- music = rodeo_audio_music_create_from_path(cstr_lit("assets/music.ogg"));
-
- init_bullets();
- init_player();
- init_enemies();
- init_wall();
-
-
- rodeo_mainLoop_run(
- main_loop
- );
-
- deinit_player();
- deinit_enemies();
+ mrodeo_window_do(window_height, window_width, cstr_lit("Rodeo Window"))
+ {
+ renderer = rodeo_renderer_name_get();
+ rodeo_frame_limit_set(60);
+
+ scratch = rodeo_audio_sound_create_from_path(cstr_lit("assets/sample.wav"));
+ music = rodeo_audio_music_create_from_path(cstr_lit("assets/music.ogg"));
+
+ bullets_init_do()
+ {
+ player_init_do()
+ {
+ enemies_init_do()
+ {
+ wall_init_do()
+ {
+ rodeo_mainLoop_run(
+ main_loop
+ );
+ }
+ }
+ }
+ }
+ }
}
- unregister_inputs();
-
return 0;
}
diff --git a/src/player.h b/src/player.h
index f102b1d..6603554 100644
--- a/src/player.h
+++ b/src/player.h
@@ -28,6 +28,12 @@ init_player(void);
void
deinit_player(void);
+#define player_init_do() \
+ mrodeo_defer_do( \
+ init_player(), \
+ deinit_player() \
+ )
+
void
draw_player(void);
diff --git a/src/wall.h b/src/wall.h
index 07990fa..945bc46 100644
--- a/src/wall.h
+++ b/src/wall.h
@@ -6,6 +6,12 @@ init_wall(void);
void
deinit_wall(void);
+#define wall_init_do() \
+ mrodeo_defer_do( \
+ init_wall(), \
+ deinit_wall() \
+ )
+
rodeo_collision_2d_world_t *
get_wall_world(void);