glankk / gz

Ocarina of Time trainer
https://glankk.github.io/gz
199 stars 50 forks source link

Fix dynapoly collision not being freed when deleting an actor #49

Closed Thar0 closed 3 years ago

Thar0 commented 4 years ago

Replaces the call to z64_DeleteActor with code from the "actor kill" function the game normally uses to mark an actor to be deleted. This ensures all resources relating to the actor are freed as they would be if the actor were deleted by routines already present in the game, fixing the issue of dynapoly collision persisting after its associated actor has been deleted through the actor menu.

glankk commented 4 years ago

This will likely be a very welcome change, my concern is that it's not necessarily a bug fix, but a substitution of one feature with another feature that has slightly different semantics. The "delete" action should probably be renamed "kill" in order to convey this. Removing the "delete" action in favor of a "kill" action (rather than having both) is probably fine, I can't really think of a situation where you'd need to delete an actor without killing it.