+
+void level_toggle_debug_mode(Level *level)
+{
+ background_toggle_debug_mode(level->background);
+}
+
+int level_enter_camera_event(Level *level,
+ const Camera *camera)
+{
+ goals_cue(level->goals, camera);
+ goals_checkpoint(level->goals, level->player);
+ labels_enter_camera_event(level->labels, camera);
+ return 0;
+}
+
+Rigid_rect *level_rigid_rect(Level *level,
+ const char *rigid_rect_id)
+{
+ assert(level);
+ assert(rigid_rect_id);
+
+ Rigid_rect *rigid_rect = player_rigid_rect(level->player,
+ rigid_rect_id);
+ if (rigid_rect != NULL) {
+ return rigid_rect;
+ }
+
+ rigid_rect = boxes_rigid_rect(level->boxes, rigid_rect_id);
+ if (rigid_rect != NULL) {
+ return rigid_rect;
+ }
+
+ return NULL;
+}
+
+void level_hide_goal(Level *level, const char *goal_id)
+{
+ goals_hide(level->goals, goal_id);
+}
+
+void level_show_goal(Level *level, const char *goal_id)
+{
+ goals_show(level->goals, goal_id);
+}
+
+long int level_player_jump_count(Level *level)
+{
+ assert(level);
+ return player_jump_count(level->player);
+}
+
+void level_hide_label(Level *level, const char *label_id)
+{
+ assert(level);
+ assert(label_id);
+
+ /* TODO: level_hide_label is not implemented */
+}