Atrinik Server 2.5
include/proto.h
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