1 //=============================================================================
2 //
3 // Adventure Game Studio (AGS)
4 //
5 // Copyright (C) 1999-2011 Chris Jones and 2011-20xx others
6 // The full list of copyright holders can be found in the Copyright.txt
7 // file, which is part of this source code distribution.
8 //
9 // The AGS source code is provided under the Artistic License 2.0.
10 // A copy of this license can be found in the file License.txt and at
11 // http://www.opensource.org/licenses/artistic-license-2.0.php
12 //
13 //=============================================================================
14 
15 #ifndef __AC_DEFINES_H
16 #define __AC_DEFINES_H
17 
18 #define EXIT_NORMAL 91
19 #define EXIT_CRASH  92
20 
21 #define MAX_INIT_SPR  40
22 #define MAX_OBJ       16  // max walk-behinds
23 #define NUM_MISC      20
24 #define MAXMESS       100
25 #define NUMOTCON      7                 // number of conditions before standing on
26 #define NUM_CONDIT    (120 + NUMOTCON)
27 #define MAX_HOTSPOTS  50   // v2.62 increased from 20 to 30; v2.8 to 50
28 #define MAX_REGIONS   16
29 
30 // careful with this - the shadinginfo[] array needs to be
31 // MAX_WALK_AREAS + 1 if this gets changed
32 #define MAX_WALK_AREAS 15
33 
34 #define MAX_SCRIPT_NAME_LEN 20
35 
36 //const int MISC_COND = MAX_OBJ * 4 + NUMOTCON + MAX_INIT_SPR * 4;
37 
38 // NUMCONDIT : whataction[0]:  Char walks off left
39 //                       [1]:  Char walks off right
40 //                       [2]:  Char walks off bottom
41 //                       [3]:  Char walks off top
42 //			 [4]:  First enters screen
43 //                       [5]:  Every time enters screen
44 //                       [6]:  execute every loop
45 //                [5]...[19]:  Char stands on lookat type
46 //               [20]...[35]:  Look at type
47 //               [36]...[49]:  Action on type
48 //               [50]...[65]:  Use inv on type
49 //               [66]...[75]:  Look at object
50 //               [76]...[85]:  Action on object
51 //               [86]...[95]:  Speak to object
52 //		[96]...[105]:  Use inv on object
53 //             [106]...[124]:  Misc conditions 1-20
54 
55 // game ver     whataction[]=
56 // v1.00              0  :  Go to screen
57 //                    1  :  Don't do anything
58 //                    2  :  Can't walk
59 //                    3  :  Man dies
60 //                    4  :  Run animation
61 //                    5  :  Display message
62 //                    6  :  Remove an object (set object.on=0)
63 //		                7  :  Remove object & add Val2 to inventory
64 //                    8  :  Add Val1 to inventory (Val2=num times)
65 //                    9  :  Run a script
66 // v1.00 SR-1        10  :  Run graphical script
67 // v1.1              11  :  Play sound effect SOUND%d.WAV
68 // v1.12             12  :  Play FLI/FLC animation FLIC%d.FLC or FLIC%d.FLI
69 //                   13  :  Turn object on
70 // v2.00             14  :  Run conversation
71 #define NUMRESPONSE   14
72 #define NUMCOMMANDS   15
73 #define GO_TO_SCREEN  0
74 #define NO_ACTION     1
75 #define NO_WALK       2
76 #define MAN_DIES      3
77 #define RUN_ANIMATE   4
78 #define SHOW_MESSAGE  5
79 #define OBJECT_OFF    6
80 #define OBJECT_INV    7
81 #define ADD_INV       8
82 #define RUNSCRIPT     9
83 #define GRAPHSCRIPT   10
84 #define PLAY_SOUND    11
85 #define PLAY_FLI      12
86 #define OBJECT_ON     13
87 #define RUN_DIALOG    14
88 
89 
90 #define MAX_ROOMS 300
91 
92 #define MAXANIMS      10
93 #define MAX_FLAGS     15
94 #define LEGACY_MAXOBJNAMELEN 30
95 #define MAX_BSCENE    5   // max number of frames in animating bg scene
96 
97 #define MAX_SPRITES         30000
98 #define MAX_CURSOR          20
99 
100 #ifndef int32
101 #define int32 int
102 #endif
103 
104 #ifdef WINDOWS_VERSION
105 #define AGS_INLINE inline
106 #else
107 // the linux compiler won't allow extern inline
108 #define AGS_INLINE
109 #endif
110 
111 // object flags (currently only a char)
112 #define OBJF_NOINTERACT        1  // not clickable
113 #define OBJF_NOWALKBEHINDS     2  // ignore walk-behinds
114 #define OBJF_HASTINT           4  // the tint_* members are valid
115 #define OBJF_USEREGIONTINTS    8  // obey region tints/light areas
116 #define OBJF_USEROOMSCALING 0x10  // obey room scaling areas
117 #define OBJF_SOLID          0x20  // blocks characters from moving
118 #define OBJF_LOCKED         0x40  // object position is locked in the editor
119 #define OBJF_HASLIGHT       0x80  // the tint_light is valid and treated as brightness
120 
121 #endif // __AC_DEFINES_H
122