blob: a37204763d55ea4912121ef4bf69d36b7608703e [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// container/light.c -- Lichtsystemkomponenten fuer Raeume
4//
5// $Id: description.c 6986 2008-08-22 21:32:15Z Zesstra $
6
7inherit "/std/container/light";
8
9#pragma strict_types
10#pragma save_types,rtt_checks
11#pragma range_check
12#pragma no_clone
13#pragma pedantic
14
15#define NEED_PROTOTYPES
16#include <thing/properties.h>
17#undef NEED_PROTOTYPES
18
19#include <thing/description.h>
20#include <room/description.h>
21#include <container.h>
22
23protected void create()
24{
25 ::create();
26 SetProp(P_LIGHT_ABSORPTION, 1);
27}
28
29protected void create_super() {set_next_reset(-1);}
30
31/*
32 // das wird selten benutzt und ist zur zeit funktionsunfaehig, da die
33 // interne Speicherung der Prop sich geaendert hat.
34static int _set_int_light(int *light)
35{
36 int tmp;
37
38 // zur Sicherheit
39 if (!pointerp(light)) return -1;
40 if (light[0]>QueryProp(P_LIGHT)) {
41 // Licht verlaeuft sich in einem grossen Raum, daher Modifier abfragen...
42 tmp=light[0]-QueryProp(P_LIGHT_ABSORPTION);
43 // wenn sich das Vorzeichen geaendert hat, auf 0 setzen.
44 light[0]=((tmp^light[0]) & 0x80000000 ? 0 : tmp);
45 }
46 if (light[1]<QueryProp(P_LIGHT) && light[1]<0) {
47 // Licht verlaeuft sich in einem grossen Raum, daher Modifier abfragen...
48 tmp=light[1]+QueryProp(P_LIGHT_ABSORPTION);
49 // wenn sich das Vorzeichen geaendert hat, auf 0 setzen.
50 light[1]=((tmp^light[1]) & 0x80000000 ? 0 : tmp);
51 }
52 light[2]=light[0]+light[1];
53 Set(P_INT_LIGHT, light, F_VALUE);
54 // diese Prop setzen kaum Leute (offiziell gehts ja auch gar nicht. Keiner
55 // davon erwartet nen Rueckgabewert. Daher wird hier 0 zurueckgeben, statt
56 // des aufwaendig berechneten QueryProp(P_INT_LIGHT).
57 // Achja. Der Rueckgabewert vom Set() waere ein int*, was nicht geht, weil
58 // diese Funktion nur int zurueckgeben darf.
59 return 0;
60}
61*/