X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_em%2Fconvert.c;fp=src%2Fgame_em%2Fconvert.c;h=4c34fd16c7044d8a8b00ccca4fa1c10a8f3b0cd1;hp=59c9a81e2d95ded94a1071865a7172f19aa76573;hb=5eec6f3a02cb8a6171a37a209aae3e3665aff514;hpb=0674fef44ec688158f1501b51371d53983ac96bb diff --git a/src/game_em/convert.c b/src/game_em/convert.c index 59c9a81e..4c34fd16 100644 --- a/src/game_em/convert.c +++ b/src/game_em/convert.c @@ -278,21 +278,24 @@ void prepare_em_level(void) lev.bottom = lev.top + lev.height; lev.infinite = game_em.use_wrap_around; + lev.infinite_true = cav.infinite_true; if (lev.infinite) { /* add linked cave buffer columns for wrap-around movement */ for (x = 0; x < lev.left; x++) { - lev.cavecol[x] = lev.cavecol[lev.width + x]; - lev.nextcol[x] = lev.nextcol[lev.width + x]; - lev.drawcol[x] = lev.drawcol[lev.width + x]; - lev.boomcol[x] = lev.boomcol[lev.width + x]; - - lev.cavecol[lev.right + x] = lev.cavecol[lev.left + x]; - lev.nextcol[lev.right + x] = lev.nextcol[lev.left + x]; - lev.drawcol[lev.right + x] = lev.drawcol[lev.left + x]; - lev.boomcol[lev.right + x] = lev.boomcol[lev.left + x]; + int offset = (lev.infinite_true ? 0 : 1); + + lev.cavecol[x] = &lev.cavecol[lev.width + x][-offset]; + lev.nextcol[x] = &lev.nextcol[lev.width + x][-offset]; + lev.drawcol[x] = &lev.drawcol[lev.width + x][-offset]; + lev.boomcol[x] = &lev.boomcol[lev.width + x][-offset]; + + lev.cavecol[lev.right + x] = &lev.cavecol[lev.left + x][offset]; + lev.nextcol[lev.right + x] = &lev.nextcol[lev.left + x][offset]; + lev.drawcol[lev.right + x] = &lev.drawcol[lev.left + x][offset]; + lev.boomcol[lev.right + x] = &lev.boomcol[lev.left + x][offset]; } }