add game&rawdata
This commit is contained in:
parent
0133cd976c
commit
49b34b5546
45731 changed files with 709831 additions and 0 deletions
110
gamedata/scripts/object_collection.script
Normal file
110
gamedata/scripts/object_collection.script
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
local function empty(container)
|
||||
for i,j in pairs(container) do
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
class "object_collection"
|
||||
function object_collection:__init()
|
||||
self.m_free = {}
|
||||
self.m_given = {}
|
||||
self.m_count = 0
|
||||
self.m_last_id = 0
|
||||
end
|
||||
function object_collection:get_id()
|
||||
printf("get_id called [%s]", self.m_count)
|
||||
|
||||
self.m_count = self.m_count + 1
|
||||
|
||||
if (empty(self.m_free) == true) then
|
||||
self.m_last_id = self.m_last_id + 1
|
||||
self.m_given[self.m_last_id] = true
|
||||
return self.m_last_id
|
||||
end
|
||||
|
||||
for i,j in pairs(self.m_free) do
|
||||
self.m_free[i] = nil
|
||||
self.m_given[i] = true
|
||||
return i
|
||||
end
|
||||
end
|
||||
function object_collection:remove(id)
|
||||
printf("remove called [%s]", tostring(id))
|
||||
if self.m_given[id] == true then
|
||||
self.m_given[id] = nil
|
||||
self.m_free[id] = 1
|
||||
self.m_count = self.m_count - 1
|
||||
end
|
||||
end
|
||||
function object_collection:size()
|
||||
return self.m_count
|
||||
end
|
||||
function object_collection:save(packet)
|
||||
set_save_marker(packet, "save", false, "object_collection")
|
||||
|
||||
printf("SAVE OBJECT COLLECTION")
|
||||
printf("------- m_count %s m_last_id %s", self.m_count, self.m_last_id)
|
||||
printf("-------- m_free")
|
||||
print_table(self.m_free)
|
||||
printf("-------- m_given")
|
||||
print_table(self.m_given)
|
||||
printf("--------")
|
||||
|
||||
|
||||
packet:w_u16(self.m_count)
|
||||
packet:w_u16(self.m_last_id)
|
||||
|
||||
local n = 0
|
||||
for k,v in pairs(self.m_free) do
|
||||
n = n + 1
|
||||
end
|
||||
packet:w_u16(n)
|
||||
for k,v in pairs(self.m_free) do
|
||||
packet:w_u16(k)
|
||||
end
|
||||
|
||||
n = 0
|
||||
for k,v in pairs(self.m_given) do
|
||||
n = n + 1
|
||||
end
|
||||
packet:w_u16(n)
|
||||
for k,v in pairs(self.m_given) do
|
||||
packet:w_u16(k)
|
||||
end
|
||||
|
||||
set_save_marker(packet, "save", true, "object_collection")
|
||||
end
|
||||
function object_collection:load(packet)
|
||||
set_save_marker(packet, "load", false, "object_collection")
|
||||
|
||||
printf("LOAD OBJECT COLLECTION")
|
||||
callstack()
|
||||
|
||||
self.m_count = packet:r_u16()
|
||||
self.m_last_id = packet:r_u16()
|
||||
|
||||
local n = packet:r_u16()
|
||||
self.m_free = {}
|
||||
for i = 1,n do
|
||||
local id = packet:r_u16()
|
||||
self.m_free[id] = 1
|
||||
end
|
||||
|
||||
n = packet:r_u16()
|
||||
self.m_given = {}
|
||||
for i = 1,n do
|
||||
local id = packet:r_u16()
|
||||
self.m_given[id] = true
|
||||
end
|
||||
|
||||
printf("------- m_count %s m_last_id %s", self.m_count, self.m_last_id)
|
||||
printf("-------- m_free")
|
||||
print_table(self.m_free)
|
||||
printf("-------- m_given")
|
||||
print_table(self.m_given)
|
||||
printf("--------")
|
||||
|
||||
set_save_marker(packet, "load", true, "object_collection")
|
||||
end
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue