blob: 80c80c6c5edf81fd64a9432034f109e8bf397f35 [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
MG Mud User88f12472016-06-24 23:31:02 +020013
14#define NEED_PROTOTYPES
15#include <thing/properties.h>
16#undef NEED_PROTOTYPES
17
18#include <thing/description.h>
19#include <room/description.h>
20#include <container.h>
21
22protected void create()
23{
24 ::create();
25 SetProp(P_LIGHT_ABSORPTION, 1);
26}
27
28protected void create_super() {set_next_reset(-1);}
29
30/*
31 // das wird selten benutzt und ist zur zeit funktionsunfaehig, da die
32 // interne Speicherung der Prop sich geaendert hat.
33static int _set_int_light(int *light)
34{
35 int tmp;
36
37 // zur Sicherheit
38 if (!pointerp(light)) return -1;
39 if (light[0]>QueryProp(P_LIGHT)) {
40 // Licht verlaeuft sich in einem grossen Raum, daher Modifier abfragen...
41 tmp=light[0]-QueryProp(P_LIGHT_ABSORPTION);
42 // wenn sich das Vorzeichen geaendert hat, auf 0 setzen.
43 light[0]=((tmp^light[0]) & 0x80000000 ? 0 : tmp);
44 }
45 if (light[1]<QueryProp(P_LIGHT) && light[1]<0) {
46 // Licht verlaeuft sich in einem grossen Raum, daher Modifier abfragen...
47 tmp=light[1]+QueryProp(P_LIGHT_ABSORPTION);
48 // wenn sich das Vorzeichen geaendert hat, auf 0 setzen.
49 light[1]=((tmp^light[1]) & 0x80000000 ? 0 : tmp);
50 }
51 light[2]=light[0]+light[1];
52 Set(P_INT_LIGHT, light, F_VALUE);
53 // diese Prop setzen kaum Leute (offiziell gehts ja auch gar nicht. Keiner
54 // davon erwartet nen Rueckgabewert. Daher wird hier 0 zurueckgeben, statt
55 // des aufwaendig berechneten QueryProp(P_INT_LIGHT).
56 // Achja. Der Rueckgabewert vom Set() waere ein int*, was nicht geht, weil
57 // diese Funktion nur int zurueckgeben darf.
58 return 0;
59}
60*/