Home-Check verzoegern
Der MNPC prueft jetzt erst eine Sekunde nach dem Setzen von MNPC_FLAGS,
ob MNPC_HOME gesetzt ist. Wird MNPC_WALK schon im create() gesetzt, ist
es sonst nicht moeglich, MNPC_HOME von aussen zu setzen.
Change-Id: If5142a4385aed70f26c090a6f949f9ce20d7ae9c
diff --git a/p/service/padreic/mnpc/moving.c b/p/service/padreic/mnpc/moving.c
index 07bc318..c128f7f 100644
--- a/p/service/padreic/mnpc/moving.c
+++ b/p/service/padreic/mnpc/moving.c
@@ -99,12 +99,24 @@
}
}
+private void check_home()
+{
+ if (!QueryProp(MNPC_HOME))
+ {
+ catch(
+ raise_error("unknown MNPC_HOME\n");
+ publish);
+ // Laufen stoppen, sonst bugt es im reset
+ SetProp(MNPC_FLAGS, 0);
+ }
+}
+
static int _set_mnpc_flags(int flags)
{
if (flags & MNPC_WALK)
{
- if (!QueryProp(MNPC_HOME))
- raise_error("unknown MNPC_HOME\n");
+ // Check verzoegern, damit MNPC_HOME ggf. von aussen gesetzt werden kann
+ call_out(#'check_home, 1);
// RegisterWalk prueft, ob der MNPC schon angemeldet ist.
RegisterWalk();
}