hedgewars/uFLTypes.pas
author unc0rr
Sat, 26 Dec 2015 22:29:57 +0300
branchqmlfrontend
changeset 11467 33a0e3a14ddc
parent 11465 9f2fb0031ef0
child 11832 8c71c5a1172f
permissions -rw-r--r--
- Fix passing of ansistrings via ipc - Some work on getting drawn maps from network (missing zlib unpack)

unit uFLTypes;
interface
uses SDLh;

const
    MAXARGS = 32;

type
    TMessageType = (mtRenderingPreview, mtPreview, mtAddPlayingTeam, mtRemovePlayingTeam
                    , mtAddTeam, mtRemoveTeam, mtTeamColor, mtHedgehogsNumber, mtNetData
                    , mtFlibEvent, mtConnected, mtDisconnected, mtAddLobbyClient
                    , mtRemoveLobbyClient, mtLobbyChatLine, mtAddRoomClient
                    , mtRemoveRoomClient, mtRoomChatLine, mtAddRoom, mtUpdateRoom
                    , mtRemoveRoom, mtError, mtWarning, mtMoveToLobby, mtMoveToRoom
                    , mtNickname, mtSeed, mtTheme, mtScript, mtFeatureSize, mtMapGen
                    , mtMap, mtMazeSize, mtTemplate, mtAmmo, mtScheme);

    TFLIBEvent = (flibGameFinished);

    TClientFlag = (cfReady, cfRegistered, cfInRoom, cfContributor, cfInGame, cfRoomAdmin, cfServerAdmin);

    PIPCMessage = ^TIPCMessage;
    TIPCMessage = record
                   str: shortstring;
                   len: Longword;
                   buf: Pointer;
                   barrier: Longword;
                   next: PIPCMessage;
               end;
    PIPCQueue = ^TIPCQueue;
    TIPCQueue = record
                   msg: TIPCMessage;
                   mut: PSDL_Mutex;
                   cond: PSDL_Cond;
                   last: PIPCMessage;
               end;

    TIPCCallback = procedure (p: pointer; msg: PChar; len: Longword);
    TUICallback = procedure (p: pointer; msgType: TMessageType; msg: PChar; len: Longword); cdecl;

    TGameType = (gtPreview, gtLocal, gtNet);
    THedgehog = record
            name: shortstring;
            hat: shortstring;
            end;
    TTeam = record
            teamName
            , flag
            , grave
            , fort
            , voice
            , owner: shortstring;
            color: Longword;
            extDriven: boolean;
            botLevel: Longword;
            hedgehogs: array[0..7] of THedgehog;
            hogsNumber: Longword;
        end;
    PTeam = ^TTeam;

    TScheme = record
            schemeName
            , scriptparam : shortstring;
            fortsmode
            , divteams
            , solidland
            , border
            , lowgrav
            , laser
            , invulnerability
            , mines
            , vampiric
            , karma
            , artillery
            , randomorder
            , king
            , placehog
            , sharedammo
            , disablegirders
            , disablewind
            , morewind
            , tagteam
            , resethealth
            , disablelandobjects
            , aisurvival
            , infattack
            , resetweps
            , perhogammo
            , bottomborder: boolean;
            damagefactor
            , turntime
            , health
            , suddendeath
            , caseprobability
            , minestime
            , landadds
            , minedudpct
            , explosives
            , minesnum
            , healthprobability
            , healthcaseamount
            , waterrise
            , healthdecrease
            , ropepct
            , getawaytime
            , airmines
            , worldedge: LongInt
        end;
    PScheme = ^TScheme;
    TAmmo = record
            ammoName: shortstring;
            a, b, c, d: shortstring;
        end;
    PAmmo = ^TAmmo;

    PGameConfig = ^TGameConfig;
    TGameConfig = record
            seed: shortstring;
            theme: shortstring;
            script: shortstring;
            map: shortstring;
            drawnData: array[word] of char;
            drawnDataSize: LongWord;
            scheme: TScheme;
            ammo: TAmmo;
            mapgen: LongInt;
            featureSize: LongInt;
            mazesize: LongInt;
            template: LongInt;
            gameType: TGameType;
            teams: array[0..7] of TTeam;
            arguments: array[0..Pred(MAXARGS)] of shortstring;
            argv: array[0..Pred(MAXARGS)] of PChar;
            argumentsNumber: Longword;
            nextConfig: PGameConfig;
            end;

implementation

end.