ScummVM API documentation
u8_intrinsics.h
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 modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (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, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef ULTIMA8_USECODE_U8INTRINSICS_H
23#define ULTIMA8_USECODE_U8INTRINSICS_H
24
25#include "ultima/ultima8/usecode/intrinsics.h"
26
27#include "ultima/ultima8/world/item.h"
28#include "ultima/ultima8/usecode/uc_machine.h"
29#include "ultima/ultima8/world/container.h"
30#include "ultima/ultima8/world/actors/actor.h"
31#include "ultima/ultima8/world/actors/main_actor.h"
32#include "ultima/ultima8/kernel/kernel.h"
33#include "ultima/ultima8/world/camera_process.h"
34#include "ultima/ultima8/ultima8.h"
35#include "ultima/ultima8/world/egg.h"
36#include "ultima/ultima8/world/monster_egg.h"
37#include "ultima/ultima8/world/current_map.h"
38#include "ultima/ultima8/gfx/palette_fader_process.h"
39#include "ultima/ultima8/world/sprite_process.h"
40#include "ultima/ultima8/audio/music_process.h"
41#include "ultima/ultima8/gumps/scroll_gump.h"
42#include "ultima/ultima8/gumps/book_gump.h"
43#include "ultima/ultima8/gumps/readable_gump.h"
44#include "ultima/ultima8/gumps/target_gump.h"
45#include "ultima/ultima8/world/actors/grant_peace_process.h"
46#include "ultima/ultima8/world/fireball_process.h"
47#include "ultima/ultima8/world/actors/heal_process.h"
48#include "ultima/ultima8/gfx/inverter_process.h"
49#include "ultima/ultima8/audio/audio_process.h"
50#include "ultima/ultima8/games/game.h"
51
52namespace Ultima {
53namespace Ultima8 {
54
55// Ultima 8 Intrinsics
56const Intrinsic U8Intrinsics[] = {
57 // 0x000
58 TargetGump::I_target,
59 0, //U
60 Item::I_touch,
61 Item::I_getX,
62 Item::I_getY,
63 Item::I_getZ,
64 Item::I_getCX,
65 Item::I_getCY,
66 Item::I_getCZ,
67 0, //U
68 0, //U
69 0, //U
70 Item::I_getPoint,
71 Item::I_getShape,
72 Item::I_setShape,
73 Item::I_getFrame,
74 // 0x010
75 Item::I_setFrame,
76 Item::I_getQuality,
77 Item::I_getUnkEggType,
78 Item::I_getQuantity,
79 0, //U
80 Item::I_getContainer,
81 Item::I_getRootContainer,
82 0, //U
83 0, //U
84 Item::I_getQ,
85 Item::I_setQ,
86 Item::I_setQuality,
87 0, //U
88 Item::I_setQuantity,
89 Item::I_getFamily,
90 Item::I_getTypeFlag,
91 // 0x020
92 Item::I_getStatus,
93 Item::I_orStatus,
94 Item::I_andStatus,
95 Item::I_getFootpadData,
96 0, //U
97 Item::I_overlaps,
98 Item::I_overlapsXY,
99 Item::I_isOn,
100 0, //U
101 0, //U
102 0, //U
103 Item::I_ascend,
104 Item::I_getWeight,
105 Item::I_getWeightIncludingContents,
106 Item::I_getSurfaceWeight,
107 0, //U
108 // 0x030
109 0, //U
110 Item::I_legalCreateAtCoords,
111 Item::I_create,
112 Item::I_legalCreateAtPoint,
113 Item::I_legalCreateInCont,
114 Item::I_push,
115 Item::I_popToCoords,
116 Item::I_popToContainer,
117 Item::I_pop,
118 Item::I_popToEnd,
119 Item::I_destroy,
120 Container::I_removeContents,
121 Container::I_destroyContents,
122 Item::I_isExplosive,
123 Item::I_move,
124 0, //U
125 // 0x040
126 Item::I_legalMoveToPoint,
127 Item::I_legalMoveToContainer,
128 Actor::I_isNPC,
129 0, //U
130 Item::I_hurl,
131 Item::I_shoot,
132 Item::I_fall,
133 Item::I_grab,
134 0, //U
135 Item::I_bark,
136 Item::I_ask,
137 Item::I_getSliderInput,
138 Item::I_openGump,
139 Item::I_closeGump,
140 0, //U
141 0, //U
142 // 0x050
143 Item::I_getMapArray,
144 0, //U
145 Item::I_setMapArray,
146 Item::I_receiveHit,
147 Item::I_explode,
148 Item::I_canReach,
149 Item::I_getRange,
150 0, //U
151 Item::I_getDirToCoords,
152 Item::I_getDirFromCoords,
153 Item::I_getDirToItem,
154 Item::I_getDirFromItem,
155 Item::I_look,
156 Item::I_use,
157 0, //U
158 0, //U
159 // 0x060
160 0, //U
161 Item::I_gotHit,
162 0, //U
163 0, //U
164 0, //U
165 0, //U
166 0, //U
167 Item::I_enterFastArea,
168 0, //U
169 0, //U
170 0, //U
171 0, //U
172 0, //U
173 Item::I_guardianBark,
174 BookGump::I_readBook,
175 ScrollGump::I_readScroll,
176 // 0x070
177 ReadableGump::I_readGrave,
178 ReadableGump::I_readPlaque,
179 Egg::I_getEggXRange,
180 Egg::I_getEggYRange,
181 Egg::I_setEggXRange,
182 Egg::I_setEggYRange,
183 Egg::I_getEggId,
184 Egg::I_setEggId,
185 0, //U
186 MonsterEgg::I_monsterEggHatch,
187 MonsterEgg::I_getMonId,
188 0, //U
189 0, //U
190 0, //U
191 0, //U
192 0, //U
193 // 0x080
194 Actor::I_isBusy,
195 Actor::I_areEnemiesNear,
196 Actor::I_isInCombat,
197 Actor::I_setInCombat,
198 Actor::I_clrInCombat,
199 Actor::I_setTarget,
200 Actor::I_getTarget,
201 Actor::I_setAlignment,
202 Actor::I_getAlignment,
203 Actor::I_setEnemyAlignment,
204 Actor::I_getEnemyAlignment,
205 Actor::I_isEnemy,
206 Actor::I_isDead,
207 Actor::I_setDead,
208 Actor::I_clrDead,
209 Actor::I_isImmortal,
210 // 0x090
211 Actor::I_setImmortal,
212 Actor::I_clrImmortal,
213 Actor::I_isWithstandDeath,
214 Actor::I_setWithstandDeath,
215 Actor::I_clrWithstandDeath,
216 Actor::I_isFeignDeath,
217 Actor::I_setFeignDeath,
218 Actor::I_clrFeignDeath,
219 0, //U
220 0, //U
221 0, //U
222 0, //U
223 Actor::I_getDir,
224 Actor::I_getMap,
225 Actor::I_teleport,
226 Actor::I_doAnim,
227 // 0x0A0
228 Actor::I_getLastAnimSet,
229 Actor::I_pathfindToPoint,
230 Actor::I_pathfindToItem,
231 Actor::I_getStr,
232 Actor::I_getInt,
233 Actor::I_getDex,
234 Actor::I_getHp,
235 Actor::I_getMana,
236 Actor::I_setStr,
237 Actor::I_setInt,
238 Actor::I_setDex,
239 Actor::I_setHp,
240 Actor::I_setMana,
241 Actor::I_createActor,
242 Actor::I_setActivity,
243 Actor::I_setAirWalkEnabled,
244 // 0x0B0
245 Actor::I_getAirWalkEnabled,
246 Actor::I_schedule,
247 Actor::I_getEquip,
248 Actor::I_setEquip,
249 Ultima8Engine::I_closeItemGumps,
250 CameraProcess::I_scrollTo,
251 UCMachine::I_urandom,
252 UCMachine::I_rndRange,
253 GrantPeaceProcess::I_castGrantPeace,
254 UCMachine::I_numToStr,
255 0, //U
256 MusicProcess::I_playMusic,
257 UCMachine::I_getName, //temp
258 Item::I_igniteChaos,
259 CameraProcess::I_setCenterOn,
260 CameraProcess::I_moveTo,
261 // 0x0C0
262 0, //U
263 0, //U
264 0, //U
265 0, //U
266 0, //U
267 0, //U
268 CameraProcess::I_startQuake,
269 CameraProcess::I_stopQuake,
270 InverterProcess::I_invertScreen,
271 0, //U
272 Kernel::I_getNumProcesses,
273 Kernel::I_resetRef,
274 MainActor::I_teleportToEgg,
275 Kernel::I_resetRef,
276 0, // setRef
277 Ultima8Engine::I_getAvatarInStasis,
278 // 0x0D0
279 Ultima8Engine::I_setAvatarInStasis,
280 Item::I_getEtherealTop,
281 Ultima8Engine::I_getCurrentTimerTick,
282 0, //U (canGetThere)
283 CurrentMap::I_canExistAt,
284 SpriteProcess::I_createSprite,
285 SpriteProcess::I_createSprite,
286 Item::I_getFamilyOfType,
287 Ultima8Engine::I_getTimeInGameHours,
288 Ultima8Engine::I_getTimeInMinutes,
289 Ultima8Engine::I_getTimeInSeconds,
290 Ultima8Engine::I_setTimeInGameHours,
291 0, // U (SetTimeInMinutes)
292 0, // U (SetTimeInSeconds)
293 PaletteFaderProcess::I_fadeToBlack,
294 PaletteFaderProcess::I_fadeFromBlack,
295 // 0x0E0
296 PaletteFaderProcess::I_fadeToPaletteTransform,
297 PaletteFaderProcess::I_lightningBolt,
298 PaletteFaderProcess::I_fadeToWhite,
299 PaletteFaderProcess::I_fadeFromWhite,
300 Game::I_playEndgame,
301 HealProcess::I_feedAvatar,
302 MainActor::I_accumulateStrength,
303 MainActor::I_accumulateIntelligence,
304 MainActor::I_accumulateDexterity,
305 MainActor::I_clrAvatarInCombat,
306 MainActor::I_setAvatarInCombat,
307 MainActor::I_isAvatarInCombat,
308 AudioProcess::I_playSFX, // int16
309 AudioProcess::I_playSFX, // int16 uint8
310 AudioProcess::I_playSFX, // int16 uint16 ObjID
311 AudioProcess::I_playAmbientSFX, // int16 Unused (but implemented)
312 // 0x0F0
313 AudioProcess::I_playAmbientSFX, // int16 uint8 Unused (but implemented)
314 AudioProcess::I_playAmbientSFX, // int16 uint16 ObjID
315 AudioProcess::I_isSFXPlaying,
316 AudioProcess::I_setVolumeSFX,
317 AudioProcess::I_stopSFX, // int16
318 AudioProcess::I_stopSFX, // int16 ObjID
319 0, //U
320 0, //U
321 MusicProcess::I_stopMusic,
322 0, //U
323 0, //U
324 FireballProcess::I_TonysBalls,
325 Ultima8Engine::I_avatarCanCheat,
326 Ultima8Engine::I_makeAvatarACheater,
327 UCMachine::I_true, // isGameRunning
328 0, //U
329 // 0x100
330 0, //U
331 0 //U
332};
333
334} // End of namespace Ultima8
335} // End of namespace Ultima
336
337#endif