1 // 2 // Definitions of common game-only data structures/functions 3 // (and declarations of data appearing in both) 4 // for EDuke32 and Mapster32 5 // 6 7 #ifndef EDUKE32_COMMON_GAME_H_ 8 #define EDUKE32_COMMON_GAME_H_ 9 10 #include "build.h" 11 12 #include "collections.h" 13 #include "grpscan.h" 14 15 #include "vfs.h" 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 extern int g_useCwd; 22 23 #ifndef APPNAME 24 #define APPNAME "Witchaven" 25 #endif 26 27 #ifndef APPBASENAME 28 #define APPBASENAME "witchaven" 29 #endif 30 31 #define GAMEFLAG_WH1 0x00000001 32 #define GAMEFLAG_WH2 0x00000002 33 #define GAMEFLAGMASK 0x000000FF // flags allowed from grpinfo 34 35 extern struct grpfile_t const* g_selectedGrp; 36 37 extern int32_t g_gameType; 38 extern int g_addonNum; 39 40 #define WH1 (g_gameType & GAMEFLAG_WH1) 41 #define WH2 (g_gameType & GAMEFLAG_WH2) 42 43 44 enum Games_t { 45 GAME_WH = 0, 46 GAME_WH2, 47 GAMECOUNT 48 }; 49 50 enum searchpathtypes_t { 51 SEARCHPATH_REMOVE = 1 << 0, 52 }; 53 54 enum basepal_t { 55 BASEPAL = 0, 56 ANIMPAL, 57 BASEPALCOUNT 58 }; 59 60 #define OSDTEXT_DEFAULT "^00" 61 #define OSDTEXT_DARKRED "^10" 62 #define OSDTEXT_GREEN "^11" 63 #define OSDTEXT_RED "^21" 64 #define OSDTEXT_YELLOW "^23" 65 66 #define OSDTEXT_BRIGHT "^S0" 67 68 #define OSD_ERROR OSDTEXT_DARKRED OSDTEXT_BRIGHT 69 70 extern const char* g_gameNamePtr; 71 72 extern char* g_grpNamePtr; 73 extern char* g_scriptNamePtr; 74 extern char* g_rtsNamePtr; 75 76 extern const char* G_DefaultGrpFile(void); 77 extern const char* G_GrpFile(void); 78 79 extern const char* G_DefaultConFile(void); 80 extern const char* G_ConFile(void); 81 82 extern GrowArray<char*> g_scriptModules; 83 84 extern void G_AddCon(const char* buffer); 85 extern void G_AddConModule(const char* buffer); 86 87 extern void clearGrpNamePtr(void); 88 extern void clearScriptNamePtr(void); 89 90 extern int loaddefinitions_game(const char* fn, int32_t preload); 91 extern int32_t g_groupFileHandle; 92 93 ////////// 94 95 extern void G_InitMultiPsky(int CLOUDYOCEAN__DYN, int MOONSKY1__DYN, int BIGORBIT1__DYN, int LA__DYN); 96 extern void G_SetupGlobalPsky(void); 97 98 ////////// 99 100 extern char g_modDir[BMAX_PATH]; 101 extern buildvfs_kfd kopen4loadfrommod(const char* filename, char searchfirst); 102 103 extern void G_AddSearchPaths(void); 104 extern void G_CleanupSearchPaths(void); 105 106 extern void G_ExtPreInit(int32_t argc, char const* const* argv); 107 extern void G_ExtInit(void); 108 extern void G_ScanGroups(void); 109 extern void G_LoadGroups(int32_t autoload); 110 111 extern const char* G_GetInstallPath(int32_t insttype); 112 113 ////////// 114 115 void G_LoadGroupsInDir(const char* dirname); 116 void G_DoAutoload(const char* dirname); 117 118 ////////// 119 120 extern void G_LoadLookups(void); 121 122 ////////// 123 124 #if defined HAVE_FLAC || defined HAVE_VORBIS 125 # define FORMAT_UPGRADE_ELIGIBLE 126 extern int g_maybeUpgradeSoundFormats; 127 extern buildvfs_kfd S_OpenAudio(const char* fn, char searchfirst, uint8_t ismusic); 128 #else 129 # define S_OpenAudio(fn, searchfirst, ismusic) kopen4loadfrommod(fn, searchfirst) 130 #endif 131 132 #ifdef __cplusplus 133 } 134 #endif 135 136 #endif 137