siintrinsics.h

Go to the documentation of this file.
00001 /*
00002  *  Siintrinsics.h - Intrinsic table for Serpent Isle.
00003  *
00004  *  Note: This is used in the virtual machine and the Usecode compiler.
00005  *
00006  *  Copyright (C) 2001  The Exult Team
00007  *
00008  *  This program is free software; you can redistribute it and/or modify
00009  *  it under the terms of the GNU General Public License as published by
00010  *  the Free Software Foundation; either version 2 of the License, or
00011  *  (at your option) any later version.
00012  *
00013  *  This program is distributed in the hope that it will be useful,
00014  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  *  GNU General Public License for more details.
00017  *
00018  *  You should have received a copy of the GNU General Public License
00019  *  along with this program; if not, write to the Free Software
00020  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00021  */
00022 
00023   USECODE_INTRINSIC_PTR(get_random),      // 0
00024   USECODE_INTRINSIC_PTR(execute_usecode_array),   // 1
00025   USECODE_INTRINSIC_PTR(delayed_execute_usecode_array), // 2
00026 
00027   USECODE_INTRINSIC_PTR(show_npc_face), // Guess  // 3
00028   USECODE_INTRINSIC_PTR(remove_npc_face), // Guess  // 4
00029   
00030   USECODE_INTRINSIC_PTR(show_npc_face0),      // 5
00031   USECODE_INTRINSIC_PTR(show_npc_face1),      // 6
00032 
00033   USECODE_INTRINSIC_PTR(remove_npc_face0), // Guess!  // 7
00034   USECODE_INTRINSIC_PTR(remove_npc_face1),    // 8
00035   USECODE_INTRINSIC_PTR(set_conversation_slot),   // 9
00036   USECODE_INTRINSIC_PTR(UNKNOWN),   // UNUSED // 0xa
00037   USECODE_INTRINSIC_PTR(UNKNOWN),   // UNUSED // 0xb
00038 
00039   USECODE_INTRINSIC_PTR(add_answer),      // 0xc
00040   USECODE_INTRINSIC_PTR(remove_answer),     // 0xd
00041   USECODE_INTRINSIC_PTR(push_answers),      // 0xe
00042   USECODE_INTRINSIC_PTR(pop_answers),     // 0xf
00043   USECODE_INTRINSIC_PTR(clear_answers),     // 0x10
00044 
00045   USECODE_INTRINSIC_PTR(select_from_menu),    // 0x11
00046   USECODE_INTRINSIC_PTR(select_from_menu2),   // 0x12
00047   USECODE_INTRINSIC_PTR(input_numeric_value),   // 0x13
00048 
00049   USECODE_INTRINSIC_PTR(set_item_shape),      // 0x14
00050 
00051   USECODE_INTRINSIC_PTR(find_nearest),      // 0x15
00052   USECODE_INTRINSIC_PTR(play_sound_effect),   // 0x16
00053   
00054   USECODE_INTRINSIC_PTR(die_roll),      // 0x17
00055   USECODE_INTRINSIC_PTR(get_item_shape),      // 0x18
00056   
00057   USECODE_INTRINSIC_PTR(get_item_usability),    // 0x19
00058   USECODE_INTRINSIC_PTR(get_item_frame),      // 0x1a
00059   USECODE_INTRINSIC_PTR(set_item_frame),      // 0x1b
00060   USECODE_INTRINSIC_PTR(get_item_quality),    // 0x1c
00061   USECODE_INTRINSIC_PTR(set_item_quality),    // 0x1d
00062   USECODE_INTRINSIC_PTR(get_item_quantity),   // 0x1e
00063   USECODE_INTRINSIC_PTR(set_item_quantity),   // 0x1f
00064   
00065   USECODE_INTRINSIC_PTR(get_object_position),   // 0x20
00066   USECODE_INTRINSIC_PTR(get_distance),      // 0x21
00067   USECODE_INTRINSIC_PTR(find_direction),      // 0x22
00068   USECODE_INTRINSIC_PTR(get_npc_object),      // 0x23
00069   USECODE_INTRINSIC_PTR(get_schedule_type),   // 0x24
00070   USECODE_INTRINSIC_PTR(set_schedule_type),   // 0x25
00071   USECODE_INTRINSIC_PTR(add_to_party),      // 0x26
00072   USECODE_INTRINSIC_PTR(remove_from_party),   // 0x27
00073   
00074   USECODE_INTRINSIC_PTR(get_npc_prop),      // 0x28
00075   USECODE_INTRINSIC_PTR(set_npc_prop),      // 0x29
00076   USECODE_INTRINSIC_PTR(get_avatar_ref),      // 0x2a
00077   USECODE_INTRINSIC_PTR(get_party_list),      // 0x2b
00078   
00079   USECODE_INTRINSIC_PTR(create_new_object),   // 0x2c - Known
00080   USECODE_INTRINSIC_PTR(create_new_object2),    // 0x2d
00081 
00082   USECODE_INTRINSIC_PTR(set_last_created),    // 0x2e 
00083   USECODE_INTRINSIC_PTR(update_last_created),   // 0x2f - Known
00084   USECODE_INTRINSIC_PTR(get_npc_name),      // 0x30
00085   USECODE_INTRINSIC_PTR(count_objects),     // 0x31
00086   USECODE_INTRINSIC_PTR(find_object),     // 0x32
00087   USECODE_INTRINSIC_PTR(get_cont_items),      // 0x33 - Appears correct
00088   USECODE_INTRINSIC_PTR(remove_party_items),    // 0x34
00089   USECODE_INTRINSIC_PTR(add_party_items),     // 0x35
00090   USECODE_INTRINSIC_PTR(add_cont_items),      // 0x36
00091 
00092   USECODE_INTRINSIC_PTR(remove_cont_items),   // 0x37 - SI Only ???
00093   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x38 - Si Only
00094   USECODE_INTRINSIC_PTR(play_music),      // 0x39 - Known
00095   USECODE_INTRINSIC_PTR(npc_nearby),      // 0x3a
00096   USECODE_INTRINSIC_PTR(npc_nearby2),     // 0x3b Guess.
00097   USECODE_INTRINSIC_PTR(find_nearby_avatar),    // 0x3c
00098 
00099   USECODE_INTRINSIC_PTR(is_npc),        // 0x3d - Known
00100   USECODE_INTRINSIC_PTR(display_runes),     // 0x3e
00101   USECODE_INTRINSIC_PTR(click_on_item),     // 0x3f
00102   
00103   USECODE_INTRINSIC_PTR(error_message),     // 0x40 - Error Message
00104 
00105   USECODE_INTRINSIC_PTR(find_nearby),     // 0x41 - Known
00106   
00107   // Yes, these both seem to be 'give_last_created':
00108   USECODE_INTRINSIC_PTR(give_last_created),   // 0x42
00109   USECODE_INTRINSIC_PTR(give_last_created),   // 0x43
00110 
00111   USECODE_INTRINSIC_PTR(is_dead),       // 0x44
00112 
00113   USECODE_INTRINSIC_PTR(game_hour),     // 0x45 - Correct
00114   USECODE_INTRINSIC_PTR(game_minute),     // 0x46 - Correct
00115 
00116   USECODE_INTRINSIC_PTR(get_npc_number),      // 0x47 - Guess
00117 
00118   USECODE_INTRINSIC_PTR(part_of_day),     // 0x48
00119   USECODE_INTRINSIC_PTR(get_alignment),     // 0x49
00120   USECODE_INTRINSIC_PTR(set_alignment),     // 0x4a
00121   USECODE_INTRINSIC_PTR(move_object),     // 0x4b
00122   USECODE_INTRINSIC_PTR(remove_npc),      // 0x4c
00123 
00124   
00125   USECODE_INTRINSIC_PTR(item_say),      // 0x4d
00126   USECODE_INTRINSIC_PTR(clear_item_say),      // 0x4e
00127 
00128   USECODE_INTRINSIC_PTR(projectile_effect),   // 0x4f
00129   USECODE_INTRINSIC_PTR(get_lift),      // 0x50
00130   USECODE_INTRINSIC_PTR(set_lift),      // 0x51
00131 
00132   USECODE_INTRINSIC_PTR(get_weather),     // 0x52
00133   USECODE_INTRINSIC_PTR(set_weather),     // 0x53
00134 
00135   USECODE_INTRINSIC_PTR(sit_down),      // 0x54 - Known (is it???)
00136 
00137   // Packing
00138   USECODE_INTRINSIC_PTR(summon),        // 0x55
00139   USECODE_INTRINSIC_PTR(si_display_map),      // 0x56
00140   USECODE_INTRINSIC_PTR(kill_npc),      // 0x57
00141   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x58
00142   USECODE_INTRINSIC_PTR(set_attack_mode),     // 0x59 
00143   USECODE_INTRINSIC_PTR(get_attack_mode),     // 0x5a
00144   USECODE_INTRINSIC_PTR(set_opponent),      // 0x5b
00145   // End pack
00146 
00147 
00148   USECODE_INTRINSIC_PTR(get_oppressor),     // 0x5c
00149   USECODE_INTRINSIC_PTR(get_weapon),      // 0x5d
00150   USECODE_INTRINSIC_PTR(set_oppressor), // Guess  // 0x5e
00151   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x5f UNUSED
00152   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x60 UNUSED
00153   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x61 UNUSED
00154   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x62 UNUSED
00155   USECODE_INTRINSIC_PTR(resurrect), // Guess  // 0x63
00156   USECODE_INTRINSIC_PTR(UNKNOWN),     // 0x64
00157   USECODE_INTRINSIC_PTR(get_body_npc),      // 0x65
00158   USECODE_INTRINSIC_PTR(add_spell),     // 0x66
00159   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x67 Remove all spells????
00160   USECODE_INTRINSIC_PTR(sprite_effect),     // 0x68
00161   USECODE_INTRINSIC_PTR(explode),       // 0x69 
00162 
00163 
00164   USECODE_INTRINSIC_PTR(book_mode),     // 0x6a - Known
00165   
00166   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x6b
00167   USECODE_INTRINSIC_PTR(cause_light),     // 0x6c
00168   USECODE_INTRINSIC_PTR(get_barge),     // 0x6d
00169   USECODE_INTRINSIC_PTR(earthquake),      // 0x6e
00170   USECODE_INTRINSIC_PTR(is_pc_female),      // 0x6f - Known
00171   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x70 UNUSED
00172   USECODE_INTRINSIC_PTR(halt_scheduled),      // 0x71
00173   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x72  +++++CauseBlackout (ucdump.c)
00174   USECODE_INTRINSIC_PTR(get_array_size),      // 0x73
00175   
00176   USECODE_INTRINSIC_PTR(save_pos),      // 0x74
00177   USECODE_INTRINSIC_PTR(teleport_to_saved_pos),   // 0x75
00178   USECODE_INTRINSIC_PTR(apply_damage),      // 0x76
00179   USECODE_INTRINSIC_PTR(is_pc_inside),      // 0x77
00180   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x78 UNUSED
00181   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x79 UNUSED
00182   USECODE_INTRINSIC_PTR(get_timer),     // 0x7a
00183   USECODE_INTRINSIC_PTR(set_timer),     // 0x7b
00184   USECODE_INTRINSIC_PTR(wearing_fellowship),    // 0x7c
00185   USECODE_INTRINSIC_PTR(mouse_exists),      // 0x7d
00186   USECODE_INTRINSIC_PTR(get_speech_track),    // 0x7e
00187   USECODE_INTRINSIC_PTR(flash_mouse),     // 0x7f
00188   USECODE_INTRINSIC_PTR(get_item_frame_rot),    // 0x80 Guess
00189   USECODE_INTRINSIC_PTR(set_item_frame_rot),    // 0x81 Guess
00190   USECODE_INTRINSIC_PTR(on_barge),      // 0x82 Guess
00191   USECODE_INTRINSIC_PTR(get_container),     // 0x83
00192 
00193 
00194 
00195   USECODE_INTRINSIC_PTR(remove_item),     // 0x84 - Known
00196 
00197   USECODE_INTRINSIC_PTR(init_conversation),   // 0x85 Guess
00198   USECODE_INTRINSIC_PTR(end_conversation),    // 0x86 Guess
00199   USECODE_INTRINSIC_PTR(reduce_health),     // 0x87 Guess
00200   USECODE_INTRINSIC_PTR(is_readied),      // 0x88
00201   USECODE_INTRINSIC_PTR(restart_game),      // 0x89
00202   USECODE_INTRINSIC_PTR(start_speech),      // 0x8a
00203   USECODE_INTRINSIC_PTR(run_endgame),     // 0x8b StartEndGame (ucdump.c)
00204   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x8c UNUSED
00205   USECODE_INTRINSIC_PTR(nap_time),      // 0x8d
00206   USECODE_INTRINSIC_PTR(advance_time),      // 0x8e
00207   USECODE_INTRINSIC_PTR(in_usecode),      // 0x8f
00208   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x90
00209   USECODE_INTRINSIC_PTR(obj_sprite_effect),   // 0x91
00210   USECODE_INTRINSIC_PTR(attack_avatar),     // 0x92
00211 
00212   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x93 ++++Stop_attacking_avatar()??
00213 
00214   USECODE_INTRINSIC_PTR(path_run_usecode),    // 0x94 - Known
00215   
00216   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x95 UNUSED
00217   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x96
00218   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x97 UNUSED
00219   USECODE_INTRINSIC_PTR(close_gumps), // Guess  // 0x98
00220   USECODE_INTRINSIC_PTR(item_say),      // 0x99
00221   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x9a
00222   USECODE_INTRINSIC_PTR(in_gump_mode),  // Guess  // 0x9b
00223 
00224   // Packing!!!
00225   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x9c
00226   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x9d UNUSED
00227   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x9e
00228   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0x9f
00229   // End Pack
00230 
00231   USECODE_INTRINSIC_PTR(is_not_blocked),      // 0xa0
00232   
00233   USECODE_INTRINSIC_PTR(play_sound_effect2),    // 0xA1 - Known
00234   
00235   USECODE_INTRINSIC_PTR(direction_from),      // 0xa2
00236   
00237   USECODE_INTRINSIC_PTR(get_item_flag),     // 0xA3 - Known
00238   USECODE_INTRINSIC_PTR(set_item_flag),     // 0xA4 - Known
00239   USECODE_INTRINSIC_PTR(clear_item_flag),     // 0xA5 - Known
00240   
00241   USECODE_INTRINSIC_PTR(get_skin_colour),     // 0xa6
00242   USECODE_INTRINSIC_PTR(set_path_failure),    // 0xa7 
00243   USECODE_INTRINSIC_PTR(fade_palette),      // 0xa8
00244   // This one is used just for sleeping:
00245   USECODE_INTRINSIC_PTR(fade_palette),      // 0xa9
00246 //  USECODE_INTRINSIC_PTR(get_party_ids),     // 0xaa
00247   USECODE_INTRINSIC_PTR(get_party_list2),     // 0xaa
00248 
00249   USECODE_INTRINSIC_PTR(in_combat),     // 0xab
00250   USECODE_INTRINSIC_PTR(is_water),      // 0xac
00251   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xad UNUSED
00252   USECODE_INTRINSIC_PTR(set_camera),      // 0xae
00253   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xaf UNUSED
00254   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xb0 UNUSED
00255   USECODE_INTRINSIC_PTR(telekenesis),     // 0xb1
00256   USECODE_INTRINSIC_PTR(a_or_an),       // 0xb2 Return correct article for argument ('a' or 'an')
00257   USECODE_INTRINSIC_PTR(set_polymorph),   // 0xb3 Set Polymorph
00258   USECODE_INTRINSIC_PTR(revert_schedule),   // 0xb4 Reverts to static schedule
00259   USECODE_INTRINSIC_PTR(modify_schedule),     // 0xb5 Updates the schedule at a specific time
00260   USECODE_INTRINSIC_PTR(set_new_schedules),   // 0xb6 Set New Schedules
00261   USECODE_INTRINSIC_PTR(run_schedule),      // 0xb7 Run the scheduled activity
00262   USECODE_INTRINSIC_PTR(get_temperature),     // 0xb8
00263   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xb9 UNUSED
00264   USECODE_INTRINSIC_PTR(set_temperature),     // 0xba
00265   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xbb UNUSED
00266   USECODE_INTRINSIC_PTR(get_npc_id),      // 0xbc - Known
00267   USECODE_INTRINSIC_PTR(set_npc_id),      // 0xbd - Known
00268   USECODE_INTRINSIC_PTR(get_readied), // Guess  // 0xbe
00269 //  USECODE_INTRINSIC_PTR(add_removed_npc),     // 0xbf
00270   USECODE_INTRINSIC_PTR(approach_avatar),     // 0xbf
00271   USECODE_INTRINSIC_PTR(set_barge_dir),     // 0xc0
00272   USECODE_INTRINSIC_PTR(si_path_run_usecode),   // 0xc1
00273   USECODE_INTRINSIC_PTR(is_on_keyring),   // 0xc2
00274   USECODE_INTRINSIC_PTR(add_to_keyring),    // 0xc3
00275   USECODE_INTRINSIC_PTR(remove_from_area),    // 0xc4
00276   USECODE_INTRINSIC_PTR(infravision),     // 0xc5
00277   USECODE_INTRINSIC_PTR(set_intercept_item),    // 0xc6 (Exult)
00278   USECODE_INTRINSIC_PTR(printf),        // 0xc7 (Exult)
00279   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xc8
00280   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xc9
00281   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xca
00282   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xcb
00283   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xcc
00284   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xcd
00285   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xce
00286   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xcf
00287   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd0
00288   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd1
00289   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd2
00290   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd3
00291   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd4
00292   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd5
00293   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd6
00294   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd7
00295   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd8
00296   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xd9
00297   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xda
00298   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xdb
00299   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xdc
00300   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xdd
00301   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xde
00302   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xdf
00303   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe0
00304   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe1
00305   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe2
00306   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe3
00307   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe4
00308   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe5
00309   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe6
00310   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe7
00311   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe8
00312   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xe9
00313   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xea
00314   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xeb
00315   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xec
00316   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xed
00317   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xee
00318   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xef
00319   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf0
00320   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf1
00321   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf2
00322   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf3
00323   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf4
00324   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf5
00325   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf6
00326   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf7
00327   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf8
00328   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xf9
00329   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xfa
00330   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xfb
00331   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xfc
00332   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xfd
00333   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xfe
00334   USECODE_INTRINSIC_PTR(UNKNOWN),       // 0xff

Generated on Mon Jul 9 14:42:52 2007 for ExultEngine by  doxygen 1.5.1