Ticket #1693: 0006-Refactor-get_obj_num_by_kind.patch

File 0006-Refactor-get_obj_num_by_kind.patch, 2.0 KB (added by daniel.santos, 7 years ago)

This is a function that I touch later in the raw meat patches, but it can use some refactoring w/o my other changes

  • src/object/obj-make.c

    From 0b0840213ace0c4b09ef7276747c653ab2367dd7 Mon Sep 17 00:00:00 2001
    From: Daniel Santos <daniel.santos@pobox.com>
    Date: Sun, 21 Oct 2012 15:30:15 -0500
    Subject: [PATCH v2 06/11] Refactor get_obj_num_by_kind
    
    ---
     src/object/obj-make.c |   37 ++++++++++---------------------------
     1 files changed, 10 insertions(+), 27 deletions(-)
    
    diff --git a/src/object/obj-make.c b/src/object/obj-make.c
    index bb6c889..b095053 100644
    a b static object_kind *get_obj_num_by_kind(int level, bool good, int tval) 
    811811        size_t ind, item; 
    812812        u32b value; 
    813813        int total = 0; 
     814        byte *ojbects = good ? obj_alloc_great : obj_alloc; 
    814815 
    815816        /* Pick an object */ 
    816817        ind = level * z_info->k_max; 
    817818 
    818819        /* Get new total */ 
    819         if (!good) { 
    820                 for (item = 1; item < z_info->k_max; item++) { 
    821                         if (objkind_byid(item)->tval == tval) { 
    822                                 total += obj_alloc[ind + item]; 
    823                         } 
    824                 } 
    825         } else { 
    826                 for (item = 1; item < z_info->k_max; item++) { 
    827                         if (objkind_byid(item)->tval == tval) { 
    828                                 total += obj_alloc_great[ind + item]; 
    829                         } 
     820        for (item = 1; item < z_info->k_max; item++) { 
     821                if (objkind_byid(item)->tval == tval) { 
     822                        total += ojbects[ind + item]; 
    830823                } 
    831824        } 
    832825 
    static object_kind *get_obj_num_by_kind(int level, bool good, int tval) 
    835828         
    836829        value = randint0(total); 
    837830         
    838         if (!good) { 
    839                 for (item = 1; item < z_info->k_max; item++) { 
    840                         if (objkind_byid(item)->tval == tval) { 
    841                                 if (value < obj_alloc[ind + item]) break; 
    842                                  
    843                                 value -= obj_alloc[ind + item]; 
    844                         } 
    845                 } 
    846         } else { 
    847                 for (item = 1; item < z_info->k_max; item++) { 
    848                         if (objkind_byid(item)->tval == tval) { 
    849                                 if (value < obj_alloc_great[ind + item]) break; 
    850                                  
    851                                 value -= obj_alloc_great[ind + item]; 
    852                         } 
     831        for (item = 1; item < z_info->k_max; item++) { 
     832                if (objkind_byid(item)->tval == tval) { 
     833                        if (value < ojbects[ind + item]) break; 
     834 
     835                        value -= ojbects[ind + item]; 
    853836                } 
    854         }        
     837        } 
    855838 
    856839        /* Return the item index */ 
    857840        return objkind_byid(item);