X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.c;h=17a1b3cb3c31fe0c4b3cd0676ff70b9f62c2c09e;hp=dcd5075ef164f98fc3544cda1e543aac931dbde9;hb=dd923608f42e41f8d77c5190e5ab613bbc7b6d21;hpb=273ed881a8affb54ee8e2bd7489eb3d898e11c23 diff --git a/src/main.c b/src/main.c index dcd5075e..17a1b3cb 100644 --- a/src/main.c +++ b/src/main.c @@ -1,15 +1,13 @@ -/*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * -*----------------------------------------------------------* -* (c) 1995-2006 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* main.c * -***********************************************************/ +// ============================================================================ +// Rocks'n'Diamonds - McDuffin Strikes Back! +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// http://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// main.c +// ============================================================================ #include "libgame/libgame.h" @@ -25,7 +23,8 @@ Bitmap *bitmap_db_store; Bitmap *bitmap_db_cross; Bitmap *bitmap_db_field; Bitmap *bitmap_db_panel; -Bitmap *bitmap_db_door; +Bitmap *bitmap_db_door_1; +Bitmap *bitmap_db_door_2; Bitmap *bitmap_db_toons; DrawBuffer *fieldbuffer; DrawBuffer *drawto_field; @@ -41,15 +40,7 @@ SDL_Thread *server_thread; int key_joystick_mapping = 0; -#if 1 -#if NEW_SCROLL boolean redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2]; -#else -boolean redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2]; -#endif -#else -boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; -#endif int redraw_x1 = 0, redraw_y1 = 0; short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -94,18 +85,24 @@ int ActiveFont[NUM_FONTS]; int lev_fieldx, lev_fieldy; int scroll_x, scroll_y; -int WIN_XSIZE = 672, WIN_YSIZE = 560; -int SCR_FIELDX = 17, SCR_FIELDY = 17; +int WIN_XSIZE = WIN_XSIZE_DEFAULT; +int WIN_YSIZE = WIN_YSIZE_DEFAULT; + +int SCR_FIELDX = SCR_FIELDX_DEFAULT; +int SCR_FIELDY = SCR_FIELDY_DEFAULT; + int REAL_SX = 6, REAL_SY = 6; int SX = 8, SY = 8; int DX = 566, DY = 60; int VX = 566, VY = 400; int EX = 566, EY = 356; int dDX, dDY; -int FULL_SXSIZE = 2 + 17 * TILEX + 2; /* 2 + SXSIZE + 2 */ -int FULL_SYSIZE = 2 + 17 * TILEY + 2; /* 2 + SYSIZE + 2 */ -int SXSIZE = 17 * TILEX; /* SCR_FIELDX * TILEX */ -int SYSIZE = 17 * TILEY; /* SCR_FIELDY * TILEY */ + +int FULL_SXSIZE = 2 + SXSIZE_DEFAULT + 2; +int FULL_SYSIZE = 2 + SYSIZE_DEFAULT + 2; +int SXSIZE = SXSIZE_DEFAULT; +int SYSIZE = SYSIZE_DEFAULT; + int DXSIZE = 100; int DYSIZE = 280; int VXSIZE = 100; @@ -114,24 +111,15 @@ int EXSIZE = 100; int EYSIZE = 144; int TILESIZE_VAR = TILESIZE; -#if 1 int FX, FY; -#else -int FX = SX, FY = SY; -#endif int ScrollStepSize; int ScreenMovDir = MV_NONE, ScreenMovPos = 0; int ScreenGfxPos = 0; int BorderElement = EL_STEELWALL; int GameFrameDelay = GAME_FRAME_DELAY; int FfwdFrameDelay = FFWD_FRAME_DELAY; -#if 1 int BX1, BY1; int BX2, BY2; -#else -int BX1 = 0, BY1 = 0; -int BX2 = SCR_FIELDX - 1, BY2 = SCR_FIELDY - 1; -#endif int SBX_Left, SBX_Right; int SBY_Upper, SBY_Lower; int ZX, ZY; @@ -165,6 +153,7 @@ struct MenuInfo menu; struct DoorInfo door_1, door_2; struct RequestInfo request; struct PreviewInfo preview; +struct EditorInfo editor; struct GraphicInfo *graphic_info = NULL; struct SoundInfo *sound_info = NULL; @@ -1111,37 +1100,37 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { "char_copyright", "char", - "letter '©'" + "letter '\xa9'" }, { "char_aumlaut", "char", - "letter 'Ä'" + "letter '\xc4'" }, { "char_oumlaut", "char", - "letter 'Ö'" + "letter '\xd6'" }, { "char_uumlaut", "char", - "letter 'Ü'" + "letter '\xdc'" }, { "char_degree", "char", - "letter '°'" + "letter '\xb0'" }, { "char_trademark", "char", - "letter '®'" + "letter '\xae'" }, { "char_cursor", "char", - "letter ' '" + "letter '\xa0'" }, { "char_unused", @@ -4171,37 +4160,37 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { "steel_char_copyright", "steel_char", - "steel letter '©'" + "steel letter '\xa9'" }, { "steel_char_aumlaut", "steel_char", - "steel letter 'Ä'" + "steel letter '\xc4'" }, { "steel_char_oumlaut", "steel_char", - "steel letter 'Ö'" + "steel letter '\xd6'" }, { "steel_char_uumlaut", "steel_char", - "steel letter 'Ü'" + "steel letter '\xdc'" }, { "steel_char_degree", "steel_char", - "steel letter '°'" + "steel letter '\xb0'" }, { "steel_char_trademark", "steel_char", - "steel letter '®'" + "steel letter '\xae'" }, { "steel_char_cursor", "steel_char", - "steel letter ' '" + "steel letter '\xa0'" }, { "steel_char_unused", @@ -5575,8 +5564,8 @@ static void print_usage() " -n, --network network multiplayer game\n" " --serveronly only start network server\n" " -v, --verbose verbose mode\n" + " -V, --version show program version\n" " --debug display debugging information\n" - " --debug-x11-sync enable X11 synchronous mode\n" " -e, --execute COMMAND execute batch COMMAND\n" "\n" "Valid commands for '--execute' option:\n" @@ -5591,25 +5580,62 @@ static void print_usage() " \"autoplay LEVELDIR [NR ...]\" play level tapes for LEVELDIR\n" " \"convert LEVELDIR [NR]\" convert levels in LEVELDIR\n" " \"create images DIRECTORY\" write BMP images to DIRECTORY\n" + " \"create CE image DIRECTORY\" write BMP image to DIRECTORY\n" "\n", program.command_basename); } -int main(int argc, char *argv[]) +static void print_version() { - char * window_title_string = getWindowTitleString(); + printf("%s %d.%d.%d.%d\n", + PROGRAM_TITLE_STRING, + PROGRAM_VERSION_MAJOR, + PROGRAM_VERSION_MINOR, + PROGRAM_VERSION_PATCH, + PROGRAM_VERSION_BUILD); + if (options.debug) + { + SDL_version sdl_version; + + SDL_VERSION(&sdl_version); + printf("- SDL %d.%d.%d\n", + sdl_version.major, + sdl_version.minor, + sdl_version.patch); + + SDL_IMAGE_VERSION(&sdl_version); + printf("- SDL_image %d.%d.%d\n", + sdl_version.major, + sdl_version.minor, + sdl_version.patch); + + SDL_MIXER_VERSION(&sdl_version); + printf("- SDL_mixer %d.%d.%d\n", + sdl_version.major, + sdl_version.minor, + sdl_version.patch); + + SDL_NET_VERSION(&sdl_version); + printf("- SDL_net %d.%d.%d\n", + sdl_version.major, + sdl_version.minor, + sdl_version.patch); + } +} + +int main(int argc, char *argv[]) +{ InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX, - PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING, - X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME, - MSDOS_POINTER_FILENAME, - COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL); + PROGRAM_TITLE_STRING, ICON_TITLE_STRING, SDL_ICON_FILENAME, + COOKIE_PREFIX, GAME_VERSION_ACTUAL); + InitWindowTitleFunction(getWindowTitleString); InitExitMessageFunction(DisplayExitMessage); InitExitFunction(CloseAllAndExit); InitPlatformDependentStuff(); - GetOptions(argv, print_usage); + GetOptions(argv, print_usage, print_version); OpenAll(); EventLoop();