Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/std/trading_price.c b/std/trading_price.c
new file mode 100644
index 0000000..4bfc96c
--- /dev/null
+++ b/std/trading_price.c
@@ -0,0 +1,174 @@
+// MorgenGrauen MUDlib
+//
+// trading_price.c -- Preisverhalten von Laeden und Haendlern
+//
+// $Id: trading_price.c,v 3.3 2002/06/09 19:51:40 Tilly Exp $
+#pragma strong_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+#define NEED_PROTOTYPES
+#include <thing/properties.h>
+#include <bank.h>
+
+#undef NEED_PROTOTYPES
+#include <properties.h>
+
+// TODO: langfristig zu private aendern?
+nosave int buyfact, shop_percent_left, mymoney, wantto, last;
+private nosave int wantthresh, maxnum;
+
+varargs int SetTradingData(int money, int factor, int maxobs)
+{
+  if (extern_call() && previous_object() != this_object())
+    log_file("ZENTRALBANK",sprintf("INITIALIZE: %O got (%d,%d,%d) from %O (%O)\n",
+				   this_object(), money,factor,maxobs,
+				   previous_object(),this_player()));
+
+  if (money < 1000)
+    money = 1000;
+
+  last=wantto=mymoney=money;
+  wantthresh=wantto/2;
+  if (wantthresh < 5000)
+    wantthresh = 5000;
+
+  if (factor < 100)
+    buyfact = 300;
+  else
+    buyfact = factor;
+  
+  if (maxobs < 1)
+    maxnum=3;
+  else
+    maxnum=maxobs;
+  
+  return mymoney;
+}
+
+void SetBuyFact(int i)
+{
+  buyfact=i*100;
+}
+
+varargs int QueryBuyFact(object client)
+{
+  return buyfact;
+}
+
+int InflateSellValue(int value, int cnt)
+{
+  cnt-=maxnum;
+  if (cnt<0) cnt=0;
+  return value-(value*cnt)/(cnt+25);
+}
+
+int TruncateSellValue(int value)
+{
+  if (value > 500) {
+    value-=500;
+    value = ((1000*value)/(value+1000))+500;
+  }
+  return value;
+}
+
+int ObjectCount(object ob)
+{
+  return objectp(ob); // 0 oder 1
+}
+
+varargs int QueryValue(object ob, int value, object client)
+{
+  value=TruncateSellValue(InflateSellValue(value,ObjectCount(ob)));
+  if (3*value>mymoney)
+  {
+    log_file("LADEN",sprintf("Out of money: %O for %O (%s)\n",this_object(),
+			     this_player(),dtime(time())[5..]));
+    value=mymoney/3;
+  }
+  if (value<0) value=0;
+  
+  /*   Preisverfall von beschaedigtenObjekten gleich hier festlegen  */
+
+  if(value && ob->QueryProp(P_DAMAGED))  
+  {                                      
+    if(ob->QueryProp(P_WC) || ob->QueryProp(P_AC))
+    {
+      value = (6 * (value / 10));
+    }
+    else
+    {
+      value = (4 * (value / 10));
+    }
+  }
+                                          
+  return value;
+}
+
+varargs int QuerySellValue(object ob, object client)
+{
+  return QueryValue(ob,ob->QueryProp(P_VALUE),client);
+}
+
+varargs int QueryBuyValue(mixed ob, object client)
+{
+  // Mit Runden.
+  return (ob->QueryProp(P_VALUE)*QueryBuyFact(client) + 50)/100;
+}
+
+protected void create()
+{
+  SetProp(P_SHOP_PERCENT_LEFT, 0);
+  SetTradingData(50000,300,3);
+}
+
+protected void create_super() {
+  set_next_reset(-1);
+}
+
+void reset()
+{
+  SetProp(P_SHOP_PERCENT_LEFT, 0);
+
+  if (last/3>mymoney)
+    wantto=wantto*110/100;
+  else
+    if (last/2<mymoney)
+      wantto=wantto*85/100;
+  if (wantto<wantthresh) wantto=wantthresh+500;
+  if (wantto>1500000) wantto=1500000;
+  if (wantto<mymoney)
+  {
+    ZENTRALBANK->PayIn(mymoney-wantto);
+    mymoney=wantto;
+  } else
+    mymoney+=ZENTRALBANK->WithDraw(wantto-mymoney);
+  last=mymoney;
+}
+
+void _add_money(int i) {
+  if (extern_call() && previous_object() != this_object())
+    log_file("ZENTRALBANK",sprintf("%s: TRANSFER: %O got %d from %O\n",
+	strftime("%H:%M"), this_object(), i, previous_object()));
+  mymoney+=i;
+}
+
+int _set_shop_percent_left(int dummy) {
+  return shop_percent_left=ZENTRALBANK->_query_shop_percent_left();
+}
+
+int _query_shop_percent_left() {
+  return shop_percent_left;
+}
+
+int _query_current_money() {
+  return mymoney;
+}
+
+int _query_wantto() {
+  return wantto;
+}
+
+