[18:44:42] Dominus: Marzo: via https://pastebin.com/6jCgmzkP I'm adding a burn mark to the fire field effect. But I guess my if (frame == nn) way is not very efficient/elegant. And while I tried to mimic the removal of the field_obj (and along with it) I'm doing it wrong as it crashes when I'm far away from a created burn mark
[18:44:51] Dominus: Could you take a look?
[18:47:48] Marzo: This line is redundant, just use dust_shared instead:
[18:47:49] Marzo: Game_object *dust_obj = dust_shared.get();
[18:48:03] Marzo: You can use a switch instead of the cascaded ifs
[18:49:11] Marzo: And instead of doing dust_obj->remove_this() in the same if as field_obj->remove_this(), you should check if dust_obj is null like field_obj is checked
[18:52:28] Marzo: The diff will probably not work, but something like this: https://pastebin.com/MVjdFjUr
[19:05:51] Dominus: thanks, I'll give it a try
[19:12:32] Dominus: marzo: that works (there was only a { wrong)
[19:12:48] Marzo: I noticed it after I created the paste
[19:12:53] Marzo: I figured you would find it
[19:12:56] Dominus: There is however an issue with the field itself.
[19:13:24] Dominus: something with the frame checks there goes wrong so the flame does not get deleted on going away and returning
[19:14:21] Marzo: Looking more closely, the patch itzself does not make much sense
[19:14:27] Dominus: there is something wrong to begin with that makes the field flicker like crazy https://github.com/exult/exult/issues/149 and when you return the crazy flickering is gone but the field still exists
[19:15:16] Dominus: Looking more closely, the patch itzself does not make much sense <- oops, a case of it works but I probably did stuff wrong here and there :)
[19:26:21] Marzo: Try this instead: https://pastebin.com/iZyq6zKG
[19:48:57] Marzo: I honestly don't know what is the right way to fix issue #149
[19:49:31] Marzo: I don't understand what the code in Fire_field_effect::handle_event is supposed to do
[19:49:50] Marzo: What happens in the original with the fire fields created by teleporting enemies?
[19:57:53] Marzo: AH, I see
[19:58:03] Marzo: The fire field is supposed to disappear after a while
[19:58:37] Marzo: Though it seems that it just stays there if the NPC teleporting is immune to fire
[20:22:36] Marzo: @Dominus see new commit
[20:26:53] Dominus: Great! Thanks! However the original added the burnmark right when the fire field popped up!
[20:28:32] Marzo: I saw the other issue
[20:28:35] Marzo: Looking into it
[20:35:34] Dominus: still seems like a pretty endless fire field
[20:43:56] Marzo: Dominus: It is done
[20:49:45] Dominus: crazy... so out of my league :)
[20:52:10] Dominus: Marzo, the flickering is definitely gone but the field still burns forever and never gets cleaned up (not even on going away and then returning, while the burnmark disapperas)
[20:52:47] Marzo: Liches are immune to fire; this makes the fire field last a LONG time in the original as well
[20:53:06] Marzo: But yeah, I am not sure why it is not being deleted by cache out
[20:53:55] Dominus: yeah, I noticed it burning forever in the original as well. but the cache out should happen but doesn't. isn't that one of the dangerous things? :)
[21:40:09] Marzo: Dominus: ah, I see what is going on. Eggs (and fire fields, by extension) don't save the temporary flag, and so never get deleted due to range
[21:40:22] Marzo: Not sure how to fix that
[22:51:48] Marzo: @Dominus Found a way to handle it