Review: Needs Fixing

I think the code contains a bug. See below.

Diff comments:

> === modified file 'tribes/scripting/format_help.lua'
> --- tribes/scripting/format_help.lua  2014-07-27 12:51:29 +0000
> +++ tribes/scripting/format_help.lua  2014-09-15 10:33:45 +0000
> @@ -667,15 +667,15 @@
>               local worker_description = 
> building_description.working_positions[1]
>               local becomes_description = nil
>               local number_of_workers = 0
> -             local toolname = nil
> +             local toolnames = {}
>  
>               for i, worker_description in 
> ipairs(building_description.working_positions) do
>  
> -                     -- get the tool for the workers. This assumes that each 
> building only uses 1 tool
> +                     -- get the tools for the workers

missing '.' at the end of the sentence.

>                       if(worker_description.buildable) then
>                               for j, buildcost in 
> ipairs(worker_description.buildcost) do
>                                       if( not (buildcost == "carrier" or 
> buildcost == "none" or buildcost == nil)) then
> -                                             toolname = buildcost
> +                                             toolnames[#toolnames + 1] = 
> buildcost
>                                       end
>                               end
>                       end
> @@ -692,7 +692,9 @@
>                       end
>               end
>  
> -             if(toolname) then result = result .. 
> building_help_tool_string(tribename, toolname, number_of_workers) end
> +             if(#toolnames + 1 > 0) then

I think this is a bug. #toolnames is the number of tools. Don't you want to 
check for that?

> +                     result = result .. building_help_tool_string(tribename, 
> toolnames, number_of_workers)
> +             end
>  
>               if(becomes_description) then
>  
> @@ -723,17 +725,21 @@
>  -- RST
>  -- .. function building_help_tool_string(tribename, toolname)
>  --
> ---    Displays a tool with an intro text and image
> +--    Displays tools with an intro text and images
>  --
>  --    :arg tribename: e.g. "barbarians".
> ---    :arg toolname: e.g. "felling_axe".
> ---    :arg no_of_workers: the number of workers using the tool; for plural 
> formatting.
> ---    :returns: text_line for the tool
> +--    :arg toolnames: e.g. {"shovel", "basket"}.
> +--    :arg no_of_workers: the number of workers using the tools; for plural 
> formatting.
> +--    :returns: text_line for the tools
>  --
> -function building_help_tool_string(tribename, toolname, no_of_workers)
> -     local ware_description = wl.Game():get_ware_description(tribename, 
> toolname)
> -     return text_line((ngettext("Worker uses:","Workers use:", 
> no_of_workers)),
> -             ware_description.descname, ware_description.icon_name)
> +function building_help_tool_string(tribename, toolnames, no_of_workers)
> +     local result = rt(h3(ngettext("Worker uses:","Workers use:", 
> no_of_workers)))
> +     local game  = wl.Game();
> +     for i, toolname in ipairs(toolnames) do
> +             local ware_description = game:get_ware_description(tribename, 
> toolname)
> +             result = result .. image_line(ware_description.icon_name, 1, 
> p(ware_description.descname))
> +     end
> +     return result
>  end
>  
>  -- RST
> 


-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1366725/+merge/233750
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1366725.

_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to     : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to