prevent object index reuse

This commit is contained in:
wish
2022-08-02 16:21:56 +10:00
parent 67ea64cb66
commit d560970807

View File

@@ -10,9 +10,25 @@ import (
func handleMsgSysCreateObject(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgSysCreateObject)
// Prevent reusing an object index
var nextID uint32
for {
exists := false
nextID = s.stage.NextObjectID()
for _, object := range s.stage.objects {
if object.id == nextID {
exists = true
break
}
}
if exists == false {
break
}
}
s.stage.Lock()
newObj := &Object{
id: s.stage.NextObjectID(),
id: nextID,
ownerCharID: s.charID,
x: pkt.X,
y: pkt.Y,