X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2Finit.c;h=0e217a9dcbbc90216629237b495b71e44242c799;hb=3c080c7b33b6dfcc6e0039b592c5f268535873e7;hp=0f380e5845e4640cc442094f0a806f63f43b27a8;hpb=ac592f78bbedc4808c5e35fb22bc8fc9f0398c8d;p=rocksndiamonds.git diff --git a/src/game_sp/init.c b/src/game_sp/init.c index 0f380e58..0e217a9d 100644 --- a/src/game_sp/init.c +++ b/src/game_sp/init.c @@ -7,26 +7,71 @@ Bitmap *sp_objects; Bitmap *screenBitmap; +static void init_struct_functions() +{ + Stage.Blt = &DDScrollBuffer_Blt; + Stage.ScrollTo = &DDScrollBuffer_ScrollTo; + Stage.ScrollTowards = &DDScrollBuffer_ScrollTowards; + Stage.SoftScrollTo = &DDScrollBuffer_SoftScrollTo; -static void BlitScreenToBitmap_SP__Stage_Blt() + StretchedSprites.BltEx = &DDSpriteBuffer_BltEx; +} + +static void init_global_values() { - BlitScreenToBitmap_SP(window); + menBorder.Checked = True * 0; + menPanel.Checked = True; + menAutoScroll.Checked = True; + + MainForm.picPane.Width = picPane.Width = SCR_FIELDX * TILEX; + MainForm.picPane.Height = picPane.Height = SCR_FIELDY * TILEY; } void sp_open_all() { + init_struct_functions(); + init_global_values(); + + Form_Load(); + SetBitmaps_SP(&sp_objects); +#if 1 + /* too small for oversized levels, but too big for graphics performance */ + /* (the whole playfield is drawn/updated, not only visible/scrolled area) */ + /* !!! FIX THIS !!! */ + screenBitmap = CreateBitmap(60 * TILEX, 24 * TILEY, + DEFAULT_DEPTH); +#else screenBitmap = CreateBitmap(MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY, DEFAULT_DEPTH); - - StretchedSprites.BltEx = &DDSpriteBuffer_BltEx; +#endif DDSpriteBuffer_CreateFromFile("[NONE]", 16, 16); - - Stage.Blt = &BlitScreenToBitmap_SP__Stage_Blt; } void sp_close_all() { } + +unsigned int InitEngineRandom_SP(long seed) +{ + if (seed == NEW_RANDOMIZE) + { +#if 0 + printf("::: init.c: InitEngineRandom_SP(): subRandomize()\n"); +#endif + + subRandomize(); + + seed = (long)RandomSeed; + } + + RandomSeed = (short)seed; + +#if 0 + printf("::: init.c: InitEngineRandom_SP(): RandomSeed == %d\n", RandomSeed); +#endif + + return (unsigned int) seed; +}