104 lines
4.1 KiB
C
104 lines
4.1 KiB
C
/***************************************************************************
|
|
config.h - description
|
|
-------------------
|
|
begin : Tue Feb 13 2001
|
|
copyright : (C) 2001 by Michael Speck
|
|
email : kulkanie@gmx.net
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef __CONFIG_H
|
|
#define __CONFIG_H
|
|
|
|
/* configure struct */
|
|
enum { BALL_BELOW_BONUS = 0, BALL_ABOVE_BONUS };
|
|
enum { DEBRIS_BELOW_BALL = 0, DEBRIS_ABOVE_BALL };
|
|
typedef struct {
|
|
/* directory to save config and saved games */
|
|
char dir_name[512];
|
|
/* levels */
|
|
int levelset_id_local;
|
|
int levelset_count_local; /* save number of local game levelsets
|
|
for safety (to reset id if count changed) */
|
|
int levelset_id_home;
|
|
int levelset_count_home; /* save number of levelsets for safety
|
|
(to reset id if count changed) */
|
|
/* players */
|
|
int player_count;
|
|
char player_names[4][32];
|
|
/* game */
|
|
int diff; /* diffculty */
|
|
int startlevel;
|
|
int rel_warp_limit; /* percentage of bricks required to be destroyed
|
|
before player may proceed to next level */
|
|
int addBonusLevels; /* add some bonus levels */
|
|
/* controls */
|
|
int k_left;
|
|
int k_right;
|
|
int k_lfire;
|
|
int k_rfire;
|
|
int k_return; /* return ball on click on this key */
|
|
int k_turbo; /* double paddle speed while this key is pressed */
|
|
int k_warp; /* warp to next level */
|
|
int k_maxballspeed; /* go to maximum ball speed (while pressed) */
|
|
int rel_motion; /* use relative mouse motion; motion_mod and invert need this enabled */
|
|
int grab; /* keep mouse in window */
|
|
int i_motion_mod; /* motion_mod * 100 used to modify in the menu */
|
|
double motion_mod; /* multiplied with relative motion */
|
|
int convex;
|
|
int invert;
|
|
double key_speed; /* move with key_speed pix per sec when keys are used */
|
|
int linear_corner; /* assume a 45° line for corner? */
|
|
int random_angle;
|
|
int maxballspeed_int1000; /* max ball speed in pixels/second */
|
|
float maxballspeed_float; /* per millisecond */
|
|
/* sound */
|
|
int sound;
|
|
int volume; /* 1 - 8 */
|
|
int speech; /* enable speech? */
|
|
int badspeech; /* if speech allowed, allow swearing? */
|
|
int audio_buffer_size;
|
|
/* graphics */
|
|
int anim;
|
|
int fullscreen;
|
|
int fade;
|
|
int bonus_info;
|
|
int fps; /* frames per second: 0 - no limit, 1 - 50, 2 - 100, 3 - 200 */
|
|
int ball_level;
|
|
int debris_level;
|
|
int i_key_speed; /* integer value that is devided by 100 to get real key_speed */
|
|
/* various */
|
|
int use_hints;
|
|
int return_on_click; /* autoreturn on click if true else automatically */
|
|
int theme_id; /* 0 == default theme */
|
|
int theme_count; /* to check and properly reset id if number of themes changed */
|
|
/* multiplayer */
|
|
char server[64]; /* ip:port */
|
|
char local_port[8]; /* where to bind local UDP socket */
|
|
char username[16]; /* username at server */
|
|
int mp_diff; /* difficulty */
|
|
int mp_rounds; /* rounds per level in a levelset */
|
|
int mp_frags; /* points a player needs to win a round */
|
|
int mp_balls; /* maximum number of balls a player may fire */
|
|
int recv_limit; /* number of packets parsed in one go */
|
|
} Config;
|
|
|
|
/* set config to default */
|
|
void config_reset();
|
|
|
|
/* load config */
|
|
void config_load( );
|
|
|
|
/* save config */
|
|
void config_save( );
|
|
|
|
#endif
|