add game&rawdata

This commit is contained in:
Vasily Petrov 2026-06-17 23:06:51 +03:00
parent 0133cd976c
commit 49b34b5546
45731 changed files with 709831 additions and 0 deletions

View 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