init(): optionales Argument origin beruecksichten

Das bei der Bewegung eines Lebewesen neuerdings uebergebene
vorherige Environment akzeptieren und ggf. an die geerbten
init() weiterreichen.
Der Prototyp von init() ist damit jetzt
public varargs void init(object origin)

Change-Id: I03724341fb7fa48d41c9f6f12715b367d1e680f6
diff --git a/std/container.c b/std/container.c
index a77c7fa..ff47d35 100644
--- a/std/container.c
+++ b/std/container.c
@@ -52,14 +52,6 @@
   set_next_reset(-1);
 }
 
-/*
-void init() 
-{
-  commands::init();
-  description::init();
-}
-*/
-
 void reset()
 {
   items::reset();
diff --git a/std/food.c b/std/food.c
index d5b40b6..986aedb 100644
--- a/std/food.c
+++ b/std/food.c
@@ -331,8 +331,8 @@
 }
 
 // hier wird geprueft, ob das Futter dem Spieler zugaenglich ist.
-void init() {
-  ::init();
+public varargs void init(object origin) {
+  ::init(origin);
   check_start_timer(environment());
 }
 
diff --git a/std/gilde.c b/std/gilde.c
index de2097c..de82122 100644
--- a/std/gilde.c
+++ b/std/gilde.c
@@ -18,8 +18,8 @@
   gilde::create();
 }
 
-void init()
+public varargs void init(object origin)
 {
-  room::init();
-  gilde::init();
+  room::init(origin);
+  gilde::init(origin);
 }
diff --git a/std/inpc.c b/std/inpc.c
index 63edd67..f748969 100644
--- a/std/inpc.c
+++ b/std/inpc.c
@@ -39,8 +39,8 @@
   items::reset();
 }
 
-void init() {
-  npc::init();
+public varargs void init(object origin) {
+  npc::init(origin);
   if (TP && query_once_interactive(TP))
     SetProp(P_INPC_LAST_PLAYER_CONTACT,time());
 }
diff --git a/std/items/fishing/fish.c b/std/items/fishing/fish.c
index fd116d8..9dc0e8a 100644
--- a/std/items/fishing/fish.c
+++ b/std/items/fishing/fish.c
@@ -107,8 +107,8 @@
   return tmp;
 }
 
