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  */
22 
23 #ifndef AGS_PLUGINS_AGS_PAL_RENDER_AGS_PAL_RENDER_H
24 #define AGS_PLUGINS_AGS_PAL_RENDER_AGS_PAL_RENDER_H
25 
26 #include "ags/plugins/ags_plugin.h"
27 #include "ags/plugins/serializer.h"
28 
29 namespace AGS3 {
30 namespace Plugins {
31 namespace AGSPalRender {
32 
33 class AGSPalRender : public PluginBase {
34 	SCRIPT_HASH(AGSPalRender)
35 private:
36 	void syncGame(Serializer &s);
37 public:
AGSPalRender()38 	AGSPalRender() : PluginBase() {}
~AGSPalRender()39 	virtual ~AGSPalRender() {}
40 
41 	const char *AGS_GetPluginName() override;
42 	void AGS_EngineStartup(IAGSEngine *lpEngine) override;
43 	void AGS_EngineShutdown() override;
44 	int64 AGS_EngineOnEvent(int event, NumberPtr data) override;
45 
46 	/**
47 	 * @defgroup PALInternal
48 	 * @{
49 	 */
50 
51 	void LoadCLUT(ScriptMethodParams &params);
52 	void CycleRemap(ScriptMethodParams &params);
53 	void GetColor565(ScriptMethodParams &params);
54 	void GetLuminosityFromPalette(ScriptMethodParams &params);
55 	void AGSFastSin(ScriptMethodParams &params);
56 	void AGSFastCos(ScriptMethodParams &params);
57 	void AGSFastRoot(ScriptMethodParams &params);
58 	void GetRemappedSlot(ScriptMethodParams &params);
59 	void ResetRemapping(ScriptMethodParams &params);
60 	void GetModifiedBackgroundImage(ScriptMethodParams &params);
61 	void WriteObjectivePalette(ScriptMethodParams &params);
62 	void ReadObjectivePaletteR(ScriptMethodParams &params);
63 	void ReadObjectivePaletteB(ScriptMethodParams &params);
64 	void ReadObjectivePaletteG(ScriptMethodParams &params);
65 
66 	/**@}*/
67 
68 	/**
69 	 * @defgroup LensDistort
70 	 * @{
71 	 */
72 
73 	void SetLensPos(ScriptMethodParams &params);
74 	void GetLensX(ScriptMethodParams &params);
75 	void GetLensY(ScriptMethodParams &params);
76 	void SetLensDrawn(ScriptMethodParams &params);
77 	void GetLensDrawn(ScriptMethodParams &params);
78 	void SetLensOffsetClamp(ScriptMethodParams &params);
79 	void GetLensOffsetClamp(ScriptMethodParams &params);
80 	void GetLensLevel(ScriptMethodParams &params);
81 	void SetLensLevel(ScriptMethodParams &params);
82 	void LensInitialize(ScriptMethodParams &params);
83 
84 	/**@}*/
85 
86 	/**
87 	 * @defgroup Translucence
88 	 * @{
89 	 */
90 
91 	void CreateTranslucentOverlay(ScriptMethodParams &params);
92 	void DeleteTranslucentOverlay(ScriptMethodParams &params);
93 	void MoveTranslucentOverlay(ScriptMethodParams &params);
94 	void GetTranslucentOverlayX(ScriptMethodParams &params);
95 	void GetTranslucentOverlayY(ScriptMethodParams &params);
96 	void GetTranslucentOverlaySprite(ScriptMethodParams &params);
97 	void GetTranslucentOverlayLevel(ScriptMethodParams &params);
98 	void GetTranslucentOverlayEnabled(ScriptMethodParams &params);
99 	void GetTranslucentOverlayAlpha(ScriptMethodParams &params);
100 	void SetTranslucentOverlayAlpha(ScriptMethodParams &params);
101 	void SetTranslucentOverlayEnabled(ScriptMethodParams &params);
102 	void DrawTransSprite(ScriptMethodParams &params);
103 
104 	 /**@}*/
105 
106 	/**
107 	 * @defgroup Starfield
108 	 * @{
109 	 */
110 
111 	void GetStarfieldOverscan(ScriptMethodParams &params);
112 	void SetStarfieldOverscan(ScriptMethodParams &params);
113 	void GetStarfieldOriginX(ScriptMethodParams &params);
114 	void GetStarfieldOriginY(ScriptMethodParams &params);
115 	void SetStarfieldDepthMultiplier(ScriptMethodParams &params);
116 	void GetStarfieldDepthMultiplier(ScriptMethodParams &params);
117 	void GetStarfieldMaxStars(ScriptMethodParams &params);
118 	void SetStarSpriteScaleBoost(ScriptMethodParams &params);
119 	void GetStarSpriteScaleBoost(ScriptMethodParams &params);
120 	void SetStarMaxRadius(ScriptMethodParams &params);
121 	void GetStarMaxRadius(ScriptMethodParams &params);
122 	void GetStarX(ScriptMethodParams &params);
123 	void GetStarY(ScriptMethodParams &params);
124 	void GetStarZ(ScriptMethodParams &params);
125 	void SetStarPosition(ScriptMethodParams &params);
126 	void RotateStar(ScriptMethodParams &params);
127 	void SetStarColor(ScriptMethodParams &params);
128 	void GetStarColor(ScriptMethodParams &params);
129 	void SetStarSprite(ScriptMethodParams &params);
130 	void GetStarSprite(ScriptMethodParams &params);
131 	void SetStarSpriteRange(ScriptMethodParams &params);
132 	void InitializeStars(ScriptMethodParams &params);
133 	void IterateStars(ScriptMethodParams &params);
134 	void DrawStars(ScriptMethodParams &params);
135 	void SetStarsOriginPoint(ScriptMethodParams &params);
136 
137 	 /**@}*/
138 
139 	/**
140 	 * @defgroup Plasma
141 	 * @{
142 	 */
143 
144 	void DoFire(ScriptMethodParams &params);
145 	void SetPlasmaType(ScriptMethodParams &params);
146 	void ResetPlasmaSettings(ScriptMethodParams &params);
147 	void DrawPlasma(ScriptMethodParams &params);
148 	void SetPlasmaRootType(ScriptMethodParams &params);
149 	void GetPlasmaRootType(ScriptMethodParams &params);
150 
151 	 /**@}*/
152 
153 	/**
154 	 * @defgroup Reflections
155 	 * @{
156 	 */
157 
158 	void SetReflections(ScriptMethodParams &params);
159 	void IsReflectionsOn(ScriptMethodParams &params);
160 	void SetCharacterReflected(ScriptMethodParams &params);
161 	void GetCharacterReflected(ScriptMethodParams &params);
162 	void SetObjectReflected(ScriptMethodParams &params);
163 	void GetObjectReflected(ScriptMethodParams &params);
164 	void ReplaceCharacterReflectionView(ScriptMethodParams &params);
165 	void SetObjectReflectionIgnoreScaling(ScriptMethodParams &params);
166 
167 	 /**@}*/
168 
169 	/**
170 	 * @defgroup raycast
171 	 * @{
172 	 */
173 
174 	void MakeTextures(ScriptMethodParams &params);
175 	void Raycast_Render(ScriptMethodParams &params);
176 	void MoveForward(ScriptMethodParams &params);
177 	void MoveBackward(ScriptMethodParams &params);
178 	void RotateLeft(ScriptMethodParams &params);
179 	void RotateRight(ScriptMethodParams &params);
180 	void Init_Raycaster(ScriptMethodParams &params);
181 	void QuitCleanup(ScriptMethodParams &params);
182 	void LoadMap(ScriptMethodParams &params);
183 	void Ray_InitSprite(ScriptMethodParams &params);
184 	void Ray_SetPlayerPosition(ScriptMethodParams &params);
185 	void Ray_GetPlayerX(ScriptMethodParams &params);
186 	void Ray_GetPlayerY(ScriptMethodParams &params);
187 	void Ray_GetPlayerAngle(ScriptMethodParams &params);
188 	void Ray_SetPlayerAngle(ScriptMethodParams &params);
189 
190 	void Ray_GetWallHotspot(ScriptMethodParams &params);
191 	void Ray_GetWallTexture(ScriptMethodParams &params);
192 	void Ray_GetWallSolid(ScriptMethodParams &params);
193 	void Ray_GetWallIgnoreLighting(ScriptMethodParams &params);
194 	void Ray_GetWallAlpha(ScriptMethodParams &params);
195 	void Ray_GetWallBlendType(ScriptMethodParams &params);
196 
197 	void Ray_SelectTile(ScriptMethodParams &params);
198 
199 	void Ray_GetHotspotAt(ScriptMethodParams &params);
200 	void Ray_GetObjectAt(ScriptMethodParams &params);
201 
202 	void Ray_DrawTile(ScriptMethodParams &params);
203 	void Ray_DrawOntoTile(ScriptMethodParams &params);
204 	void Ray_SetNoClip(ScriptMethodParams &params);
205 	void Ray_GetNoClip(ScriptMethodParams &params);
206 	void Ray_SetSpriteInteractObj(ScriptMethodParams &params);
207 	void  Ray_GetSpriteInteractObj(ScriptMethodParams &params);
208 	void Ray_SetSpritePosition(ScriptMethodParams &params);
209 	void Ray_SetSpriteVertOffset(ScriptMethodParams &params);
210 	void Ray_GetSpriteVertOffset(ScriptMethodParams &params);
211 	void Ray_GetSpriteX(ScriptMethodParams &params);
212 	void Ray_GetSpriteY(ScriptMethodParams &params);
213 
214 	void Ray_SetWallHotspot(ScriptMethodParams &params);
215 	void Ray_SetWallTextures(ScriptMethodParams &params);
216 	void Ray_SetWallSolid(ScriptMethodParams &params);
217 	void Ray_SetWallIgnoreLighting(ScriptMethodParams &params);
218 	void Ray_SetWallAlpha(ScriptMethodParams &params);
219 	void Ray_SetWallBlendType(ScriptMethodParams &params);
220 
221 	void Ray_GetMoveSpeed(ScriptMethodParams &params);
222 	void Ray_SetMoveSpeed(ScriptMethodParams &params);
223 	void Ray_GetRotSpeed(ScriptMethodParams &params);
224 	void Ray_SetRotSpeed(ScriptMethodParams &params);
225 	void Ray_GetWallAt(ScriptMethodParams &params);
226 	void Ray_GetLightAt(ScriptMethodParams &params);
227 	void Ray_SetLightAt(ScriptMethodParams &params);
228 	void Ray_SetWallAt(ScriptMethodParams &params);
229 	void Ray_GetPlaneY(ScriptMethodParams &params);
230 	void Ray_SetPlaneY(ScriptMethodParams &params);
231 	void Ray_GetDistanceAt(ScriptMethodParams &params);
232 	void Ray_GetSpriteAngle(ScriptMethodParams &params);
233 	void Ray_SetSpriteAngle(ScriptMethodParams &params);
234 	void Ray_SetSpriteView(ScriptMethodParams &params);
235 	void Ray_GetSpriteView(ScriptMethodParams &params);
236 	void Ray_SetSpriteFrame(ScriptMethodParams &params);
237 	void Ray_GetSpriteFrame(ScriptMethodParams &params);
238 
239 	void Ray_GetTileX_At(ScriptMethodParams &params);
240 	void Ray_GetTileY_At(ScriptMethodParams &params);
241 
242 	void Ray_SetSkyBox(ScriptMethodParams &params);
243 	void Ray_GetSkyBox(ScriptMethodParams &params);
244 
245 	void Ray_SetAmbientLight(ScriptMethodParams &params);
246 	void Ray_GetAmbientLight(ScriptMethodParams &params);
247 	void Ray_SetAmbientColor(ScriptMethodParams &params);
248 
249 
250 	void Ray_GetSpriteAlpha(ScriptMethodParams &params);
251 	void Ray_SetSpriteAlpha(ScriptMethodParams &params);
252 	void Ray_GetSpritePic(ScriptMethodParams &params);
253 	void Ray_SetSpritePic(ScriptMethodParams &params);
254 
255 	void Ray_GetSpriteScaleX(ScriptMethodParams &params);
256 	void Ray_SetSpriteScaleX(ScriptMethodParams &params);
257 	void Ray_GetSpriteScaleY(ScriptMethodParams &params);
258 	void Ray_SetSpriteScaleY(ScriptMethodParams &params);
259 
260 	void Ray_SetSpriteBlendType(ScriptMethodParams &params);
261 	void Ray_GetSpriteBlendType(ScriptMethodParams &params);
262 
263 	void Ray_SetFloorAt(ScriptMethodParams &params);
264 	void Ray_SetCeilingAt(ScriptMethodParams &params);
265 	void Ray_GetCeilingAt(ScriptMethodParams &params);
266 	void Ray_GetFloorAt(ScriptMethodParams &params);
267 	void Ray_GetLightingAt(ScriptMethodParams &params);
268 	void Ray_SetLightingAt(ScriptMethodParams &params);
269 	void Ray_GetAmbientWeight(ScriptMethodParams &params);
270 
271 	void Ray_HasSeenTile(ScriptMethodParams &params);
272 
273 	/**@}*/
274 };
275 
276 } // namespace AGSPalRender
277 } // namespace Plugins
278 } // namespace AGS3
279 
280 #endif
281