make net updates c
This commit is contained in:
@@ -4,7 +4,10 @@ local ffi = FFI or require("ffi")
|
||||
ffi.cdef [[
|
||||
struct Gate;
|
||||
struct Net;
|
||||
void sim_set_data(struct Net** net_queue, int* num_net_queue, struct Gate** gate_queue, int* num_gate_queue, int* current_tick, int queue_max);
|
||||
void sim_update_nets();
|
||||
]]
|
||||
local csim = ffi.load("compiled_sim.dll")
|
||||
|
||||
Simulation = {}
|
||||
|
||||
@@ -39,6 +42,7 @@ function Simulation.new(sim)
|
||||
o.num_groupqueue[0] = 0
|
||||
o.num_gatequeue[0] = 0
|
||||
o.current_tick[0] = 0
|
||||
sim_set_data(o.groupqueue, o.num_groupqueue, o.gatequeue, o.num_gatequeue, o.current_tick, queue_max)
|
||||
return o
|
||||
end
|
||||
|
||||
@@ -346,13 +350,14 @@ end
|
||||
|
||||
-- Logic Critical
|
||||
function Simulation.ticklogic(sim)
|
||||
for i = 0, sim.num_groupqueue[0]-1 do
|
||||
local cnet = sim.groupqueue[i]
|
||||
Group.update_c(cnet, sim.current_tick[0])
|
||||
cnet.in_queue[0] = 0
|
||||
sim.groupqueue[i] = nil
|
||||
end
|
||||
sim.num_groupqueue[0] = 0
|
||||
--for i = 0, sim.num_groupqueue[0]-1 do
|
||||
-- local cnet = sim.groupqueue[i]
|
||||
-- Group.update_c(cnet, sim.current_tick[0])
|
||||
-- cnet.in_queue[0] = 0
|
||||
-- sim.groupqueue[i] = nil
|
||||
--end
|
||||
--sim.num_groupqueue[0] = 0
|
||||
csim.sim_update_nets()
|
||||
|
||||
if sim.tickqueue[sim.current_tick[0]] ~= nil then
|
||||
for i, gate in pairs(sim.tickqueue[sim.current_tick[0]]) do
|
||||
|
||||
Reference in New Issue
Block a user