X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FMainForm.c;h=ec0ba33dd22e0d562d1a7a49ccc9e380612246dc;hb=97fb6c2a140f361991541bcf5a5c1e5d18deaf74;hp=d4c3545eec5ffa5f7a1a306b0ff3390d7a4758f8;hpb=35b995abd3183999201d9581f7674de1475dc169;p=rocksndiamonds.git diff --git a/src/game_sp/MainForm.c b/src/game_sp/MainForm.c index d4c3545e..ec0ba33d 100644 --- a/src/game_sp/MainForm.c +++ b/src/game_sp/MainForm.c @@ -31,8 +31,12 @@ void DisplayLevel() return; ClearRectangle(backbuffer, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE); - ClearRectangle(screenBitmap, 0, 0, +#if 1 + ClearRectangle(bitmap_db_field_sp, 0, 0, FXSIZE, FYSIZE); +#else + ClearRectangle(bitmap_db_field_sp, 0, 0, MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY); +#endif #if 1 SetDisplayRegion(); @@ -177,10 +181,60 @@ static void ReStretch() void SetScrollEdges() { +#if 1 + int border_offset = (menBorder ? 1 : 2); + + ScrollMinX = 0; + ScrollMinY = 0; + ScrollMaxX = (DisplayMaxX + border_offset) * BaseWidth - SXSIZE; + ScrollMaxY = (DisplayMaxY + border_offset) * BaseWidth - SYSIZE; + +#if 1 + if (!menBorder) + { + ScrollMinX += TILEX / 2; + ScrollMinY += TILEY / 2; + ScrollMaxX -= TILEX / 2; + ScrollMaxY -= TILEY / 2; + } +#if 1 + { + ScrollMinX -= game_sp.scroll_xoffset; + ScrollMaxX -= game_sp.scroll_xoffset; + ScrollMinY -= game_sp.scroll_yoffset; + ScrollMaxY -= game_sp.scroll_yoffset; + } +#else + if (1) + { + ScrollMinX -= TILEX / 2; + ScrollMaxX -= TILEX / 2; + ScrollMinY -= TILEY / 2; + ScrollMaxY -= TILEY / 2; + } +#endif +#else + if (!menBorder) + { + ScrollMinX += TILEX / 2; + ScrollMinY += TILEY / 2; + ScrollMaxX -= TILEX / 2; + ScrollMaxY -= TILEY / 2; + } +#endif + +#else ScrollMinX = (int)(DisplayMinX - 0.5) * BaseWidth; ScrollMinY = (int)(DisplayMinY - 0.5) * BaseWidth; ScrollMaxX = (int)(DisplayMaxX + 1.5) * BaseWidth - SXSIZE; ScrollMaxY = (int)(DisplayMaxY + 1.5) * BaseWidth - SYSIZE; +#endif + +#if 1 + printf("::: (%ld, %ld), (%ld, %ld) -> (%d, %d), (%d, %d)\n", + DisplayMinX, DisplayMinY, DisplayMaxX, DisplayMaxY, + ScrollMinX, ScrollMinY, ScrollMaxX, ScrollMaxY); +#endif } void DrawField(int X, int Y)