mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
fix bug with more than 64K solids
This commit is contained in:
parent
d6edb385c7
commit
8638f9ff65
@ -396,7 +396,12 @@ write_datagram(BamWriter *manager, Datagram &dg) {
|
||||
PandaNode::write_datagram(manager, dg);
|
||||
|
||||
int num_solids = _solids.size();
|
||||
dg.add_uint16(num_solids);
|
||||
if (num_solids >= 0xffff) {
|
||||
dg.add_uint16(0xffff);
|
||||
dg.add_uint32(num_solids);
|
||||
} else {
|
||||
dg.add_uint16(num_solids);
|
||||
}
|
||||
for(int i = 0; i < num_solids; i++) {
|
||||
manager->write_pointer(dg, _solids[i].get_read_pointer());
|
||||
}
|
||||
@ -455,6 +460,9 @@ fillin(DatagramIterator &scan, BamReader *manager) {
|
||||
PandaNode::fillin(scan, manager);
|
||||
|
||||
int num_solids = scan.get_uint16();
|
||||
if (num_solids == 0xffff) {
|
||||
num_solids = scan.get_uint32();
|
||||
}
|
||||
_solids.clear();
|
||||
_solids.reserve(num_solids);
|
||||
for(int i = 0; i < num_solids; i++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user