X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Finit.c;h=1e8d7e825db985c41cbb9526562890a5ef137f0e;hp=7413cd52e53f5b9695e02e3697c8f57a46d4ccde;hb=740b7b55a7f4982f08b09daee0152ec9df3240ae;hpb=ced5b6e12d3dcc3e55bbe1ac858e7e5308cac69c diff --git a/src/init.c b/src/init.c index 7413cd52..1e8d7e82 100644 --- a/src/init.c +++ b/src/init.c @@ -88,7 +88,7 @@ static int copy_properties[][5] = static int get_graphic_parameter_value(char *, char *, int); -void DrawInitAnim() +static void DrawInitAnim(void) { struct GraphicInfo *graphic_info_last = graphic_info; int graphic = 0; @@ -136,7 +136,7 @@ void DrawInitAnim() FrameCounter++; } -void FreeGadgets() +static void FreeGadgets(void) { FreeLevelEditorGadgets(); FreeGameButtons(); @@ -145,7 +145,7 @@ void FreeGadgets() FreeScreenGadgets(); } -void InitGadgets() +void InitGadgets(void) { static boolean gadgets_initialized = FALSE; @@ -171,7 +171,7 @@ inline static void InitElementSmallImagesScaledUp(int graphic) CreateImageWithSmallImages(graphic, g->scale_up_factor, g->tile_size); } -void InitElementSmallImages() +static void InitElementSmallImages(void) { print_timestamp_init("InitElementSmallImages"); @@ -233,7 +233,7 @@ inline static void InitScaledImagesScaledUp(int graphic) ScaleImage(graphic, g->scale_up_factor); } -void InitScaledImages() +static void InitScaledImages(void) { struct PropertyMapping *property_mapping = getImageListPropertyMapping(); int num_property_mappings = getImageListPropertyMappingSize(); @@ -248,7 +248,7 @@ void InitScaledImages() InitScaledImagesScaledUp(property_mapping[i].artwork_index); } -void InitBitmapPointers() +static void InitBitmapPointers(void) { int num_images = getImageListSize(); int i; @@ -259,7 +259,7 @@ void InitBitmapPointers() graphic_info[i].bitmap = graphic_info[i].bitmaps[IMG_BITMAP_STANDARD]; } -void InitImageTextures() +void InitImageTextures(void) { int i, j, k; @@ -333,7 +333,7 @@ static int getFontFromToken(char *token) return FONT_INITIAL_1; } -void InitFontGraphicInfo() +static void InitFontGraphicInfo(void) { static struct FontBitmapInfo *font_bitmap_info = NULL; struct PropertyMapping *property_mapping = getImageListPropertyMapping(); @@ -572,7 +572,7 @@ void InitFontGraphicInfo() getFontBitmapID, getFontFromToken); } -void InitGlobalAnimGraphicInfo() +static void InitGlobalAnimGraphicInfo(void) { struct PropertyMapping *property_mapping = getImageListPropertyMapping(); int num_property_mappings = getImageListPropertyMappingSize(); @@ -644,7 +644,7 @@ void InitGlobalAnimGraphicInfo() #endif } -void InitGlobalAnimSoundInfo() +static void InitGlobalAnimSoundInfo(void) { struct PropertyMapping *property_mapping = getSoundListPropertyMapping(); int num_property_mappings = getSoundListPropertyMappingSize(); @@ -693,7 +693,7 @@ void InitGlobalAnimSoundInfo() #endif } -void InitGlobalAnimMusicInfo() +static void InitGlobalAnimMusicInfo(void) { struct PropertyMapping *property_mapping = getMusicListPropertyMapping(); int num_property_mappings = getMusicListPropertyMappingSize(); @@ -742,7 +742,7 @@ void InitGlobalAnimMusicInfo() #endif } -void InitElementGraphicInfo() +static void InitElementGraphicInfo(void) { struct PropertyMapping *property_mapping = getImageListPropertyMapping(); int num_property_mappings = getImageListPropertyMappingSize(); @@ -1123,7 +1123,7 @@ void InitElementGraphicInfo() UPDATE_BUSY_STATE(); } -void InitElementSpecialGraphicInfo() +static void InitElementSpecialGraphicInfo(void) { struct PropertyMapping *property_mapping = getImageListPropertyMapping(); int num_property_mappings = getImageListPropertyMappingSize(); @@ -1639,7 +1639,7 @@ static void set_cloned_graphic_parameters(int graphic) } } -static void InitGraphicInfo() +static void InitGraphicInfo(void) { int fallback_graphic = IMG_CHAR_EXCLAM; int num_images = getImageListSize(); @@ -1819,7 +1819,7 @@ static void InitGraphicInfo() } } -static void InitGraphicCompatibilityInfo() +static void InitGraphicCompatibilityInfo(void) { struct FileInfo *fi_global_door = getImageListEntryFromImageID(IMG_GLOBAL_DOOR); @@ -1861,7 +1861,7 @@ static void InitGraphicCompatibilityInfo() InitGraphicCompatibilityInfo_Doors(); } -static void InitElementSoundInfo() +static void InitElementSoundInfo(void) { struct PropertyMapping *property_mapping = getSoundListPropertyMapping(); int num_property_mappings = getSoundListPropertyMappingSize(); @@ -1965,7 +1965,7 @@ static void InitElementSoundInfo() element_info[copy_properties[i][0]].sound[act]; } -static void InitGameModeSoundInfo() +static void InitGameModeSoundInfo(void) { int i; @@ -2014,7 +2014,7 @@ static void set_sound_parameters(int sound, char **parameter_raw) sound_info[sound].priority = parameter[SND_ARG_PRIORITY]; } -static void InitSoundInfo() +static void InitSoundInfo(void) { int *sound_effect_properties; int num_sounds = getSoundListSize(); @@ -2081,7 +2081,7 @@ static void InitSoundInfo() free(sound_effect_properties); } -static void InitGameModeMusicInfo() +static void InitGameModeMusicInfo(void) { struct PropertyMapping *property_mapping = getMusicListPropertyMapping(); int num_property_mappings = getMusicListPropertyMappingSize(); @@ -2164,7 +2164,7 @@ static void set_music_parameters(int music, char **parameter_raw) music_info[music].loop = parameter[MUS_ARG_MODE_LOOP]; } -static void InitMusicInfo() +static void InitMusicInfo(void) { int num_music = getMusicListSize(); int i, j; @@ -2200,7 +2200,7 @@ static void InitMusicInfo() } } -static void ReinitializeGraphics() +static void ReinitializeGraphics(void) { print_timestamp_init("ReinitializeGraphics"); @@ -2246,7 +2246,7 @@ static void ReinitializeGraphics() print_timestamp_done("ReinitializeGraphics"); } -static void ReinitializeSounds() +static void ReinitializeSounds(void) { InitSoundInfo(); /* sound properties mapping */ InitElementSoundInfo(); /* element game sound mapping */ @@ -2256,7 +2256,7 @@ static void ReinitializeSounds() InitPlayLevelSound(); /* internal game sound settings */ } -static void ReinitializeMusic() +static void ReinitializeMusic(void) { InitMusicInfo(); /* music properties mapping */ InitGameModeMusicInfo(); /* game mode music mapping */ @@ -2448,7 +2448,7 @@ void ResolveGroupElement(int group_element) ResolveGroupElementExt(group_element, 0); } -void InitElementPropertiesStatic() +void InitElementPropertiesStatic(void) { static boolean clipboard_elements_initialized = FALSE; @@ -3660,12 +3660,8 @@ void InitElementPropertiesStatic() EL_INVISIBLE_WALL_ACTIVE, EL_SWITCHGATE_SWITCH_UP, EL_SWITCHGATE_SWITCH_DOWN, - EL_DC_SWITCHGATE_SWITCH_UP, - EL_DC_SWITCHGATE_SWITCH_DOWN, EL_TIMEGATE_SWITCH, EL_TIMEGATE_SWITCH_ACTIVE, - EL_DC_TIMEGATE_SWITCH, - EL_DC_TIMEGATE_SWITCH_ACTIVE, EL_EMC_WALL_1, EL_EMC_WALL_2, EL_EMC_WALL_3, @@ -3734,6 +3730,12 @@ void InitElementPropertiesStatic() EL_SIGN_FRANKIE, EL_STEEL_EXIT_CLOSED, EL_STEEL_EXIT_OPEN, + EL_STEEL_EXIT_OPENING, + EL_STEEL_EXIT_CLOSING, + EL_EM_STEEL_EXIT_CLOSED, + EL_EM_STEEL_EXIT_OPEN, + EL_EM_STEEL_EXIT_OPENING, + EL_EM_STEEL_EXIT_CLOSING, EL_DC_STEELWALL_1_LEFT, EL_DC_STEELWALL_1_RIGHT, EL_DC_STEELWALL_1_TOP, @@ -3786,14 +3788,34 @@ void InitElementPropertiesStatic() EL_EM_GATE_2_GRAY_ACTIVE, EL_EM_GATE_3_GRAY_ACTIVE, EL_EM_GATE_4_GRAY_ACTIVE, + EL_EMC_GATE_5, + EL_EMC_GATE_6, + EL_EMC_GATE_7, + EL_EMC_GATE_8, + EL_EMC_GATE_5_GRAY, + EL_EMC_GATE_6_GRAY, + EL_EMC_GATE_7_GRAY, + EL_EMC_GATE_8_GRAY, + EL_EMC_GATE_5_GRAY_ACTIVE, + EL_EMC_GATE_6_GRAY_ACTIVE, + EL_EMC_GATE_7_GRAY_ACTIVE, + EL_EMC_GATE_8_GRAY_ACTIVE, + EL_DC_GATE_WHITE, + EL_DC_GATE_WHITE_GRAY, + EL_DC_GATE_WHITE_GRAY_ACTIVE, + EL_DC_GATE_FAKE_GRAY, EL_SWITCHGATE_OPEN, EL_SWITCHGATE_OPENING, EL_SWITCHGATE_CLOSED, EL_SWITCHGATE_CLOSING, + EL_DC_SWITCHGATE_SWITCH_UP, + EL_DC_SWITCHGATE_SWITCH_DOWN, EL_TIMEGATE_OPEN, EL_TIMEGATE_OPENING, EL_TIMEGATE_CLOSED, EL_TIMEGATE_CLOSING, + EL_DC_TIMEGATE_SWITCH, + EL_DC_TIMEGATE_SWITCH_ACTIVE, EL_TUBE_ANY, EL_TUBE_VERTICAL, EL_TUBE_HORIZONTAL, @@ -3805,6 +3827,9 @@ void InitElementPropertiesStatic() EL_TUBE_LEFT_DOWN, EL_TUBE_RIGHT_UP, EL_TUBE_RIGHT_DOWN, + EL_EXPANDABLE_STEELWALL_HORIZONTAL, + EL_EXPANDABLE_STEELWALL_VERTICAL, + EL_EXPANDABLE_STEELWALL_ANY, -1 }; @@ -4545,8 +4570,8 @@ void InitElementPropertiesEngine(int engine_version) if (IS_HISTORIC_SOLID(i) || i == EL_EXPLOSION) SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, TRUE); else - SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, (IS_CUSTOM_ELEMENT(i) && - IS_INDESTRUCTIBLE(i))); + SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, (IS_INDESTRUCTIBLE(i) && + i != EL_ACID)); /* ---------- EXPLOSION_PROOF ------------------------------------------ */ if (i == EL_FLAMES) @@ -4700,7 +4725,7 @@ void InitElementPropertiesEngine(int engine_version) InitElementGraphicInfo(); } -void InitElementPropertiesGfxElement() +void InitElementPropertiesGfxElement(void) { int i; @@ -4712,7 +4737,7 @@ void InitElementPropertiesGfxElement() } } -static void InitGlobal() +static void InitGlobal(void) { int graphic; int i; @@ -4849,7 +4874,7 @@ static void InitGlobal() global.use_envelope_request = FALSE; } -void Execute_Command(char *command) +static void Execute_Command(char *command) { int i; @@ -5051,9 +5076,12 @@ void Execute_Command(char *command) { Error(ERR_EXIT_HELP, "unrecognized command '%s'", command); } + + /* disable networking if any valid command was recognized */ + options.network = setup.network_mode = FALSE; } -static void InitSetup() +static void InitSetup(void) { LoadSetup(); /* global setup info */ LoadSetup_AutoSetup(); /* global auto setup info */ @@ -5067,13 +5095,13 @@ static void InitSetup() global.show_frames_per_second = TRUE; } -static void InitGameInfo() +static void InitGameInfo(void) { game.restart_level = FALSE; game.restart_game_message = NULL; } -static void InitPlayerInfo() +static void InitPlayerInfo(void) { int i; @@ -5087,10 +5115,9 @@ static void InitPlayerInfo() } local_player->connected_locally = TRUE; - local_player->connected_network = TRUE; } -static void InitArtworkInfo() +static void InitArtworkInfo(void) { LoadArtworkInfo(); } @@ -5116,7 +5143,7 @@ static char *get_level_id_suffix(int id_nr) return id_suffix; } -static void InitArtworkConfig() +static void InitArtworkConfig(void) { static char *image_id_prefix[MAX_NUM_ELEMENTS + NUM_FONTS + @@ -5236,14 +5263,14 @@ static void InitArtworkConfig() level_id_suffix, ignore_music_tokens); } -static void InitMixer() +static void InitMixer(void) { OpenAudio(); StartMixer(); } -static void InitVideoOverlay() +static void InitVideoOverlay(void) { // if virtual buttons are not loaded from setup file, repeat initializing // virtual buttons grid with default values now that video is initialized @@ -5254,7 +5281,7 @@ static void InitVideoOverlay() InitOverlayInfo(); } -void InitGfxBuffers() +void InitGfxBuffers(void) { static int win_xsize_last = -1; static int win_ysize_last = -1; @@ -5294,7 +5321,7 @@ void InitGfxBuffers() InitGfxBuffers_SP(); } -void InitGfx() +static void InitGfx(void) { struct GraphicInfo *graphic_info_last = graphic_info; char *filename_font_initial = NULL; @@ -5463,7 +5490,7 @@ void InitGfx() init_last = init; } -void InitGfxBackground() +static void InitGfxBackground(void) { fieldbuffer = bitmap_db_field; SetDrawtoField(DRAW_TO_BACKBUFFER); @@ -5473,7 +5500,7 @@ void InitGfxBackground() redraw_mask = REDRAW_ALL; } -static void InitLevelInfo() +static void InitLevelInfo(void) { LoadLevelInfo(); /* global level info */ LoadLevelSetup_LastSeries(); /* last played series info */ @@ -5487,14 +5514,16 @@ static void InitLevelInfo() if (leveldir_current == NULL) leveldir_current = getFirstValidTreeInfoEntry(leveldir_first); } + + SetLevelSetInfo(leveldir_current->identifier, level_nr); } -static void InitLevelArtworkInfo() +static void InitLevelArtworkInfo(void) { LoadLevelArtworkInfo(); } -static void InitImages() +static void InitImages(void) { print_timestamp_init("InitImages"); @@ -5597,7 +5626,7 @@ static void InitMusic(char *identifier) print_timestamp_done("InitMusic"); } -static void InitArtworkDone() +static void InitArtworkDone(void) { if (program.headless) return; @@ -5605,36 +5634,46 @@ static void InitArtworkDone() InitGlobalAnimations(); } -void InitNetworkSettings() +static void InitNetworkSettings(void) { - InitNetworkInfo(options.network || setup.network_mode, + boolean network_enabled = (options.network || setup.network_mode); + char *network_server = (options.server_host != NULL ? options.server_host : + setup.network_server_hostname); + + if (strEqual(network_server, STR_NETWORK_AUTO_DETECT)) + network_server = NULL; + + InitNetworkInfo(network_enabled, FALSE, options.serveronly, - options.server_host, + network_server, options.server_port); } -void InitNetworkServer() +void InitNetworkServer(void) { if (!network.enabled || network.connected) return; + LimitScreenUpdates(FALSE); + if (!ConnectToServer(network.server_host, network.server_port)) { - Request("Cannot connect to network server!", REQ_CONFIRM); - network.enabled = FALSE; setup.network_mode = FALSE; - - return; } + else + { + SendToServer_ProtocolVersion(); + SendToServer_PlayerName(setup.player_name); + SendToServer_NrWanted(setup.network_player_nr + 1); - SendToServer_PlayerName(setup.player_name); - SendToServer_ProtocolVersion(); - SendToServer_NrWanted(setup.network_player_nr + 1); + network.connected = TRUE; + } - network.connected = TRUE; + /* short time to recognize result of network initialization */ + Delay_WithScreenUpdates(1000); } static boolean CheckArtworkConfigForCustomElements(char *filename) @@ -5710,7 +5749,7 @@ static boolean CheckArtworkTypeForRedefinedCustomElements(int type) return redefined_ce_found; } -static void InitOverrideArtwork() +static void InitOverrideArtwork(void) { boolean redefined_ce_found = FALSE; @@ -5911,7 +5950,7 @@ void ReloadCustomArtwork(int force_reload) LimitScreenUpdates(FALSE); } -void KeyboardAutoRepeatOffUnlessAutoplay() +void KeyboardAutoRepeatOffUnlessAutoplay(void) { if (global.autoplay_leveldir == NULL) KeyboardAutoRepeatOff(); @@ -5986,7 +6025,7 @@ void DisplayExitMessage(char *format, va_list ap) /* OpenAll() */ /* ========================================================================= */ -void OpenAll() +void OpenAll(void) { print_timestamp_init("OpenAll"); @@ -6097,6 +6136,8 @@ void OpenAll() return; } + InitNetworkServer(); + SetGameStatus(GAME_MODE_MAIN); FadeSetEnterScreen(); @@ -6109,8 +6150,6 @@ void OpenAll() DrawMainMenu(); - InitNetworkServer(); - #if 0 Error(ERR_DEBUG, "::: SDL_GetBasePath() == '%s'", SDL_GetBasePath());