hedgewars/uTypes.pas
branchqmlfrontend
changeset 12855 1b2b84315d27
parent 11828 a69124eb7ce7
parent 12701 79e13080b9db
equal deleted inserted replaced
11843:01f88c3b7b66 12855:1b2b84315d27
    40 
    40 
    41     // Game types that help determining what the engine is actually supposed to do
    41     // Game types that help determining what the engine is actually supposed to do
    42     TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax, gmtRecord);
    42     TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax, gmtRecord);
    43 
    43 
    44     // Different files are stored in different folders, this enumeration is used to tell which folder to use
    44     // Different files are stored in different folders, this enumeration is used to tell which folder to use
    45     TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps,
    45     TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptConfig, ptTeams, ptMaps,
    46             ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts, ptLocale,
    46             ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts, ptLocale,
    47             ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps,
    47             ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps,
    48             ptSuddenDeath, ptButtons, ptShaders, ptConfig);
    48             ptSuddenDeath, ptButtons, ptShaders);
    49 
    49 
    50     // Available sprites for displaying stuff
    50     // Available sprites for displaying stuff
    51     TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame,
    51     TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprBigDigitGray, sprBigDigitGreen,
    52             sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee,
    52             sprBigDigitRed, sprFrame, sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee,
    53             sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff,
    53             sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff,
    54             sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower,
    54             sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower,
    55             sprClusterBomb, sprClusterParticle, sprFlame,
    55             sprClusterBomb, sprClusterParticle, sprFlame,
    56             sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR,
    56             sprHorizont, sprHorizontL, sprHorizontR, sprSky, sprSkyL, sprSkyR,
    57             sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners,
    57             sprAMSlot, sprAMAmmos, sprAMAmmosBW, sprAMSlotKeys, sprAMCorners,
    87             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
    87             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
    88             sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
    88             sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
    89             sprBulletHit, sprSnowball, sprHandSnowball, sprSnow,
    89             sprBulletHit, sprSnowball, sprHandSnowball, sprSnow,
    90             sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis,
    90             sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis,
    91             sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun,
    91             sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun,
    92             sprFrozenHog, sprAmRubber, sprBoing, sprCustom1, sprCustom2, sprAirMine, sprHandAirMine
    92             sprFrozenHog, sprAmRubber, sprBoing, sprCustom1, sprCustom2, sprCustom3, sprCustom4,
       
    93             sprCustom5, sprCustom6, sprCustom7, sprCustom8, sprAirMine, sprHandAirMine,
       
    94             sprFlakeL, sprSDFlakeL, sprCloudL, sprSDCloudL, sprDuck, sprHandDuck
    93             );
    95             );
    94 
    96 
    95     // Gears that interact with other Gears and/or Land
    97     // Gears that interact with other Gears and/or Land
    96     // first row of gears (<gtExplosives) should be avoided when searching a spawn place
    98     // first row of gears (<gtExplosives) should be avoided when searching a spawn place
    97     TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtAirMine, gtExplosives, 
    99     TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtAirMine, gtExplosives, 
   105             gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 41
   107             gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 41
   106             gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 45
   108             gtSniperRifleShot, gtJetpack, gtMolotov, gtBirdy, // 45
   107             gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51
   109             gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51
   108             gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56
   110             gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56
   109             gtNapalmBomb, gtSnowball, gtFlake, {gtStructure,} gtLandGun, gtTardis, // 61
   111             gtNapalmBomb, gtSnowball, gtFlake, {gtStructure,} gtLandGun, gtTardis, // 61
   110             gtIceGun, gtAddAmmo, gtGenericFaller, gtKnife); // 65
   112             gtIceGun, gtAddAmmo, gtGenericFaller, gtKnife, gtDuck); // 66
   111 
   113 
   112     // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
   114     // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
   113     TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
   115     TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
   114             vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble,
   116             vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble,
   115             vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtShell,
   117             vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtShell,
   143             sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket,
   145             sndMelonImpact, sndDroplet1, sndDroplet2, sndDroplet3, sndEggBreak, sndDrillRocket,
   144             sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater,
   146             sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater,
   145             sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7,
   147             sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7,
   146             sndPiano8, sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack,
   148             sndPiano8, sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack,
   147             sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact,
   149             sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact,
   148             sndIceBeam, sndHogFreeze, sndAirMineImpact, sndKnifeImpact, sndExtraTime
   150             sndIceBeam, sndHogFreeze, sndAirMineImpact, sndKnifeImpact, sndExtraTime, sndLaserSight,
   149             );
   151             sndInvulnerable, sndJetpackLaunch, sndJetpackBoost, sndPortalShot, sndPortalSwitch,
       
   152             sndPortalOpen, sndBlowTorch, sndCountdown1, sndCountdown2, sndCountdown3, sndCountdown4,
       
   153             sndDuckDrop, sndDuckWater, sndDuckDie, sndCustom1, sndCustom2, sndCustom3, sndCustom4,
       
   154             sndCustom5, sndCustom6, sndCustom7, sndCustom8);
   150 
   155 
   151     // Available ammo types to be used by hedgehogs
   156     // Available ammo types to be used by hedgehogs
   152     TAmmoType  = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6
   157     TAmmoType  = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6
   153             amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13
   158             amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, // 13
   154             amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18
   159             amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, // 18
   156             amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30
   161             amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30
   157             amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
   162             amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
   158             amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
   163             amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
   159             amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
   164             amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
   160             amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, // 53
   165             amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, // 53
   161             amIceGun, amKnife, amRubber, amAirMine); // 57
   166             amIceGun, amKnife, amRubber, amAirMine, amDuck); // 58
   162 
   167 
   163     // Different kind of crates that e.g. hedgehogs can pick up
   168     // Different kind of crates that e.g. hedgehogs can pick up
   164     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
   169     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
   165 
   170 
   166     THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
   171     THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
   271 // Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes
   276 // Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes
   272             Health, Damage, Karma: LongInt;
   277             Health, Damage, Karma: LongInt;
   273 // DirAngle is a 'real' - if you do not need it for rotation of sprite in uGearsRender, you can use it for any visual-only value
   278 // DirAngle is a 'real' - if you do not need it for rotation of sprite in uGearsRender, you can use it for any visual-only value
   274             DirAngle: real;
   279             DirAngle: real;
   275 // These are frequently overridden to serve some other purpose
   280 // These are frequently overridden to serve some other purpose
   276 	    Boom: Longword;          // amount of damage caused by the gear
   281             Boom: Longword;          // amount of damage caused by the gear
   277             Pos: Longword;           // Commonly overridden.  Example use is posCase values in uConsts.
   282             Pos: Longword;           // Commonly overridden.  Example use is posCase values in uConsts.
   278             Angle, Power : Longword; // Used for hog aiming/firing.  Angle is rarely used as an Angle otherwise.
   283             Angle, Power : Longword; // Used for hog aiming/firing.  Angle is rarely used as an Angle otherwise.
   279             Timer, WDTimer : LongWord;        // Typically used for some sort of gear timer. Time to explosion, remaining fuel...
   284             Timer, WDTimer : LongWord;        // Typically used for some sort of gear timer. Time to explosion, remaining fuel...
   280             Tag: LongInt;            // Quite generic. Variety of uses.
   285             Tag: LongInt;            // Quite generic. Variety of uses.
   281             FlightTime: Longword;    // Initially added for batting of hogs to determine homerun. Used for some firing delays
   286             FlightTime: Longword;    // Initially added for batting of hogs to determine homerun. Used for some firing delays
   324         DamageRecv,
   329         DamageRecv,
   325         DamageGiven: Longword;
   330         DamageGiven: Longword;
   326         StepDamageRecv,
   331         StepDamageRecv,
   327         StepDamageGiven,
   332         StepDamageGiven,
   328         StepKills: Longword;
   333         StepKills: Longword;
       
   334         StepPoisoned,
       
   335         StepDied,
       
   336         Sacrificed: boolean;
   329         MaxStepDamageRecv,
   337         MaxStepDamageRecv,
   330         MaxStepDamageGiven,
   338         MaxStepDamageGiven,
   331         MaxStepKills: Longword;
   339         MaxStepKills: Longword;
   332         FinishedTurns: Longword;
   340         FinishedTurns: Longword;
   333         end;
   341         end;
   449             sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
   457             sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
   450             sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
   458             sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
   451             sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb,
   459             sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb,
   452             sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector,
   460             sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector,
   453             sidDrillStrike, sidSnowball, sidNothing, sidTardis,
   461             sidDrillStrike, sidSnowball, sidNothing, sidTardis,
   454             {sidStructure,} sidLandGun, sidIceGun, sidKnife, sidRubber, sidAirMine);
   462             {sidStructure,} sidLandGun, sidIceGun, sidKnife, sidRubber, sidAirMine,
   455 
   463             sidDuck);
   456     TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
   464 
       
   465     TMsgStrId = (sidLoading, sidDraw, sidWinner, sidVolume, sidPaused,
   457             sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
   466             sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
   458             sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady,
   467             sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady,
   459             sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce,
   468             sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce,
   460             sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn, sidPressTarget);
   469             sidMute, sidAFK, sidAutoCameraOff, sidAutoCameraOn, sidPressTarget,
       
   470             sidNotAvailableInSD, sidHealthGain, sidEmptyCrate);
   461 
   471 
   462     // Events that are important for the course of the game or at least interesting for other reasons
   472     // Events that are important for the course of the game or at least interesting for other reasons
   463     TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw,
   473     TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw,
   464             eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped,
   474             eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped,
   465             eidHurtSelf, eidHomerun, eidGone);
   475             eidHurtSelf, eidHomerun, eidGone, eidPoisoned, eidResurrected,
   466 
   476             eidKamikaze, eidTimeTravelEnd, eidTimeout, eidKingDied);
   467     TGoalStrId = (gidCaption, gidSubCaption, gidForts, gidLowGravity, gidInvulnerable,
   477 
       
   478     TGoalStrId = (gidCaption, gidSubCaption, gidPlaceKing, gidLowGravity, gidInvulnerable,
   468             gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery,
   479             gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery,
   469             gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer,
   480             gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer,
   470             gidRandomMineTimer, gidDamageModifier, gidResetHealth, gidAISurvival,
   481             gidRandomMineTimer, gidDamageModifier, gidResetHealth, gidAISurvival,
   471             gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam);
   482             gidInfAttack, gidResetWeps, gidPerHogAmmo, gidTagTeam, gidMoreWind);
   472 
   483 
   473 
   484 
   474     TLandArray = packed array of array of LongWord;
   485     TLandArray = packed array of array of LongWord;
   475     TCollisionArray = packed array of array of Word;
   486     TCollisionArray = packed array of array of Word;
   476     TDirtyTag = packed array of array of byte;
   487     TDirtyTag = packed array of array of byte;
   513             Path, AltPath: TPathType;
   524             Path, AltPath: TPathType;
   514             Texture: PTexture;
   525             Texture: PTexture;
   515             Surface: PSDL_Surface;
   526             Surface: PSDL_Surface;
   516             Width, Height, imageWidth, imageHeight: LongInt;
   527             Width, Height, imageWidth, imageHeight: LongInt;
   517             saveSurf: boolean;
   528             saveSurf: boolean;
       
   529             critical: boolean;
       
   530             checkSum: boolean; // use for images where if they are missing a desync can occur.
   518             priority: GLfloat;
   531             priority: GLfloat;
   519             getDimensions, getImageDimensions: boolean;
   532             getDimensions, getImageDimensions: boolean;
   520             end;
   533             end;
   521 
   534 
   522     // gear data types
   535     // gear data types