diff options
author | Matias <matiassw@gmail.com> | 2013-06-25 16:59:44 -0400 |
---|---|---|
committer | Matias <matiassw@gmail.com> | 2013-06-25 16:59:44 -0400 |
commit | b40371d3a0772031d12f2782c10976413c6f34b9 (patch) | |
tree | 7aeed5544a9df524a834cc739d3f596b66d6a006 /src/map/battleground.h | |
parent | 25914bae30eced388cf8640eead19fbb11a65ade (diff) | |
parent | 5785dbae3f513da20611e3147dadef2b9c911443 (diff) | |
download | hercules-b40371d3a0772031d12f2782c10976413c6f34b9.tar.gz hercules-b40371d3a0772031d12f2782c10976413c6f34b9.tar.bz2 hercules-b40371d3a0772031d12f2782c10976413c6f34b9.tar.xz hercules-b40371d3a0772031d12f2782c10976413c6f34b9.zip |
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Diffstat (limited to 'src/map/battleground.h')
-rw-r--r-- | src/map/battleground.h | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/src/map/battleground.h b/src/map/battleground.h index c2b74a534..030d13d90 100644 --- a/src/map/battleground.h +++ b/src/map/battleground.h @@ -1,5 +1,6 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams #ifndef _BATTLEGROUND_H_ #define _BATTLEGROUND_H_ @@ -7,7 +8,21 @@ #include "../common/mmo.h" // struct party #include "guild.h" +/** + * Defines + **/ #define MAX_BG_MEMBERS 30 +#define BG_DELAY_VAR_LENGTH 30 + +/** + * Enumerations + **/ +enum bg_queue_types { + BGQT_INVALID, + BGQT_INDIVIDUAL, + BGQT_PARTY, + BGQT_GUILD +}; struct battleground_member_data { unsigned short x, y; @@ -42,4 +57,52 @@ int bg_team_warp(int bg_id, unsigned short mapindex, short x, short y); int bg_member_respawn(struct map_session_data *sd); int bg_send_message(struct map_session_data *sd, const char *mes, int len); +struct bg_arena { + char name[NAME_LENGTH]; + unsigned char id; + char npc_event[EVENT_NAME_LENGTH]; + short min_level, max_level; + short prize_win, prize_loss, prize_draw; + short min_players; + short max_players; + short min_team_players; + char cooldown_variable[NAME_LENGTH]; + char delay_var[NAME_LENGTH]; + unsigned short maxDuration; + int queue_id; + int begin_timer; + int fillup_timer; + int game_timer; + unsigned short fillup_duration; + unsigned short pregame_duration; +}; + +/* battleground.c interface (incomplete) */ +struct battleground_interface { + bool queue_on; + /* */ + int mafksec; + char gdelay_var[BG_DELAY_VAR_LENGTH]; + /* */ + struct bg_arena **arena; + unsigned char arenas; + /* */ + struct bg_arena *(*name2arena) (char *name); + void (*queue_add) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type); + enum BATTLEGROUNDS_QUEUE_ACK (*can_queue) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type); + int (*id2pos) (int queue_id, int account_id); + void (*queue_pc_cleanup) (struct map_session_data *sd); + void (*begin) (struct bg_arena *arena); + int (*begin_timer) (int tid, unsigned int tick, int id, intptr_t data); + void (*queue_pregame) (struct bg_arena *arena); + int (*fillup_timer) (int tid, unsigned int tick, int id, intptr_t data); + void (*queue_ready_ack) (struct bg_arena *arena, struct map_session_data *sd, bool response); + /* */ + void (*config_read) (void); +} bg_s; + +struct battleground_interface *bg; + +void battleground_defaults(void); + #endif /* _BATTLEGROUND_H_ */ |