Make ctf_flag.collect_claimed() return a value, fix a bug

This commit is contained in:
rubenwardy 2015-07-14 15:16:27 +01:00
parent 2328870dae
commit cb7f00cd11
4 changed files with 15 additions and 18 deletions

View File

@ -117,9 +117,6 @@ minetest.register_chatcommand("ctf_clean", {
func = function(name, param)
ctf.log("chat", "Cleaning CTF...")
ctf.clean_player_lists()
if ctf_flag and ctf_flag.collect_claimed then
ctf_flag.collect_claimed()
end
if ctf_flag and ctf_flag.assert_flags then
ctf_flag.assert_flags()
end

View File

@ -66,7 +66,6 @@ local function do_capture(attname, flag, returned)
end
end
ctf_flag.collect_claimed()
ctf.needs_save = true
end
@ -155,10 +154,11 @@ ctf_flag = {
end
end,
_flagret = function(name)
for i = 1, #ctf_flag.claimed do
if ctf_flag.claimed[i].claimed.player == name then
do_capture(name, ctf_flag.claimed[i], true)
ctf_flag.collect_claimed()
local claimed = ctf_flag.collect_claimed()
for i = 1, #claimed do
local flag = claimed[i]
if flag.claimed.player == name then
do_capture(name, flag, true)
end
end
end,

View File

@ -71,27 +71,28 @@ function ctf_flag.register_on_pick_up(func)
end
function ctf_flag.collect_claimed()
ctf.log("utils", "Collecting claimed locations")
ctf_flag.claimed = {}
ctf.log("flag", "Collecting claimed locations")
local claimed = {}
for _, team in pairs(ctf.teams) do
for i = 1, #team.flags do
if team.flags[i].claimed then
table.insert(ctf_flag.claimed, team.flags[i])
table.insert(claimed, team.flags[i])
end
end
end
return claimed
end
ctf_flag.collect_claimed()
function ctf_flag.player_drop_flag(name)
if not name then
return
end
for i = 1, #ctf_flag.claimed do
local flag = ctf_flag.claimed[i]
local claimed = ctf_flag.collect_claimed()
for i = 1, #claimed do
local flag = claimed[i]
if flag.claimed.player == name then
flag.claimed = nil
ctf_flag.collect_claimed()
local flag_name = ""
if flag.name then

View File

@ -10,11 +10,10 @@ local function safe_place(pos, node)
end
end
ctf_flag.collect_claimed()
for i, flag in pairs(ctf_flag.claimed) do
local claimed = ctf_flag.collect_claimed()
for i, flag in pairs(claimed) do
flag.claimed = nil
end
ctf_flag.collect_claimed()
minetest.register_on_joinplayer(function(player)
if ctf.team(ctf.player(player:get_player_name()).team) then