1 /* Definitions of functions visible to interfaces in Xconq. 2 Copyright (C) 1996-2000 Stanley T. Shebs. 3 4 Xconq is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2, or (at your option) 7 any later version. See the file COPYING. */ 8 9 /* (should doublecheck that all of the decls in this file either have 10 impls or are removed) */ 11 12 #undef DEF_ACTION 13 #define DEF_ACTION(name,code,args,prepfn,NETPREPFN,dofn,checkfn,ARGDECL,doc) \ 14 extern int NETPREPFN ARGDECL; 15 16 #include "action.def" 17 18 #undef DEF_TASK 19 #define DEF_TASK(name,dname,code,argtypes,dofn,createfn,setfn,NETSETFN,pushfn,NETPUSHFN,ARGDECL) \ 20 extern void NETSETFN ARGDECL; \ 21 extern void NETPUSHFN ARGDECL; 22 23 #include "task.def" 24 25 /* Max number of packets received by each call to receive_data. */ 26 27 #define MAXPACKETS 32767 28 29 /* File names below refer to locations of the kernel core functions. */ 30 31 /* ai.c */ 32 33 extern void net_set_side_ai(Side *side, char *aitype); 34 35 /* module.c */ 36 37 extern void net_set_variant_value(int which, int v1, int v2, int v3); 38 39 /* init.c */ 40 41 extern int net_add_side_and_player(void); 42 extern int net_remove_side_and_player(int s); 43 extern void net_set_player_advantage(int n, int newadv); 44 extern void net_rename_side_for_player(int n, int which); 45 extern void net_set_ai_for_player(int n, char *aitype); 46 extern int net_exchange_players(int n, int n2); 47 48 /* run2.c */ 49 50 extern void net_request_additional_side(char *playerspec); 51 52 /* run.c */ 53 54 extern int net_run_game(int maxactions); 55 extern void net_finish_turn(Side *side); 56 extern void net_resign_game(Side *side, Side *side2); 57 58 /* side.c */ 59 60 extern void net_set_side_name(Side *side, Side *side2, char *newname); 61 extern void net_set_side_longname(Side *side, Side *side2, char *newname); 62 extern void net_set_side_shortname(Side *side, Side *side2, char *newname); 63 extern void net_set_side_noun(Side *side, Side *side2, char *newname); 64 extern void net_set_side_pluralnoun(Side *side, Side *side2, char *newname); 65 extern void net_set_side_adjective(Side *side, Side *side2, char *newname); 66 extern void net_set_side_emblemname(Side *side, Side *side2, char *newname); 67 extern void net_set_side_colorscheme(Side *side, Side *side2, char *newname); 68 extern void net_become_designer(Side *side); 69 extern void net_become_nondesigner(Side *side); 70 extern void net_set_trust(Side *side, Side *side2, int val); 71 extern void net_set_autofinish(Side *side, int value); 72 extern void net_set_autoresearch(Side *side, int value); 73 extern void net_set_willing_to_save(Side *side, int flag); 74 extern void net_set_willing_to_draw(Side *side, int flag); 75 extern void net_send_message(Side *side, SideMask sidemask, char *str); 76 extern void net_set_side_self_unit(Side *side, struct a_unit *unit); 77 extern void net_set_doctrine(Side *side, char *spec); 78 extern void net_set_controlled_by(Side *side, Side *side2, int val); 79 extern void net_set_side_research_topic(Side *side, int a); 80 extern void net_set_side_research_goal(Side *side, int a); 81 extern void net_set_side_startx(Side *side, int x); 82 extern void net_set_side_starty(Side *side, int y); 83 84 #ifdef DESIGNERS 85 extern void net_paint_view(Side *side, int x, int y, int r, int tview, int uview); 86 #endif /* DESIGNERS */ 87 88 /* plan.c */ 89 90 extern void net_set_unit_plan_type(Side *side, Unit *unit, int type); 91 extern void net_set_unit_asleep(Side *side, Unit *unit, int flag, int recurse); 92 extern void net_set_unit_reserve(Side *side, Unit *unit, int flag, int recurse); 93 extern void net_set_unit_ai_control(Side *side, Unit *unit, int flag, int recurse); 94 extern void net_set_unit_main_goal(Side *side, Unit *unit, Goal *goal); 95 extern void net_set_unit_curadvance(Side *side, Unit *unit, int a); 96 extern void net_set_unit_researchdone(Side *side, Unit *unit, int flag); 97 extern void net_set_unit_waiting_for_transport(Side *side, Unit *unit, int flag); 98 extern void net_wake_unit(Side *side, Unit *unit, int wakeocc); 99 extern void net_wake_area(Side *side, int x, int y, int n, int occs); 100 extern void net_set_formation(Unit *unit, Unit *leader, int x, int y, int dist, int flex); 101 extern void net_delay_unit(Unit *unit, int flag); 102 extern int net_clear_task_agenda(Side *side, Unit *unit); 103 extern int net_clear_task_outcome(Side *side, Unit *unit); 104 extern void net_force_replan(Unit *unit); 105 106 /* unit.c */ 107 108 extern void net_set_unit_name(Side *side, Unit *unit, char *newname); 109 extern int net_disband_unit(Side *side, Unit *unit); 110 111 #ifdef DESIGNERS 112 extern Unit *net_designer_create_unit(Side *side, int u, int s, int x, int y); 113 extern int net_designer_teleport(Unit *unit, int x, int y, Unit *other); 114 extern int net_designer_change_side(Unit *unit, Side *side); 115 extern int net_designer_disband(Unit *unit); 116 #endif /* DESIGNERS */ 117 118 /* task.c */ 119 120 extern void net_add_task(Unit *unit, int pos, Task *task); 121 122 /* world.c */ 123 124 extern Feature *net_create_feature(char *feattype, char *name); 125 extern void net_set_feature_type_name(Feature *feature, char *feattype); 126 extern void net_set_feature_name(Feature *feature, char *name); 127 extern void net_destroy_feature(Feature *feature); 128 extern void net_renumber_features(void); 129 130 #ifdef DESIGNERS 131 extern void net_paint_cell(Side *side, int x, int y, int r, int t); 132 extern void net_paint_border(Side *side, int x, int y, int dir, int t, int mode); 133 extern void net_paint_connection(Side *side, int x, int y, int dir, int t, int mode); 134 extern void net_paint_coating(Side *side, int x, int y, int r, int t, int depth); 135 extern void net_paint_people(Side *side, int x, int y, int r, int s); 136 extern void net_paint_control(Side *side, int x, int y, int r, int s); 137 extern void net_paint_feature(Side *side, int x, int y, int r, int f); 138 extern void net_paint_elevation(Side *side, int x, int y, int r, int code, int elev, int vary); 139 extern void net_paint_temperature(Side *side, int x, int y, int r, int temp); 140 extern void net_paint_material(Side *side, int x, int y, int r, int m, int amt); 141 extern void net_paint_clouds(Side *side, int x, int y, int r, int cloudtype, int bot, int hgt); 142 extern void net_paint_winds(Side *side, int x, int y, int r, int dir, int force); 143 144 /* should fix kernel separation! */ 145 146 extern void fix_elevations(void); 147 148 #endif /* DESIGNERS */ 149 150 /* tp.c */ 151 152 extern void net_toggle_user_at(int u, int x, int y); 153 154 /* called by all interfaces. */ 155 156 extern int send_join(char *str); 157 extern void receive_data(int timeout, int lim); 158 extern int host_the_game(char *hostport); 159 extern int try_join_game(char *hostport); 160 extern void net_save_game(char *fname); 161 162 /* called by the unix interface. */ 163 164 extern void send_version(int rid); 165 extern void broadcast_game_module(void); 166 extern void net_send_chat(int rid, char *str); 167 extern int game_checksum(void); 168 extern void send_quit(void); 169 extern void flush_outgoing_queue(void); 170 171 extern void (*update_variant_callback)(int which); 172 extern void (*update_assignment_callback)(int n); 173 174 /* called by cmdline.c. */ 175 176 extern void net_update_player(Player *player); 177 178 179 /* called by the x11 interface. */ 180 181 extern void download_to_player(Player *player); 182 183 /* Called by Tkconq. */ 184 185 extern void broadcast_randstate(void); 186 187 /* Declarations of functions that must be supplied by an interface. */ 188 189 extern void add_remote_locally(int rid, char *str); 190 extern void send_chat(int rid, char *str); 191 extern void make_default_player_spec(void); 192