|
Atrinik Client 2.5
|
00001 /************************************************************************ 00002 * Atrinik, a Multiplayer Online Role Playing Game * 00003 * * 00004 * Copyright (C) 2009-2011 Alex Tokar and Atrinik Development Team * 00005 * * 00006 * Fork from Daimonin (Massive Multiplayer Online Role Playing Game) * 00007 * and Crossfire (Multiplayer game for X-windows). * 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 * This program is distributed in the hope that it will be useful, * 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00017 * GNU General Public License for more details. * 00018 * * 00019 * You should have received a copy of the GNU General Public License * 00020 * along with this program; if not, write to the Free Software * 00021 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 00022 * * 00023 * The author can be reached at admin@atrinik.org * 00024 ************************************************************************/ 00025 00030 #ifndef MAIN_H 00031 #define MAIN_H 00032 00033 #define HUGE_BUF 4096 00034 #define MAX_BUF 256 00035 00036 #define FRAMES_PER_SECOND 30 00037 #define COLOR_BUF 7 00038 00039 #define SDL_DEFAULT_REPEAT_INTERVAL 30 00040 00041 /* For hash table (bmap, ...) */ 00042 #define MAXSTRING 20 00043 00045 typedef struct server_struct 00046 { 00048 struct server_struct *next; 00049 00051 char *ip; 00052 00054 char *name; 00055 00057 char *version; 00058 00060 char *desc; 00061 00063 int player; 00064 00066 int port; 00067 } server_struct; 00068 00072 typedef struct msg_anim_struct 00073 { 00075 char message[MAX_BUF]; 00076 00078 uint32 tick; 00079 00081 char color[COLOR_BUF]; 00082 } msg_anim_struct; 00083 00084 extern struct msg_anim_struct msg_anim; 00085 00086 #define FILE_ATRINIK_P0 "data/atrinik.p0" 00087 00088 /* Face requested from server - do it only one time */ 00089 #define FACE_REQUESTED 16 00090 00091 typedef struct _face_struct 00092 { 00093 /* Our face data. if != null, face is loaded */ 00094 struct _Sprite *sprite; 00095 00096 /* Our face name. if != null, face is requested */ 00097 char *name; 00098 00099 /* Checksum of face */ 00100 uint32 checksum; 00101 00102 int flags; 00103 }_face_struct; 00104 00105 #define NUM_STATS 7 00106 00107 typedef struct spell_entry_struct 00108 { 00110 char name[MAX_BUF]; 00111 00113 char icon_name[MAX_BUF]; 00114 00116 char desc[HUGE_BUF]; 00117 00119 int icon; 00120 00122 int cost; 00123 00129 char path; 00130 00132 uint8 known; 00133 00135 uint8 type; 00136 } spell_entry_struct; 00137 00141 #define SPELL_PATH_NUM 21 00142 00143 typedef struct skill_entry_struct 00144 { 00146 char name[MAX_BUF]; 00147 00149 char icon_name[MAX_BUF]; 00150 00152 char desc[HUGE_BUF]; 00153 00155 int icon; 00156 00158 uint8 known; 00159 00160 int level; 00161 00162 sint64 exp; 00163 } skill_entry_struct; 00164 00165 #define SKILL_LIST_TYPES 7 00166 00168 typedef struct _fire_mode 00169 { 00171 int item; 00172 00174 int amun; 00175 00176 spell_entry_struct *spell; 00177 00179 skill_entry_struct *skill; 00180 00182 char name[128]; 00183 }_fire_mode; 00184 00186 typedef struct help_files_struct 00187 { 00189 char helpname[MAX_BUF]; 00190 00192 char title[MAX_BUF]; 00193 00195 char message[HUGE_BUF * 12]; 00196 00198 int dm_only; 00199 00201 int autocomplete; 00202 00204 struct help_files_struct *next; 00205 } help_files_struct; 00206 00207 extern help_files_struct *help_files; 00208 00209 typedef enum _fire_mode_id 00210 { 00211 FIRE_MODE_BOW, 00212 FIRE_MODE_SPELL, 00213 FIRE_MODE_WAND, 00214 FIRE_MODE_SKILL, 00215 FIRE_MODE_THROW, 00216 FIRE_MODE_INIT 00217 }_fire_mode_id; 00218 00220 #define FIRE_ITEM_NO -1 00221 00223 typedef enum _game_status 00224 { 00226 GAME_STATUS_INIT, 00227 00229 GAME_STATUS_META, 00230 00232 GAME_STATUS_START, 00233 00235 GAME_STATUS_WAITLOOP, 00236 00238 GAME_STATUS_STARTCONNECT, 00239 00241 GAME_STATUS_CONNECT, 00242 00244 GAME_STATUS_VERSION, 00245 00247 GAME_STATUS_SETUP, 00248 00250 GAME_STATUS_WAITSETUP, 00251 00253 GAME_STATUS_REQUEST_FILES, 00254 00256 GAME_STATUS_ADDME, 00257 00259 GAME_STATUS_LOGIN, 00260 00262 GAME_STATUS_NAME, 00263 00265 GAME_STATUS_PSWD, 00266 00268 GAME_STATUS_VERIFYPSWD, 00269 00271 GAME_STATUS_NEW_CHAR, 00272 00275 GAME_STATUS_WAITFORPLAY, 00276 00278 GAME_STATUS_QUIT, 00279 00281 GAME_STATUS_PLAY 00282 } _game_status; 00283 00284 extern int f_custom_cursor; 00285 extern int x_custom_cursor; 00286 extern int y_custom_cursor; 00287 00288 extern _game_status GameStatus; 00289 extern uint32 LastTick; 00290 extern server_struct *selected_server; 00291 extern int map_udate_flag, map_redraw_flag; 00292 00293 enum 00294 { 00295 ESC_MENU_KEYS, 00296 ESC_MENU_SETTINGS, 00297 ESC_MENU_LOGOUT, 00298 ESC_MENU_BACK, 00299 00300 /* Last index */ 00301 ESC_MENU_INDEX 00302 }; 00303 00304 /* With this, we overrule bitmap loading params. 00305 * For example, we need for fonts an attached palette, and not the native vid mode */ 00306 00308 #define SURFACE_FLAG_PALETTE 1 00309 00310 #define SURFACE_FLAG_COLKEY_16M 2 00311 #define SURFACE_FLAG_DISPLAYFORMAT 4 00312 #define SURFACE_FLAG_DISPLAYFORMATALPHA 8 00313 00315 typedef enum _pic_type 00316 { 00317 PIC_TYPE_DEFAULT, PIC_TYPE_PALETTE, PIC_TYPE_TRANS, PIC_TYPE_ALPHA 00318 } _pic_type; 00319 00321 typedef struct _bitmap_name 00322 { 00324 char *name; 00325 00327 _pic_type type; 00328 } _bitmap_name; 00329 00330 typedef enum _bitmap_index 00331 { 00332 BITMAP_INTRO, 00333 00334 BITMAP_DOLL, 00335 00336 BITMAP_LOGIN_INP, 00337 BITMAP_INVSLOT, 00338 00339 /* Status bars */ 00340 BITMAP_HP, 00341 BITMAP_SP, 00342 BITMAP_GRACE, 00343 BITMAP_FOOD, 00344 BITMAP_HP_BACK, 00345 BITMAP_SP_BACK, 00346 BITMAP_GRACE_BACK, 00347 BITMAP_FOOD_BACK, 00348 00349 BITMAP_APPLY, 00350 BITMAP_UNPAID, 00351 BITMAP_CURSED, 00352 BITMAP_DAMNED, 00353 BITMAP_LOCK, 00354 BITMAP_MAGIC, 00355 BITMAP_FIRE_READY, 00356 00357 BITMAP_RANGE, 00358 BITMAP_RANGE_MARKER, 00359 BITMAP_RANGE_SKILL, 00360 BITMAP_RANGE_SKILL_NO, 00361 BITMAP_RANGE_THROW, 00362 BITMAP_RANGE_THROW_NO, 00363 BITMAP_RANGE_TOOL, 00364 BITMAP_RANGE_TOOL_NO, 00365 BITMAP_RANGE_WIZARD, 00366 BITMAP_RANGE_WIZARD_NO, 00367 00368 BITMAP_CMARK_START, 00369 BITMAP_CMARK_END, 00370 BITMAP_CMARK_MIDDLE, 00371 00372 BITMAP_TWIN_SCROLL, 00373 BITMAP_INV_SCROLL, 00374 BITMAP_BELOW_SCROLL, 00375 00376 BITMAP_NUMBER, 00377 BITMAP_INVSLOT_U, 00378 00379 BITMAP_DEATH, 00380 BITMAP_SLEEP, 00381 BITMAP_CONFUSE, 00382 BITMAP_PARALYZE, 00383 BITMAP_SCARED, 00384 BITMAP_BLIND, 00385 00386 BITMAP_QUICKSLOTS, 00387 BITMAP_QUICKSLOTSV, 00388 BITMAP_INVENTORY, 00389 BITMAP_INV_BG, 00390 00391 BITMAP_EXP_BORDER, 00392 BITMAP_EXP_SLIDER, 00393 BITMAP_EXP_BUBBLE1, 00394 BITMAP_EXP_BUBBLE2, 00395 00396 BITMAP_STATS_BG, 00397 BITMAP_BELOW, 00398 00399 BITMAP_TARGET_ATTACK, 00400 BITMAP_TARGET_TALK, 00401 BITMAP_TARGET_NORMAL, 00402 00403 BITMAP_WARN_HP, 00404 BITMAP_WARN_FOOD, 00405 00406 BITMAP_RANGE_BUTTONS_OFF, 00407 BITMAP_RANGE_BUTTONS_LEFT, 00408 BITMAP_RANGE_BUTTONS_RIGHT, 00409 00410 BITMAP_TARGET_HP, 00411 BITMAP_TARGET_HP_B, 00412 00413 BITMAP_TEXTWIN_MASK, 00414 BITMAP_SLIDER_UP, 00415 BITMAP_SLIDER_DOWN, 00416 BITMAP_SLIDER, 00417 00418 BITMAP_EXP_SKILL_BORDER, 00419 BITMAP_EXP_SKILL_LINE, 00420 BITMAP_EXP_SKILL_BUBBLE, 00421 00422 BITMAP_TRAPPED, 00423 BITMAP_PRAY, 00424 BITMAP_BOOK, 00425 BITMAP_REGION_MAP, 00426 BITMAP_SLIDER_LONG, 00427 BITMAP_INVSLOT_MARKED, 00428 BITMAP_MSCURSOR_MOVE, 00429 BITMAP_RESIST_BG, 00430 BITMAP_MAIN_LVL_BG, 00431 BITMAP_SKILL_EXP_BG, 00432 BITMAP_REGEN_BG, 00433 BITMAP_SKILL_LVL_BG, 00434 BITMAP_MENU_BUTTONS, 00435 BITMAP_PLAYER_INFO, 00436 BITMAP_TARGET_BG, 00437 BITMAP_TEXTINPUT, 00438 00439 BITMAP_SQUARE_HIGHLIGHT, 00440 BITMAP_SERVERS_BG, 00441 BITMAP_SERVERS_BG_OVER, 00442 BITMAP_NEWS_BG, 00443 BITMAP_EYES, 00444 BITMAP_POPUP, 00445 BITMAP_ARROW_UP, 00446 BITMAP_ARROW_UP2, 00447 BITMAP_ARROW_DOWN, 00448 BITMAP_ARROW_DOWN2, 00449 BITMAP_BUTTON_ROUND, 00450 BITMAP_BUTTON_ROUND_DOWN, 00451 BITMAP_BUTTON_RECT, 00452 BITMAP_BUTTON_RECT_HOVER, 00453 BITMAP_BUTTON_RECT_DOWN, 00454 BITMAP_MAP_MARKER, 00455 BITMAP_LOADING_OFF, 00456 BITMAP_LOADING_ON, 00457 BITMAP_BUTTON, 00458 BITMAP_BUTTON_DOWN, 00459 BITMAP_CHECKBOX, 00460 BITMAP_CHECKBOX_ON, 00461 BITMAP_CONTENT, 00462 BITMAP_ICON_MUSIC, 00463 BITMAP_ICON_MAGIC, 00464 BITMAP_ICON_SKILL, 00465 BITMAP_ICON_PARTY, 00466 BITMAP_ICON_MAP, 00467 BITMAP_ICON_COGS, 00468 BITMAP_ICON_QUEST, 00469 BITMAP_FPS, 00470 00471 BITMAP_INIT 00472 }_bitmap_index; 00473 00474 /* For custom cursors */ 00475 enum 00476 { 00477 MSCURSOR_MOVE = 1 00478 }; 00479 00480 extern char text_input_string[MAX_INPUT_STRING]; 00481 extern int text_input_count; 00482 extern int text_input_string_flag; 00483 extern int text_input_string_end_flag; 00484 extern int text_input_string_esc_flag; 00485 uint32 text_input_opened; 00486 00487 /* Range table */ 00488 extern struct _fire_mode fire_mode_tab[FIRE_MODE_INIT]; 00489 extern int RangeFireMode; 00490 00491 extern struct _Sprite *Bitmaps[]; 00492 00493 /* Face data */ 00494 extern _face_struct FaceList[MAX_FACE_TILES]; 00495 00496 extern SDL_Surface *ScreenSurface; 00497 00498 /* Server's attributes */ 00499 extern struct sockaddr_in insock; 00500 00501 #endif
1.7.4