#pragma once #include "random.h" //this one just for structs, variables and functions used between the client and server scripts... extern char cClientName[30]; extern char cServerName[30]; extern bool Sawarded; extern unsigned int setID; // ja2_mp.ini: File #define JA2MP_INI_FILENAME "ja2_mp.ini" // "ja2_mp.ini: Sections #define JA2MP_INI_INITIAL_SECTION "JA2 Multiplayer Initial Settings" #define JA2MP_INI_SERVER_SECTION "JA2 Multiplayer Servers" // ja2_mp.ini: Properties #define JA2MP_ALLOW_CUSTOM_NIV "INVENTORY_ATTACHMENTS" #define JA2MP_CIV_ENABLED "ENABLE_CIVILIANS_IN_COOP" #define JA2MP_CLIENT_NAME "PLAYER_NAME" #define JA2MP_DAMAGE_MULTIPLIER "WEAPON_DAMAGE" #define JA2MP_DIFFICULT_LEVEL "DIFFICULTY_LEVEL" #define JA2MP_DISABLE_BOBBY_RAYS "BOBBY_RAYS" #define JA2MP_FILE_TRANSFER_DIRECTORY "GAME_DATA_SYNC_DIRECTORY" #define JA2MP_GAME_MODE "GAME_TYPE" #define JA2MP_KIT_BAG "KIT_BAG" #define JA2MP_MAX_CLIENTS "MAX_PLAYERS" #define JA2MP_MAX_MERCS "MAX_MERCS" #define JA2MP_OVERRIDE_MAX_AI "MAX_ENEMIES_IN_COOP" #define JA2MP_RANDOM_EDGES "STARTING_SECTOR_EDGE" #define JA2MP_RANDOM_MERCS "HIRE_MERCS_METHOD" #define JA2MP_REPORT_NAME "REPORT_HIRED_MERC_NAME" #define JA2MP_SAME_MERC "SAME_MERC_ALLOWED" #define JA2MP_SERVER_IP "SERVER_IP" #define JA2MP_SERVER_NAME "SERVER_NAME" #define JA2MP_SERVER_PORT "SERVER_PORT" #define JA2MP_STARTING_BALANCE "STARTING_CASH" #define JA2MP_SYNC_CLIENTS_MP_DIR "SYNC_GAME_DIRECTORY" #define JA2MP_TIMED_TURN_SECS_PER_TICK "TIMED_TURNS" #define JA2MP_TIME "STARTING_TIME" #define JA2MP_NEW_TRAITS "SKILL_TRAITS" typedef struct { UINT8 client_num; char client_name[30]; int team; int cl_edge; char client_version[30]; }client_info; typedef struct { UINT8 maxClients; UINT8 sameMercAllowed; float damageMultiplier; INT16 gsMercArriveSectorX; INT16 gsMercArriveSectorY; UINT8 enemyEnabled; UINT8 creatureEnabled; UINT8 militiaEnabled; UINT8 civEnabled; UINT8 gameType; INT32 secondsPerTick; INT32 startingCash; UINT8 disableBobbyRay; UINT8 disableMercEquipment; BOOLEAN sofGunNut; UINT8 soubGameStyle; UINT8 soubDifficultyLevel; UINT8 soubSkillTraits; BOOLEAN sofTurnTimeLimit; BOOLEAN sofIronManMode; UINT8 soubBobbyRayQuality; UINT8 soubBobbyRayQuantity; UINT8 maxMercs; UINT8 client_num; char client_name[30]; char client_names[4][30]; int client_edges[5]; int client_teams[4]; char server_name[30]; int team; char kitBag[100]; UINT8 disableMorale; UINT8 reportHiredMerc; UINT8 startingSectorEdge; float startingTime; UINT8 weaponReadyBonus; UINT8 inventoryAttachment; UINT8 disableSpectatorMode; // OJW - added 20081220 UINT8 randomStartingEdge; UINT8 randomMercs; int random_mercs[7]; char server_version[30]; // OJW - added 20091024 UINT32 random_table[MAX_PREGENERATED_NUMS]; } settings_struct; // WANNE: FILE TRANSFER typedef struct { STRING512 fileTransferDirectory; int syncClientsDirectory; // Does the server want to sync files to the clients char serverName[30]; // The name of the server. This is used on the client side as a folder inside the client transfer directory long totalTransferBytes; } filetransfersettings_struct; // added 080101 by OJW typedef struct { INT16 gsMercArriveSectorX; INT16 gsMercArriveSectorY; float startingTime; } mapchange_struct; typedef struct { UINT8 client_num; UINT8 newedge; } edgechange_struct; typedef struct { UINT8 client_num; UINT8 newteam; } teamchange_struct; typedef struct { UINT8 client_num; UINT8 progress; UINT8 downloading; } progress_struct; typedef struct { BOOLEAN fMarkInterruptOccurred; INT8 bteam; UINT8 ubid; }endINT; typedef struct { INT8 bteam; }real_struct; typedef struct { UINT8 ubStartingTeam; }sc_struct; namespace ja2 { namespace mp { void InitializeMultiplayerProfile(vfs::Path const& profileRoot); } }