]> git.pond.sub.org Git - empserver/commitdiff
(get_materials): Work directly on item arrays instead of copies made
authorMarkus Armbruster <armbru@pond.sub.org>
Thu, 11 Mar 2004 09:04:44 +0000 (09:04 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 11 Mar 2004 09:04:44 +0000 (09:04 +0000)
by getvec().  This is safe, because the new code changes the item
array precisely when the old code writes back a changed copy.

src/lib/update/material.c

index 9c57da2c17410271585308331e342ee43da7ffd7..edf67f1a79aeb4f14e003ce1f7e8aa9b8a25aecb 100644 (file)
@@ -52,9 +52,7 @@ get_materials(struct sctstr *sp, int *bp, int *mvec, int check)
 {
     int i;
     int still_left;
-    int svec[I_MAX + 1];
 
-    getvec(VT_ITEM, svec, (s_char *)sp, EF_SECTOR);
     for (i = 1; i <= I_MAX; i++) {
        if (mvec[i] == 0)
            continue;
@@ -66,9 +64,8 @@ get_materials(struct sctstr *sp, int *bp, int *mvec, int check)
            else
                still_left -= mvec[i];
            pt_bg_nmbr(bp, sp, i, still_left);
-           svec[i] = still_left;
            if (!player->simulation)
-               putvec(VT_ITEM, svec, (s_char *)sp, EF_SECTOR);
+               sp->sct_item[i] = still_left;
 
        } else {
            still_left = gt_bg_nmbr(bp, sp, i);