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) func = function(name, param)
ctf.log("chat", "Cleaning CTF...") ctf.log("chat", "Cleaning CTF...")
ctf.clean_player_lists() 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 if ctf_flag and ctf_flag.assert_flags then
ctf_flag.assert_flags() ctf_flag.assert_flags()
end end

View File

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

View File

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

View File

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