ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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 
52 namespace Ultima {
53 namespace Ultima8 {
54 
55 // Ultima 8 Intrinsics
56 const 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
Definition: detection.h:27