Re: A Small Request

From: Patrick Dughi (dughi@IMAXX.NET)
Date: 07/01/98


>         Sometimes when I am compiling I get warnings about having mismatched
> sizes, then it tells me a conversion was supplied. I am using MSVC through
> windows 95, and bpl13a. I was just wondering why and if this may be a
> problem, so something I can overlook. Everything seems to work fine, I just
> want to avoid a problem before it happens, if in fact this is a problem.
>
        Its not really a problem.

Well, most of these have to do with rooms.  The problem is that in many
places in the code, rooms are refered to as sh_int (short integers).While
many functions such as House_can_enter() expect a sh_int, and mscv5.0
seems to think that the GET_ROOM_VNUM returns only ints (even when
explicitly type cast as sh_int, even though the returned type is a sh_int
to begin with.   Here is the list of files/line numbers that you'll want
to explictly define their return type (after the macro).

(list follows)

act.movement.c(117):
 if (!House_can_enter(ch, GET_ROOM_VNUM(EXIT(ch, dir)->to_room))) {
    with
 if (!House_can_enter(ch, (room_vnum) GET_ROOM_VNUM(EXIT(ch, dir)->to_room))) {

act.other.c(118):
    House_crashsave(GET_ROOM_VNUM(IN_ROOM(ch)));
        with
    House_crashsave((room_vnum)GET_ROOM_VNUM(IN_ROOM(ch)));

act.wizard.c(179):
        !House_can_enter(ch, GET_ROOM_VNUM(location))) {
                with
        !House_can_enter(ch, (room_vnum)GET_ROOM_VNUM(location))) {

act.wizard.c(192):
        int location, original_loc;
                with
        room_rnum location, original_loc;

act.wizard.c(2352):
        char_to_room(vict, i);
                to
        char_to_room(vict, (room_rnum) i);

comm.c(405):
  sa.sin_port = htons(port);
                to
  sa.sin_port = htons( (ush_int) port);

db.c(1604):
        char_to_room(mob, ZCMD.arg3);
                to
        char_to_room(mob, (room_rnum) ZCMD.arg3);

db.c(1614):
  obj_to_room(obj, ZCMD.arg3);
        to
  obj_to_room(obj, (room_rnum)ZCMD.arg3);

db.c(1628):
        if (!(obj_to = get_obj_num(ZCMD.arg3))) {
to
        if (!(obj_to = get_obj_num((obj_rnum) ZCMD.arg3))) {


house.c(442):
         if ((i = find_house(atoi(arg))) < 0) {
                to
 if ((i = find_house((room_rnum) atoi(arg))) < 0) {

house.c(485):
  else if ((i = find_house(atoi(arg))) < 0)
to
  else if ((i = find_house((room_rnum)atoi(arg))) < 0)

house.c(528):
  else if ((i = find_house(GET_ROOM_VNUM(IN_ROOM(ch)))) < 0)
to
  else if ((i = find_house((room_rnum) GET_ROOM_VNUM(IN_ROOM(ch)))) < 0)

shop.c(1185):
   if ((k = get_char_num(SHOP_KEEPER(shop_nr)))) {
to
   if ((k = get_char_num((mob_rnum)SHOP_KEEPER(shop_nr)))) {

spec_procs.c(614):
  int pet_room;
to
  room_rnum pet_room;

spells.c(119):
  int to_room;
to
  room_rnum to_room;

        And thats about it.

                                                PjD


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST