Changeset 261

Show
Ignore:
Timestamp:
07/04/07 11:25:34 (1 year ago)
Author:
takkaria
Message:

Lanterns of everburning should not be fuellable or useable as fuel. (#179)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/cmd3.c

    r244 r261  
    726726static bool item_tester_refill_lantern(const object_type *o_ptr) 
    727727{ 
     728        u32b f1, f2, f3; 
     729 
     730        /* Get flags */ 
     731        object_flags(o_ptr, &f1, &f2, &f3); 
     732 
    728733        /* Flasks of oil are okay */ 
    729734        if (o_ptr->tval == TV_FLASK) return (TRUE); 
    730735 
    731         /* Non-empty lanterns are okay */ 
     736        /* Non-empty, non-everburning lanterns are okay */ 
    732737        if ((o_ptr->tval == TV_LITE) && 
    733738            (o_ptr->sval == SV_LITE_LANTERN) && 
    734             (o_ptr->timeout > 0)) 
     739            (o_ptr->timeout > 0) && 
     740                !(f3 & TR3_NO_FUEL)) 
    735741        { 
    736742                return (TRUE); 
     
    875881static bool item_tester_refill_torch(const object_type *o_ptr) 
    876882{ 
     883        u32b f1, f2, f3; 
     884 
     885        /* Get flags */ 
     886        object_flags(o_ptr, &f1, &f2, &f3); 
     887 
    877888        /* Torches are okay */ 
    878889        if ((o_ptr->tval == TV_LITE) && 
    879             (o_ptr->sval == SV_LITE_TORCH)) return (TRUE); 
     890            (o_ptr->sval == SV_LITE_TORCH) && 
     891                !(f3 & TR3_NO_FUEL)) 
     892        { 
     893                return (TRUE); 
     894        } 
    880895 
    881896        /* Assume not okay */ 
     
    975990{ 
    976991        object_type *o_ptr; 
     992        u32b f1, f2, f3; 
    977993 
    978994        /* Get the light */ 
    979995        o_ptr = &inventory[INVEN_LITE]; 
    980996 
     997        /* Get flags */ 
     998        object_flags(o_ptr, &f1, &f2, &f3); 
     999 
     1000 
    9811001        /* It is nothing */ 
    9821002        if (o_ptr->tval != TV_LITE) 
     
    9851005        } 
    9861006 
    987         /* It's a lamp */ 
    988         else if (o_ptr->sval == SV_LITE_LANTERN) 
    989         { 
    990                 do_cmd_refill_lamp(); 
    991         } 
    992  
    993         /* It's a torch */ 
    994         else if (o_ptr->sval == SV_LITE_TORCH) 
    995         { 
    996                 do_cmd_refill_torch(); 
     1007        else if (!(f3 & TR3_NO_FUEL)) 
     1008        { 
     1009                /* It's a lamp */ 
     1010                if (o_ptr->sval == SV_LITE_LANTERN) 
     1011                { 
     1012                        do_cmd_refill_lamp(); 
     1013                } 
     1014 
     1015                /* It's a torch */ 
     1016                else if (o_ptr->sval == SV_LITE_TORCH) 
     1017                { 
     1018                        do_cmd_refill_torch(); 
     1019                } 
    9971020        } 
    9981021