blob: 873956e8921b8ae244ea927ec716a405311c2719 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// haus.h -- Definitionen fuer die Seherhaeuser
2//
3// Grundobjekt (c) 1994 Boing@MorgenGrauen
4// Abschliessen und Rauswerfen von Jof
5// Fuer Aenderungen ab dem 06.10.94 verantwortlich: Wargon
6//
7// $Id: haus.h,v 1.2 2003/05/03 13:09:05 mud Exp $
8//
9#ifndef __HAUS_H__
10#define __HAUS_H__
11
12// #define DEBUG(x) if (find_player("vanion")) tell_object(find_player("vanion"),x);
13//#define HDEBUG(x) if(find_player("vanion")) \
14// tell_object(find_player("vanion"),break_string((x),78,"HDBG: ",1))
15#define HDEBUG(x)
16
17// Maintainer wird u.a. benutzt, um die access_rights zu regeln
18#define MAINTAINER ({"vanion"})
19#define IS_MAINTAINER(x) (member(MAINTAINER, getuid(x))!=-1)
20
21/*** Pfade ***/
22#define HAEUSERPFAD "/d/seher/haeuser/"
23#define HAUSSAVEPATH HAEUSERPFAD+"save/"
24#define SPECIALPATH HAEUSERPFAD+"special/"
25#define VERWALTER (HAEUSERPFAD+"hausverwalter")
26#define HAUS HAEUSERPFAD+"haus"
27#define RAUM HAEUSERPFAD+"raum"
28#define SAVEFILE HAUSSAVEPATH+"haeuser"
29#define HAUSNAME(x) (HAEUSERPFAD+x+"haus")
30#define RAUMNAME(x,n) (HAEUSERPFAD+x+"raum"+to_string(n))
31#define REPFILE(x) (HAEUSERPFAD+"rep/"+x+".rep")
32#define HLOG(f,x) write_file(HAEUSERPFAD+"log/"+(f), dtime(time())+" - "+(x))
33
34/* PATH bitte nicht mehr benutzen!
35 * Dieser #define existiert nur noch aus Kompatibilitaetsgruenden.
36 */
37#ifndef PATH
38#define PATH HAEUSERPFAD
39#endif
40
41/*** Module ***/
42#define USERCMD HAEUSERPFAD+"modules/usercmd"
43#define LOSA HAEUSERPFAD+"modules/losa"
44#define HAUSTUER HAEUSERPFAD+"modules/haustuer"
45
46/*** Bausparvertrag und Ratenblock ***/
47#define SUMME_L 30*RATENHOEHE /* Soviel kostet das gute Stueck (langsam) */
48#define SUMME_S 25*RATENHOEHE /* Und soviel bei der schnellen Variante */
49#define RATENHOEHE 80000 /* Einzahlbar per Ratenblock */
50#define MAX_TIME 7200 /* Laufzeit der Raten: 4 Stunden = 7200 heart_beats */
51#define WARN_TIME 450 /* Abstand zwischen den Warnungen: 15 Minuten */
52
53#define V_MONEY 0 // Das schon eingezahlte Geld
54#define V_DLINE 1 // die Deadline
55#define V_WTIME 2 // Zeit bis zur naechsten Erinnerung
56#define V_FLAGS 3 // Diverse Flags
57
58#define V_SIGNED 1 // Vertrag schon unterschrieben
59#define V_FAST 2 // Schnelle Variante
60#define V_COMPL 4 // Vertrag erfuellt
61#define V_RAUM 8 // Ausbauvertrag
62#define V_EP 16 // EP-Vertrag
63
64#define B_FAST 1 // Block gehoert zur schweren Variante
65#define B_EXTEND 2 // Strafzeit laeuft
66#define B_ACTIVE 4 // Shadow laden
67#define B_SHADOW 8 // Shadow laeuft...
68#define B_EP 16 // EP-Vertrag
69
70/*** Tuerstatus ***/
71#define D_CLOSED 1
72#define D_LOCKED 2
73
74/*** Beschreibungsflags ***/
75#define AUSSEN 1
76#define KURZ 2
77#define LANG 4
78#define DETAIL 8
79#define RDETAIL 16
80#define BEFEHL 32 // Nur aendern
81#define REPORT 64 // Nur aendern
82
83/*** Flags fuer HausProp() ***/
84#define HP_ENV 0 // Name des Raums, in dem das Haus steht (string)
85#define HP_ROOMS 1 // Anzahl der Raeume, die das Haus besitzt (int)
86#define HP_ALLOWED 2 // Wer hat Sonderbefugnisse im Haus? (string *)
87
88/*** Vermischtes ***/
89#define H_CHEST "h_chest" // Wenn gesetzt, steht in diesem Raum die Truhe
90#define TRUHE "\t\ruhe" // Und diese ID hat die Truhe in jedem Fall.
91#define H_COMMANDS "h_commands" // Enthaelt mapping mit Befehlen.
92#define H_DOOR "h_door" // Enthaelt die Beschreibung der Tuer.
93#define H_DOORSTAT "h_doorstat" // Enthaelt den Zustand der Haustuer.
94#define H_DOORLSTAT "h_doorlstat" // Tuerzustand als Stringarray.
95#define H_REPORT "h_report" // Info ueber typo/bug/idee im Haus
96#define H_SPECIAL "h_special" // Besonderheiten im Haus
97#define H_FURNITURE "h_furniture" // Rebootfeste Sehermoebel
98
99/*** Typen fuer H_SPECIAL ***/
100#define HS_ITEM 1 // ein bestimmtes Objekt (per AddItem())
101#define HS_EXIT 2 // ein Ausgang (per AddExit())
102
103/*** Einstellungen fuer Furniture ***/
104#define MAX_FURNITURE_PER_ROOM 5
105
106/*** Last but not least... ***/
107#define UP_ARGS(o) ((o)->_unparsed_args(1))
108
109#endif // __HAUS_H__
110
111#ifdef NEED_PROTOTYPES
112
113#ifndef __HAUS_H_PROTOS__
114#define __HAUS_H_PROTOS__
115
116varargs void Save(int crunched);
117void Load();
118varargs string QueryOwner(int withNr);
119varargs string SetOwner(string o, int nr);
120protected void AddExitNoCheck(mixed cmd, mixed dest);
121void RemoveExitNoCheck(mixed cmd);
122
123#endif /* __HAUS_H_PROTOS__ */
124#endif /* NEED_PROTOTYPES */
125
126// $Log: haus.h,v $
127// Revision 1.2 2003/05/03 13:09:05 mud
128// PATH in HAEUSERPFAD umbenannt
129//
130// Revision 1.1.1.1 2000/08/20 20:22:42 mud
131// Ins CVS eingecheckt
132//
133// Revision 2.7 1995/06/28 08:58:07 Wargon
134// H_REPORT fuer Spielerrueckmeldungen.
135// Flags BEFEHL und REPORT fuer Aenderungen.
136//
137// Revision 2.6 1995/04/21 08:53:57 Wargon
138// #defines fuer Modularisierung und neue Tuerfeatures.
139//
140// Revision 2.5 1995/02/27 20:54:49 Wargon
141// UP_ARGS angepasst, da Parser jetzt auch fuer Spieler aktiv.
142//
143// Revision 2.3 1995/02/15 11:15:08 Wargon
144// H_DOOR: Enthaelt die Beschreibung der Haustuer.
145//
146// Revision 2.2 1995/02/04 17:18:39 Wargon
147// H_COMMANDS: enthaelt mapping mit selbstdefinierten Hausbefehlen.
148// CHEST in H_CHEST umbenannt.
149//
150// Revision 2.1 1995/02/04 15:06:18 Wargon
151// Definition von CHEST als Property fuer den Standort der Truhe und
152// TRUHE als feste ID der Truhe.
153//
154// Revision 2.0 1995/02/01 20:45:18 Wargon
155// UP_ARGS-Makro, liefert fuer ALLE das Ergebnis von _unparsed_args(1)
156//