The original idea on introducing blocking proc is to set a flag for judgement. Function “CallMapEventEngine” introduce event engined by locking the game logic rather than blocking current proc, which means it may be complicated to get the working status of the current proc. by introducing a block proc, as I thought, we can then check for proc status directly by function “ProcFindBlocking” without having to set other complicated judgments. In my opinion, this is a simple and crude method, and can ensure to avoid false judgments (for example, in some cases, it is just the EventEngine that are calling our proc).
Besides, calling event engine is not just only this function alone. For example, what if you want to set or judge the event flag?
In my opinion, the currently provided modifications have a lot of room for expansion. For example, when calling Event Engine inside proc, adding an additional process of determining Flag, etc., instead of just calling the function “CallMapEventEngine”.