X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=afb90b7a159a37014a35a43e6f7801876bb2ab9e;hb=3ea7bc006da99f1b13d817285820023b30ce2e38;hp=0e67600c6b478fa589f5c80ff850790aa7d66a97;hpb=05f79aac9452f5666ee6dc712637adc1d9ae6b7a;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 0e67600c..afb90b7a 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -118,6 +118,13 @@ #define SCREEN_KEYBOARD_POS(h) ((h) / 2) #endif +// values for drag-and-drop support (some parts not added before SDL 2.0.5) +#if !SDL_VERSION_ATLEAST(2,0,5) +#define SDL_DROPTEXT (SDL_DROPFILE + 1) +#define SDL_DROPBEGIN (SDL_DROPFILE + 2) +#define SDL_DROPCOMPLETE (SDL_DROPFILE + 3) +#endif + // default input keys #define DEFAULT_KEY_LEFT KSYM_Left #define DEFAULT_KEY_RIGHT KSYM_Right @@ -711,6 +718,7 @@ #define TREE_TYPE_LEVEL_DIR 3 #define TREE_TYPE_LEVEL_NR 4 +#define NUM_BASE_TREE_TYPES 4 #define NUM_TREE_TYPES 5 #define INFOTEXT_UNDEFINED "" @@ -732,6 +740,36 @@ INFOTEXT_MUSIC_DIR : \ INFOTEXT_UNDEFINED) +#define TREE_USERDIR(t) ((t) == TREE_TYPE_LEVEL_DIR ? \ + getUserLevelDir(NULL) : \ + (t) == TREE_TYPE_GRAPHICS_DIR ? \ + getUserGraphicsDir() : \ + (t) == TREE_TYPE_SOUNDS_DIR ? \ + getUserSoundsDir() : \ + (t) == TREE_TYPE_MUSIC_DIR ? \ + getUserMusicDir() : \ + NULL) + +#define TREE_FIRST_NODE_PTR(t) ((t) == TREE_TYPE_LEVEL_DIR ? \ + &leveldir_first : \ + (t) == TREE_TYPE_GRAPHICS_DIR ? \ + &artwork.gfx_first : \ + (t) == TREE_TYPE_SOUNDS_DIR ? \ + &artwork.snd_first : \ + (t) == TREE_TYPE_MUSIC_DIR ? \ + &artwork.mus_first : \ + NULL) + +#define TREE_FIRST_NODE(t) ((t) == TREE_TYPE_LEVEL_DIR ? \ + leveldir_first : \ + (t) == TREE_TYPE_GRAPHICS_DIR ? \ + artwork.gfx_first : \ + (t) == TREE_TYPE_SOUNDS_DIR ? \ + artwork.snd_first : \ + (t) == TREE_TYPE_MUSIC_DIR ? \ + artwork.mus_first : \ + NULL) + // values for artwork handling #define LEVELDIR_ARTWORK_SET_PTR(leveldir, type) \ ((type) == ARTWORK_TYPE_GRAPHICS ? \ @@ -827,6 +865,21 @@ (type) == ARTWORK_TYPE_MUSIC ? \ options.music_directory : "") +#define USER_ARTWORK_DIRECTORY(type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + getUserGraphicsDir() : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + getUserSoundsDir() : \ + (type) == ARTWORK_TYPE_MUSIC ? \ + getUserMusicDir() : "") + +#define ARTWORK_DEFAULT_SUBDIR(type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + GFX_DEFAULT_SUBDIR : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + SND_DEFAULT_SUBDIR : \ + MUS_DEFAULT_SUBDIR) + #define UPDATE_BUSY_STATE() \ { \ if (gfx.draw_busy_anim_function != NULL) \ @@ -1239,6 +1292,17 @@ struct SetupInternalInfo boolean choose_from_top_leveldir; boolean show_scaling_in_title; + + boolean menu_game; + boolean menu_editor; + boolean menu_graphics; + boolean menu_sound; + boolean menu_artwork; + boolean menu_input; + boolean menu_touch; + boolean menu_shortcuts; + boolean menu_exit; + boolean menu_save_and_exit; }; struct SetupDebugInfo @@ -1592,6 +1656,8 @@ struct TextPosInfo int tile_size; // special case for list of network players int border_size; // special case for list of preview players int vertical; // special case for list of preview players + + boolean redefined; // redefined by custom artwork }; struct MouseActionInfo