X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fsystem.c;h=c1abb8a41ab1d11d7d43f34f5c128dea14694e99;hb=HEAD;hp=9888ef1307eebb440b0006bb376b810b635533e1;hpb=b527e3e0892cce0d1c6540c6961bb0f7e32747bf;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 9888ef13..c1abb8a4 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -69,19 +69,21 @@ int FrameCounter = 0; // init/close functions // ============================================================================ -void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir, - char *program_title, +void InitProgramInfo(char *command_filename, + char *config_filename, char *userdata_subdir, + char *program_basename, char *program_title, char *icon_filename, char *cookie_prefix, char *program_version_string, int program_version) { - program.command_basepath = getBasePath(argv0); - program.command_basename = getBaseName(argv0); + program.command_basepath = getBasePath(command_filename); + program.command_basename = getBaseName(command_filename); program.config_filename = config_filename; program.userdata_subdir = userdata_subdir; program.userdata_path = getMainUserGameDataDir(); + program.program_basename = program_basename; program.program_title = program_title; program.window_title = "(undefined)"; @@ -97,10 +99,8 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir, program.version_string = program_version_string; - program.log_filename[LOG_OUT_ID] = getLogFilename(LOG_OUT_BASENAME); - program.log_filename[LOG_ERR_ID] = getLogFilename(LOG_ERR_BASENAME); - program.log_file[LOG_OUT_ID] = program.log_file_default[LOG_OUT_ID] = stdout; - program.log_file[LOG_ERR_ID] = program.log_file_default[LOG_ERR_ID] = stderr; + program.log_filename = getLogFilename(getLogBasename(program_basename)); + program.log_file = program.log_file_default = stdout; program.api_thread_count = 0; @@ -168,7 +168,7 @@ void InitPlatformDependentStuff(void) // this is initialized in GetOptions(), but may already be used before options.verbose = TRUE; - OpenLogFiles(); + OpenLogFile(); int sdl_init_flags = SDL_INIT_EVENTS | SDL_INIT_NOPARACHUTE; @@ -180,7 +180,7 @@ void InitPlatformDependentStuff(void) void ClosePlatformDependentStuff(void) { - CloseLogFiles(); + CloseLogFile(); } void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize, @@ -287,11 +287,16 @@ void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int)) gfx.draw_global_border_function = draw_global_border_function; } -void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int)) +void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int, int)) { gfx.draw_tile_cursor_function = draw_tile_cursor_function; } +void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int)) +{ + gfx.draw_envelope_request_function = draw_envelope_request_function; +} + void InitGfxCustomArtworkInfo(void) { gfx.override_level_graphics = FALSE; @@ -594,9 +599,22 @@ void FreeBitmap(Bitmap *bitmap) free(bitmap); } +void ResetBitmapAlpha(Bitmap *bitmap) +{ + bitmap->alpha[0][0] = -1; + bitmap->alpha[0][1] = -1; + bitmap->alpha[1][0] = -1; + bitmap->alpha[1][1] = -1; + bitmap->alpha_next_blit = -1; +} + Bitmap *CreateBitmapStruct(void) { - return checked_calloc(sizeof(Bitmap)); + Bitmap *new_bitmap = checked_calloc(sizeof(Bitmap)); + + ResetBitmapAlpha(new_bitmap); + + return new_bitmap; } Bitmap *CreateBitmap(int width, int height, int depth) @@ -767,6 +785,12 @@ static boolean InClippedRectangle(Bitmap *bitmap, int *x, int *y, return TRUE; } +void SetBitmapAlphaNextBlit(Bitmap *bitmap, int alpha) +{ + // set alpha value for next blitting of bitmap + bitmap->alpha_next_blit = alpha; +} + void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap, int src_x, int src_y, int width, int height, int dst_x, int dst_y)