0
|
1 #pragma once
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6 /* 321 */
|
|
7 enum DECORATION_FLAGS
|
|
8 {
|
|
9 DECORATION_MOVE_THROUGH = 0x1,
|
|
10 DECORATION_DONT_DRAW = 0x2,
|
|
11 DECORATION_FLICKER_SLOW = 0x4,
|
|
12 DECORATION_FICKER_AVERAGE = 0x8,
|
|
13 DECORATION_FICKER_FAST = 0x10,
|
|
14 DECORATION_MARKER = 0x20,
|
|
15 DECORATION_SLOW_LOOP = 0x40,
|
|
16 DECORATION_EMITS_FIRE = 0x80,
|
|
17 DECORATION_SOUND_ON_DAWN = 0x100,
|
|
18 DECORATION_SOUND_ON_DUSK = 0x200,
|
|
19 DECORATION_EMITS_SMOKE = 0x400,
|
|
20 };
|
|
21
|
|
22
|
|
23
|
|
24 /* 54 */
|
|
25 #pragma pack(push, 1)
|
|
26 struct DecorationDesc
|
|
27 {
|
380
|
28 inline bool CanMoveThrough() {return uFlags & DECORATION_MOVE_THROUGH;}
|
|
29 inline bool DontDraw() {return uFlags & DECORATION_DONT_DRAW;}
|
|
30 inline bool SoundOnDawn() {return uFlags & DECORATION_SOUND_ON_DAWN;}
|
|
31 inline bool SoundOnDusk() {return uFlags & DECORATION_SOUND_ON_DUSK;}
|
379
|
32
|
0
|
33 char pName[32];
|
|
34 char field_20[32];
|
|
35 __int16 uType;
|
|
36 unsigned __int16 uDecorationHeight;
|
|
37 __int16 uRadius;
|
|
38 __int16 uLightRadius;
|
|
39 unsigned __int16 uSpriteID;
|
|
40 __int16 uFlags;
|
|
41 __int16 uSoundID;
|
|
42 __int16 _pad;
|
|
43 unsigned __int8 uColoredLightRed;
|
|
44 unsigned __int8 uColoredLightGreen;
|
|
45 unsigned __int8 uColoredLightBlue;
|
|
46 char __padding;
|
|
47 };
|
|
48 #pragma pack(pop)
|
|
49
|
|
50 /* 55 */
|
|
51 #pragma pack(push, 1)
|
|
52 struct DecorationList
|
|
53 {
|
|
54 inline DecorationList(): //----- (00458380)
|
|
55 pDecorations(nullptr), uNumDecorations(0)
|
|
56 {}
|
|
57
|
|
58 void ToFile();
|
|
59 void FromFile(void *pSerialized);
|
|
60 bool FromFileTxt(const char *Args);
|
|
61 void InitializeDecorationSprite(unsigned int uDecID);
|
|
62 unsigned __int16 GetDecorIdByName(const char *pName);
|
|
63
|
|
64 unsigned int uNumDecorations;
|
|
65 struct DecorationDesc *pDecorations;
|
|
66 };
|
|
67 #pragma pack(pop)
|
|
68
|
|
69
|
|
70 extern struct DecorationList *pDecorationList; |