From 61f59465af979e21d8cb1b6ee790bc5025549d15 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Mon, 11 Mar 2024 09:10:39 +0100 Subject: [PATCH] added support for object rendering wrap-around for BD level handling --- src/files.c | 8 ++++++++ src/main.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/files.c b/src/files.c index e6e22816..b5ac78f2 100644 --- a/src/files.c +++ b/src/files.c @@ -321,6 +321,12 @@ static struct LevelFileConfigInfo chunk_config_INFO[] = &li.bd_line_shifting_borders, FALSE }, + { + -1, -1, + TYPE_BOOLEAN, CONF_VALUE_8_BIT(21), + &li.bd_wraparound_objects, FALSE + }, + { -1, -1, -1, -1, @@ -3775,6 +3781,7 @@ static void CopyNativeLevel_RND_to_BD(struct LevelInfo *level) cave->diagonal_movements = level->bd_diagonal_movements; cave->lineshift = level->bd_line_shifting_borders; + cave->wraparound_objects = level->bd_wraparound_objects; strncpy(cave->name, level->name, sizeof(GdString)); cave->name[sizeof(GdString) - 1] = '\0'; @@ -3813,6 +3820,7 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level) level->bd_diagonal_movements = cave->diagonal_movements; level->bd_line_shifting_borders = cave->lineshift; + level->bd_wraparound_objects = cave->wraparound_objects; char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1); diff --git a/src/main.h b/src/main.h index fcdcaf26..65ee52c6 100644 --- a/src/main.h +++ b/src/main.h @@ -3487,6 +3487,7 @@ struct LevelInfo int bd_scheduling_type; // BD engine scheduling type boolean bd_pal_timing; // BD engine uses special PAL timing boolean bd_line_shifting_borders; // BD engine uses line-shifting wrap-around + boolean bd_wraparound_objects; // BD cave object rendering uses wrap-around boolean bd_intermission; // BD level is intermission boolean bd_diagonal_movements; // BD style diagonal movements boolean em_slippery_gems; // EM style "gems slip from wall" behaviour -- 2.34.1