X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fconvert.c;h=4c34fd16c7044d8a8b00ccca4fa1c10a8f3b0cd1;hb=36b3c94a39f40ced6b0c3fed7ca40c21a2753a04;hp=9219e19774ee95b5ddbaeaa20ba28c11aebf64a3;hpb=4cd59cef0737229da365e385a8762e681a5e471f;p=rocksndiamonds.git diff --git a/src/game_em/convert.c b/src/game_em/convert.c index 9219e197..4c34fd16 100644 --- a/src/game_em/convert.c +++ b/src/game_em/convert.c @@ -277,20 +277,25 @@ void prepare_em_level(void) lev.right = lev.left + lev.width; lev.bottom = lev.top + lev.height; - if (cav.infinite) + 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]; } }