1/*
2 *
3 *  Iter Vehemens ad Necem (IVAN)
4 *  Copyright (C) Timo Kiviluoto
5 *  Released under the GNU General
6 *  Public License
7 *
8 *  See LICENSING which should be included
9 *  along with this file for more details
10 *
11 */
12
13/*
14 * NOTICE!!!
15 *
16 * This file contains SPOILERS, which might ruin your IVAN experience
17 * totally. Also, editing anything can DESTROY GAME BALANCE or CAUSE
18 * OBSCURE BUGS if you don't know what you're doing. So from here on,
19 * proceed at your own risk!
20 */
21
22/* Numerical olterrain data loaded during game startup */
23
24/* Default values: */
25
26olterrain
27{
28  /* Obligatory: BitmapPos */
29  UsesLongArticle = false;
30  Adjective = "";
31  UsesLongAdjectiveArticle = false;
32  /* Obligatory: NameSingular */
33  /* NameSingular + "s" by default: NamePlural */
34  PostFix = "";
35  ArticleMode = 0;
36  /* Obligatory: MainMaterialConfig */
37  /* Obligatory: SecondaryMaterialConfig */
38  /* Obligatory if multiple material configurations defined: MaterialConfigChances */
39  IsAbstract = true; /* This is false by default and does not inherit! */
40  OKVisualEffects = NONE;
41  MaterialColorB = 0;
42  MaterialColorC = 0;
43  MaterialColorD = 0;
44  SitMessage = "You sit for some time. Nothing happens.";
45  /* Obligatory: DigMessage */
46  CanBeDestroyed = false;
47  RestModifier = 1;
48  RestMessage = "";
49  ShowMaterial = true;
50  IsUpLink = false;
51  CreateDivineConfigurations = false;
52  StorageVolume = 0;
53  HPModifier = 100;
54  IsSafeToCreateDoor = false;
55  AttachedGod = NONE;
56  CreateLockConfigurations = false; /* Can't be overridden by Configs */
57  Walkability = ANY_MOVE;
58  IsAlwaysTransparent = true;
59  UseBorderTiles = false;
60  BorderTilePriority = 0;
61  HasSecondaryMaterial = false;
62  CreateWindowConfigurations = false;
63  ShowThingsUnder = true;
64  IsWall = false;
65}
66
67wall
68{
69  IsAbstract = true;
70  CanBeDestroyed = true;
71  IsSafeToCreateDoor = true;
72  Walkability = ETHEREAL;
73  IsAlwaysTransparent = false;
74  BorderTilePriority = 100;
75  CreateWindowConfigurations = true;
76  MaterialColorC = rgb16(140, 96, 48);
77  MaterialColorD = rgb16(180, 180, 255);
78  ShowThingsUnder = false;
79  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:4; }
80  IsWall = true;
81
82  Config BRICK_FINE;
83  {
84    DigMessage = "The wall is pretty hard, but you still manage to go through it.";
85    MainMaterialConfig == GRANITE;
86    NameSingular = "wall";
87    BitmapPos = 64, 272;
88    HPModifier = 150;
89    WindowBitmapPos = 96, 256;
90  }
91
92  Config BRICK_PROPAGANDA;
93  {
94    DigMessage = "You break the wall down despite the uncomfortable feeling of being constantly watched.";
95    MainMaterialConfig == GRANITE;
96    NameSingular = "wall";
97    PostFix = "and a poster with a picture of high priest Petrus, the ruler of the Attnamese Empire";
98    BitmapPos = 80, 272;
99    HPModifier = 150;
100  }
101
102  Config BRICK_OLD;
103  {
104    DigMessage = "The piece of wall is very old and shabby. You dig it with ease.";
105    MainMaterialConfig == GRANITE;
106    UsesLongAdjectiveArticle = true;
107    Adjective = "old";
108    NameSingular = "wall";
109    BitmapPos = 16, 256;
110    HPModifier = 75;
111  }
112
113  Config BRICK_PRIMITIVE;
114  {
115    DigMessage = "The piece of wall is very old and shabby. You dig it with ease.";
116    MainMaterialConfig == BALSA_WOOD;
117    Adjective = "primitive";
118    NameSingular = "wall";
119    BitmapPos = 48, 272;
120    HPModifier = 75;
121    WindowBitmapPos = 80, 256;
122  }
123
124  Config BRICK_PRIMITIVE_PROPAGANDA;
125  {
126    DigMessage = "You break the wall down despite the uncomfortable feeling of being constantly watched.";
127    MainMaterialConfig == BALSA_WOOD;
128    Adjective = "primitive";
129    NameSingular = "wall";
130    PostFix = "and a poster with a picture of high priest Petrus, the ruler of the Attnamese Empire";
131    BitmapPos = 96, 272;
132    HPModifier = 75;
133  }
134
135  Config STONE_WALL;
136  {
137    OKVisualEffects = MIRROR|FLIP|ROTATE;
138    DigMessage = "The ground is hard to dig.";
139    MainMaterialConfig == GRANITE;
140    MaterialColorB = rgb16(56, 56, 56);
141    NameSingular = "wall";
142    BitmapPos = 0, 32;
143    HPModifier = 100;
144  }
145
146  Config ICE_WALL;
147  {
148    OKVisualEffects = MIRROR|FLIP|ROTATE;
149    DigMessage = "The ice is pretty easy to dig.";
150    MainMaterialConfig == ICE;
151    NameSingular = "wall";
152    BitmapPos = 0, 32;
153    HPModifier = 40;
154  }
155
156  Config BROKEN_WALL;
157  {
158    OKVisualEffects = MIRROR|FLIP;
159    DigMessage = "The ground is easy to dig.";
160    MainMaterialConfig == GRANITE;
161    MaterialColorB = rgb16(56, 56, 56);
162    Adjective = "broken";
163    NameSingular = "wall";
164    BitmapPos = 48, 288;
165    HPModifier = 25;
166  }
167
168  Config TENT_WALL;
169  {
170    OKVisualEffects = MIRROR;
171    DigMessage = "The tear down the tent wall.";
172    MainMaterialConfig == FELT;
173    NameSingular = "tent wall";
174    BitmapPos = 0, 432;
175    HPModifier = 20;
176  }
177}
178
179decoration
180{
181  IsAbstract = true;
182  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; }
183
184  Config PINE;
185  {
186    OKVisualEffects = MIRROR;
187    CanBeDestroyed = true;
188    DigMessage = "You chop the tree down.";
189    MainMaterialConfig == PINE_WOOD;
190    ShowMaterial = false;
191    MaterialColorB = rgb16(32, 100, 32);
192    NameSingular = "pine";
193    BitmapPos = 16, 320;
194    HPModifier = 25;
195  }
196
197  Config FIR;
198  {
199    OKVisualEffects = MIRROR;
200    CanBeDestroyed = true;
201    DigMessage = "You chop the tree down.";
202    MainMaterialConfig == FIR_WOOD;
203    ShowMaterial = false;
204    MaterialColorB = rgb16(32, 100, 32);
205    NameSingular = "fir";
206    BitmapPos = 16, 352;
207    HPModifier = 25;
208    IsAlwaysTransparent = false;
209  }
210
211  Config PALM;
212  {
213    OKVisualEffects = MIRROR;
214    CanBeDestroyed = true;
215    DigMessage = "You chop the tree down.";
216    MainMaterialConfig == BALSA_WOOD;
217    ShowMaterial = false;
218    MaterialColorB = rgb16(32, 80, 32);
219    NameSingular = "palm";
220    BitmapPos = 16, 368;
221    HPModifier = 25;/*
222    IsAlwaysTransparent = false;*/
223  }
224
225  Config HOLY_TREE;
226  {
227    CanBeDestroyed = true;
228    DigMessage = "You ruthlessly chop the beautiful tree down.";
229    MainMaterialConfig == GOLD;
230    ShowMaterial = false;
231    MaterialColorB = rgb16(224, 224, 0);
232    Adjective = "holy";
233    NameSingular = "tree";
234    BitmapPos = 32, 336;
235    ShowMaterial = true;
236    HPModifier = 25;
237    AttachedGod = SILVA;
238  }
239
240  Config CARPET;
241  {
242    DigMessage = "You can't force yourself to ruin this wonderful carpet.";
243    MainMaterialConfig == FABRIC;
244    NameSingular = "carpet";
245    BitmapPos = 0, 272;
246  }
247
248  Config COUCH;
249  {
250    CanBeDestroyed = true;
251    DigMessage = "The destroy the couch and find some valuables dropped by its owners.";
252    MainMaterialConfig == FABRIC;
253    NameSingular = "couch";
254    BitmapPos = 0, 400;
255    RestModifier = 3;
256    MaterialColorB = rgb16(200, 200, 0);
257    SitMessage = "The couch is extremely soft and comfortable. You relax well.";
258    RestMessage = "You rest well on the soft sofa.";
259    HPModifier = 25;
260    LeftOverItems == stone { Times = 1:2; }
261  }
262
263  Config CHAIR;
264  {
265    CanBeDestroyed = true;
266    DigMessage = "You destroy the chair.";
267    MainMaterialConfig == FIR_WOOD;
268    SitMessage = "You sit on the chair.";
269    RestMessage = "You relax on the chair.";
270    NameSingular = "chair";
271    RestModifier = 2;
272    BitmapPos = 80, 288;
273    HPModifier = 25;
274  }
275
276  Config ARM_CHAIR;
277  {
278    CanBeDestroyed = true;
279    DigMessage = "You destroy the armchair.";
280    MainMaterialConfig == LINEN_CLOTH;
281    ShowMaterial = false;
282    MaterialColorB = rgb16(140, 96, 48);
283    SitMessage = "You sit on the comfortable armchair.";
284    RestMessage = "You relax well on the comfortable armchair.";
285    NameSingular = "armchair";
286    UsesLongArticle = true;
287    RestModifier = 3;
288    BitmapPos = 0, 416;
289    HPModifier = 25;
290    LeftOverItems == 0;
291  }
292
293  Config BENCH;
294  {
295    CanBeDestroyed = true;
296    DigMessage = "You destroy the bench.";
297    MainMaterialConfig == FIR_WOOD;
298    SitMessage = "You sit on the bench.";
299    RestMessage = "You relax on the bench.";
300    NameSingular = "bench";
301    RestModifier = 2;
302    BitmapPos = 48, 224;
303    HPModifier = 25;
304  }
305
306  Config DOUBLE_BED;
307  {
308    CanBeDestroyed = true;
309    DigMessage = "You smash the bed into pieces.";
310    MainMaterialConfig == FABRIC;
311    Adjective = "luxurious";
312    NameSingular = "double bed";
313    BitmapPos = 48, 304;
314    MaterialColorB = rgb16(200, 200, 0);
315    ShowMaterial = false;
316    RestModifier = 5;
317    SitMessage = "The beautiful bed is very soft. You get a feeling it's not meant for your kind of people.";
318    RestMessage = "You lay yourself on the comfortable bed.";
319    HPModifier = 25;
320    LeftOverItems == 0;
321  }
322
323  Config CHEAP_BED;
324  {
325    CanBeDestroyed = true;
326    DigMessage = "You smash the bed into pieces.";
327    MainMaterialConfig == HEMP_CLOTH;
328    Adjective = "cheap";
329    NameSingular = "bed";
330    BitmapPos = 0, 352;
331    MaterialColorB = rgb16(160, 108, 50);
332    ShowMaterial = false;
333    RestModifier = 2;
334    SitMessage = "You lay down on the bed.";
335    RestMessage = "You rest well on the bed.";
336    HPModifier = 25;
337    LeftOverItems == 0;
338  }
339
340  Config PLAIN_BED;
341  {
342    CanBeDestroyed = true;
343    DigMessage = "You smash the bed into pieces.";
344    MainMaterialConfig == LINEN_CLOTH;
345    NameSingular = "bed";
346    BitmapPos = 0, 336;
347    MaterialColorB = rgb16(140, 96, 48);
348    ShowMaterial = false;
349    RestModifier = 3;
350    SitMessage = "You lay down on the bed.";
351    RestMessage = "You rest well on the bed.";
352    HPModifier = 25;
353    LeftOverItems == 0;
354  }
355
356  Config EXPENSIVE_BED;
357  {
358    CanBeDestroyed = true;
359    DigMessage = "You smash the bed into pieces.";
360    MainMaterialConfig == FABRIC;
361    Adjective = "luxurious";
362    NameSingular = "bed";
363    BitmapPos = 0, 336;
364    MaterialColorB = rgb16(200, 200, 0);
365    ShowMaterial = false;
366    RestModifier = 4;
367    SitMessage = "You lay down on the soft and comfortable bed.";
368    RestMessage = "You rest very well on the comfortable bed.";
369    HPModifier = 25;
370    LeftOverItems == 0;
371  }
372
373  Config POOL_BORDER;
374  {
375    DigMessage = "The water splashes a bit."; /* Only correct if over a water pool */
376    MainMaterialConfig == MARBLE;
377    NameSingular = "";
378    BitmapPos = 32, 320;
379  }
380
381  Config POOL_CORNER;
382  {
383    DigMessage = "The water splashes a bit."; /* Only correct if over a water pool */
384    MainMaterialConfig == MARBLE;
385    NameSingular = "";
386    BitmapPos = 48, 320;
387  }
388
389  Config SNOW_PINE;
390  {
391    OKVisualEffects = MIRROR;
392    CanBeDestroyed = true;
393    DigMessage = "You chop the tree down.";
394    MainMaterialConfig == PINE_WOOD;
395    ShowMaterial = false;
396    MaterialColorB = rgb16(220, 220, 220);
397    NameSingular = "pine";
398    PostFix = "covered with snow";
399    BitmapPos = 16, 320;
400    HPModifier = 25;
401    /* no pineapples in winter */
402  }
403
404  Config SNOW_FIR;
405  {
406    OKVisualEffects = MIRROR;
407    CanBeDestroyed = true;
408    DigMessage = "You chop the tree down.";
409    MainMaterialConfig == FIR_WOOD;
410    ShowMaterial = false;
411    MaterialColorB = rgb16(220, 220, 220);
412    NameSingular = "fir";
413    PostFix = "covered with snow";
414    BitmapPos = 16, 352;
415    HPModifier = 25;
416    IsAlwaysTransparent = false;
417  }
418
419  Config ANVIL;
420  {
421    OKVisualEffects = MIRROR;
422    CanBeDestroyed = true;
423    DigMessage = "You break the anvil.";
424    MainMaterialConfig == IRON;
425    NameSingular = "anvil";
426    BitmapPos = 16, 432;
427    HPModifier = 25;
428    LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:3; }
429  }
430
431  Config SHARD;
432  {
433    OKVisualEffects = MIRROR;
434    CanBeDestroyed = true;
435    DigMessage = "You shatter the crystal into pieces.";
436    NameSingular = "shard";
437    BitmapPos = 16, 416;
438    HPModifier = 5;
439    MainMaterialConfig = { 3, BLUE_CRYSTAL, PURPLE_CRYSTAL, GREEN_CRYSTAL; }
440    MaterialConfigChances = { 3, 100, 100, 100; }
441    LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 100:200; } Times = 1:3; }
442  }
443
444  Config CACTUS;
445  {
446    OKVisualEffects = MIRROR;
447    CanBeDestroyed = true;
448    DigMessage = "You chop the cactus down.";
449    MainMaterialConfig == PLANT_FIBER;
450    ShowMaterial = false;
451    MaterialColorB = rgb16(32, 100, 32);
452    NameSingular = "cactus";
453    NamePlural = "cactuses";
454    BitmapPos = 48, 352;
455    HPModifier = 20;
456    LeftOverItems == 0;
457    SitMessage = "You sit on the cactus. Ouch! You have thorns in your backside!";
458  }
459
460  Config OAK;
461  {
462    CanBeDestroyed = true;
463    DigMessage = "You ruthlessly chop the tree down.";
464    MainMaterialConfig == OAK_WOOD;
465    ShowMaterial = false;
466    MaterialColorB = rgb16(0, 150, 0);
467    NameSingular = "oak tree";
468    BitmapPos = 32, 336;
469    ShowMaterial = true;
470    HPModifier = 25;
471    IsAlwaysTransparent = false;
472  }
473
474  Config BIRCH;
475  {
476    CanBeDestroyed = true;
477    DigMessage = "You chop the tree down.";
478    MainMaterialConfig == BIRCH_WOOD;
479    ShowMaterial = false;
480    MaterialColorB = rgb16(125, 160, 80);
481    MaterialColorC = rgb16(220, 220, 220);
482    NameSingular = "birch tree";
483    BitmapPos = 80, 368;
484    HPModifier = 25;
485  }
486
487  Config TEAK;
488  {
489    CanBeDestroyed = true;
490    DigMessage = "You ruthlessly chop the tree down.";
491    MainMaterialConfig == TEAK_WOOD;
492    ShowMaterial = false;
493    MaterialColorB = rgb16(0, 220, 0);
494    NameSingular = "teak tree";
495    BitmapPos = 32, 336;
496    HPModifier = 25;
497  }
498
499  Config DWARF_BIRCH;
500  {
501    CanBeDestroyed = true;
502    DigMessage = "You chop the dwarf birch down.";
503    MainMaterialConfig == BIRCH_WOOD;
504    ShowMaterial = false;
505    MaterialColorB = rgb16(125, 160, 80);
506    MaterialColorC = rgb16(220, 220, 220);
507    NameSingular = "dwarf birch";
508    BitmapPos = 32, 368;
509    HPModifier = 10;
510  }
511
512  Config PEDESTAL;
513  {
514    CanBeDestroyed = true;
515    DigMessage = "You shatter the pedestal.";
516    MainMaterialConfig == MARBLE;
517    SitMessage = "The pedestal is hard and cold, and not very comfortable to sit on.";
518    RestMessage = "You feel sore after resting on the cold pedestal.";
519    NameSingular = "pedestal";
520    BitmapPos = 0, 0;
521  }
522
523  Config FORGE;
524  {
525    CanBeDestroyed = true;
526    DigMessage = "You break the forge.";
527    MainMaterialConfig == BASALT;
528    MaterialColorB = rgb16(96, 96, 96);
529    MaterialColorC = rgb16(220, 220, 0);
530    MaterialColorD = rgb16(160, 0, 0);
531    ShowMaterial = false;
532    Walkability = ETHEREAL;
533    NameSingular = "forge";
534    BitmapPos = 16, 16;
535    LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 1000:3000; } Times = 2:5; }
536  }
537
538  Config FURNACE;
539  {
540    CanBeDestroyed = true;
541    DigMessage = "You break the furnace.";
542    MainMaterialConfig == BASALT;
543    MaterialColorB = rgb16(96, 96, 96);
544    MaterialColorC = rgb16(220, 220, 0);
545    MaterialColorD = rgb16(160, 0, 0);
546    ShowMaterial = false;
547    NameSingular = "furnace";
548    BitmapPos = 32, 16;
549    LeftOverItems == 0;
550  }
551
552  Config OVEN;
553  {
554    CanBeDestroyed = true;
555    DigMessage = "You break the oven.";
556    MainMaterialConfig == COPPER;
557    MaterialColorB = rgb16(96, 96, 96);
558    MaterialColorC = rgb16(220, 220, 0);
559    MaterialColorD = rgb16(160, 0, 0);
560    ShowMaterial = false;
561    Walkability = ETHEREAL;
562    NameSingular = "oven";
563    UsesLongArticle = true;
564    BitmapPos = 80, 32;
565    LeftOverItems == 0;
566  }
567
568  Config WOODEN_HORSE;
569  {
570    CanBeDestroyed = true;
571    DigMessage = "You break the wooden horse.";
572    MainMaterialConfig == FIR_WOOD;
573    MaterialColorB = rgb16(96, 96, 96);
574    MaterialColorC = rgb16(100, 50, 30);
575    ShowMaterial = false;
576    SitMessage = "Ouch! What did you think? It's painful to sit on the wooden horse.";
577    NameSingular = "wooden horse";
578    BitmapPos = 16, 48;
579    HPModifier = 25;
580  }
581
582  Config TORTURE_RACK;
583  {
584    CanBeDestroyed = true;
585    DigMessage = "You break the torture rack.";
586    MainMaterialConfig == LEATHER;
587    MaterialColorB = rgb16(96, 96, 96);
588    MaterialColorC = rgb16(100, 50, 30);
589    ShowMaterial = false;
590    RestMessage = "As long as you're not strapped here, it's nice to rest on the torture rack.";
591    NameSingular = "torture rack";
592    BitmapPos = 80, 64;
593    HPModifier = 25;
594  }
595
596  Config DESK;
597  {
598    CanBeDestroyed = true;
599    DigMessage = "You break the writing desk.";
600    MainMaterialConfig == FIR_WOOD;
601    MaterialColorB = rgb16(210, 210, 210);
602    MaterialColorC = rgb16(100, 50, 30);
603    SitMessage = "You sit on the desk.";
604    RestMessage = "You take a nap on the desk.";
605    NameSingular = "writing desk";
606    BitmapPos = 48, 48;
607    HPModifier = 25;
608    Walkability = ETHEREAL;
609  }
610
611  Config WORK_BENCH;
612  {
613    CanBeDestroyed = true;
614    DigMessage = "You break the workbench.";
615    MainMaterialConfig == FIR_WOOD;
616    MaterialColorB = rgb16(96, 96, 96);
617    MaterialColorC = rgb16(124, 50, 16);
618    SitMessage = "You sit on the workbench.";
619    RestMessage = "You take a nap on the workbench.";
620    NameSingular = "workbench";
621    BitmapPos = 32, 224;
622    HPModifier = 25;
623    Walkability = ETHEREAL;
624  }
625
626  Config TAILORING_BENCH;
627  {
628    CanBeDestroyed = true;
629    DigMessage = "You break the tailoring bench.";
630    MainMaterialConfig == FIR_WOOD;
631    MaterialColorB = rgb16(96, 96, 96);
632    MaterialColorC = rgb16(124, 50, 16);
633    SitMessage = "You carefully sit on the tailoring bench.";
634    RestMessage = "You manage to take a surprisingly refreshing nap on the tailoring bench.";
635    NameSingular = "tailoring bench";
636    BitmapPos = 80, 224;
637    HPModifier = 25;
638    Walkability = ETHEREAL;
639  }
640
641  Config TABLE;
642  {
643    CanBeDestroyed = true;
644    DigMessage = "You break the table.";
645    MainMaterialConfig == FIR_WOOD;
646    SitMessage = "You sit on the table.";
647    RestMessage = "You take a nap on the table.";
648    NameSingular = "table";
649    BitmapPos = 48, 240;
650    HPModifier = 25;
651    Walkability = ETHEREAL;
652  }
653
654  Config WELL;
655  {
656    CanBeDestroyed = false;
657    DigMessage = "You stop digging as you nearly fall in the well.";
658    MainMaterialConfig == GRANITE;
659    MaterialColorB = rgb16(140, 96, 48);
660    MaterialColorC = rgb16(100, 50, 30);
661    ShowMaterial = false;
662    SitMessage = "You sit beside the well.";
663    NameSingular = "well";
664    BitmapPos = 64, 240;
665  }
666
667  Config SHACKLES;
668  {
669    CanBeDestroyed = true;
670    DigMessage = "You break the shackles.";
671    MainMaterialConfig == IRON;
672    NameSingular = "shackles";
673    BitmapPos = 112, 288;
674    HPModifier = 25;
675  }
676
677  Config BANANA_TREE;
678  {
679    OKVisualEffects = MIRROR;
680    CanBeDestroyed = true;
681    DigMessage = "You chop the tree down.";
682    MainMaterialConfig == BALSA_WOOD;
683    ShowMaterial = false;
684    MaterialColorB = rgb16(32, 80, 32);
685    NameSingular = "palm";
686    BitmapPos = 16, 368;
687    HPModifier = 25;
688    /* IsAlwaysTransparent = false; */
689    LeftOverItems == banana { Times = 0:1; }
690  }
691
692  Config DEAD_TREE;
693  {
694    CanBeDestroyed = true;
695    DigMessage = "You mercifully chop the tree down.";
696    MainMaterialConfig == FIR_WOOD;
697    ShowMaterial = false;
698    NameSingular = "dead tree";
699    BitmapPos = 64, 336;
700    HPModifier = 10;
701  }
702
703  Config STRANGE_TREE;
704  {
705    CanBeDestroyed = true;
706    DigMessage = "You chop the strange tree down.";
707    MainMaterialConfig == BONE;
708    ShowMaterial = true;
709    Adjective = "strange";
710    NameSingular = "tree";
711    BitmapPos = 80, 352;
712  }
713}
714
715door /* olterrain-> */
716{
717  DigMessage = "You break the door.";
718  CanBeDestroyed = true;
719  MainMaterialConfig == FIR_WOOD;
720  NameSingular = "door";
721  BitmapPos = 0, 176;
722  OpenBitmapPos = 0, 48;
723  /* PostFix depends on LockType */
724  HPModifier = 20;
725  CreateLockConfigurations = true;
726  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:3; }
727  IsAlwaysTransparent = false;
728
729  Config BARDOOR;
730  {
731    BitmapPos = 16, 96;
732    IsAlwaysTransparent = true;
733  }
734
735  Config SECRET_DOOR;
736  {
737    BitmapPos = 16, 144;
738    NameSingular = "door";
739    Adjective = "very secret";
740  }
741
742  Config CURTAIN;
743  {
744    DigMessage = "You tear at the curtain.";
745    BitmapPos = 0, 112;
746    NameSingular = "curtain";
747    MainMaterialConfig == FELT;
748  }
749}
750
751stairs /* olterrain-> */
752{
753  IsAbstract = true;
754  DigMessage = "The stairs are too hard to dig.";
755  MainMaterialConfig == GRANITE;
756  MaterialColorB = rgb16(160, 64, 0);
757  NameSingular = "stairway";
758
759  Config STAIRS_UP;
760  {
761    PostFix = "upwards";
762    BitmapPos = 0, 192;
763    IsUpLink = true;
764  }
765
766  Config STAIRS_DOWN;
767  {
768    PostFix = "downwards";
769    BitmapPos = 0, 208;
770  }
771
772  Config SUMO_ARENA_ENTRY;
773  {
774    PostFix = "downwards";
775    BitmapPos = 0, 208;
776  }
777
778  Config SUMO_ARENA_EXIT;
779  {
780    PostFix = "upwards";
781    BitmapPos = 0, 192;
782    IsUpLink = true;
783  }
784}
785
786portal /* stairs -> */
787{
788  DigMessage = "The portal is magically protected from your feeble attack.";
789  MainMaterialConfig == GOLD;
790  MaterialColorB = rgb16(200, 0, 0);
791  NameSingular = "magic portal";
792  AttachedGod = MORTIFER;
793  /* BitmapPos overridden */
794
795  /* Config specialities hard-coded */
796
797  Config OREE_LAIR_ENTRY; { }
798  Config OREE_LAIR_EXIT; { }
799  Config DARK_LEVEL; { }
800
801  Config XINROCH_TOMB_ENTRANCE;
802  {
803    MaterialColorB = rgb16(0, 200, 0);
804  }
805
806  Config XINROCH_TOMB_EXIT;
807  {
808    MaterialColorB = rgb16(140, 240, 255);
809  }
810}
811
812altar /* olterrain-> */
813{
814  DigMessage = "An invisible wall stops your feeble attempt.";
815  MainMaterialConfig == GRANITE;
816  UsesLongArticle = true;
817  NameSingular = "altar";
818  BitmapPos = 0, 368;
819  /* PostFix depends on Config */
820  CreateDivineConfigurations = true;
821  IsAbstract = true;
822}
823
824throne /* olterrain-> */
825{
826  DigMessage = "The throne resists.";
827  MainMaterialConfig == GOLD;
828  MaterialColorB = rgb16(200, 200, 0);
829  NameSingular = "throne";
830  BitmapPos = 0, 416;
831  AttachedGod = VALPURUS;
832}
833
834olterraincontainer /* olterrain->decoration-> */
835{
836  IsAbstract = true;
837  Walkability = ETHEREAL;
838  DigMessage = "You smash this piece of furniture into pieces.";
839
840  Config BOOK_CASE;
841  {
842    CanBeDestroyed = true;
843    MainMaterialConfig == FIR_WOOD;
844    NameSingular = "bookcase";
845    BitmapPos = 16, 272;
846    SitMessage = "The bookcase is very uncomfortable to sit on.";
847    StorageVolume = 100000;
848    HPModifier = 20;
849    AttachedGod = SOPHOS;
850    LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; }
851  }
852
853  Config CHEST_OF_DRAWERS;
854  {
855    CanBeDestroyed = true;
856    MainMaterialConfig == FIR_WOOD;
857    MaterialColorB = rgb16(124, 50, 16);
858    NameSingular = "chest of drawers";
859    BitmapPos = 0, 224;
860    SitMessage = "The chest of drawers is very uncomfortable to sit on.";
861    StorageVolume = 50000;
862    HPModifier = 40;
863    AttachedGod = SOPHOS;
864    LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1000; } Times = 1:2; }
865  }
866
867  Config SHELF;
868  {
869    CanBeDestroyed = true;
870    MainMaterialConfig == FIR_WOOD;
871    NameSingular = "shelf";
872    BitmapPos = 16, 128;
873    SitMessage = "The shelf is very uncomfortable to sit on.";
874    StorageVolume = 80000;
875    HPModifier = 20;
876    AttachedGod = ATAVUS;
877    LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; }
878    MaterialColorB = rgb16(200,200,200);
879  }
880}
881
882fountain /* olterrain-> */
883{
884  DigMessage = "The water splashes a bit."; /* Wrong if SecondaryMaterial != WATER. */
885  MainMaterialConfig == MARBLE;
886  SecondaryMaterialConfig == WATER;
887  /* Uses ContainerPostFix() */
888  /* Adjective depends on being dried out or not */
889  NameSingular = "fountain";
890  /* BitmapPos depends on being dried out or not */
891  HasSecondaryMaterial = true;
892}
893
894brokendoor /* olterrain->door-> */
895{
896  DigMessage = "You destroy the broken door.";
897  Adjective = "broken";
898  BitmapPos = 0, 160;
899  CreateLockConfigurations = true;
900
901  Config BARDOOR;
902  {
903    IsAlwaysTransparent = true;
904    BitmapPos = 32,96;
905  }
906
907  Config SECRET_DOOR;
908  {
909    BitmapPos = 16, 160;
910    NameSingular = "door";
911    Adjective = "broken very secret";
912  }
913
914  Config CURTAIN;
915  {
916    DigMessage = "You tear down the curtain.";
917    BitmapPos = 0, 96;
918    Adjective = "torn";
919    NameSingular = "curtain";
920  }
921}
922
923boulder /* olterrain-> */
924{
925  DigMessage = "You smash the boulder to tiny bits.";
926  MainMaterialConfig == GRANITE;
927  NameSingular = "boulder";
928  SitMessage = "The boulder is rather hard to sit on.";
929  CanBeDestroyed = true;
930  IsAbstract = true;
931  HPModifier = 50;
932  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; }
933
934  Config 1;
935  {
936    BitmapPos = 64, 288;
937  }
938
939  Config 2;
940  {
941    BitmapPos = 64, 304;
942  }
943
944  Config 3;
945  {
946    BitmapPos = 64, 304; /* Should be checked */
947    HPModifier = 70;
948    Adjective = "large";
949    IsAlwaysTransparent = false;
950    Walkability = ETHEREAL;
951  }
952
953  Config SNOW_BOULDER;
954  {
955    MaterialColorB = rgb16(220, 220, 220);
956    BitmapPos = 80, 306;
957    Adjective = "snow-covered";
958  }
959}
960
961sign
962{
963  DigMessage = "You smash the sign to tiny bits.";
964  MainMaterialConfig == BALSA_WOOD;
965  MaterialColorB = rgb16(200,200,200);
966  /* Uses own postfix */
967  NameSingular = "sign";
968  BitmapPos = 16, 336;
969  SitMessage = "You feel very weird sitting on the sign.";
970  CanBeDestroyed = true;
971  MaterialColorB = rgb16(48, 48, 48);
972  HPModifier = 10;
973  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:500; } }
974}
975
976earth
977{
978  CanBeDestroyed = true;
979  IsSafeToCreateDoor = true;
980  Walkability = ETHEREAL;
981  IsAlwaysTransparent = false;
982  OKVisualEffects = MIRROR|FLIP|ROTATE;
983  DigMessage = "The ground is fairly easy to dig.";
984  MainMaterialConfig == MORAINE;
985  UsesLongArticle = true;
986  NameSingular = "earth";
987  BitmapPos = 96, 416;
988  HPModifier = 50;
989  BorderTilePriority = 10;
990  UseBorderTiles = true;
991  ShowThingsUnder = false;
992  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; }
993  IsWall = true;
994}
995
996monsterportal
997{
998  DigMessage = "The portal is magically protected from your feeble attack.";
999  MainMaterialConfig == SILVER;
1000  MaterialColorB = rgb16(0, 0, 90);
1001  NameSingular = "magic portal";
1002  AttachedGod = MORTIFER;
1003}
1004
1005coffin /* olterrain->decoration->olterraincontainer */
1006{
1007  Walkability = ANY_MOVE;
1008  DigMessage = "You smash the coffin into pieces. The spirits are not happy.";
1009  CanBeDestroyed = true;
1010  MainMaterialConfig == FIR_WOOD;
1011  NameSingular = "coffin";
1012  BitmapPos = 32, 144;
1013  OpenBitmapPos = 32, 160;
1014  SitMessage = "The coffin is cold to sit on.";
1015  StorageVolume = 100000;
1016  AttachedGod = MORTIFER;
1017  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; }
1018}
1019
1020barwall
1021{
1022  CanBeDestroyed = true;
1023  IsSafeToCreateDoor = true;
1024  Walkability = ETHEREAL;
1025  IsAlwaysTransparent = true;
1026  BorderTilePriority = 100;
1027  CreateWindowConfigurations = false;
1028  MaterialColorC = rgb16(140, 96, 48);
1029  MaterialColorD = rgb16(180, 180, 255);
1030  ShowThingsUnder = true;
1031  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:4; }
1032  IsWall = true;
1033  DigMessage = "You break the bars.";
1034  MainMaterialConfig == IRON;
1035  NameSingular = "bars";
1036  BitmapPos = 16, 112;
1037  HPModifier = 25;
1038  ShowThingsUnder = true;
1039  AttachedGod = LEGIFER;
1040
1041  Config BROKEN_BARWALL;
1042  {
1043    BitmapPos = 32, 112;
1044    Adjective = "broken";
1045    Walkability = ANY_MOVE;
1046  }
1047}
1048
1049ironmaiden
1050{
1051  LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; }
1052  CanBeDestroyed = true;
1053  UsesLongArticle = true;
1054  DigMessage = "The iron maiden falls into pieces.";
1055  SitMessage = "You sit in the iron maiden. This doesn't seem safe at all.";
1056  MainMaterialConfig == IRON;
1057  ShowMaterial = false;
1058  NameSingular = "iron maiden";
1059  HPModifier = 250;
1060}
1061
1062christmastree
1063{
1064  OKVisualEffects = MIRROR;
1065  CanBeDestroyed = true;
1066  DigMessage = "You chop the tree down.";
1067  MainMaterialConfig == SNOW;
1068  ShowMaterial = false;
1069  MaterialColorB = rgb16(32, 100, 32);
1070  MaterialColorC = rgb16(0, 180, 80);
1071  MaterialColorD = rgb16(180, 20, 0);
1072  NameSingular = "fir";
1073  PostFix = "covered with snow";
1074  /* BitmapPos overridden */
1075  HPModifier = 25;
1076  IsAlwaysTransparent = false;
1077  LeftOverItems == stick { MainMaterial = FIR_WOOD { Volume = 500:1500; } Times = 1:4; }
1078}
1079