6 struct GameInfo_SP game_sp_info;
7 struct LevelInfo_SP native_sp_level;
10 int GfxElementLast[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
11 int GfxGraphicLast[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
12 int GfxGraphic[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
13 int GfxFrame[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
16 void InitGameEngine_SP()
20 gfx.anim_random_frame = -1; // (use simple, ad-hoc random numbers)
22 game_sp_info.LevelSolved = FALSE;
23 game_sp_info.GameOver = FALSE;
25 menBorder.Checked = setup.sp_show_border_elements;
27 for (x = 0; x < SP_MAX_PLAYFIELD_WIDTH; x++)
29 for (y = 0; y < SP_MAX_PLAYFIELD_HEIGHT; y++)
31 GfxElementLast[x][y] = -1;
32 GfxGraphicLast[x][y] = -1;
33 GfxGraphic[x][y] = -1;
38 InitScrollPlayfield();
41 printf(":A: %d, %d [%d, %d]\n",
42 mScrollX, mScrollY, mScrollX_last, mScrollY_last);
52 printf(":B: %d, %d [%d, %d]\n",
53 mScrollX, mScrollY, mScrollX_last, mScrollY_last);
58 void BlitScreenToBitmap_SP(Bitmap *target_bitmap)
60 DDScrollBuffer_Blt_Ext(target_bitmap);
64 void RedrawPlayfield_SP(boolean force_redraw)
73 void GameActions_SP(byte action[MAX_PLAYERS], boolean warp_mode)
75 byte single_player_action = action[0];
78 subMainGameLoop_Main(single_player_action, warp_mode);
80 RedrawPlayfield_SP(FALSE);
82 for (x = DisplayMinX; x <= DisplayMaxX; x++)
83 for (y = DisplayMinY; y <= DisplayMaxY; y++)