Installation for ACK!MUD 4.3.1 ( As located at silverbridge.org ) ----------------------------------------------------------------- 1. In your Makefile, someplace above the main list of O_FILES, include the following: #IMC2 - Comment out to disable IMC2 support IMC = 1 Then directly below the list of O_FILES, add the following: [Note: BSD users - put a period in front of the word ifdef, and in front of the word endif] ifdef IMC O_FILES := imc.o $(O_FILES) C_FLAGS := $(C_FLAGS) -DIMC -DIMCACK endif 2. Open ack.h and locate the following: #ifndef DEC_STRFUNS_H #include "strfuns.h" #endif #ifndef DEC_ACT_MOB_H #include "act_mob.h" #endif Directly below that, add the following: #ifdef IMC #include "imc.h" #endif Locate your pc_data struct, Add the following to the end of it: #ifdef IMC IMC_CHARDATA *imcchardata; #endif 3. Open interp.c and locate the following section: if ( !check_social( ch, command, argument ) Add the following condition to whatever series of ifchecks exist there: #ifdef IMC && !imc_command_hook( ch, command, argument ) #endif 4. Open comm.c and locate the following in main() : if ( fCopyOver ) abort_threshold = BOOT_DB_ABORT_THRESHOLD; boot_db( fCopyOver ); #ifndef WIN32 init_alarm_handler(); #endif sprintf( log_buf, "ACK! MUD is ready on port %d.", port ); log_string( log_buf ); Add the following beneath that: #ifdef IMC imc_startup( FALSE ); // FALSE arg, so the autoconnect setting can govern it. #endif Then further down in main(), locate the following: close( control ); Add the following beneath that: #ifdef IMC imc_shutdown( FALSE ); #endif Then in game_loop_unix(), locate the following: /* * Autonomous game motion. */ update_handler( ); Directly ABOVE that, add the following: #ifdef IMC imc_loop(); #endif 5. Open save.c and locate fread_char: In the case 'I': section, and right before the final break; add the follwing: #ifdef IMC if( ( fMatch = imc_loadchar( ch, fp, word ) ) ) break; #endif Then in fwrite_char, locate: fprintf( fp, "End\n\n" ); Directly ABOVE that, add: #ifdef IMC imc_savechar( ch, fp ); #endif Then in load_char_obj(), locate the following: for ( cnt = 0; cnt < MAX_ALIASES; cnt++ ) { ch->pcdata->alias_name[cnt] = str_dup( "<none>" ); ch->pcdata->alias[cnt] = str_dup( "<none>" ); } Directly ABOVE that, add the following: #ifdef IMC imc_initchar( ch ); #endif 6. Open db.c Locate free_char: Find the section that looks like this: if ( ch->pcdata != NULL ) { PUT_FREE(ch->pcdata, pcd_free); } Make it read as so: if ( ch->pcdata != NULL ) { #ifdef IMC imc_freechardata( ch ); #endif PUT_FREE(ch->pcdata, pcd_free); } 7. For users of copyover/hotboot ONLY: Locate do_copyover, and just before the buffers for the execl call are allocated, add the following: #ifdef IMC imc_shutdown( FALSE ); #endif Return to the main IMC.txt file and continue where you left off.