22#ifndef ULTIMA8_USECODE_REGRETINTRINSICS_H
23#define ULTIMA8_USECODE_REGRETINTRINSICS_H
25#include "ultima/ultima8/audio/audio_process.h"
26#include "ultima/ultima8/audio/music_process.h"
27#include "ultima/ultima8/games/game.h"
28#include "ultima/ultima8/gfx/palette_fader_process.h"
29#include "ultima/ultima8/gumps/computer_gump.h"
30#include "ultima/ultima8/gumps/cru_status_gump.h"
31#include "ultima/ultima8/gumps/keypad_gump.h"
32#include "ultima/ultima8/gumps/movie_gump.h"
33#include "ultima/ultima8/kernel/kernel.h"
34#include "ultima/ultima8/ultima8.h"
35#include "ultima/ultima8/usecode/intrinsics.h"
36#include "ultima/ultima8/usecode/uc_machine.h"
37#include "ultima/ultima8/world/actors/actor.h"
38#include "ultima/ultima8/world/actors/battery_charger_process.h"
39#include "ultima/ultima8/world/actors/cru_healer_process.h"
40#include "ultima/ultima8/world/actors/main_actor.h"
41#include "ultima/ultima8/world/camera_process.h"
42#include "ultima/ultima8/world/current_map.h"
43#include "ultima/ultima8/world/egg.h"
44#include "ultima/ultima8/world/item.h"
45#include "ultima/ultima8/world/sprite_process.h"
46#include "ultima/ultima8/world/world.h"
53const Intrinsic RegretIntrinsics[] = {
54 World::I_getAlertActive,
61 Item::I_isPartlyOnScreen,
64 World::I_gameDifficulty,
71 AudioProcess::I_playSFXCru,
74 UCMachine::I_rndRange,
75 Item::I_legalCreateAtCoords,
77 World::I_getControlledNPCNum,
79 Actor::I_getLastAnimSet,
85 Item::I_getEtherealTop,
91 Item::I_getClosestDirectionInRange,
95 SpriteProcess::I_createSprite,
97 AudioProcess::I_playSFXCru,
100 AudioProcess::I_stopSFXCru,
101 Item::I_isCompletelyOn,
102 Item::I_popToContainer,
105 MainActor::I_getMana,
107 Actor::I_destroyContents,
108 AudioProcess::I_setVolumeForObjectSFX,
109 Item::I_getDirToItem,
110 AudioProcess::I_isSFXPlayingForObject,
111 Item::I_getRangeIfVisible,
112 AudioProcess::I_playSFXCru,
117 MainActor::I_addItemCru,
122 AudioProcess::I_stopSFXCru,
135 Actor::I_getCurrentActivityNo,
137 Actor::I_clrInCombat,
139 Actor::I_setDefaultActivity0,
140 Actor::I_setDefaultActivity1,
141 Actor::I_setDefaultActivity2,
142 Actor::I_setActivity,
143 World::I_setControlledNPCNum,
146 MainActor::I_setMana,
148 Item::I_setUnkEggType,
149 MusicProcess::I_playMusic,
150 Item::I_getSurfaceWeight,
153 Actor::I_getLastAnimSet,
154 Ultima8Engine::I_setAvatarInStasis,
159 Item::I_legalCreateAtPoint,
161 Item::I_legalMoveToPoint,
164 Kernel::I_getNumProcesses,
168 MusicProcess::I_pauseMusic,
169 MovieGump::I_playMovieCutsceneRegret,
170 MusicProcess::I_unpauseMusic,
173 Ultima8Engine::I_setCruStasis,
174 Ultima8Engine::I_clrCruStasis,
175 PaletteFaderProcess::I_jumpToAllGivenColor,
176 PaletteFaderProcess::I_fadeToGamePal,
184 Ultima8Engine::I_getCrusaderTeleporting,
185 Ultima8Engine::I_setCrusaderTeleporting,
186 Ultima8Engine::I_clrCrusaderTeleporting,
188 PaletteFaderProcess::I_fadeToBlack,
190 MainActor::I_clrKeycards,
191 MusicProcess::I_stopMusic,
192 PaletteFaderProcess::I_jumpToAllBlack,
195 MainActor::I_switchMap,
196 MainActor::I_teleportToEgg,
197 PaletteFaderProcess::I_fadeToGamePal,
198 Actor::I_clrImmortal,
199 Actor::I_setActivity,
202 MainActor::I_getMaxEnergy,
203 CameraProcess::I_moveTo,
204 Actor::I_setImmortal,
205 CameraProcess::I_getCameraX,
207 CameraProcess::I_getCameraY,
211 CameraProcess::I_setCenterOn,
212 Item::I_enterFastArea,
216 Ultima8Engine::I_moveKeyDownRecently,
217 MainActor::I_teleportToEgg,
218 Actor::I_createActor,
219 Actor::I_clrInCombat,
220 PaletteFaderProcess::I_jumpToGreyScale,
221 PaletteFaderProcess::I_jumpToNormalPalette,
222 CruStatusGump::I_showStatusGump,
225 Egg::I_getUnkEggType,
231 Actor::I_getLastAnimSet,
233 CurrentMap::I_canExistAt,
245 Item::I_getDirToCoords,
246 MainActor::I_removeItemCru,
251 Item::I_getFootpadData,
253 Actor::I_createActorCru,
254 Actor::I_setActivity,
255 KeypadGump::I_showKeypad,
258 ComputerGump::I_readComputer,
259 UCMachine::I_numToStr,
266 CruHealerProcess::I_create,
271 Item::I_getDirFromTo16,
276 Actor::I_getLastActivityNo,
277 Actor::I_setCombatTactic,
279 CameraProcess::I_getCameraY,
282 Actor::I_getDefaultActivity0,
283 Actor::I_getDefaultActivity1,
284 Actor::I_getDefaultActivity2,
285 Actor::I_getLastAnimSet,
323 BatteryChargerProcess::I_create,
329 Actor::I_setActivity,
331 Actor::I_getLastAnimSet,
344 MainActor::I_hasKeycard,
347 Actor::I_clrImmortal,
348 UCMachine::I_numToStr,
350 Actor::I_setActivity,
355 Item::I_isCrusTypeNPC,
358 Item::I_avatarStoleSomething,
378 Item::I_fireDistance,
382 CameraProcess::I_getCameraY,
383 CameraProcess::I_getCameraZ,
384 CruStatusGump::I_hideStatusGump,
385 Actor::I_clrInCombat,
392 AudioProcess::I_playSFX,
394 AudioProcess::I_isSFXPlaying,
395 World::I_clrAlertActive,
396 PaletteFaderProcess::I_fadeToGivenColor,
400 PaletteFaderProcess::I_jumpToAllWhite,
401 Item::I_getFamilyOfType,
405 Ultima8Engine::I_getCurrentTimerTick,
406 World::I_setAlertActive,
407 Ultima8Engine::I_getAvatarInStasis,
408 MainActor::I_addItemCru,
411 Actor::I_clrInCombat,
412 PaletteFaderProcess::I_jumpToAllGivenColor,
414 UCMachine::I_numToStr,
416 UCMachine::I_numToStr,
422 UCMachine::I_numToStr,
433const Intrinsic RegretDemoIntrinsics[] = {
434 World::I_getAlertActive,
441 Item::I_isPartlyOnScreen,
444 World::I_gameDifficulty,
451 AudioProcess::I_playSFXCru,
454 UCMachine::I_rndRange,
455 Item::I_legalCreateAtCoords,
457 World::I_getControlledNPCNum,
459 Actor::I_getLastAnimSet,
465 Item::I_getEtherealTop,
471 Item::I_getClosestDirectionInRange,
475 SpriteProcess::I_createSprite,
477 AudioProcess::I_playSFXCru,
480 AudioProcess::I_stopSFXCru,
481 Item::I_isCompletelyOn,
482 Item::I_popToContainer,
485 MainActor::I_getMana,
487 Actor::I_destroyContents,
488 AudioProcess::I_setVolumeForObjectSFX,
489 Item::I_getDirToItem,
490 AudioProcess::I_isSFXPlayingForObject,
493 AudioProcess::I_stopSFXCru,
495 Item::I_getRangeIfVisible,
496 AudioProcess::I_playSFXCru,
500 MainActor::I_addItemCru,
506 Item::I_legalMoveToPoint,
521 Actor::I_getCurrentActivityNo,
523 Actor::I_clrInCombat,
524 Actor::I_setDefaultActivity0,
525 Actor::I_setDefaultActivity1,
526 Actor::I_setDefaultActivity2,
527 Actor::I_setActivity,
528 World::I_setControlledNPCNum,
531 MainActor::I_setMana,
533 Item::I_setUnkEggType,
534 MusicProcess::I_playMusic,
536 Item::I_getSurfaceWeight,
539 Actor::I_getLastAnimSet,
540 Ultima8Engine::I_setAvatarInStasis,
544 Item::I_legalCreateAtPoint,
546 Kernel::I_getNumProcesses,
551 CruStatusGump::I_hideStatusGump,
554 ComputerGump::I_readComputer,
555 MovieGump::I_playMovieCutsceneRegret,
557 MusicProcess::I_pauseMusic,
558 MusicProcess::I_unpauseMusic,
560 Ultima8Engine::I_setCruStasis,
561 Ultima8Engine::I_clrCruStasis,
562 PaletteFaderProcess::I_jumpToAllGivenColor,
563 PaletteFaderProcess::I_fadeToGamePal,
572 Ultima8Engine::I_getCrusaderTeleporting,
573 Ultima8Engine::I_setCrusaderTeleporting,
574 Ultima8Engine::I_clrCrusaderTeleporting,
575 PaletteFaderProcess::I_fadeToBlack,
576 MainActor::I_clrKeycards,
577 MusicProcess::I_pauseMusic,
578 PaletteFaderProcess::I_jumpToAllBlack,
581 Game::I_playDemoScreen,
582 MainActor::I_teleportToEgg,
583 PaletteFaderProcess::I_fadeToGamePal,
584 Actor::I_clrImmortal,
585 Actor::I_setActivity,
589 MainActor::I_getMaxEnergy,
590 CameraProcess::I_moveTo,
591 Actor::I_setImmortal,
592 CameraProcess::I_getCameraX,
593 CameraProcess::I_getCameraY,
597 CameraProcess::I_setCenterOn,
598 Item::I_enterFastArea,
602 Ultima8Engine::I_moveKeyDownRecently,
604 MainActor::I_teleportToEgg,
605 Actor::I_createActor,
606 Actor::I_clrInCombat,
607 PaletteFaderProcess::I_jumpToGreyScale,
608 PaletteFaderProcess::I_jumpToNormalPalette,
609 CruStatusGump::I_showStatusGump,
611 AudioProcess::I_playSFX,
612 AudioProcess::I_isSFXPlaying,
613 Item::I_getDirFromTo16,
615 Egg::I_getUnkEggType,
621 World::I_clrAlertActive,
622 PaletteFaderProcess::I_fadeToGivenColor,
625 PaletteFaderProcess::I_jumpToAllWhite,
627 Item::I_getFamilyOfType,
631 Item::I_avatarStoleSomething,
633 Ultima8Engine::I_getCurrentTimerTick,
634 World::I_setAlertActive,
635 Ultima8Engine::I_getAvatarInStasis,
636 MainActor::I_addItemCru,
638 Actor::I_getLastAnimSet,
640 CurrentMap::I_canExistAt,
650 Item::I_getDirToCoords,
651 MainActor::I_removeItemCru,
656 Item::I_getFootpadData,
658 Actor::I_createActorCru,
659 Actor::I_setActivity,
660 KeypadGump::I_showKeypad,
662 UCMachine::I_numToStr,
670 CruHealerProcess::I_create,
679 Actor::I_getLastActivityNo,
680 Actor::I_setCombatTactic,
682 CameraProcess::I_getCameraY,
685 Actor::I_getDefaultActivity0,
686 Actor::I_getDefaultActivity1,
687 Actor::I_getDefaultActivity2,
689 Actor::I_getLastAnimSet,
726 BatteryChargerProcess::I_create,
731 Actor::I_setActivity,
733 Actor::I_getLastAnimSet,
746 MainActor::I_hasKeycard,
749 Actor::I_clrImmortal,
750 UCMachine::I_numToStr,
752 Actor::I_setActivity,
761 Item::I_isCrusTypeNPC,
781 Item::I_fireDistance,
785 CameraProcess::I_getCameraY,
786 CameraProcess::I_getCameraZ,
787 Actor::I_clrInCombat,
806const Intrinsic RegretDeIntrinsics[] = {
808 World::I_getAlertActive,
815 Item::I_isPartlyOnScreen,
818 World::I_gameDifficulty,
825 AudioProcess::I_playSFXCru,
828 UCMachine::I_rndRange,
829 Item::I_legalCreateAtCoords,
831 World::I_getControlledNPCNum,
833 Actor::I_getLastAnimSet,
839 Item::I_getEtherealTop,
845 Item::I_getClosestDirectionInRange,
849 SpriteProcess::I_createSprite,
851 AudioProcess::I_playSFXCru,
854 AudioProcess::I_stopSFXCru,
855 Item::I_isCompletelyOn,
856 Item::I_popToContainer,
859 MainActor::I_getMana,
861 Actor::I_destroyContents,
862 AudioProcess::I_setVolumeForObjectSFX,
863 Item::I_getDirToItem,
864 AudioProcess::I_isSFXPlayingForObject,
865 Item::I_getRangeIfVisible,
866 AudioProcess::I_playSFXCru,
871 MainActor::I_addItemCru,
876 AudioProcess::I_stopSFXCru,
889 Actor::I_getCurrentActivityNo,
891 Actor::I_clrInCombat,
893 Actor::I_setDefaultActivity0,
894 Actor::I_setDefaultActivity1,
895 Actor::I_setDefaultActivity2,
896 Actor::I_setActivity,
897 World::I_setControlledNPCNum,
900 MainActor::I_setMana,
902 Item::I_setUnkEggType,
903 MusicProcess::I_playMusic,
904 Item::I_getSurfaceWeight,
907 Actor::I_getLastAnimSet,
908 Ultima8Engine::I_setAvatarInStasis,
913 Item::I_legalCreateAtPoint,
915 Item::I_legalMoveToPoint,
918 Kernel::I_getNumProcesses,
922 MusicProcess::I_pauseMusic,
923 MovieGump::I_playMovieCutsceneRegret,
924 MusicProcess::I_unpauseMusic,
927 Ultima8Engine::I_setCruStasis,
928 Ultima8Engine::I_clrCruStasis,
929 PaletteFaderProcess::I_jumpToAllGivenColor,
930 PaletteFaderProcess::I_fadeToGamePal,
938 Ultima8Engine::I_getCrusaderTeleporting,
939 Ultima8Engine::I_setCrusaderTeleporting,
940 Ultima8Engine::I_clrCrusaderTeleporting,
942 PaletteFaderProcess::I_fadeToBlack,
944 MainActor::I_clrKeycards,
945 MusicProcess::I_stopMusic,
946 PaletteFaderProcess::I_jumpToAllBlack,
949 MainActor::I_switchMap,
950 MainActor::I_teleportToEgg,
951 PaletteFaderProcess::I_fadeToGamePal,
952 Actor::I_clrImmortal,
953 Actor::I_setActivity,
956 MainActor::I_getMaxEnergy,
957 CameraProcess::I_moveTo,
958 Actor::I_setImmortal,
959 CameraProcess::I_getCameraX,
961 CameraProcess::I_getCameraY,
965 CameraProcess::I_setCenterOn,
966 Item::I_enterFastArea,
970 Ultima8Engine::I_moveKeyDownRecently,
971 MainActor::I_teleportToEgg,
972 Actor::I_createActor,
973 Actor::I_clrInCombat,
974 PaletteFaderProcess::I_jumpToGreyScale,
975 PaletteFaderProcess::I_jumpToNormalPalette,
976 CruStatusGump::I_showStatusGump,
979 Egg::I_getUnkEggType,
985 Actor::I_getLastAnimSet,
987 CurrentMap::I_canExistAt,
999 Item::I_getDirToCoords,
1000 MainActor::I_removeItemCru,
1005 Item::I_getFootpadData,
1007 Actor::I_createActorCru,
1008 Actor::I_setActivity,
1009 KeypadGump::I_showKeypad,
1012 ComputerGump::I_readComputer,
1013 UCMachine::I_numToStr,
1020 CruHealerProcess::I_create,
1025 Item::I_getDirFromTo16,
1029 Actor::I_isInCombat,
1030 Actor::I_getLastActivityNo,
1031 Actor::I_setCombatTactic,
1033 CameraProcess::I_getCameraY,
1036 Actor::I_getDefaultActivity0,
1037 Actor::I_getDefaultActivity1,
1038 Actor::I_getDefaultActivity2,
1039 Actor::I_getLastAnimSet,
1044 Actor::I_setUnkByte,
1077 BatteryChargerProcess::I_create,
1083 Actor::I_setActivity,
1085 Actor::I_getLastAnimSet,
1098 MainActor::I_hasKeycard,
1101 Actor::I_clrImmortal,
1102 UCMachine::I_numToStr,
1104 Actor::I_setActivity,
1109 Item::I_isCrusTypeNPC,
1112 Item::I_avatarStoleSomething,
1132 Item::I_fireDistance,
1136 CameraProcess::I_getCameraY,
1137 CameraProcess::I_getCameraZ,
1138 CruStatusGump::I_hideStatusGump,
1139 Actor::I_clrInCombat,
1140 Item::I_getTypeFlag,
1146 UCMachine::I_numToStr,
1148 AudioProcess::I_playSFX,
1149 AudioProcess::I_isSFXPlaying,
1150 World::I_clrAlertActive ,
1151 PaletteFaderProcess::I_fadeToGivenColor,
1154 Game::I_playCredits,
1155 PaletteFaderProcess::I_jumpToAllWhite,
1156 Item::I_getFamilyOfType,
1160 Ultima8Engine::I_getCurrentTimerTick,
1161 World::I_setAlertActive,
1162 Ultima8Engine::I_getAvatarInStasis,
1163 MainActor::I_addItemCru,
1165 Egg::I_getEggXRange,
1166 Actor::I_clrInCombat,
1167 PaletteFaderProcess::I_jumpToAllGivenColor,
1170 UCMachine::I_numToStr,
1176 UCMachine::I_numToStr,