123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782 |
- /******************************************************************************
- ******************************************************************************/
- // Global Constants
- // Sound Fx. flags etc...
- extern short int crowd_mood_a;
- extern short int crowd_mood_b;
- extern float possession;
- extern float poss_held;
- extern char kickoff;
- #include "3deng.h"
- extern char debug;
- struct butts {
- int x;
- int y;
- int w;
- char s[10];
- char l;
- };
- extern butts us_buttons[];
- extern int max_butts;
- // Pixel Colours.
- extern char ball_col;
- extern char shadow_col;
- extern char team_a_col;
- extern char team_b_col;
- // General Control variables...
- extern char demo;
- // Ball fx.
- extern float newdx,newdy;
- extern short wind_on,wind_d_trend,wind_s_trend;
- extern float wind_x,wind_y,wind_speed;
- extern float init_wind_x,init_wind_y,init_wind_speed;
- extern float wind_var_ang;
- extern float bounce_dis;
- extern float gravity;
- extern int cntspot_x;
- extern int cntspot_y;
- // Pitch sizes.
- extern int pitch_len, pitch_wid;
- extern int halfway_line, scr_pinch;
- extern int right_bounds;
- extern int left_bounds;
- extern int lower_bounds;
- extern int upper_bounds;
- extern float zone_wid;
- extern float zone_hgt;
- extern float prat;
- extern int goal_height; //8 feet
- extern int goal_depth; //8 feet
- extern int post_width; //5 inches approx.
- extern int top_post_y;
- extern int bot_post_y;
- // Players.
- extern int players;
- extern int avg1_rate,avg1_power,avg1_bcontrol,avg1_flair,
- avg1_vision,avg1_accuracy,avg1_fitness,avg1_disc;
- extern int avg2_rate,avg2_power,avg2_bcontrol,avg2_flair,
- avg2_vision,avg2_accuracy,avg2_fitness,avg2_disc;
- extern int danger_radius;
- extern int visual_range;
- extern int tackle_range;
- extern int block_range;
- extern int steal_range;
- extern int min_block_range;
- /******************************************************************************
- ******************************************************************************/
- // Major control variables...
- extern char audio_version;
- /******************************************************************************
- ******************************************************************************/
- // Randomize variables...
- extern short int rand1_tab[];
- extern short int rand2_tab[];
- extern char andys_random;
- // Global Match Variables...
- // Man to man marking table....
- extern int man2man[10][2];
- extern char man2man_a,man2man_b;
- struct mtime{
- unsigned short min;
- float sec;
- };
- extern int seconds;
- extern mtime match_time;
- extern int time_factor;
- extern float MF;
- extern float mf_scale;
- extern float omf_scale;
- extern char mf_fixed;
- extern char alarm,watch;
- extern int stop_min;
- extern int stop_sec;
- extern char practice;
- extern char team_a_on;
- extern char team_b_on;
- extern char arrow_on;
- extern char arrow_guy;
- extern short rand_seed,seed;
- extern int logic_cnt;
- extern char ball_move;
- extern float man_down;
- extern int match_tactics1[32*2+6][10][2];
- extern int match_tactics2[32*2+6][10][2];
- extern int launch_type;
- extern float launch_x,launch_y;
- extern float ballxdis, ballydis, ballzdis;
- extern float eff_ballx,eff_bally,eff_ballz;
- extern float ballx, bally, ballz;
- extern float b_xoff,b_yoff,b_zoff;
- extern float prev_ballx, prev_bally, prev_ballz;
- extern float ns_ballx, ns_bally, ns_ballz;
- extern float ball_zspin, ball_xyspin;
- extern float full_zspin, full_xyspin;
- extern float shoot_x,shoot_y;
- extern int first_bounce;
- extern int swerve, spin_cnt, spin_ball, prediction;
- extern float ball_horz_ang,ball_vert_ang;
- extern float ball_diam;
- extern short keeper_down=FALSE;
- extern int keeper_will_save;
- extern char keeper_on_grnd;
- extern float keeper_contact;
- extern int set_xyspin,set_zspin;
- extern int throw_cnt;
- extern char ball_in_goal;
- extern char ball_in_hands;
- extern char game_action;
- extern int team_a_goals;
- extern char last_goal;
- extern int team_b_goals;
- extern int just_scored;
- extern int just_thrown;
- extern int goal_scorer;
- extern int pass_type;
- extern int kick_type;
- extern int receiver;
- extern char cross_now;
- extern char must_shoot;
- extern char chip_pass;
- extern char must_pass;
- extern char must_punt;
- extern char keeper_a_in_box;
- extern char keeper_b_in_box;
- extern int keeper_steps;
- extern short save_block;
- extern float save_xoff,save_yoff,save_zoff;
- extern float shot_speed;
- extern int scr_x,scr_y,ball_speed;
- extern int interceptor_a;
- extern int interceptor_b;
- extern int in_cross_area;
- extern float close_in_number;
- extern int ball_inair, super_shot, opponents_near_holder,opponents_really_close;
- extern int ball_poss,sender_1_2,ball_still,last_touch,want_pass;
- extern int before,support_me;
- extern int cannot_pick_up;
- extern int ball_limbo_p;
- extern char ball_limbo_on;
- extern float ball_limbo_c;
- extern int ball_released;
- extern short last_user_a;
- extern short last_user_b;
- extern int want_pass_stat,ball_zone1,ball_zone2,ball_out_of_play;
- extern int nearest_a,nearest_b,old_ltouch,old_ball_poss;
- extern int near_path_a,near_path_b;
- extern int zone1_x,zone1_y,zone2_x,zone2_y;
- extern int incident_x,incident_y;
- extern int difficulty;
- extern int ready_centre;
- extern float ball_pred_tab[50][3];
- extern float ns_ball_pred_tab[50][3];
- extern int shooter;
- extern char force_select;
- extern char heading_ball;
- extern char shot_attempt;
- extern char flag;
- extern char in_game;
- extern char analogue;
- extern char match_mode;
- extern int dead_ball_cnt;
- extern int defense_a,defense_b;
- extern int savex,savey,savez;
- extern char shot_acknowledged;
- extern int shot_pending;
- extern char match_mode;
- extern int duration;
- extern char tweening;
- /******************************************************************************
- ******************************************************************************/
- // Screen Buffer Stuff...
- extern int scr_a[100][4];
- extern int scr_b[100][4];
- extern int plot_cnta;
- extern int plot_cntb;
- extern int plot_buffer;
- extern int replay_pos;
- extern int replay_cnt;
- extern int pitch_sprs;
- // Sprite Stuff...
- extern float spr_coord_tab[MAX_3D_SPRS*3+1];
- extern short spr_ref_tab[MAX_3D_SPRS];
- // User Interface...
- extern short ball_travel;
- extern short select_cnt;
- extern int button_lit;
- extern int delay_cnt;
- extern int play_nums_on;
- extern char *action;
- extern char frame;
- extern int frames;
- extern int frms_per_sec;
- extern "C" int game_speed; // Currently declared in network.c
- extern int last_second;
- extern int old_clock;
- #pragma pack (1)
- struct user_config{
- short type;
- short control;
- int inp_x;
- int inp_y;
- int inp_ox;
- int inp_oy;
- short inp_fb;
- char chng;
- signed char plr;
- };
- extern "C" volatile user_config users[MAX_USERS]; // Declared in network.c
- struct user_vectors_i{
- short x_f1;
- short y_f2;
- };
- extern "C" volatile user_vectors_i users_dir_i[512][MAX_USERS]; // Declared in network.c
- #pragma pack (4)
- extern "C" volatile int writeptr;
- extern "C" volatile int readptr;
- struct user_vectors{
- float x;
- float y;
- char m;
- char f;
- };
- extern user_vectors users_dir[MAX_USERS]; // Declared in glob_vars.h, as usual
- extern short auto_users_list_a[10];
- extern short auto_users_a;
- extern short play_ball_a;
- extern char new_select;
- extern short auto_users_list_b[10];
- extern short auto_users_b;
- extern short play_ball_b;
- extern char user_controlled;
- extern char after_touch_on;
- extern "C" int num_of_users; // Currently in network.c
- extern short f1_down;
- extern short f2_down;
- extern char setp_kick_type;
- extern float setp_kick_x;
- extern float setp_kick_y;
- extern short user_taker;
- // Input devices
- extern float ux,uy; // User x,y,f1,f2,move
- extern char uf1,uf2;
- extern char um;
- // Joysticks & keyboard, taken to network.c
- extern "C" signed char key1[6];
- extern "C" signed char key2[6];
- extern "C" unsigned short joy1_cnt_x,joy1_cnt_y;
- extern "C" unsigned short joy2_cnt_x,joy2_cnt_y;
- extern "C" int joy1_max_x,joy1_max_y,joy1_min_x,joy1_min_y;
- extern "C" int joy2_max_x,joy2_max_y,joy2_min_x,joy2_min_y;
- extern "C" volatile int joy1_x;
- extern "C" volatile int joy1_y;
- extern "C" volatile int joy1_fire;
- extern "C" volatile int joy2_x;
- extern "C" volatile int joy2_y;
- extern "C" volatile int joy2_fire;
- extern "C" volatile char joy1_move;
- extern "C" volatile char joy2_move;
- extern "C" char joystick1_on;
- extern "C" char joystick2_on;
- extern "C" char digital_joy1;
- extern "C" char digital_joy2;
- extern char camera;
- extern char old_cam;
- extern char already_there;
- extern char reselection;
- extern float camera_dist;
- extern float poss_mode;
- /******************************************************************************
- ******************************************************************************/
- // Team Players Data...
- // Wall data...
- extern float wallx,wally;
- extern int men_in_wall;
- struct wall {
- int guy;
- float x,y;
- };
- extern wall wguys[];
- extern float keeper_pos_x,keeper_pos_y;
- extern char in_range,in_header_rng,in_shot_rng;
- extern int taker_x,taker_y;
- extern int penalty_taker;
- extern int penalty_taker_a;
- extern int penalty_taker_b;
- extern int player_num;
- extern int centre_guy_1;
- extern int centre_guy_2;
- extern int fkick_taker;
- extern int fkick_taker_a;
- extern int fkick_taker_b;
- extern int gkick_taker;
- extern int goal_kicker_a;
- extern int goal_kicker_b;
- extern int corner_taker;
- extern int corn_kicker_a;
- extern int corn_kicker_b;
- extern int ktaker;
- extern int bad_guy;
- extern char direct_fk;
- extern char play_advantage;
- extern char set_piece_on;
- extern int throw_in_taker;
- extern int main_man;
- extern float opp_dir_tab[11][3];
- extern int drib_opps;
- struct bubbles{int say;int cnt;};
- extern bubbles speech_tab[26];
- struct match_player {
- // Player General...
- int tm_player;
- float tm_x, tm_xdis, tm_y, tm_ydis, tm_z, tm_zdis;
- float tm_dist;
- int tm_pos;
- int tm_limbo;
- short guy_on;
- char control;
- char tm_srng;
- char tm_off;
- char tm_stopped;
- // Player Attributes...
- int tm_rate; //Speed.
- int tm_pow; //Physical Power.
- int tm_cont; //Ball Control.
- int tm_flair; //Flair.
- int tm_vis; //Vision.
- int tm_ac; //Accuracy.
- int tm_stam; //Stamina.
- int tm_disc; //Discipline.
- // Match Stats...
- int tm_book; //Bookings.
- int tm_fouls; //Fouls Committed.
- int tm_tacks; //Tackles attempted.
- int tm_twon; //Tackles won.
- int tm_shots; //Shots attempted.
- int tm_saved; //Shots saved.
- int tm_goals; //Goals scored.
- int tm_pass; //Passes attempted.
- int tm_pwon; //Passes completed.
- int tm_inj; //Injury type.
- int tm_posst; //Time in possession.
- // Animation Data...
- int tm_spr, turn_dir, face_dir, dir_mode;
- float tm_anim, tm_frm, tm_fstep;
- unsigned char tm_hcol,tm_htype;
- float tm_mcspd;
- float ls_anim,ls_frm;
- float contact;
- char tm_newanim;
- // Action Data...
- int tm_act, tm_poss, tm_wall, tm_leave, tm_mark;
- int go_dist, go_cnt;
- float go_txdis,go_tydis,go_tx,go_ty,go_xoff,go_yoff,tm_jump;
- char go_step;
- // Player Intelligence...
- int int_move, int_cnt, mess_num, mess_cnt;
- int tm_comm,tm_ccnt;
- };
- extern match_player teams[22];
- struct officials {
- float x,y,z,dir_x,dir_y,anim,frm,fstep,goto_x,goto_y;
- int act,go;
- char newanim;
- };
- extern officials refs[3];
- extern char offside_now;
- extern char can_be_offside;
- extern char offside_on;
- extern int ref_accuracy;
- extern int ref_strictness;
- extern int ref_wait;
- extern int tussle_tab[8];
- extern int *tussle_ptr;
- /******************************************************************************
- ******************************************************************************/
- // FUNCTIONS
- /******************************************************************************
- ******************************************************************************/
- // DISPLAY.CPP
- extern void grid_map();
- extern void line_border(int x,int y,int wid,int hgt,int col);
- extern void draw_buttons();
- extern void light_button(int b);
- extern void unlight_button(int b);
- extern void conv_xypitch(float x, float y, int *screen_x, int *screen_y);
- extern void pitch_markings();
- extern void draw_pitch();
- extern void pitch_plot(int x,int y,int z,char c,char a); //Place screen coords on plot buffer.
- extern void draw_buffer();
- extern void draw_ball();
- extern void draw_team();
- extern void panel_data();
- extern void faster();
- extern void slower();
- extern void show_nums();
- extern void frame_count();
- extern void frame_count_i();
- extern void init_pitch_sprites();
- extern void add_pitch_sprite(short x,short y,short z,short ref);
- // ACTIONS.CPP
- extern void fire_ball_off();
- extern float actual_spd(match_player *player);
- extern float angle_to_xy(float a,float b,float x,float y);
- extern void user_conts(match_player *player);
- extern void init_anim(match_player *player,int anim);
- extern void init_team();
- extern void init_officials();
- extern void user_set_piece(match_player *player);
- extern void init_stand_act(match_player *player);
- extern void init_kick_act(match_player *player,int mc,float pc);
- extern void kick_action(match_player *player);
- extern void init_steal_act(match_player *player);
- extern void init_kphold_act(match_player *player);
- extern void init_throw_act(match_player *player);
- extern void turn_clock(match_player *player);
- extern void turn_anti(match_player *player);
- extern void turn_action(match_player *player);
- extern void throw_action(match_player *player);
- extern void init_turn_act(match_player *player);
- extern void init_jump_act(match_player *player,char dir,char ride=FALSE);
- extern void init_run_act(match_player *player,float tx,float ty,char s);
- extern void init_fall(match_player *player);
- extern void init_tackle_act(match_player *player,float tx,float ty);
- extern void go_toward_target(match_player *player);
- extern void dont_run_off(match_player *player);
- extern void stand_action(match_player *player);
- extern void steal_action(match_player *player);
- extern void kphold_action(match_player *player);
- extern void run_action(match_player *player);
- extern void tackle_action(match_player *player);
- extern void fall_action(match_player *player);
- extern void process_teams();
- extern void user_init_tackle(match_player *player);
- extern void init_save_act(match_player *player,int tx,int ty,int tz,int an,int zone,int bp,int cont);
- extern void taker_pass_f(float x,float y);
- extern void taker_pass_h(float x,float y);
- extern void taker_tee_up(float x,float y);
- extern void taker_shoot_d(float x,float y);
- extern void taker_shoot(float x,float y);
- extern void taker_punt(float x,float y);
- // BALL.CPP
- extern float get_angle(float x,float y,float d);
- extern void get_xydis_from_ang(float a,float d);
- extern float get_s_angle(float z,float d);
- extern void get_zdis_from_ang(float a,float d);
- extern void stop_ball_spin();
- extern void add_spin_fx();
- extern void move_ball();
- extern void grav_ball();
- extern void ball_friction();
- extern void ball_trajectory();
- extern void get_ball_zone();
- extern void launch_ball(int p);
- extern void reset_ball();
- extern void respot_ball();
- extern void pitch_bounds();
- extern void hit_goal_post();
- extern void hit_cross_bar();
- extern void hit_high_side_net();
- extern void hit_low_side_net();
- extern void hit_top_net();
- extern void hit_inside_back_net();
- extern void hit_inside_back_net_r();
- extern void hit_inside_top_net();
- extern void hit_inside_high_side();
- extern void hit_inside_low_side();
- extern void go_left_goal();
- extern void go_right_goal();
- extern void ball_collision();
- extern void get_ball_speed();
- extern void ball_limbo(int p,float c);
- extern void process_ball();
- extern void own_goal();
- extern void good_goal();
- extern void new_shot(int p);
- extern void reset_shot();
- // BALLINT.CPP
- extern void rebound_off_plr(match_player *player);
- extern void hold_ball(match_player *player);
- extern void collect_ball(match_player *player);
- extern void put_spin_on_ball(int power);
- extern void control_difficulty(match_player *player);
- extern void control_ball(match_player *player);
- extern void ball_interact(match_player *player);
- extern void predict_ball();
- extern void get_opp_near_ball(int holder);
- extern void player_distances();
- extern int get_nearest_guy(int p_num);
- extern void get_nearest();
- extern void holder_lose_ball();
- // INTELL.CPP
- extern int in_kicking_range(match_player *player,float x,float y);
- extern void process_speech();
- extern void init_speech(int p,int comm,int t=FALSE);
- extern void keeper_boxes();
- extern void reset_ideas(match_player *player);
- extern void reset_all_ideas();
- extern int shall_i_turn(match_player *player,float x,float y,char s);
- extern void go_to_path(int p_num,char header_only=FALSE);
- extern void get_tack_path(match_player *player);
- extern void get_target(char flag,int bz,int zx,int zy,int pn,int &x,int &y,int tac[(32*2)+6][10][2]);
- extern void find_zonal_target(match_player *player,float px,float py);
- extern int get_near_path(int p_num,int not_busy);
- extern void get_face_xy(int d,float &x,float &y);
- extern void forward_joystick(match_player *p,float &x,float &y);
- extern int get_dir(float x,float y);
- extern int angle_of_vis(match_player *player,int x,int y,float d,char cross);
- extern void get_opp_dir_tab(int pnum);
- extern int opp_around(int x,int y,int pnum);
- extern void player_ints(match_player *player);
- extern void pass_ball(int ps,char cross);
- extern void make_pass(match_player *player,int p,char cross);
- extern void dribble_dir(match_player *player,float &x,float &y);
- extern void go_dribble(match_player *player,float x,float y);
- extern void make_run(match_player *player);
- extern int run_decide(match_player *player);
- extern int punt_decide(match_player *player);
- extern int head_punt_decide(match_player *player);
- extern void make_punt(match_player *player);
- extern void punt_ball(match_player *player);
- extern void make_shoot(match_player *player);
- extern void shoot_ball(match_player *player);
- extern int shoot_decide(match_player *player);
- extern int head_shoot_decide(match_player *player);
- extern void set_pos_flags(match_player *player);
- extern int pass_decide(match_player *player,char cross);
- extern void player_comment(match_player *player);
- extern void tackle_decide(match_player *player);
- extern void steal_decide(match_player *player);
- extern void block_decide(match_player *player);
- extern void free_ball(match_player *player);
- extern void out_of_vis(match_player *player);
- extern void got_ball(match_player *player);
- extern void we_have_ball(match_player *player);
- extern int in_close(match_player *player);
- extern int can_close_down(match_player *player);
- extern void close_him_down(match_player *player);
- extern void force_error(match_player *player);
- extern void forceful_retrieve(match_player *player);
- extern int facing_opp_side(match_player *player);
- extern void go_to_between(int p_num);
- extern int facing_opp_back(match_player *player);
- extern void opp_has_ball(match_player *player);
- extern void intelligence(match_player *player);
- extern void user_intelligence(match_player *player);
- extern void override(match_player *player);
- extern void process_comments();
- extern void rotate_offs(int an,float &x,float &y,float &z,float nx,float ny);
- // MATHS.CPP
- extern void af_randomize();
- extern float calc_dist(float x,float y);
- extern int rand_range(int range);
- // USER.CPP
- extern void reselect();
- extern void select_users();
- extern void auto_select_a(short u);
- extern void auto_select_b(short u);
- extern void clear_all_autos();
- extern void user_xy(char u);
- extern void convert_inputs();
- extern void go_button();
- extern void mouse_fired();
- extern void process_butts();
- extern short user_taker_a(short p);
- extern short user_taker_b(short p);
- extern void reselect_all_users();
- // 3D_UPDT.CPP
- extern void realtime_coords();
- extern void process_replay();
- extern void new_update_coords();
- extern void update_3d();
- extern void init_3d();
- extern void info_line();
- extern void process_pitch_sprs();
- extern float cth,sth; // Current viewing angle...
- // RULES.CPP
- extern void retake_foul();
- extern void match_rules();
- extern void process_offs();
- extern void init_match_mode();
- extern void init_foul(int fouler,char direct,char see=FALSE);
- extern void init_offside(match_player *player);
- extern char bounds_rules();
- // TEST.CPP
- extern void stop_mf_time();
- // KEYH.C
- extern void claim_key_int(void);
- extern void release_key_int(void);
- // MY_AUDIO.CPP
- void play_fx(int fx,float x,float y);
- // NETWORK.C
- extern "C" void read_joystick(char j,int *x, int *y, int *sw);
- extern "C" void read_joy1(int *x, int *y, int *sw);
- extern "C" void read_joy2(int *x, int *y, int *sw);
- extern "C" void calibrate_joy(char j,unsigned short *x,unsigned short *y);
- extern "C" void get_joy_dir1(int *x,int *y,int *f);
- extern "C" void get_joy_dir2(int *x,int *y,int *f);
- extern "C" void get_user_inputs();
- extern "C" void process_user_inputs();
- extern "C" volatile int Teams[MAX_USERS],Players[MAX_USERS];
- extern "C" volatile int net_quit;
- extern "C" volatile char paused;
- extern "C" volatile char pause_request;
- extern "C" volatile char keys[256];
- extern "C" volatile char key_togs[256];
- extern "C" void NetTest(void);
- extern "C" void Network_Play_Ready();
- extern "C" void Quit_Network_Play();
- extern "C" void End_Network_Game();
- extern "C" void __far nethandler(void);
- extern "C" unsigned int NetworkHandle;
- extern "C" short wConsoleNode;
- extern "C" volatile int network_on;
- extern "C" volatile int count;
- extern "C" volatile int tick;
- extern "C" volatile int ftick;
|