-void init() {
-  ::init();
+public varargs void init(object origin) {
+  ::init(origin);
   if( QueryProp(P_FISH)&F_REPLACE ) {
     if(query_once_interactive(environment(ME))) {
       call_out("ReplaceFish",0);
diff --git a/std/newsclient.c b/std/newsclient.c
index b047e41..8dc359f 100644
--- a/std/newsclient.c
+++ b/std/newsclient.c
@@ -53,9 +53,9 @@
   return thing::remove();
 }
 
-void init()
+public varargs void init(object origin)
 {
-  thing::init();
+  thing::init(origin);
   add_action("schreib","schreib",1);
   add_action("lies","lies");
   add_action("loesche","loesch",1);
diff --git a/std/npc.c b/std/npc.c
index a6d9ce6..5f4faf1 100644
--- a/std/npc.c
+++ b/std/npc.c
@@ -150,12 +150,12 @@
 // Force the monster to do a command.
 int command_me(string cmd) { return command(cmd); }
 
-void init()
+public varargs void init(object origin)
 {
-  combat::init();
-  info::init();
-  commands::init();
-//  description::init();
+  combat::init(origin);
+  info::init(origin);
+  commands::init(origin);
+//  description::init(origin);
 }
 
 // items initialisieren?
diff --git a/std/npc/combat.c b/std/npc/combat.c
index d4dca90..0a489c1 100644
--- a/std/npc/combat.c
+++ b/std/npc/combat.c
@@ -475,8 +475,8 @@
   }
 }
 
-void init() {
-
+public varargs void init(object origin)
+{
   // ggf. Heartbeats nachholen und wieder einschalten.
   if (!heartbeat) {
     set_heart_beat(1);
diff --git a/std/npc/info.c b/std/npc/info.c
index 2eb6942..9db7221 100644
--- a/std/npc/info.c
+++ b/std/npc/info.c
@@ -82,7 +82,8 @@
 }
 
 
-void init() {
+public varargs void init(object origin)
+{
   add_action( "frage", "frag", 1 );
 }
 
diff --git a/std/room.c b/std/room.c
index 7047f2b..d87c0fd 100644
--- a/std/room.c
+++ b/std/room.c
@@ -205,16 +205,15 @@
   return 1;
 }
 
-void
-init()
+public varargs void init(object origin)
 {
   if (HookFlow(H_HOOK_INIT, 0)[H_RETCODE] == H_CANCELLED)
       return;
   Set(" clean counter ",2);
-  exits::init();
-  commands::init();
-  description::init();
-  doors::init();
+  exits::init(origin);
+  commands::init(origin);
+  description::init(origin);
+  doors::init(origin);
 
   add_action("toggle_exits", "exits");
   add_action("toggle_exits", "ausgang");
diff --git a/std/room/commands.c b/std/room/commands.c
index 5aa75c3..bb4a293 100644
--- a/std/room/commands.c
+++ b/std/room/commands.c
@@ -20,9 +20,9 @@
 #include <language.h>
 #include <defines.h>
 
-void init() 
+public varargs void init(object origin)
 {
-  ::init();
+  ::init(origin);
 
   add_action("imposs", "such");
   add_action("imposs", "suche");
diff --git a/std/room/description.c b/std/room/description.c
index 1af1520..47390e4 100644
--- a/std/room/description.c
+++ b/std/room/description.c
@@ -32,7 +32,7 @@
   AddId(({"raum", "hier"}));
 }
 
-void init()
+public varargs void init(object origin)
 {
   // Wenn P_ROOM_MSG gesetzt oder P_FUNC_MSG und kein Callout laeuft,
   // Callout starten.
diff --git a/std/room/doors.c b/std/room/doors.c
index e05f009..d9eded0 100644
--- a/std/room/doors.c
+++ b/std/room/doors.c
@@ -81,7 +81,7 @@
   return call_other(DOOR_MASTER,"NewDoor",cmds,dest,ids,props);
 }
 
-void init()
+public varargs void init(object origin)
 {
   mixed *info;
   string *cmds;
diff --git a/std/room/exits.c b/std/room/exits.c
index 45617ce..b5c352b 100644
--- a/std/room/exits.c
+++ b/std/room/exits.c
@@ -241,7 +241,7 @@
 
 // Richtungsbefehle nur interpretieren, wenn der Spieler *im* Raum steht und
 // nicht davor (Transporter etc.)/o
-void init()
+public varargs void init(object origin)
 {
     if ( environment(this_player()) == this_object() )
         add_action( "_normalfunction", "", 1 );
diff --git a/std/room/gilde.c b/std/room/gilde.c
index 55e87ca..471b62d 100644
--- a/std/room/gilde.c
+++ b/std/room/gilde.c
@@ -102,7 +102,7 @@
   AddCmd(({"treff"}), "GotoMagierTreff");
  }
 
-void init()
+public varargs void init(object origin)
 {
   int lvl;
 
diff --git a/std/thing/commands.c b/std/thing/commands.c
index 767e7ed..8f93449 100644
--- a/std/thing/commands.c
+++ b/std/thing/commands.c
@@ -631,7 +631,7 @@
  return 0;
 }
 
-void init() {
+public varargs void init(object origin) {
  add_action("_cl","",1);
 }
 
diff --git a/std/transport.c b/std/transport.c
index 2a559ba..1c19fe1 100644
--- a/std/transport.c
+++ b/std/transport.c
@@ -543,9 +543,9 @@
 // again.
 int clean_up(int arg) { return 0; }
 
-public void init()
+public varargs void init(object origin)
 {
-  "*"::init();
+  "*"::init(origin);
   // if we have player contact (even if the player is just in the same
   // environment), we update the time.
   if (this_player() && query_once_interactive(this_player()))
diff --git a/std/tray.c b/std/tray.c
index df47955..c84ed07 100644
--- a/std/tray.c
+++ b/std/tray.c
@@ -48,13 +48,5 @@
   set_next_reset(-1);
 }
 
-/*
-void init() 
-{
-  commands::init();
-  description::init();
-}
-*/
-
 void reset()
 {}
diff --git a/std/weapon.c b/std/weapon.c
index 7c1f97c..c80c767 100644
--- a/std/weapon.c
+++ b/std/weapon.c
@@ -41,14 +41,6 @@
   AddId(({"Ding","waffe"}));
 }
 
-/*
-void init()
-{
-  commands::init();
-  description::init();
-}
-*/
-
 void reset()  // Man kann in ALLEN Standardobjekten ::reset aufrufen!
 { }