]> granicus.if.org Git - nethack/commitdiff
cast int64 to smaller types (trunk only)
authornethack.allison <nethack.allison>
Tue, 11 Jul 2006 12:38:16 +0000 (12:38 +0000)
committernethack.allison <nethack.allison>
Tue, 11 Jul 2006 12:38:16 +0000 (12:38 +0000)
The devteam feedback was to place casts in the code
in question.

This puts explicit casts on some code that was being
compiled into 'int64' then stuffed into smaller types with
VC2005.

src/artifact.c
src/end.c
src/mklev.c
src/mkmaze.c
src/mkroom.c
src/mon.c
src/options.c
src/priest.c
src/shknam.c
src/sounds.c
src/timeout.c

index ce628966c2bda3e649fab77eb406fdd88ced46e2..b0d3d610eb178a5884d18976eabec014eba31fea 100644 (file)
@@ -212,7 +212,7 @@ register boolean mod;
        if (otmp && *name)
            for (a = artilist+1; a->otyp; a++)
                if (a->otyp == otmp->otyp && !strcmp(a->name, name)) {
-                   register int m = a - artilist;
+                   register int m = (int)(a - artilist);
                    otmp->oartifact = (char)(mod ? m : 0);
                    otmp->age = 0;
                    if(otmp->otyp == RIN_INCREASE_DAMAGE)
index e6d02c0acce33e54b8030807a0c884e463b2f7fd..382a0eb1d97b5daeff329d8fc5adfb9d1b759d40 100644 (file)
--- a/src/end.c
+++ b/src/end.c
@@ -327,7 +327,7 @@ char *defquery;
     char *dop = index(disclosure_options, category);
 
     if (dop && defquery) {
-       idx = dop - disclosure_options;
+       idx = (int)(dop - disclosure_options);
        if (idx < 0 || idx > (NUM_DISCLOSURE_OPTIONS - 1)) {
            impossible(
                   "should_query_disclose_option: bad disclosure index %d %c",
index ad2553f7df65cf3d04ee1d0bf2bfd2af90e589df..a363c42951ed4ac10d167d23084fecd93e67e05b 100644 (file)
@@ -957,7 +957,7 @@ topologize(croom)
 register struct mkroom *croom;
 #endif
 {
-       register int x, y, roomno = (croom - rooms) + ROOMOFFSET;
+       register int x, y, roomno = (int)((croom - rooms) + ROOMOFFSET);
        register int lowx = croom->lx, lowy = croom->ly;
        register int hix = croom->hx, hiy = croom->hy;
 #ifdef SPECIALIZATION
index 24497f3e3a69fb51baa755a7a65c59d3d7c71f6d..e35ec97ddde70f0a919192d518ab844aebc4f354 100644 (file)
@@ -534,7 +534,7 @@ register const char *s;
            char *ep = getenv("SPLEVTYPE");     /* not nh_getenv */
            if (ep) {
                /* rindex always succeeds due to code in prior block */
-               int len = (rindex(protofile, '-') - protofile) + 1;
+               int len = (int)((rindex(protofile, '-') - protofile) + 1);
 
                while (ep && *ep) {
                    if (!strncmp(ep, protofile, len)) {
index 0d17f0a6decf221770da3c3b16f5abdd4c6aa207..8cbbe4f84e53a543ec61abcfaf92adf80d7a2e56 100644 (file)
@@ -227,7 +227,7 @@ struct mkroom *sroom;
        struct monst *mon;
        register int sx,sy,i;
        int sh, tx, ty, goldlim, type = sroom->rtype;
-       int rmno = (sroom - rooms) + ROOMOFFSET;
+       int rmno = (int)((sroom - rooms) + ROOMOFFSET);
        coord mm;
 
 #ifdef GCC_WARN
@@ -518,7 +518,7 @@ mktemple()
         * In temples, shrines are blessed altars
         * located in the center of the room
         */
-       shrine_spot = shrine_pos((sroom - rooms) + ROOMOFFSET);
+       shrine_spot = shrine_pos((int)((sroom - rooms) + ROOMOFFSET));
        lev = &levl[shrine_spot->x][shrine_spot->y];
        lev->typ = ALTAR;
        lev->altarmask = induced_align(80);
@@ -596,7 +596,7 @@ coord *c;
        int i;
 
        if (croom->irregular) {
-           i = (croom - rooms) + ROOMOFFSET;
+           i = (int)((croom - rooms) + ROOMOFFSET);
 
            while(try_cnt++ < 100) {
                c->x = somex(croom);
index e4d1b1261f4f885b7356f2c0695b4ddb2f999dae..0dc07c45e0ab413488ef13efe271fca664c6132f 100644 (file)
--- a/src/mon.c
+++ b/src/mon.c
@@ -2500,9 +2500,9 @@ struct monst *mon;
                struct obj *m_armr = which_armor(mon, W_ARM);
 
                if (m_armr && Is_dragon_scales(m_armr))
-                   mndx = Dragon_scales_to_pm(m_armr) - mons;
+                   mndx = (int)(Dragon_scales_to_pm(m_armr) - mons);
                else if (m_armr && Is_dragon_mail(m_armr))
-                   mndx = Dragon_mail_to_pm(m_armr) - mons;
+                   mndx = (int)(Dragon_mail_to_pm(m_armr) - mons);
              }
                break;
        }
index d6358723ea93d968c2f41a8e1c16055bf180c36b..cddb16faf13efb6c52138108d66292c3dfe4c8bf 100644 (file)
@@ -702,7 +702,7 @@ char *tp;
            cp++;
            if (*cp == 'x' || *cp == 'X')
                for (++cp; (dp = index(hex, *cp)) && (dcount++ < 2); cp++)
-                   cval = (cval * 16) + (dp - hex) / 2;
+                   cval = (int)((cval * 16) + (dp - hex) / 2);
            else if (*cp == 'o' || *cp == 'O')
                for (++cp; (index("01234567",*cp)) && (dcount++ < 3); cp++)
                    cval = (cval * 8) + (*cp - '0');
@@ -1933,7 +1933,7 @@ goodfruit:
                        if (c == 'k') c = 'v';  /* killed -> vanquished */
                        dop = index(disclosure_options, c);
                        if (dop) {
-                               idx = dop - disclosure_options;
+                               idx = (int)(dop - disclosure_options);
                                if (idx < 0 || idx > NUM_DISCLOSURE_OPTIONS - 1) {
                                    impossible("bad disclosure index %d %c",
                                                        idx, c);
@@ -2538,7 +2538,7 @@ map_menu_cmd(ch)
 {
     char *found = index(mapped_menu_cmds, ch);
     if (found) {
-       int idx = found - mapped_menu_cmds;
+       int idx = (int)(found - mapped_menu_cmds);
        ch = mapped_menu_op[idx];
     }
     return ch;
index ee43c80e045dfec425e7b861dbcc2e7385c0b1cb..f791b01e0d6d5e67aed0fe0046aca3183528bd00 100644 (file)
@@ -223,7 +223,7 @@ boolean sanctum;   /* is it the seat of the high priest? */
        priest = makemon(&mons[sanctum ? PM_HIGH_PRIEST : PM_ALIGNED_PRIEST],
                         sx + 1, sy, MM_EPRI);
        if (priest) {
-               EPRI(priest)->shroom = (sroom - rooms) + ROOMOFFSET;
+               EPRI(priest)->shroom = (schar)((sroom - rooms) + ROOMOFFSET);
                EPRI(priest)->shralign = Amask2align(levl[sx][sy].altarmask);
                EPRI(priest)->shrpos.x = sx;
                EPRI(priest)->shrpos.y = sy;
index 87e9b77ffb1b799e4e72d03897a7c6f5ec1bbd78..e41ff1acb6db8c4eaa408ec3f8ed02940cc33efd 100644 (file)
@@ -370,7 +370,7 @@ int sx, sy;
                mtmp->mappearance = STRANGE_OBJECT;
            }
        } else {
-           atype = get_shop_item(shp - shtypes);
+           atype = get_shop_item((int)(shp - shtypes));
            if (atype == VEGETARIAN_CLASS)
                mkveggy_at(sx, sy);
            else if (atype < 0)
@@ -486,7 +486,7 @@ struct mkroom       *sroom;
 
        /* check that the shopkeeper placement is sane */
        if(sroom->irregular) {
-           int rmno = (sroom - rooms) + ROOMOFFSET;
+           int rmno = (int)((sroom - rooms) + ROOMOFFSET);
            if (isok(sx-1,sy) && !levl[sx-1][sy].edge &&
                (int) levl[sx-1][sy].roomno == rmno) sx--;
            else if (isok(sx+1,sy) && !levl[sx+1][sy].edge &&
@@ -534,7 +534,7 @@ struct mkroom       *sroom;
        set_malign(shk);
        shk->msleeping = 0;
        shk->mtrapseen = ~0;    /* we know all the traps already */
-       ESHK(shk)->shoproom = (sroom - rooms) + ROOMOFFSET;
+       ESHK(shk)->shoproom = (schar)((sroom - rooms) + ROOMOFFSET);
        sroom->resident = shk;
        ESHK(shk)->shoptype = sroom->rtype;
        assign_level(&(ESHK(shk)->shoplevel), &u.uz);
@@ -574,7 +574,7 @@ register struct mkroom *sroom;
      */
     register int sx, sy, sh;
     char buf[BUFSZ];
-    int rmno = (sroom - rooms) + ROOMOFFSET;
+    int rmno = (int)((sroom - rooms) + ROOMOFFSET);
     const struct shclass *shp = &shtypes[shp_indx];
 
     /* first, try to place a shopkeeper in the room */
index cfe7a9d06b41689c2f21a7416ee2809d8edaa697..75ca7c282234596ebc4fbf076d69e4a92fe96f6e 100644 (file)
@@ -224,7 +224,7 @@ dosounds()
            return;
        }
        if (tended_shop(sroom) &&
-               !index(u.ushops, ROOM_INDEX(sroom) + ROOMOFFSET)) {
+               !index(u.ushops, (int)(ROOM_INDEX(sroom) + ROOMOFFSET))) {
            static const char * const shop_msg[3] = {
                    "someone cursing shoplifters.",
                    "the chime of a cash register.",
index 70d3215371b7b6d89762fdbd93dfbe06fdc46698..cac960036008d28afdea472c1653ad5eee32a147 100644 (file)
@@ -227,7 +227,7 @@ nh_timeout()
 
        for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++)
            if((upp->intrinsic & TIMEOUT) && !(--upp->intrinsic & TIMEOUT)) {
-               kptr = find_delayed_killer(upp - u.uprops);
+               kptr = find_delayed_killer((int)(upp - u.uprops));
                switch(upp - u.uprops){
                case STONED:
                        if (kptr && kptr->name[0]) {