1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  * System variable handling.
22  */
23 
24 #ifndef TINSEL_SYSVAR_H	// prevent multiple includes
25 #define TINSEL_SYSVAR_H
26 
27 namespace Tinsel {
28 
29 typedef enum {	SV_DEFAULT_INV,
30 
31 		SV_CONV_TOPY,		// Y-offset of Conversation(TOP)
32 		SV_CONV_BOTY,		// Y-offset of Conversation(BOT)
33 		SV_CONV_MINX,		// Minimum distance from side
34 		SV_CONV_MINY,		// Minimum distance from top
35 		SV_CONV_ABOVE_Y,	// Distance above actor
36 		SV_CONV_BELOW_Y,	// Distance below actor
37 
38 		SV_LANGUAGE,
39 		SV_SAMPLE_LANGUAGE,
40 		SV_SUBTITLES,
41 		SV_SAVED_GAME_EXISTS,
42 
43 		SV_CONVERSATIONWAITS,	// } Do they wait for
44 		SV_SPEECHWAITS,		// } scrolls to complete?
45 
46 		SV_ENABLEPOINTTAG,	// Enable PointTag()
47 		SV_ENABLEPRINTCURSOR,	// Enable cursor with PrintCursor()
48 
49 		SV_SCROLL_XTRIGGER,	// }
50 		SV_SCROLL_XDISTANCE,	// }
51 		SV_SCROLL_XSPEED,	// } Scroll parameters!
52 		SV_SCROLL_YTRIGGERTOP,	// }
53 		SV_SCROLL_YTRIGGERBOT,	// }
54 		SV_SCROLL_YDISTANCE,	// }
55 		SV_SCROLL_YSPEED,	// }
56 
57 		SV_SPEECHDELAY,		// Delay 'twixt text/animation and sample
58 		SV_MUSICDIMFACTOR,	// dimVolume = volume - volume/SV_MDF
59 
60 		SV_TAGCOLOR,		// if set, default actor's text color gets poked in here
61 
62 		SV_USER1,
63 		SV_USER2,
64 		SV_USER3,
65 		SV_USER4,
66 		SV_USER5,
67 		SV_USER6,
68 
69 		SV_MinimumXoffset,
70 		SV_MaximumXoffset,
71 		SV_MinimumYoffset,
72 		SV_MaximumYoffset,
73 						// dimVolume = volume - volume/DF
74 		SYS_DefaultFxDimFactor,		// To this at start of scene
75 		SYS_SceneFxDimFactor,		// Alter within scene
76 
77 		SYS_HighlightRGB,
78 		SYS_Platform,			// Hardware platform     **READ ONLY**
79 		SYS_Debug,			// TRUE for debug build/'cheat'**READ ONLY**
80 
81 		ISV_DIVERT_ACTOR,
82 		ISV_NO_BLOCKING,
83 		ISV_GHOST_ACTOR,
84 		ISV_GHOST_BASE,
85 		ISV_GHOST_COLOR,
86 
87 
88 		SV_TOPVALID } SYSVARS;
89 
90 typedef enum {
91 
92 					// Main Menu
93 	SS_LOAD_OPTION,			//
94 	SS_SAVE_OPTION,			//
95 	SS_RESTART_OPTION,		//
96 	SS_SOUND_OPTION,		//
97 	SS_CONTROL_OPTION,		//
98 	SS_SUBTITLES_OPTION,		//
99 	SS_QUIT_OPTION,			//
100 	SS_RESUME_OPTION,		//
101 
102 	SS_LOAD_HEADING,
103 	SS_SAVE_HEADING,
104 	SS_RESTART_HEADING,
105 	SS_QUIT_HEADING,
106 
107 	SS_MVOL_SLIDER,
108 	SS_SVOL_SLIDER,
109 	SS_VVOL_SLIDER,
110 
111 	SS_DCLICK_SLIDER,
112 	SS_DCLICK_TEST,
113 	SS_SWAP_TOGGLE,
114 
115 	SS_TSPEED_SLIDER,
116 	SS_STITLE_TOGGLE,
117 
118 	SS_HOPPER1,			// Hopper scene menu heading
119 
120 	SS_SOUND_HEADING,
121 	SS_CONTROLS_HEADING,
122 	SS_LANGUAGE_SELECT,
123 
124 	SS_MAX_VALID
125 } BOLLOX;
126 
127 void InitSysVars();
128 
129 void SetSysVar(int varId, int newValue);
130 
131 int SysVar(int varId);
132 
133 void SaveSysVars(int *pSv);
134 void RestoreSysVars(int *pSv);
135 
136 void SetSysString(int number, SCNHANDLE hString);
137 
138 SCNHANDLE SysString(int number);
139 
140 bool GetNoBlocking();
141 
142 void SetNoBlocking(bool flag);
143 
144 } // End of namespace Tinsel
145 
146 #endif
147