hedgewars/uTypes.pas
branchwebgl
changeset 9950 2759212a27de
parent 9521 8054d9d775fd
parent 9790 0b4b9fda5bd4
child 10015 4feced261c68
equal deleted inserted replaced
9521:8054d9d775fd 9950:2759212a27de
    85             sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
    85             sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
    86             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
    86             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
    87             sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
    87             sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
    88             sprBulletHit, sprSnowball, sprHandSnowball, sprSnow,
    88             sprBulletHit, sprSnowball, sprHandSnowball, sprSnow,
    89             sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis,
    89             sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet, sprTardis,
    90             sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun,
    90             sprSlider, sprBotlevels, sprHandKnife, sprKnife, sprStar, sprIceTexture, sprIceGun, sprFrozenHog, sprAmRubber, sprBoing
    91             sprFrozenHog
       
    92             );
    91             );
    93 
    92 
    94     // Gears that interact with other Gears and/or Land
    93     // Gears that interact with other Gears and/or Land
    95     TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtExplosives, // these gears should be avoided when searching a spawn place
    94     TGearType = (gtFlame, gtHedgehog, gtMine, gtCase, gtExplosives, // these gears should be avoided when searching a spawn place
    96             gtGrenade, gtShell, gtGrave, gtBee, // 8
    95             gtGrenade, gtShell, gtGrave, gtBee, // 8
   153             amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24
   152             amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24
   154             amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30
   153             amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30
   155             amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
   154             amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
   156             amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
   155             amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
   157             amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
   156             amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
   158             amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, amIceGun,
   157             amResurrector, amDrillStrike, amSnowball, amTardis, {amStructure,} amLandGun, amIceGun, amKnife, amRubber); // 56
   159             amKnife // 54
       
   160             );
       
   161 
   158 
   162     // Different kind of crates that e.g. hedgehogs can pick up
   159     // Different kind of crates that e.g. hedgehogs can pick up
   163     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
   160     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
   164 
   161 
   165     THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
   162     THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
   174 
   171 
   175     // Various 'emote' animations a hedgehog can do
   172     // Various 'emote' animations a hedgehog can do
   176     TWave = (waveRollup, waveSad, waveWave, waveHurrah, waveLemonade, waveShrug, waveJuggle);
   173     TWave = (waveRollup, waveSad, waveWave, waveHurrah, waveLemonade, waveShrug, waveJuggle);
   177 
   174 
   178     TRenderMode = (rmDefault, rmLeftEye, rmRightEye);
   175     TRenderMode = (rmDefault, rmLeftEye, rmRightEye);
   179     TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed,
   176     TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical);
   180                    smHorizontal, smVertical);
       
   181 
       
   182     TWorldEdge = (weNone, weWrap, weBounce, weSea, weSky);
   177     TWorldEdge = (weNone, weWrap, weBounce, weSea, weSky);
       
   178     TUIDisplay = (uiAll, uiNoTeams, uiNone);
   183 
   179 
   184     THHFont = record
   180     THHFont = record
   185             Handle: PTTF_Font;
   181             Handle: PTTF_Font;
   186             Height: LongInt;
   182             Height: LongInt;
   187             style: LongInt;
   183             style: LongInt;
   263             Elasticity: hwFloat;
   259             Elasticity: hwFloat;
   264             Friction  : hwFloat;
   260             Friction  : hwFloat;
   265             Density   : hwFloat; // Density is kind of a mix of size and density. Impacts distance thrown, wind.
   261             Density   : hwFloat; // Density is kind of a mix of size and density. Impacts distance thrown, wind.
   266             ImpactSound: TSound; // first sound, others have to be after it in the sounds def.
   262             ImpactSound: TSound; // first sound, others have to be after it in the sounds def.
   267             nImpactSounds: Word; // count of ImpactSounds.
   263             nImpactSounds: Word; // count of ImpactSounds.
   268 // Do not use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes
   264 // Don't use these if you want to take damage normally, otherwise health/damage are commonly used for other purposes
   269             Invulnerable: Boolean;
       
   270             Health, Damage, Karma: LongInt;
   265             Health, Damage, Karma: LongInt;
   271 // 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
   266 // 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
   272             DirAngle: real;
   267             DirAngle: real;
   273 // These are frequently overridden to serve some other purpose
   268 // These are frequently overridden to serve some other purpose
   274             Pos: Longword;           // Commonly overridden.  Example use is posCase values in uConsts.
   269             Pos: Longword;           // Commonly overridden.  Example use is posCase values in uConsts.
   376             Hat: shortstring;
   371             Hat: shortstring;
   377             InitialHealth: LongInt; // used for gfResetHealth
   372             InitialHealth: LongInt; // used for gfResetHealth
   378             King: boolean;  // Flag for a bunch of hedgehog attributes
   373             King: boolean;  // Flag for a bunch of hedgehog attributes
   379             Unplaced: boolean;  // Flag for hog placing mode
   374             Unplaced: boolean;  // Flag for hog placing mode
   380             Timer: Longword;
   375             Timer: Longword;
       
   376             HealthBarHealth: LongInt;
   381             Effects: array[THogEffect] of LongInt;
   377             Effects: array[THogEffect] of LongInt;
   382             end;
   378             end;
   383 
   379 
   384     TTeam = record
   380     TTeam = record
   385             Clan: PClan;
   381             Clan: PClan;
   386             TeamName: shortstring;
   382             TeamName: shortstring;
   387             ExtDriven: boolean;
   383             ExtDriven: boolean;
   388             Binds: TBinds;
   384             Binds: TBinds;
   389             Hedgehogs: array[0..cMaxHHIndex] of THedgehog;
   385             Hedgehogs: array[0..cMaxHHIndex] of THedgehog;
   390             CurrHedgehog: LongWord;
   386             CurrHedgehog: LongWord;
   391             NameTagTex: PTexture;
   387             NameTagTex,
   392             CrosshairTex,
   388             OwnerTex: PTexture;
   393             GraveTex,
   389             GraveTex,
   394             HealthTex,
       
   395             AIKillsTex,
   390             AIKillsTex,
   396             FlagTex: PTexture;
   391             FlagTex: PTexture;
   397             Flag: shortstring;
   392             Flag: shortstring;
   398             GraveName: shortstring;
   393             GraveName: shortstring;
   399             FortName: shortstring;
   394             FortName: shortstring;
       
   395             Owner: shortstring;
   400             TeamHealth: LongInt;
   396             TeamHealth: LongInt;
   401             TeamHealthBarWidth,
   397             TeamHealthBarHealth: LongInt;
   402             NewTeamHealthBarWidth: LongInt;
       
   403             DrawHealthY: LongInt;
   398             DrawHealthY: LongInt;
   404             AttackBar: LongWord;
   399             AttackBar: LongWord;
   405             HedgehogsNumber: Longword;
   400             HedgehogsNumber: Longword;
   406             hasGone: boolean;
   401             hasGone: boolean;
   407             voicepack: PVoicepack;
   402             voicepack: PVoicepack;
   410             end;
   405             end;
   411 
   406 
   412     TClan = record
   407     TClan = record
   413             Color: Longword;
   408             Color: Longword;
   414             Teams: array[0..Pred(cMaxTeams)] of PTeam;
   409             Teams: array[0..Pred(cMaxTeams)] of PTeam;
   415             TeamsNumber: LongInt;{xymeng, org:LongWord}
   410             HealthTex: PTexture;
       
   411             TeamsNumber: Longword;
   416             TagTeamIndex: Longword;
   412             TagTeamIndex: Longword;
   417             CurrTeam: LongWord;
   413             CurrTeam: LongWord;
   418             ClanHealth: LongInt;
   414             ClanHealth: LongInt;
   419             ClanIndex: LongInt;
   415             ClanIndex: LongInt;
   420             TurnNumber: LongInt;{xymeng, org:LongWord}
   416             TurnNumber: LongInt;{xymeng, org:LongWord}
   442             sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
   438             sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
   443             sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
   439             sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
   444             sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb,
   440             sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb,
   445             sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector,
   441             sidSineGun, sidFlamethrower,sidSMine, sidHammer, sidResurrector,
   446             sidDrillStrike, sidSnowball, sidNothing, sidTardis,
   442             sidDrillStrike, sidSnowball, sidNothing, sidTardis,
   447             {sidStructure,} sidLandGun, sidIceGun, sidKnife);
   443             {sidStructure,} sidLandGun, sidIceGun, sidKnife, sidRubber);
   448 
   444 
   449     TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
   445     TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
   450             sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
   446             sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
   451             sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady,
   447             sidNoEndTurn, sidNotYetAvailable, sidRoundSD, sidRoundsSD, sidReady,
   452             sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce,
   448             sidBounce1, sidBounce2, sidBounce3, sidBounce4, sidBounce5, sidBounce,
   453             sidMute);
   449             sidMute, sidAFK);
   454 
   450 
   455     // Events that are important for the course of the game or at least interesting for other reasons
   451     // Events that are important for the course of the game or at least interesting for other reasons
   456     TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw,
   452     TEventId = (eidDied, eidDrowned, eidRoundStart, eidRoundWin, eidRoundDraw,
   457             eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped,
   453             eidNewHealthPack, eidNewAmmoPack, eidNewUtilityPack, eidTurnSkipped,
   458             eidHurtSelf, eidHomerun, eidGone);
   454             eidHurtSelf, eidHomerun, eidGone);