hedgewars/uFLTypes.pas
author unc0rr
Mon, 07 Dec 2015 00:05:41 +0300
branchqmlfrontend
changeset 11449 2bf0491d5e88
parent 11443 5182d44fb733
child 11450 0c75fa9ce340
permissions -rw-r--r--
Client flags handling implementation start

unit uFLTypes;
interface

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);

    TIPCMessage = record
                   str: shortstring;
                   len: Longword;
                   buf: Pointer
               end;

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

    TGameType = (gtPreview, gtLocal);
    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;
            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.