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