X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Finit.c;h=0486f87b295fcf7a075b4ecc68bf881eda809f40;hb=d44b582de43d0e120cb225009a378cc08400080a;hp=9937110a8a80808cda87047659324bca926ee5cb;hpb=3923ae9a33cceaf73cd7911b0c7d6abc18b3663b;p=rocksndiamonds.git diff --git a/src/game_em/init.c b/src/game_em/init.c index 9937110a..0486f87b 100644 --- a/src/game_em/init.c +++ b/src/game_em/init.c @@ -1,66 +1,69 @@ -/* 2000-08-10T18:03:54Z +/* 2000-01-06 06:43:39 * - * open X11 display and sound + * set everything up and close everything down */ #include "main_em.h" -#include - - -Bitmap *objBitmap; -Bitmap *sprBitmap; Bitmap *screenBitmap; struct GlobalInfo_EM global_em_info; struct GameInfo_EM game_em; -int open_all(void) +void InitGfxBuffers_EM(void) { - Bitmap *emc_bitmaps[2]; - - SetBitmaps_EM(emc_bitmaps); + ReCreateBitmap(&screenBitmap, MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY); - objBitmap = emc_bitmaps[0]; - sprBitmap = emc_bitmaps[1]; + global_em_info.screenbuffer = screenBitmap; +} - return 0; +void game_init_random(void) +{ + game_em.random = 1684108901; /* what a nice seed */ } -void InitGfxBuffers_EM(void) +void game_init_cave_buffers(void) { - ReCreateBitmap(&screenBitmap, MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY); + int x, y; - global_em_info.screenbuffer = screenBitmap; + for (x = 0; x < CAVE_BUFFER_WIDTH; x++) + { + for (y = 0; y < CAVE_BUFFER_HEIGHT; y++) + { + lev.cavebuf[x][y] = Zborder; + lev.nextbuf[x][y] = Zborder; + lev.drawbuf[x][y] = Zborder; + lev.boombuf[x][y] = Xblank; + } + + lev.cavecol[x] = lev.cavebuf[x]; + lev.nextcol[x] = lev.nextbuf[x]; + lev.drawcol[x] = lev.drawbuf[x]; + lev.boomcol[x] = lev.boombuf[x]; + } + + lev.cave = lev.cavecol; + lev.next = lev.nextcol; + lev.draw = lev.drawcol; + lev.boom = lev.boomcol; } void em_open_all(void) { - /* pre-calculate some data */ - tab_generate(); - - if (open_all() != 0) - Error(ERR_EXIT, "em_open_all(): open_all() failed"); + InitGraphicInfo_EM(); - /* after "open_all()", because we need the graphic bitmaps to be defined */ - tab_generate_graphics_info_em(); - - game_init_vars(); + game_init_random(); + game_init_cave_buffers(); } void em_close_all(void) { } -/* ---------------------------------------------------------------------- */ - -extern int screen_x; -extern int screen_y; - void play_element_sound(int x, int y, int sample, int element) { - PlayLevelSound_EM(x, y, element, sample); + PlayLevelSound_EM(CAVE_POS_X(x), CAVE_POS_Y(y), element, sample); } void play_sound(int x, int y, int sample) @@ -68,6 +71,20 @@ void play_sound(int x, int y, int sample) play_element_sound(x, y, sample, -1); } +int correctLevelPosX_EM(int lx) +{ + lx -= lev.left; + + return lx; +} + +int correctLevelPosY_EM(int ly) +{ + ly -= lev.top; + + return ly; +} + unsigned int InitEngineRandom_EM(int seed) { if (seed == NEW_RANDOMIZE) @@ -75,13 +92,13 @@ unsigned int InitEngineRandom_EM(int seed) int simple_rnd = GetSimpleRandom(1000); int i; - for (i = 0; i < simple_rnd || RandomEM == NEW_RANDOMIZE; i++) - RandomEM = RandomEM * 129 + 1; + for (i = 0; i < simple_rnd || game_em.random == NEW_RANDOMIZE; i++) + game_em.random = game_em.random * 129 + 1; - seed = RandomEM; + seed = game_em.random; } - RandomEM = seed; + game_em.random = seed; - return (unsigned int) seed; + return (unsigned int)seed; }