----------------------------------
1. In act_wiz.c, add the following includes:

#ifdef WIN32
  #include <io.h>
  #define F_OK 0
#endif


----------------------------------
2. In module ban.c, change the rather unwieldy statement, which gives a compiler error:

ban.c(1279) : error C2106: '=' : left operand must be l-value

  UNLINK( pban,
    (type==BAN_SITE)?first_ban:(type==BAN_CLASS)?first_ban_class:first_ban_race,
    (type==BAN_SITE)?last_ban:(type==BAN_CLASS)?last_ban_class:last_ban_race,
    next, prev );

to:

  switch (type)
    {
    case BAN_SITE: UNLINK (pban, first_ban, last_ban, next, prev); break;
    case BAN_CLASS: UNLINK (pban, first_ban_class, last_ban_class, next, prev); break;
    case BAN_RACE: UNLINK (pban, first_ban_race, last_ban_race, next, prev); break;
    } /* end of switch on type */


----------------------------------
3. In module imc-mercdefs.h, assuming you are doing a SMAUG build, change:

/* #define SMAUG  */

to:

 #define SMAUG 1


----------------------------------
4. In include file imc-config.h, change:

#define NO_ATTRIBUTE 0

to

#define NO_ATTRIBUTE 1


----------------------------------
5. In module db.c, change

#ifdef 0

to 

#ifdef PROFANITY_CHECKER


----------------------------------
6. Near the start of module ice.c, before the lines:

#include "imc.h"
#include "ice.h"

add the lines:

#ifdef WIN32
  #include <winsock.h>
  int	str_cmp	(const char *astr, const char *bstr );
#endif

----------------------------------
7. Ditto for icec.c (same as point 6).

----------------------------------
8. In icec-mercbase.c, change:

#include <sys/time.h>

to:

#ifdef WIN32
	#include <winsock.h>
#else
	#include <sys/time.h>
#endif


----------------------------------
9. In ident.c, change:

  && errno != WSAINPROGRESS )

to

  && errno != WSAEINPROGRESS )

----------------------------------
10. In imc.c, after the line:

#ifdef WIN32

add:

  #include <winsock.h>
  int	str_cmp	(const char *astr, const char *bstr );


----------------------------------
11. In imc.c, in function do_accept, and also function imc_connect_to:

remove the line:

  int r;

which generates a compiler warning:

warning C4101: 'r' : unreferenced local variable


----------------------------------
12. In imc.c, in function imc_connect_to:

The line:

  if ((sa.sin_addr.s_addr=inet_addr(i->host)) == -1UL)

generates a compiler warning:

imc.c(1604) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

Suggest changing to: -1L  not -1UL


----------------------------------
13. In module imc.c, after

#ifdef WIN32

add:

  #include <winsock.h>
  int	str_cmp	(const char *astr, const char *bstr );
  int	str_infix ( const char *astr, const char *bstr );


----------------------------------
14. In module imc-events.c, after

#ifdef WIN32

add:

  #include <winsock.h>


----------------------------------
15. In module imc-interp.c, after

#ifdef WIN32

add:

  #include <winsock.h>
  int	str_cmp	(const char *astr, const char *bstr );
  void gettimeofday(struct timeval *tv, struct timezone *tz);


----------------------------------
16. In module imc-mail.c, *before*:

#include "imc.h"

add:

#ifdef WIN32
  #include <winsock.h>
  int	str_cmp	(const char *astr, const char *bstr );
#endif


----------------------------------
17. In module imc-mercbase, after:

#ifdef WIN32

add:

  #include <winsock.h>


----------------------------------
18. In module imc-util.c, after

#ifdef WIN32

add:

  #include <winsock.h>
  int	str_cmp	(const char *astr, const char *bstr );


----------------------------------
19. In module imc-version.c, *before*:

#include "imc.h"

add:

#ifdef WIN32
  #include <winsock.h>
#endif


----------------------------------
20. In stat_obj.c, change:

#undef TODUB

to

#undef TODUB(x)

----------------------------------
21. In file imc-config.c, add 


  #pragma warning( disable: 4018 4244 4761)
  int str_prefix ( const char *astr, const char *bstr );
  int str_infix	 ( const char *astr, const char *bstr );
  int str_suffix ( const char *astr, const char *bstr );


after

#ifdef WIN32

----------------------------------
22. In db.c, change:

	    if ( !pMobIndex->speaks )
			pMobIndex->speaks = race_table[pMobIndex->race]->language | LANG_COMMON;
	    if ( !pMobIndex->speaking )
			pMobIndex->speaking = race_table[pMobIndex->race]->language;

to
	    if ( !pMobIndex->speaks )
	    	pMobIndex->speaks =  LANG_COMMON;
	    if ( !pMobIndex->speaking )
	    	pMobIndex->speaking = LANG_COMMON;

