Um eine genaue Aussage machen zu können ist tatsächlich zu wenig Code da, da sich allerdings eine Veränderung ergibt, nachdem der ent_remove-Befehl aufgerufen wurde, deutet alles darauf hin, dass der my-Pointer an irgendeiner Stelle falsch gesetzt ist. Mit dem ent_remove werden alle Funktionen beendet, die zu dieser Entität gehören, samt ihrer Subfunktionen solange in diesen der my-Pointer nicht explizit auf NULL gesetzt wurde.

Zusätzlich würde ich die while-Schleife in der main entfernen und stattdessen lieber den on_enter-Befehl nutzen.

Gruß
Pegamode.