|
Atrinik Server 2.5
|
00001 #ifndef __CPROTO__ 00002 /* src/commands/new.c */ 00003 int command_run(object *op, char *params); 00004 int command_run_stop(object *op, char *params); 00005 void send_target_command(player *pl); 00006 int command_combat(object *op, char *params); 00007 int command_target(object *op, char *params); 00008 void new_chars_init(); 00009 void command_new_char(char *params, int len, player *pl); 00010 void command_fire_old(char *params, int len, player *pl); 00011 void send_spelllist_cmd(object *op, const char *spellname, int mode); 00012 void send_skilllist_cmd(object *op, object *skillp, int mode); 00013 void send_ready_skill(object *op, const char *skillname); 00014 void generate_ext_title(player *pl); 00015 /* src/commands/commands.c */ 00016 void init_commands(); 00017 CommArray_s *find_command_element(char *cmd, CommArray_s *commarray, int commsize); 00018 int can_do_wiz_command(player *pl, const char *command); 00019 int execute_newserver_command(object *pl, char *command); 00020 /* src/commands/range.c */ 00021 int command_cast_spell(object *op, char *params); 00022 int fire_cast_spell(object *op, char *params); 00023 int legal_range(object *op, int r); 00024 /* src/commands/move.c */ 00025 int command_east(object *op, char *params); 00026 int command_north(object *op, char *params); 00027 int command_northeast(object *op, char *params); 00028 int command_northwest(object *op, char *params); 00029 int command_south(object *op, char *params); 00030 int command_southeast(object *op, char *params); 00031 int command_southwest(object *op, char *params); 00032 int command_west(object *op, char *params); 00033 int command_stay(object *op, char *params); 00034 int command_turn_right(object *op, char *params); 00035 int command_turn_left(object *op, char *params); 00036 int command_push_object(object *op, char *params); 00037 /* src/commands/object.c */ 00038 object *find_best_object_match(object *pl, char *params); 00039 int command_uskill(object *pl, char *params); 00040 int command_rskill(object *pl, char *params); 00041 int command_apply(object *op, char *params); 00042 int sack_can_hold(object *pl, object *sack, object *op, int nrof); 00043 void pick_up(object *op, object *alt, int no_mevent); 00044 void put_object_in_sack(object *op, object *sack, object *tmp, long nrof); 00045 void drop_object(object *op, object *tmp, long nrof, int no_mevent); 00046 void drop(object *op, object *tmp, int no_mevent); 00047 int command_take(object *op, char *params); 00048 int command_drop(object *op, char *params); 00049 object *find_marked_object(object *op); 00050 void examine_living(object *op, object *tmp); 00051 char *long_desc(object *tmp, object *caller); 00052 void examine(object *op, object *tmp); 00053 int command_rename_item(object *op, char *params); 00054 /* src/commands/misc.c */ 00055 void maps_info(object *op); 00056 int command_motd(object *op, char *params); 00057 void malloc_info(object *op); 00058 int command_who(object *op, char *params); 00059 int command_mapinfo(object *op, char *params); 00060 int command_time(object *op, char *params); 00061 int command_hiscore(object *op, char *params); 00062 int command_version(object *op, char *params); 00063 int command_praying(object *op, char *params); 00064 int onoff_value(char *line); 00065 void receive_player_name(object *op); 00066 void receive_player_password(object *op); 00067 int command_save(object *op, char *params); 00068 int command_afk(object *op, char *params); 00069 int command_gsay(object *op, char *params); 00070 int command_party(object *op, char *params); 00071 int command_whereami(object *op, char *params); 00072 int command_ms_privacy(object *op, char *params); 00073 int command_statistics(object *op, char *params); 00074 int command_region_map(object *op, char *params); 00075 /* src/commands/chat.c */ 00076 int command_say(object *op, char *params); 00077 int command_dmsay(object *op, char *params); 00078 int command_shout(object *op, char *params); 00079 int command_tell(object *op, char *params); 00080 int command_t_tell(object *op, char *params); 00081 int command_nod(object *op, char *params); 00082 int command_dance(object *op, char *params); 00083 int command_kiss(object *op, char *params); 00084 int command_bounce(object *op, char *params); 00085 int command_smile(object *op, char *params); 00086 int command_cackle(object *op, char *params); 00087 int command_laugh(object *op, char *params); 00088 int command_giggle(object *op, char *params); 00089 int command_shake(object *op, char *params); 00090 int command_puke(object *op, char *params); 00091 int command_growl(object *op, char *params); 00092 int command_scream(object *op, char *params); 00093 int command_sigh(object *op, char *params); 00094 int command_sulk(object *op, char *params); 00095 int command_hug(object *op, char *params); 00096 int command_cry(object *op, char *params); 00097 int command_poke(object *op, char *params); 00098 int command_accuse(object *op, char *params); 00099 int command_grin(object *op, char *params); 00100 int command_bow(object *op, char *params); 00101 int command_clap(object *op, char *params); 00102 int command_blush(object *op, char *params); 00103 int command_burp(object *op, char *params); 00104 int command_chuckle(object *op, char *params); 00105 int command_cough(object *op, char *params); 00106 int command_flip(object *op, char *params); 00107 int command_frown(object *op, char *params); 00108 int command_gasp(object *op, char *params); 00109 int command_glare(object *op, char *params); 00110 int command_groan(object *op, char *params); 00111 int command_hiccup(object *op, char *params); 00112 int command_lick(object *op, char *params); 00113 int command_pout(object *op, char *params); 00114 int command_shiver(object *op, char *params); 00115 int command_shrug(object *op, char *params); 00116 int command_slap(object *op, char *params); 00117 int command_smirk(object *op, char *params); 00118 int command_snap(object *op, char *params); 00119 int command_sneeze(object *op, char *params); 00120 int command_snicker(object *op, char *params); 00121 int command_sniff(object *op, char *params); 00122 int command_snore(object *op, char *params); 00123 int command_spit(object *op, char *params); 00124 int command_strut(object *op, char *params); 00125 int command_thank(object *op, char *params); 00126 int command_twiddle(object *op, char *params); 00127 int command_wave(object *op, char *params); 00128 int command_whistle(object *op, char *params); 00129 int command_wink(object *op, char *params); 00130 int command_yawn(object *op, char *params); 00131 int command_beg(object *op, char *params); 00132 int command_bleed(object *op, char *params); 00133 int command_cringe(object *op, char *params); 00134 int command_think(object *op, char *params); 00135 int command_me(object *op, char *params); 00136 int command_stare(object *op, char *params); 00137 int command_sneer(object *op, char *params); 00138 int command_wince(object *op, char *params); 00139 int command_facepalm(object *op, char *params); 00140 int command_my(object *op, char *params); 00141 /* src/commands/wiz.c */ 00142 int command_setgod(object *op, char *params); 00143 int command_kick(object *ob, char *params); 00144 int command_shutdown_now(object *op, char *params); 00145 int command_goto(object *op, char *params); 00146 int command_freeze(object *op, char *params); 00147 int command_summon(object *op, char *params); 00148 int command_teleport(object *op, char *params); 00149 int command_create(object *op, char *params); 00150 int command_inventory(object *op, char *params); 00151 int command_dump(object *op, char *params); 00152 int command_patch(object *op, char *params); 00153 int command_remove(object *op, char *params); 00154 int command_addexp(object *op, char *params); 00155 int command_speed(object *op, char *params); 00156 int command_stats(object *op, char *params); 00157 int command_resetmap(object *op, char *params); 00158 int command_nowiz(object *op, char *params); 00159 int command_dm(object *op, char *params); 00160 int command_learn_spell(object *op, char *params); 00161 int command_learn_special_prayer(object *op, char *params); 00162 int command_forget_spell(object *op, char *params); 00163 int command_listplugins(object *op, char *params); 00164 int command_loadplugin(object *op, char *params); 00165 int command_unloadplugin(object *op, char *params); 00166 void shutdown_agent(int timer, char *reason); 00167 int command_motd_set(object *op, char *params); 00168 int command_ban(object *op, char *params); 00169 int command_debug(object *op, char *params); 00170 int command_dumpbelowfull(object *op, char *params); 00171 int command_dumpbelow(object *op, char *params); 00172 int command_wizpass(object *op, char *params); 00173 int command_dumpallarchetypes(object *op, char *params); 00174 int command_dm_stealth(object *op, char *params); 00175 int command_dm_light(object *op, char *params); 00176 int command_dm_password(object *op, char *params); 00177 int command_dumpactivelist(object *op, char *params); 00178 int command_shutdown(object *op, char *params); 00179 int command_setmaplight(object *op, char *params); 00180 int command_dumpmap(object *op, char *params); 00181 int command_dumpallmaps(object *op, char *params); 00182 int command_malloc(object *op, char *params); 00183 int command_maps(object *op, char *params); 00184 int command_strings(object *op, char *params); 00185 int command_ssdumptable(object *op, char *params); 00186 int command_follow(object *op, char *params); 00187 int command_insert_into(object *op, char *params); 00188 int command_arrest(object *op, char *params); 00189 int command_cmd_permission(object *op, char *params); 00190 int command_map_save(object *op, char *params); 00191 int command_map_reset(object *op, char *params); 00192 int command_map_patch(object *op, char *params); 00193 int command_no_shout(object *op, char *params); 00194 int command_dmtake(object *op, char *params); 00195 int command_server_shout(object *op, char *params); 00196 int command_mod_shout(object *op, char *params); 00197 /* src/random_maps/floor.c */ 00198 mapstruct *make_map_floor(char *floorstyle, RMParms *RP); 00199 /* src/random_maps/random_map.c */ 00200 void dump_layout(char **layout, RMParms *RP); 00201 mapstruct *generate_random_map(char *OutFileName, RMParms *RP); 00202 char **layoutgen(RMParms *RP); 00203 char **symmetrize_layout(char **maze, int sym, RMParms *RP); 00204 char **rotate_layout(char **maze, int rotation, RMParms *RP); 00205 void roomify_layout(char **maze, RMParms *RP); 00206 int can_make_wall(char **maze, int dx, int dy, int dir, RMParms *RP); 00207 int make_wall(char **maze, int x, int y, int dir); 00208 void doorify_layout(char **maze, RMParms *RP); 00209 void write_map_parameters_to_string(char *buf, RMParms *RP); 00210 /* src/random_maps/rogue_layout.c */ 00211 int surround_check(char **layout, int i, int j, int Xsize, int Ysize); 00212 char **roguelike_layout_gen(int xsize, int ysize, int options); 00213 /* src/random_maps/room_gen_onion.c */ 00214 char **map_gen_onion(int xsize, int ysize, int option, int layers); 00215 void centered_onion(char **maze, int xsize, int ysize, int option, int layers); 00216 void bottom_centered_onion(char **maze, int xsize, int ysize, int option, int layers); 00217 void draw_onion(char **maze, float *xlocations, float *ylocations, int layers); 00218 void make_doors(char **maze, float *xlocations, float *ylocations, int layers, int options); 00219 void bottom_right_centered_onion(char **maze, int xsize, int ysize, int option, int layers); 00220 /* src/random_maps/room_gen_spiral.c */ 00221 char **map_gen_spiral(int xsize, int ysize, int option); 00222 void connect_spirals(int xsize, int ysize, int sym, char **layout); 00223 /* src/random_maps/expand2x.c */ 00224 char **expand2x(char **layout, int xsize, int ysize); 00225 /* src/random_maps/wall.c */ 00226 int surround_flag(char **layout, int i, int j, RMParms *RP); 00227 int surround_flag2(char **layout, int i, int j, RMParms *RP); 00228 int surround_flag3(mapstruct *map, int i, int j, RMParms *RP); 00229 int surround_flag4(mapstruct *map, int i, int j, RMParms *RP); 00230 void make_map_walls(mapstruct *map, char **layout, char *w_style, RMParms *RP); 00231 object *pick_joined_wall(object *the_wall, char **layout, int i, int j, RMParms *RP); 00232 object *retrofit_joined_wall(mapstruct *the_map, int i, int j, int insert_flag, RMParms *RP); 00233 /* src/random_maps/snake.c */ 00234 char **make_snake_layout(int xsize, int ysize); 00235 /* src/random_maps/style.c */ 00236 int load_dir(const char *dir, char ***namelist, int skip_dirs); 00237 mapstruct *load_style_map(char *style_name); 00238 mapstruct *find_style(char *dirname, char *stylename, int difficulty); 00239 object *pick_random_object(mapstruct *style); 00240 void free_style_maps(); 00241 /* src/random_maps/monster.c */ 00242 void insert_multisquare_ob_in_map(object *new_obj, mapstruct *map); 00243 void place_monsters(mapstruct *map, char *monsterstyle, int difficulty, RMParms *RP); 00244 /* src/random_maps/decor.c */ 00245 void put_decor(mapstruct *map, char **layout, RMParms *RP); 00246 /* src/random_maps/exit.c */ 00247 void find_in_layout(int mode, char target, int *fx, int *fy, char **layout, RMParms *RP); 00248 void place_exits(mapstruct *map, char **maze, char *exitstyle, int orientation, RMParms *RP); 00249 void unblock_exits(mapstruct *map, char **maze, RMParms *RP); 00250 /* src/random_maps/square_spiral.c */ 00251 void find_top_left_corner(char **maze, int *cx, int *cy); 00252 char **make_square_spiral_layout(int xsize, int ysize); 00253 /* src/random_maps/door.c */ 00254 int surround_check2(char **layout, int x, int y, int Xsize, int Ysize); 00255 void put_doors(mapstruct *the_map, char **maze, char *doorstyle, RMParms *RP); 00256 /* src/random_maps/maze_gen.c */ 00257 char **maze_gen(int xsize, int ysize, int option); 00258 /* src/server/weather.c */ 00259 void init_world_darkness(); 00260 void tick_the_clock(); 00261 /* src/server/image.c */ 00262 int read_bmap_names(); 00263 int find_face(char *name, int error); 00264 void free_all_images(); 00265 /* src/server/re-cmp.c */ 00266 const char *re_cmp(const char *str, const char *regexp); 00267 /* src/server/timers.c */ 00268 void cftimer_process_timers(); 00269 int cftimer_create(int id, long delay, object *ob, int mode); 00270 int cftimer_destroy(int id); 00271 int cftimer_find_free_id(); 00272 void cftimer_init(); 00273 /* src/server/anim.c */ 00274 void free_all_anim(); 00275 void init_anim(); 00276 int find_animation(char *name); 00277 void animate_object(object *op, int count); 00278 /* src/server/party.c */ 00279 void add_party_member(party_struct *party, object *op); 00280 void remove_party_member(party_struct *party, object *op); 00281 void form_party(object *op, const char *name); 00282 party_struct *find_party(const char *name); 00283 sint16 party_member_get_skill(object *op, object *skill); 00284 int party_can_open_corpse(object *pl, object *corpse); 00285 void party_handle_corpse(object *pl, object *corpse); 00286 void send_party_message(party_struct *party, const char *msg, int flag, object *op); 00287 void remove_party(party_struct *party); 00288 void party_update_who(player *pl); 00289 /* src/server/info.c */ 00290 void dump_abilities(); 00291 void print_monsters(); 00292 /* src/server/recipe.c */ 00293 recipelist *get_formulalist(int i); 00294 void init_formulae(); 00295 void dump_alchemy(); 00296 void dump_alchemy_costs(); 00297 int strtoint(const char *buf); 00298 artifact *locate_recipe_artifact(recipe *rp); 00299 recipe *get_random_recipe(recipelist *rpl); 00300 void free_all_recipes(); 00301 /* src/server/holy.c */ 00302 void init_gods(); 00303 godlink *get_rand_god(); 00304 object *pntr_to_god_obj(godlink *godlnk); 00305 void free_all_god(); 00306 void dump_gods(); 00307 /* src/server/spell_effect.c */ 00308 void cast_magic_storm(object *op, object *tmp, int lvl); 00309 int recharge(object *op); 00310 int cast_create_food(object *op, object *caster, int dir, const char *stringarg); 00311 int probe(object *op); 00312 int cast_wor(object *op, object *caster); 00313 int cast_create_town_portal(object *op); 00314 int cast_destruction(object *op, object *caster, int dam, int attacktype); 00315 int cast_heal_around(object *op, int level, int type); 00316 int cast_heal(object *op, int level, object *target, int spell_type); 00317 int cast_change_attr(object *op, object *caster, object *target, int spell_type); 00318 int create_bomb(object *op, object *caster, int dir, int spell_type); 00319 void animate_bomb(object *op); 00320 int remove_depletion(object *op, object *target); 00321 int remove_curse(object *op, object *target, int type, int src); 00322 int do_cast_identify(object *tmp, object *op, int mode, int *done, int level); 00323 int cast_identify(object *op, int level, object *single_ob, int mode); 00324 int cast_consecrate(object *op); 00325 int finger_of_death(object *op, object *target); 00326 int cast_cause_disease(object *op, object *caster, int dir, archetype *disease_arch, int type); 00327 int cast_transform_wealth(object *op); 00328 /* src/server/race.c */ 00329 ob_race *race_find(shstr *name); 00330 ob_race *race_get_random(); 00331 void race_init(); 00332 void race_dump(); 00333 void race_free(); 00334 /* src/server/pathfinder.c */ 00335 void request_new_path(object *waypoint); 00336 object *get_next_requested_path(); 00337 shstr *encode_path(path_node *path); 00338 int get_path_next(shstr *buf, sint16 *off, shstr **mappath, mapstruct **map, int *x, int *y); 00339 path_node *compress_path(path_node *path); 00340 path_node *find_path(object *op, mapstruct *map1, int x1, int y1, mapstruct *map2, int x2, int y2); 00341 /* src/server/map.c */ 00342 mapstruct *has_been_loaded_sh(shstr *name); 00343 char *create_pathname(const char *name); 00344 int check_path(const char *name, int prepend_dir); 00345 char *normalize_path(const char *src, const char *dst, char *path); 00346 void dump_map(mapstruct *m); 00347 void dump_all_maps(); 00348 int wall(mapstruct *m, int x, int y); 00349 int blocks_view(mapstruct *m, int x, int y); 00350 int blocks_magic(mapstruct *m, int x, int y); 00351 int blocks_cleric(mapstruct *m, int x, int y); 00352 int blocked(object *op, mapstruct *m, int x, int y, int terrain); 00353 int blocked_link(object *op, int xoff, int yoff); 00354 int blocked_link_2(object *op, mapstruct *map, int x, int y); 00355 int blocked_tile(object *op, mapstruct *m, int x, int y); 00356 int arch_blocked(archetype *at, object *op, mapstruct *m, int x, int y); 00357 void set_map_darkness(mapstruct *m, int value); 00358 mapstruct *get_linked_map(); 00359 mapstruct *get_empty_map(int sizex, int sizey); 00360 mapstruct *load_original_map(const char *filename, int flags); 00361 int new_save_map(mapstruct *m, int flag); 00362 void free_map(mapstruct *m, int flag); 00363 void delete_map(mapstruct *m); 00364 mapstruct *ready_map_name(const char *name, int flags); 00365 void clean_tmp_map(mapstruct *m); 00366 void free_all_maps(); 00367 void update_position(mapstruct *m, int x, int y); 00368 void set_map_reset_time(mapstruct *map); 00369 mapstruct *get_map_from_coord(mapstruct *m, int *x, int *y); 00370 mapstruct *get_map_from_coord2(mapstruct *m, int *x, int *y); 00371 int get_rangevector(object *op1, object *op2, rv_vector *retval, int flags); 00372 int get_rangevector_from_mapcoords(mapstruct *map1, int x1, int y1, mapstruct *map2, int x2, int y2, rv_vector *retval, int flags); 00373 int on_same_map(object *op1, object *op2); 00374 int players_on_map(mapstruct *m); 00375 int wall_blocked(mapstruct *m, int x, int y); 00376 void SockList_AddMapName(SockList *sl, object *pl, mapstruct *map, object *map_info); 00377 void SockList_AddMapMusic(SockList *sl, object *pl, mapstruct *map, object *map_info); 00378 void SockList_AddMapWeather(SockList *sl, object *pl, mapstruct *map, object *map_info); 00379 /* src/server/logger.c */ 00380 void LOG(LogLevel logLevel, const char *format, ...) __attribute__((format(printf, 2, 3))); 00381 /* src/server/main.c */ 00382 void fatal(int err); 00383 void version(object *op); 00384 char *crypt_string(char *str, char *salt); 00385 int check_password(char *typed, char *crypted); 00386 void enter_player_savebed(object *op); 00387 void leave_map(object *op); 00388 void set_map_timeout(mapstruct *map); 00389 char *clean_path(const char *file); 00390 void enter_exit(object *op, object *exit_ob); 00391 void process_events(mapstruct *map); 00392 void clean_tmp_files(); 00393 void cleanup(); 00394 int swap_apartments(const char *mapold, const char *mapnew, int x, int y, object *op); 00395 int main(int argc, char **argv); 00396 /* src/server/hiscore.c */ 00397 void hiscore_init(); 00398 void hiscore_check(object *op, int quiet); 00399 void hiscore_display(object *op, int max, const char *match); 00400 /* src/server/exp.c */ 00401 uint64 level_exp(int level, double expmul); 00402 sint64 add_exp(object *op, sint64 exp, int skill_nr, int exact); 00403 void player_lvl_adj(object *who, object *op); 00404 sint64 adjust_exp(object *pl, object *op, sint64 exp); 00405 void apply_death_exp_penalty(object *op); 00406 float calc_level_difference(int who_lvl, int op_lvl); 00407 uint64 calculate_total_exp(object *op); 00408 /* src/server/move.c */ 00409 int move_ob(object *op, int dir, object *originator); 00410 int transfer_ob(object *op, int x, int y, int randomly, object *originator, object *trap); 00411 int teleport(object *teleporter, uint8 tele_type, object *user); 00412 int push_ob(object *op, int dir, object *pusher); 00413 int missile_reflection_adjust(object *op, int flag); 00414 /* src/server/gods.c */ 00415 object *find_god(const char *name); 00416 void pray_at_altar(object *pl, object *altar); 00417 void become_follower(object *op, object *new_god); 00418 const char *determine_god(object *op); 00419 archetype *determine_holy_arch(object *god, const char *type); 00420 /* src/server/treasure.c */ 00421 void load_treasures(); 00422 void init_artifacts(); 00423 void init_archetype_pointers(); 00424 treasurelist *find_treasurelist(const char *name); 00425 object *generate_treasure(treasurelist *t, int difficulty, int a_chance); 00426 void create_treasure(treasurelist *t, object *op, int flag, int difficulty, int t_style, int a_chance, int tries, struct _change_arch *arch_change); 00427 void set_abs_magic(object *op, int magic); 00428 int fix_generated_item(object **op_ptr, object *creator, int difficulty, int a_chance, int t_style, int max_magic, int fix_magic, int chance_magic, int flags); 00429 artifactlist *find_artifactlist(int type); 00430 archetype *find_artifact_archtype(const char *name); 00431 artifact *find_artifact_type(const char *name, int type); 00432 void dump_artifacts(); 00433 void give_artifact_abilities(object *op, artifact *art); 00434 int generate_artifact(object *op, int difficulty, int t_style, int a_chance); 00435 void free_all_treasures(); 00436 void dump_monster_treasure(const char *name); 00437 int get_environment_level(object *op); 00438 object *create_artifact(object *op, char *artifactname); 00439 /* src/server/utils.c */ 00440 int rndm(int min, int max); 00441 int rndm_chance(uint32 n); 00442 int look_up_spell_name(const char *spname); 00443 void replace(const char *src, const char *key, const char *replacement, char *result, size_t resultsize); 00444 char *cleanup_string(char *ustring); 00445 const char *get_word_from_string(const char *str, int *pos); 00446 void adjust_player_name(char *name); 00447 void replace_unprintable_chars(char *buf); 00448 size_t split_string(char *str, char *array[], size_t array_size, char sep); 00449 int get_random_dir(); 00450 int get_randomized_dir(int dir); 00451 int buf_overflow(const char *buf1, const char *buf2, size_t bufsize); 00452 char *cleanup_chat_string(char *ustring); 00453 char *format_number_comma(uint64 num); 00454 void copy_file(const char *filename, FILE *fpout); 00455 void convert_newline(char *str); 00456 void string_remove_markup(char *str); 00457 /* src/server/cache.c */ 00458 cache_struct *cache_find(shstr *key); 00459 int cache_add(const char *key, void *ptr, uint32 flags); 00460 int cache_remove(shstr *key); 00461 void cache_remove_all(); 00462 void cache_remove_by_flags(uint32 flags); 00463 /* src/server/stringbuffer.c */ 00464 StringBuffer *stringbuffer_new(); 00465 char *stringbuffer_finish(StringBuffer *sb); 00466 const char *stringbuffer_finish_shared(StringBuffer *sb); 00467 void stringbuffer_append_string(StringBuffer *sb, const char *str); 00468 void stringbuffer_append_printf(StringBuffer *sb, const char *format, ...) __attribute__((format(printf, 2, 3))); 00469 void stringbuffer_append_stringbuffer(StringBuffer *sb, const StringBuffer *sb2); 00470 size_t stringbuffer_length(StringBuffer *sb); 00471 /* src/server/object_process.c */ 00472 object *stop_item(object *op); 00473 void fix_stopped_item(object *op, mapstruct *map, object *originator); 00474 void move_firewall(object *op); 00475 void process_object(object *op); 00476 /* src/server/swap.c */ 00477 void read_map_log(); 00478 void swap_map(mapstruct *map, int force_flag); 00479 void check_active_maps(); 00480 void flush_old_maps(); 00481 /* src/server/porting.c */ 00482 char *tempnam_local(const char *dir, const char *pfx); 00483 char *strdup_local(const char *str); 00484 char *strerror_local(int errnum); 00485 unsigned long isqrt(unsigned long n); 00486 FILE *open_and_uncompress(const char *name, int flag, int *compressed); 00487 void close_and_delete(FILE *fp, int compressed); 00488 void make_path_to_file(char *filename); 00489 const char *strcasestr_local(const char *s, const char *find); 00490 /* src/server/shop.c */ 00491 sint64 query_cost(object *tmp, object *who, int flag); 00492 char *cost_string_from_value(sint64 cost); 00493 char *query_cost_string(object *tmp, object *who, int flag); 00494 sint64 query_money(object *op); 00495 int pay_for_amount(sint64 to_pay, object *pl); 00496 int pay_for_item(object *op, object *pl); 00497 int get_payment(object *pl, object *op); 00498 void sell_item(object *op, object *pl, sint64 value); 00499 int get_money_from_string(const char *text, struct _money_block *money); 00500 int query_money_type(object *op, int value); 00501 sint64 remove_money_type(object *who, object *op, sint64 value, sint64 amount); 00502 void insert_money_in_player(object *pl, object *money, uint32 nrof); 00503 object *bank_get_info(object *op); 00504 object *bank_create_info(object *op); 00505 object *bank_get_create_info(object *op); 00506 sint64 bank_get_balance(object *op); 00507 int bank_deposit(object *op, const char *text, sint64 *value); 00508 int bank_withdraw(object *op, const char *text, sint64 *value); 00509 sint64 insert_coins(object *pl, sint64 value); 00510 /* src/server/time.c */ 00511 void reset_sleep(); 00512 void sleep_delta(); 00513 void set_max_time(long t); 00514 void get_tod(timeofday_t *tod); 00515 void print_tod(object *op); 00516 void time_info(object *op); 00517 long seconds(); 00518 /* src/server/login.c */ 00519 void emergency_save(int flag); 00520 int check_name(player *pl, char *name); 00521 int save_player(object *op, int flag); 00522 void check_login(object *op); 00523 /* src/server/attack.c */ 00524 int attack_ob(object *op, object *hitter); 00525 int hit_player(object *op, int dam, object *hitter, int type); 00526 int hit_map(object *op, int dir, int reduce); 00527 int kill_object(object *op, int dam, object *hitter, int type); 00528 object *hit_with_arrow(object *op, object *victim); 00529 void confuse_living(object *op); 00530 void paralyze_living(object *op, int dam); 00531 int is_melee_range(object *hitter, object *enemy); 00532 int spell_attack_missed(object *hitter, object *enemy); 00533 /* src/server/object.c */ 00534 void init_materials(); 00535 void mark_object_removed(object *ob); 00536 void object_gc(); 00537 int CAN_MERGE(object *ob1, object *ob2); 00538 object *merge_ob(object *op, object *top); 00539 signed long sum_weight(object *op); 00540 void add_weight(object *op, sint32 weight); 00541 void sub_weight(object *op, sint32 weight); 00542 object *get_env_recursive(object *op); 00543 object *is_player_inv(object *op); 00544 void dump_object(object *op, StringBuffer *sb); 00545 void dump_object_rec(object *op, StringBuffer *sb); 00546 object *get_owner(object *op); 00547 void clear_owner(object *op); 00548 void set_owner(object *op, object *owner); 00549 void copy_owner(object *op, object *clone); 00550 void initialize_object(object *op); 00551 void copy_object(object *op2, object *op, int no_speed); 00552 void copy_object_with_inv(object *src_ob, object *dest_ob); 00553 object *get_object(); 00554 void update_turn_face(object *op); 00555 void update_ob_speed(object *op); 00556 void update_object(object *op, int action); 00557 void drop_ob_inv(object *ob); 00558 void destroy_object(object *ob); 00559 void destruct_ob(object *op); 00560 void remove_ob(object *op); 00561 object *insert_ob_in_map(object *op, mapstruct *m, object *originator, int flag); 00562 void replace_insert_ob_in_map(char *arch_string, object *op); 00563 object *get_split_ob(object *orig_ob, int nr, char *err, size_t size); 00564 object *decrease_ob_nr(object *op, uint32 i); 00565 object *insert_ob_in_ob(object *op, object *where); 00566 int check_walk_on(object *op, object *originator, int flags); 00567 int check_walk_off(object *op, object *originator, int flags); 00568 object *present_arch(archetype *at, mapstruct *m, int x, int y); 00569 object *present(uint8 type, mapstruct *m, int x, int y); 00570 object *present_in_ob(uint8 type, object *op); 00571 object *present_arch_in_ob(archetype *at, object *op); 00572 int find_free_spot(archetype *at, object *op, mapstruct *m, int x, int y, int start, int stop); 00573 int find_first_free_spot(archetype *at, object *op, mapstruct *m, int x, int y); 00574 int find_first_free_spot2(archetype *at, mapstruct *m, int x, int y, int start, int range); 00575 void permute(int *arr, int begin, int end); 00576 void get_search_arr(int *search_arr); 00577 int find_dir_2(int x, int y); 00578 int absdir(int d); 00579 int dirdiff(int dir1, int dir2); 00580 int get_dir_to_target(object *op, object *target, rv_vector *range_vector); 00581 int can_pick(object *who, object *item); 00582 object *object_create_clone(object *asrc); 00583 int was_destroyed(object *op, tag_t old_tag); 00584 object *load_object_str(char *obstr); 00585 int auto_apply(object *op); 00586 int can_see_monsterP(mapstruct *m, int x, int y, int dir); 00587 void free_key_values(object *op); 00588 key_value *object_get_key_link(const object *ob, const char *key); 00589 const char *object_get_value(const object *op, const char *const key); 00590 int object_set_value(object *op, const char *key, const char *value, int add_key); 00591 void init_object_initializers(); 00592 int item_matched_string(object *pl, object *op, const char *name); 00593 int object_get_gender(object *op); 00594 object *object_need_esrv_update(object *op); 00595 void object_remove_esrv_update(object *op); 00596 /* src/server/apply.c */ 00597 void move_apply(object *trap, object *victim, object *originator, int flags); 00598 object *find_special_prayer_mark(object *op, int spell); 00599 void do_learn_spell(object *op, int spell, int special_prayer); 00600 void do_forget_spell(object *op, int spell); 00601 int manual_apply(object *op, object *tmp, int aflag); 00602 int player_apply(object *pl, object *op, int aflag, int quiet); 00603 void player_apply_below(object *pl); 00604 int apply_special(object *who, object *op, int aflags); 00605 int monster_apply_special(object *who, object *op, int aflags); 00606 /* src/server/plugins.c */ 00607 object *get_event_object(object *op, int event_nr); 00608 CommArray_s *find_plugin_command(const char *cmd); 00609 void display_plugins_list(object *op); 00610 void init_plugins(); 00611 void init_plugin(const char *pluginfile); 00612 void remove_plugin(const char *id); 00613 void remove_plugins(); 00614 void map_event_obj_init(object *ob); 00615 void map_event_free(map_event *tmp); 00616 void map_event_obj_deinit(object *ob); 00617 int trigger_map_event(int event_id, mapstruct *m, object *activator, object *other, object *other2, const char *text, int parm); 00618 void trigger_global_event(int event_type, void *parm1, void *parm2); 00619 int trigger_event(int event_type, object *const activator, object *const me, object *const other, const char *msg, int parm1, int parm2, int parm3, int flags); 00620 /* src/server/init.c */ 00621 void free_strings(); 00622 void init_library(); 00623 void init_globals(); 00624 void write_todclock(); 00625 void init(int argc, char **argv); 00626 void compile_info(); 00627 /* src/server/rune.c */ 00628 void spring_trap(object *trap, object *victim); 00629 int trap_see(object *op, object *trap, int level); 00630 int trap_show(object *trap, object *where); 00631 int trap_disarm(object *disarmer, object *trap); 00632 void trap_adjust(object *trap, int difficulty); 00633 /* src/server/alchemy.c */ 00634 int use_alchemy(object *op); 00635 /* src/server/readable.c */ 00636 int book_overflow(const char *buf1, const char *buf2, size_t booksize); 00637 void init_readable(); 00638 object *get_random_mon(); 00639 void tailor_readable_ob(object *book, int msg_type); 00640 void free_all_readable(); 00641 /* src/server/living.c */ 00642 void set_attr_value(living *stats, int attr, sint8 value); 00643 void change_attr_value(living *stats, int attr, sint8 value); 00644 sint8 get_attr_value(living *stats, int attr); 00645 void check_stat_bounds(living *stats); 00646 int change_abil(object *op, object *tmp); 00647 void drain_stat(object *op); 00648 void drain_specific_stat(object *op, int deplete_stats); 00649 void fix_player(object *op); 00650 void fix_monster(object *op); 00651 object *insert_base_info_object(object *op); 00652 object *find_base_info_object(object *op); 00653 void set_mobile_speed(object *op, int idx); 00654 /* src/server/region.c */ 00655 region *get_region_by_name(const char *region_name); 00656 char *get_region_longname(const region *r); 00657 char *get_region_msg(const region *r); 00658 object *get_jail_exit(object *op); 00659 void init_regions(); 00660 void free_regions(); 00661 /* src/server/ban.c */ 00662 void load_bans_file(); 00663 void save_bans_file(); 00664 int checkbanned(const char *name, char *ip); 00665 int add_ban(char *input); 00666 int remove_ban(char *input); 00667 void list_bans(object *op); 00668 /* src/server/shstr.c */ 00669 void init_hash_table(); 00670 shstr *add_string(const char *str); 00671 shstr *add_refcount(shstr *str); 00672 int query_refcount(shstr *str); 00673 shstr *find_string(const char *str); 00674 void free_string_shared(shstr *str); 00675 void ss_dump_statistics(char *buf, size_t size); 00676 void ss_dump_table(int what, char *buf, size_t size); 00677 /* src/server/skills.c */ 00678 sint64 find_traps(object *pl, int level); 00679 sint64 remove_trap(object *op); 00680 object *find_throw_tag(object *op, tag_t tag); 00681 void do_throw(object *op, object *toss_item, int dir); 00682 /* src/server/links.c */ 00683 objectlink *get_objectlink(); 00684 void free_objectlink(objectlink *ol); 00685 void free_objectlinkpt(objectlink *obp); 00686 objectlink *objectlink_link(objectlink **startptr, objectlink **endptr, objectlink *afterptr, objectlink *beforeptr, objectlink *objptr); 00687 objectlink *objectlink_unlink(objectlink **startptr, objectlink **endptr, objectlink *objptr); 00688 /* src/server/item.c */ 00689 char *describe_protections(object *op, int newline); 00690 char *query_weight(object *op); 00691 char *get_levelnumber(int i); 00692 char *query_short_name(object *op, object *caller); 00693 char *query_name(object *op, object *caller); 00694 char *query_material_name(object *op); 00695 char *query_base_name(object *op, object *caller); 00696 char *describe_item(object *op); 00697 int need_identify(object *op); 00698 void identify(object *op); 00699 void set_trapped_flag(object *op); 00700 /* src/server/button.c */ 00701 void push_button(object *op); 00702 void update_button(object *op); 00703 void update_buttons(mapstruct *m); 00704 void use_trigger(object *op); 00705 int check_trigger(object *op, object *cause); 00706 void add_button_link(object *button, mapstruct *map, int connected); 00707 void remove_button_link(object *op); 00708 int get_button_value(object *button); 00709 void do_mood_floor(object *op); 00710 object *check_inv_recursive(object *op, const object *trig); 00711 void check_inv(object *op, object *trig); 00712 /* src/server/skill_util.c */ 00713 int find_skill_exp_level(object *pl, int item_skill); 00714 char *find_skill_exp_skillname(int item_skill); 00715 sint64 do_skill(object *op, int dir, const char *params); 00716 sint64 calc_skill_exp(object *who, object *op, int level); 00717 void init_new_exp_system(); 00718 void free_exp_objects(); 00719 void dump_skills(); 00720 int check_skill_known(object *op, int skillnr); 00721 int lookup_skill_by_name(const char *string); 00722 int check_skill_to_fire(object *who); 00723 int check_skill_to_apply(object *who, object *item); 00724 int init_player_exp(object *pl); 00725 void unlink_skill(object *skillop); 00726 void link_player_skills(object *pl); 00727 int link_player_skill(object *pl, object *skillop); 00728 int learn_skill(object *pl, object *scroll, char *name, int skillnr, int scroll_flag); 00729 int use_skill(object *op, char *string); 00730 int change_skill(object *who, int sk_index); 00731 int skill_attack(object *tmp, object *pl, int dir, char *string); 00732 int SK_level(object *op); 00733 object *SK_skill(object *op); 00734 float get_skill_time(object *op, int skillnr); 00735 int check_skill_action_time(object *op, object *skill); 00736 /* src/server/arch.c */ 00737 archetype *get_skill_archetype(int skillnr); 00738 void init_archetypes(); 00739 void arch_info(object *op); 00740 void dump_all_archetypes(); 00741 void free_all_archs(); 00742 object *arch_to_object(archetype *at); 00743 object *create_singularity(const char *name); 00744 object *get_archetype(const char *name); 00745 archetype *find_archetype(const char *name); 00746 /* src/server/quest.c */ 00747 void check_quest(object *op, object *quest_container); 00748 /* src/server/statistics.c */ 00749 void statistics_init(); 00750 void statistic_update(const char *type, object *op, sint64 i, const char *buf); 00751 void statistics_player_logout(player *pl); 00752 /* src/server/spell_util.c */ 00753 void init_spells(); 00754 void dump_spells(); 00755 int insert_spell_effect(char *archname, mapstruct *m, int x, int y); 00756 spell_struct *find_spell(int spelltype); 00757 int check_spell_known(object *op, int spell_type); 00758 int cast_spell(object *op, object *caster, int dir, int type, int ability, int item, const char *stringarg); 00759 int cast_create_obj(object *op, object *new_op, int dir); 00760 int fire_bolt(object *op, object *caster, int dir, int type); 00761 int fire_arch_from_position(object *op, object *caster, sint16 x, sint16 y, int dir, archetype *at, int type, object *target); 00762 int cast_cone(object *op, object *caster, int dir, int strength, int spell_type, archetype *spell_arch); 00763 void cone_drop(object *op); 00764 void move_cone(object *op); 00765 void forklightning(object *op, object *tmp); 00766 int reflwall(mapstruct *m, int x, int y, object *sp_op); 00767 void move_bolt(object *op); 00768 void explode_object(object *op); 00769 void check_fired_arch(object *op); 00770 void move_fired_arch(object *op); 00771 int find_target_for_spell(object *op, object **target, uint32 flags); 00772 int SP_level_dam_adjust(object *caster, int spell_type, int base_dam, int exact); 00773 int SP_level_strength_adjust(object *caster, int spell_type); 00774 int SP_level_spellpoint_cost(object *caster, int spell_type, int caster_level); 00775 void move_swarm_spell(object *op); 00776 void fire_swarm(object *op, object *caster, int dir, archetype *swarm_type, int spell_type, int n, int magic); 00777 /* src/server/daemon.c */ 00778 void become_daemon(char *filename); 00779 /* src/server/mempool.c */ 00780 uint32 nearest_pow_two_exp(uint32 n); 00781 void setup_poolfunctions(struct mempool *pool, chunk_constructor constructor, chunk_destructor destructor); 00782 struct mempool *create_mempool(const char *description, uint32 expand, uint32 size, uint32 flags, chunk_initialisator initialisator, chunk_deinitialisator deinitialisator, chunk_constructor constructor, chunk_destructor destructor); 00783 void init_mempools(); 00784 void free_mempools(); 00785 void *get_poolchunk_array_real(struct mempool *pool, uint32 arraysize_exp); 00786 void return_poolchunk_array_real(void *data, uint32 arraysize_exp, struct mempool *pool); 00787 void dump_mempool_statistics(object *op, int *sum_used, int *sum_alloc); 00788 /* src/server/los.c */ 00789 void init_block(); 00790 void set_block(int x, int y, int bx, int by); 00791 void update_los(object *op); 00792 void clear_los(object *op); 00793 void adjust_light_source(mapstruct *map, int x, int y, int light); 00794 void check_light_source_list(mapstruct *map); 00795 void remove_light_source_list(mapstruct *map); 00796 int obj_in_line_of_sight(object *obj, rv_vector *rv); 00797 /* src/skills/inscription.c */ 00798 int skill_inscription(object *op, const char *params); 00799 /* src/skills/construction.c */ 00800 void construction_do(object *op, int dir); 00801 /* src/socket/image.c */ 00802 int is_valid_faceset(int fsn); 00803 void free_socket_images(); 00804 void read_client_images(); 00805 void SendFaceCmd(char *buf, int len, socket_struct *ns); 00806 int esrv_send_face(socket_struct *ns, short face_num); 00807 void face_get_data(int face, uint8 **ptr, uint16 *len); 00808 /* src/socket/sounds.c */ 00809 void play_sound_player_only(player *pl, int type, const char *filename, int x, int y, int loop, int volume); 00810 void play_sound_map(mapstruct *map, int type, const char *filename, int x, int y, int loop, int volume); 00811 /* src/socket/loop.c */ 00812 void handle_client(socket_struct *ns, player *pl); 00813 void watchdog(); 00814 void remove_ns_dead_player(player *pl); 00815 void doeric_server(); 00816 void doeric_server_write(); 00817 /* src/socket/info.c */ 00818 int color_notation_to_flag(const char *color); 00819 void new_draw_info(int flags, const char *color, object *pl, const char *buf); 00820 void new_draw_info_format(int flags, const char *color, object *pl, char *format, ...) __attribute__((format(printf, 4, 5))); 00821 void new_info_map(int flags, const char *color, mapstruct *map, int x, int y, int dist, const char *str); 00822 void new_info_map_except(int flags, const char *color, mapstruct *map, int x, int y, int dist, object *op1, object *op, const char *str); 00823 void send_socket_message(const char *color, socket_struct *ns, const char *buf); 00824 /* src/socket/metaserver.c */ 00825 void metaserver_info_update(); 00826 void metaserver_init(); 00827 /* src/socket/request.c */ 00828 void SetUp(char *buf, int len, socket_struct *ns); 00829 void AddMeCmd(char *buf, int len, socket_struct *ns); 00830 void PlayerCmd(char *buf, int len, player *pl); 00831 void ReplyCmd(char *buf, int len, player *pl); 00832 void RequestFileCmd(char *buf, int len, socket_struct *ns); 00833 void VersionCmd(char *buf, int len, socket_struct *ns); 00834 void MoveCmd(char *buf, int len, player *pl); 00835 void send_query(socket_struct *ns, uint8 flags, char *text); 00836 void add_skill_to_skilllist(object *skill, StringBuffer *sb); 00837 void esrv_update_skills(player *pl); 00838 void esrv_update_stats(player *pl); 00839 void esrv_new_player(player *pl, uint32 weight); 00840 void draw_client_map(object *pl); 00841 void draw_client_map2(object *pl); 00842 void ShopCmd(char *buf, int len, player *pl); 00843 void QuestListCmd(char *data, int len, player *pl); 00844 void command_clear_cmds(char *buf, int len, socket_struct *ns); 00845 void SetSound(char *buf, int len, socket_struct *ns); 00846 void command_move_path(uint8 *buf, int len, player *pl); 00847 void cmd_ready(uint8 *buf, int len, player *pl); 00848 void command_fire(uint8 *buf, int len, player *pl); 00849 void cmd_keepalive(char *buf, int len, socket_struct *ns); 00850 void cmd_password_change(uint8 *buf, int len, player *pl); 00851 /* src/socket/lowlevel.c */ 00852 void SockList_AddString(SockList *sl, const char *data); 00853 char *GetString_String(uint8 *data, int len, int *pos, char *dest, size_t dest_size); 00854 int SockList_ReadPacket(socket_struct *ns, int len); 00855 int SockList_ReadCommand(SockList *sl, SockList *sl2); 00856 void socket_enable_no_delay(int fd); 00857 void socket_disable_no_delay(int fd); 00858 void socket_buffer_clear(socket_struct *ns); 00859 void socket_buffer_write(socket_struct *ns); 00860 void Send_With_Handling(socket_struct *ns, SockList *msg); 00861 void Write_String_To_Socket(socket_struct *ns, char cmd, const char *buf, int len); 00862 /* src/socket/updates.c */ 00863 void updates_init(); 00864 void cmd_request_update(char *buf, int len, socket_struct *ns); 00865 /* src/socket/init.c */ 00866 void init_connection(socket_struct *ns, const char *from_ip); 00867 void init_ericserver(); 00868 void free_all_newserver(); 00869 void free_newsocket(socket_struct *ns); 00870 void init_srv_files(); 00871 void free_srv_files(); 00872 void send_srv_file(socket_struct *ns, int id); 00873 /* src/socket/item.c */ 00874 unsigned int query_flags(object *op); 00875 void esrv_draw_look(object *pl); 00876 void esrv_close_container(object *op); 00877 void esrv_send_inventory(object *pl, object *op); 00878 void esrv_update_item(int flags, object *pl, object *op); 00879 void esrv_send_item(object *pl, object *op); 00880 void esrv_del_item(player *pl, int tag, object *cont); 00881 object *esrv_get_ob_from_count(object *pl, tag_t count); 00882 void ExamineCmd(char *buf, int len, player *pl); 00883 void send_quickslots(player *pl); 00884 void QuickSlotCmd(uint8 *buf, int len, player *pl); 00885 void ApplyCmd(char *buf, int len, player *pl); 00886 void LockItem(uint8 *data, int len, player *pl); 00887 void MarkItem(uint8 *data, int len, player *pl); 00888 void esrv_move_object(object *pl, tag_t to, tag_t tag, long nrof); 00889 void cmd_ready_send(player *pl, tag_t tag, int type); 00890 int cmd_ready_determine(object *tmp); 00891 void cmd_ready_clear(object *op, int type); 00892 /* src/types/power_crystal.c */ 00893 void apply_power_crystal(object *op, object *crystal); 00894 /* src/types/player_mover.c */ 00895 void move_player_mover(object *op); 00896 /* src/types/teleporter.c */ 00897 void move_teleporter(object *op); 00898 /* src/types/container.c */ 00899 int esrv_apply_container(object *op, object *sack); 00900 int container_link(player *pl, object *sack); 00901 int container_unlink(player *pl, object *sack); 00902 void free_container_monster(object *monster, object *op); 00903 int check_magical_container(object *op, object *container); 00904 /* src/types/converter.c */ 00905 int convert_item(object *item, object *converter); 00906 /* src/types/magic_mirror.c */ 00907 void magic_mirror_init(object *mirror); 00908 void magic_mirror_deinit(object *mirror); 00909 mapstruct *magic_mirror_get_map(object *mirror); 00910 /* src/types/skillscroll.c */ 00911 void apply_skillscroll(object *op, object *tmp); 00912 /* src/types/spellbook.c */ 00913 void apply_spellbook(object *op, object *tmp); 00914 /* src/types/marker.c */ 00915 void move_marker(object *op); 00916 /* src/types/duplicator.c */ 00917 void move_duplicator(object *op); 00918 /* src/types/weapon_improver.c */ 00919 void apply_weapon_improver(object *op, object *tmp); 00920 int check_weapon_power(object *who, int improvs); 00921 /* src/types/book.c */ 00922 void apply_book(object *op, object *tmp); 00923 /* src/types/waypoint.c */ 00924 object *get_active_waypoint(object *op); 00925 object *get_aggro_waypoint(object *op); 00926 object *get_return_waypoint(object *op); 00927 void waypoint_compute_path(object *waypoint); 00928 void waypoint_move(object *op, object *waypoint); 00929 /* src/types/treasure.c */ 00930 void apply_treasure(object *op, object *tmp); 00931 /* src/types/altar.c */ 00932 int apply_altar(object *altar, object *sacrifice, object *originator); 00933 int check_altar_sacrifice(object *altar, object *sacrifice); 00934 int operate_altar(object *altar, object **sacrifice); 00935 /* src/types/savebed.c */ 00936 void apply_savebed(object *op); 00937 /* src/types/potion.c */ 00938 int apply_potion(object *op, object *tmp); 00939 /* src/types/beacon.c */ 00940 void beacon_add(object *ob); 00941 void beacon_remove(object *ob); 00942 object *beacon_locate(const char *name); 00943 /* src/types/creator.c */ 00944 void move_creator(object *op); 00945 /* src/types/armour_improver.c */ 00946 void apply_armour_improver(object *op, object *tmp); 00947 /* src/types/map_info.c */ 00948 void map_info_init(object *info); 00949 /* src/types/arrow.c */ 00950 sint32 bow_get_ws(object *bow, object *arrow); 00951 sint16 arrow_get_wc(object *op, object *bow, object *arrow); 00952 sint16 arrow_get_damage(object *op, object *bow, object *arrow); 00953 int bow_get_skill(object *bow); 00954 object *arrow_find(object *op, shstr *type, int tag); 00955 void bow_fire(object *op, int dir); 00956 object *fix_stopped_arrow(object *op); 00957 void move_arrow(object *op); 00958 void stop_arrow(object *op); 00959 /* src/types/scroll.c */ 00960 void apply_scroll(object *op, object *tmp); 00961 /* src/types/player.c */ 00962 player *find_player(const char *plname); 00963 void display_motd(object *op); 00964 int playername_ok(char *cp); 00965 void free_player(player *pl); 00966 int add_player(socket_struct *ns); 00967 void give_initial_items(object *pl, treasurelist *items); 00968 void get_name(object *op); 00969 void get_password(object *op); 00970 void confirm_password(object *op); 00971 object *find_arrow(object *op, const char *type); 00972 void fire(object *op, int dir); 00973 int move_player(object *op, int dir); 00974 int handle_newcs_player(player *pl); 00975 void do_some_living(object *op); 00976 void kill_player(object *op); 00977 void cast_dust(object *op, object *throw_ob, int dir); 00978 int pvp_area(object *attacker, object *victim); 00979 int player_exists(char *player_name); 00980 object *find_skill(object *op, int skillnr); 00981 int player_can_carry(object *pl, uint32 weight); 00982 char *player_get_race_class(object *op, char *buf, size_t size); 00983 void player_path_add(player *pl, mapstruct *map, sint16 x, sint16 y); 00984 void player_path_clear(player *pl); 00985 void player_path_handle(player *pl); 00986 sint64 player_faction_reputation(player *pl, shstr *faction); 00987 void player_faction_reputation_update(player *pl, shstr *faction, sint64 add); 00988 /* src/types/poison.c */ 00989 void apply_poison(object *op, object *tmp); 00990 void poison_more(object *op); 00991 /* src/types/gate.c */ 00992 void move_gate(object *op); 00993 void move_timed_gate(object *op); 00994 /* src/types/light.c */ 00995 void apply_player_light_refill(object *who, object *op); 00996 void apply_player_light(object *who, object *op); 00997 void apply_lighter(object *who, object *lighter); 00998 /* src/types/pit.c */ 00999 void move_pit(object *op); 01000 /* src/types/spawn_point.c */ 01001 void spawn_point(object *op); 01002 /* src/types/identify_altar.c */ 01003 int apply_identify_altar(object *money, object *altar, object *pl); 01004 /* src/types/disease.c */ 01005 int move_disease(object *disease); 01006 int infect_object(object *victim, object *disease, int force); 01007 void move_symptom(object *symptom); 01008 void check_physically_infect(object *victim, object *hitter); 01009 int cure_disease(object *sufferer, object *caster); 01010 int reduce_symptoms(object *sufferer, int reduction); 01011 /* src/types/monster.c */ 01012 void set_npc_enemy(object *npc, object *enemy, rv_vector *rv); 01013 object *check_enemy(object *npc, rv_vector *rv); 01014 object *find_enemy(object *npc, rv_vector *rv); 01015 int move_monster(object *op); 01016 void communicate(object *op, char *txt); 01017 int talk_to_npc(object *op, object *npc, char *txt); 01018 int faction_is_friend_of(object *mon, object *pl); 01019 int is_friend_of(object *op, object *obj); 01020 int check_good_weapon(object *who, object *item); 01021 int check_good_armour(object *who, object *item); 01022 /* src/types/door.c */ 01023 int open_door(object *op, mapstruct *m, int x, int y, int mode); 01024 object *find_key(object *op, object *door); 01025 void open_locked_door(object *op, object *opener); 01026 void close_locked_door(object *op); 01027 /* src/types/shop_mat.c */ 01028 int apply_shop_mat(object *shop_mat, object *op); 01029 /* src/types/rod.c */ 01030 void regenerate_rod(object *rod); 01031 void drain_rod_charge(object *rod); 01032 void fix_rod_speed(object *rod); 01033 /* src/types/detector.c */ 01034 void move_detector(object *op); 01035 /* src/types/food.c */ 01036 void apply_food(object *op, object *tmp); 01037 void create_food_force(object *who, object *food, object *force); 01038 void eat_special_food(object *who, object *food); 01039 /* src/types/gravestone.c */ 01040 const char *gravestone_text(object *op); 01041 /* src/types/sign.c */ 01042 void apply_sign(object *op, object *sign); 01043 /* src/types/deep_swamp.c */ 01044 void walk_on_deep_swamp(object *op, object *victim); 01045 void move_deep_swamp(object *op); 01046 /* src/loaders/object.c */ 01047 int lex_load(int *depth, object **items, int maxdepth, int map_flags, int linemode); 01048 void yy_objectrestart(FILE *input_file); 01049 void yy_objectpop_buffer_state(); 01050 int yy_objectget_lineno(); 01051 FILE *yy_objectget_in(); 01052 FILE *yy_objectget_out(); 01053 int yy_objectget_leng(); 01054 char *yy_objectget_text(); 01055 void yy_objectset_lineno(int line_number); 01056 void yy_objectset_in(FILE *in_str); 01057 void yy_objectset_out(FILE *out_str); 01058 int yy_objectget_debug(); 01059 void yy_objectset_debug(int bdebug); 01060 int yy_objectlex_destroy(); 01061 void yy_objectfree(void *ptr); 01062 int yyerror(char *s); 01063 void delete_loader_buffer(void *buffer); 01064 void *create_loader_buffer(void *fp); 01065 int load_object(void *fp, object *op, void *mybuffer, int bufstate, int map_flags); 01066 int set_variable(object *op, char *buf); 01067 void get_ob_diff(StringBuffer *sb, object *op, object *op2); 01068 void save_object(FILE *fp, object *op, int flag); 01069 /* src/loaders/map_header.c */ 01070 int map_lex_load(mapstruct *m); 01071 void yy_map_headerrestart(FILE *input_file); 01072 void yy_map_headerpop_buffer_state(); 01073 int yy_map_headerget_lineno(); 01074 FILE *yy_map_headerget_in(); 01075 FILE *yy_map_headerget_out(); 01076 int yy_map_headerget_leng(); 01077 char *yy_map_headerget_text(); 01078 void yy_map_headerset_lineno(int line_number); 01079 void yy_map_headerset_in(FILE *in_str); 01080 void yy_map_headerset_out(FILE *out_str); 01081 int yy_map_headerget_debug(); 01082 void yy_map_headerset_debug(int bdebug); 01083 int yy_map_headerlex_destroy(); 01084 void yy_map_headerfree(void *ptr); 01085 int map_set_variable(mapstruct *m, char *buf); 01086 int load_map_header(mapstruct *m, FILE *fp); 01087 void save_map_header(mapstruct *m, FILE *fp, int flag); 01088 /* src/loaders/random_map.c*/ 01089 int rmap_lex_read(RMParms *RP); 01090 void yy_random_maprestart(FILE *input_file); 01091 void yy_random_mappop_buffer_state(); 01092 int yy_random_mapget_lineno(); 01093 FILE *yy_random_mapget_in(); 01094 FILE *yy_random_mapget_out(); 01095 int yy_random_mapget_leng(); 01096 char *yy_random_mapget_text(); 01097 void yy_random_mapset_lineno(int line_number); 01098 void yy_random_mapset_in(FILE *in_str); 01099 void yy_random_mapset_out(FILE *out_str); 01100 int yy_random_mapget_debug(); 01101 void yy_random_mapset_debug(int bdebug); 01102 int yy_random_maplex_destroy(); 01103 void yy_random_mapfree(void *ptr); 01104 int load_parameters(FILE *fp, int bufstate, RMParms *RP); 01105 int set_random_map_variable(RMParms *rp, const char *buf); 01106 #endif
1.7.4