hedgewars/uConsts.pas
branchexperimental3D
changeset 4343 19cbea33e4d2
parent 4004 b1c2c2f6fc5e
parent 4337 85e02b1a8e8f
child 4812 f924be23ffb4
equal deleted inserted replaced
4006:45b63c2a694f 4343:19cbea33e4d2
    41     TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps,
    41     TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps,
    42             ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts,
    42             ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts,
    43             ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps);
    43             ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps);
    44 
    44 
    45     TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame,
    45     TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame,
    46             sprLag, sprArrow, sprGrenade, sprTargetP, sprBee,
    46             sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee,
    47             sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff,
    47             sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff,
    48             sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower,
    48             sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower,
    49             sprClusterBomb, sprClusterParticle, sprFlame, sprHorizont,
    49             sprClusterBomb, sprClusterParticle, sprFlame, sprHorizont,
    50             sprHorizontL, sprHorizontR, sprSky, sprSkyL,
    50             sprHorizontL, sprHorizontR, sprSky, sprSkyL,
    51             sprSkyR, sprAMBorderHorizontal, sprAMBorderVertical, sprAMSlot, sprAMAmmos,
    51             sprSkyR, sprAMBorderHorizontal, sprAMBorderVertical, sprAMSlot, sprAMAmmos,
    72             sprHandGrenade, sprHandMelon, sprHandMortar, sprHandSkip, sprHandCluster,
    72             sprHandGrenade, sprHandMelon, sprHandMortar, sprHandSkip, sprHandCluster,
    73             sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp,
    73             sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp,
    74             sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee,
    74             sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee,
    75             sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal,
    75             sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal,
    76             sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
    76             sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
    77             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, sprHandResurrector
    77             sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
       
    78             sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
       
    79             sprBulletHit
    78             );
    80             );
    79 
    81 
    80     // Gears that interact with other Gears and/or Land
    82     // Gears that interact with other Gears and/or Land
    81     TGearType = (gtAmmo_Bomb, gtHedgehog, gtAmmo_Grenade, gtGrave, gtBee, // 4
    83     TGearType = (gtBomb, gtHedgehog, gtShell, gtGrave, gtBee, // 4
    82             gtShotgunShot, gtPickHammer, gtRope, gtMine, gtCase, // 9
    84             gtShotgunShot, gtPickHammer, gtRope, gtMine, gtCase, // 9
    83             gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 14
    85             gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 14
    84             gtFlame, gtFirePunch, gtATStartGame, gtATSmoothWindCh, // 18
    86             gtFlame, gtFirePunch, gtATStartGame, gtATSmoothWindCh, // 18
    85             gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 23
    87             gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, // 23
    86             gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 28
    88             gtGirder, gtTeleport, gtSwitcher, gtTarget, gtMortar, // 28
    87             gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 34
    89             gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 34
    88             gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40
    90             gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40
    89             gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 45
    91             gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 45
    90             gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51
    92             gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51
    91             gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector);
    93             gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56
       
    94             gtNapalmBomb); // 57
    92 
    95 
    93     // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
    96     // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
    94     TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
    97     TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
    95             vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble,
    98             vgtSmallDamageTag, vgtTeamHealthSorter, vgtSpeechBubble, vgtBubble,
    96             vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtHealth, vgtShell,
    99             vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtHealth, vgtShell,
    97             vgtDust, vgtSplash, vgtDroplet, vgtSmokeRing, vgtBeeTrace, vgtEgg,
   100             vgtDust, vgtSplash, vgtDroplet, vgtSmokeRing, vgtBeeTrace, vgtEgg,
    98             vgtFeather, vgtHealthTag, vgtSmokeTrace, vgtEvilTrace, vgtExplosion,
   101             vgtFeather, vgtHealthTag, vgtSmokeTrace, vgtEvilTrace, vgtExplosion,
    99             vgtBigExplosion, vgtChunk, vgtNote);
   102             vgtBigExplosion, vgtChunk, vgtNote, vgtLineTrail,
       
   103             vgtBulletHit);
   100 
   104 
   101     TGearsType = set of TGearType;
   105     TGearsType = set of TGearType;
   102 
   106 
   103     TDamageSource = (dsUnknown, dsFall, dsBullet, dsExplosion, dsShove, dsPoison);
   107     TDamageSource = (dsUnknown, dsFall, dsBullet, dsExplosion, dsShove, dsPoison);
   104 
   108 
   131             amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24
   135             amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake, // 24
   132             amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30
   136             amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, // 30
   133             amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
   137             amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
   134             amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
   138             amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
   135             amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
   139             amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
   136             amResurrector);
   140             amResurrector, amDrillStrike);
   137 
   141 
   138     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
   142     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
   139 
   143 
   140     THWFont = (fnt16, fntBig, fntSmall {$IFNDEF IPHONEOS}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
   144     THWFont = (fnt16, fntBig, fntSmall {$IFNDEF IPHONEOS}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
   141 
   145 
   187             priority: GLfloat;
   191             priority: GLfloat;
   188             vb, tb: array [0..3] of TVertex2f;
   192             vb, tb: array [0..3] of TVertex2f;
   189             PrevTexture, NextTexture: PTexture;
   193             PrevTexture, NextTexture: PTexture;
   190             end;
   194             end;
   191 
   195 
   192     THogEffect = (heInvulnerable, heResurrectable, hePoisoned);
   196     THogEffect = (heInvulnerable, heResurrectable, hePoisoned, heResurrected);
   193 
   197 
   194     TScreenFade = (sfNone, sfInit, sfToBlack, sfFromBlack, sfToWhite, sfFromWhite);
   198     TScreenFade = (sfNone, sfInit, sfToBlack, sfFromBlack, sfToWhite, sfFromWhite);
   195 const
   199 const
   196     sfMax = 1000;
   200     sfMax = 1000;
   197     cDefaultParamNum = 17;
   201     cDefaultParamNum = 17;
   339     gfBorder             = $00000008;
   343     gfBorder             = $00000008;
   340     gfDivideTeams        = $00000010;
   344     gfDivideTeams        = $00000010;
   341     gfLowGravity         = $00000020;
   345     gfLowGravity         = $00000020;
   342     gfLaserSight         = $00000040;
   346     gfLaserSight         = $00000040;
   343     gfInvulnerable       = $00000080;
   347     gfInvulnerable       = $00000080;
   344     gfMines              = $00000100;           // redundant? same effect as 'landadds 0'
   348     gfResetHealth        = $00000100;
   345     gfVampiric           = $00000200;
   349     gfVampiric           = $00000200;
   346     gfKarma              = $00000400;
   350     gfKarma              = $00000400;
   347     gfArtillery          = $00000800;
   351     gfArtillery          = $00000800;
   348     gfForts              = $00001000;
   352     gfForts              = $00001000;
   349     gfRandomOrder        = $00002000;
   353     gfRandomOrder        = $00002000;
   354     gfDisableLandObjects = $00040000;
   358     gfDisableLandObjects = $00040000;
   355     gfAISurvival         = $00080000;
   359     gfAISurvival         = $00080000;
   356     gfInfAttack          = $00100000;
   360     gfInfAttack          = $00100000;
   357     gfResetWeps          = $00200000;
   361     gfResetWeps          = $00200000;
   358     gfPerHogAmmo         = $00400000;
   362     gfPerHogAmmo         = $00400000;
       
   363     gfDisableWind        = $00800000;           // only lua for now
       
   364     gfMoreWind           = $01000000;
   359     // NOTE: When adding new game flags, ask yourself
   365     // NOTE: When adding new game flags, ask yourself
   360     // if a "game start notice" would be useful. If so,
   366     // if a "game start notice" would be useful. If so,
   361     // add one in uWorld.pas - look for "AddGoal".
   367     // add one in uWorld.pas - look for "AddGoal".
   362 
   368 
   363     gstDrowning       = $00000001;
   369     gstDrowning       = $00000001;
   410     ammoprop_AltAttack    = $00000200;
   416     ammoprop_AltAttack    = $00000200;
   411     ammoprop_AltUse       = $00000400;
   417     ammoprop_AltUse       = $00000400;
   412     ammoprop_NotBorder    = $00000800;
   418     ammoprop_NotBorder    = $00000800;
   413     ammoprop_Utility      = $00001000;
   419     ammoprop_Utility      = $00001000;
   414     ammoprop_Effect       = $00002000;
   420     ammoprop_Effect       = $00002000;
   415     ammoprop_NoRoundEndHint=$10000000;
   421     ammoprop_NoRoundEnd=$10000000;
   416 
   422 
   417     AMMO_INFINITE = 100;
   423     AMMO_INFINITE = 100;
   418 
   424 
   419     EXPLAllDamageInRadius = $00000001;
   425     EXPLAllDamageInRadius = $00000001;
   420     EXPLAutoSound         = $00000002;
   426     EXPLAutoSound         = $00000002;
   521             Width:   4; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprFrame
   527             Width:   4; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprFrame
   522             (FileName:        'Lag'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   528             (FileName:        'Lag'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   523             Width:  65; Height: 65; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprLag
   529             Width:  65; Height: 65; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprLag
   524             (FileName:      'Arrow'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   530             (FileName:      'Arrow'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   525             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCursor
   531             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCursor
   526             (FileName:    'Grenade'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   532             (FileName:'BazookaShell'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   527             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprGrenade
   533             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBazookaShell
   528             (FileName:    'Targetp'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   534             (FileName:    'Targetp'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   529             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTargetP
   535             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTargetP
   530             (FileName:        'Bee'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   536             (FileName:        'Bee'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   531             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBee
   537             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBee
   532             (FileName: 'SmokeTrace'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   538             (FileName: 'SmokeTrace'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
   818             (FileName:  'amHammer'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
   824             (FileName:  'amHammer'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
   819             Width: 128; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true), // sprWhip
   825             Width: 128; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true), // sprWhip
   820             (FileName: 'amResurrector'; Path: ptHedgehog; AltPath: ptNone;
   826             (FileName: 'amResurrector'; Path: ptHedgehog; AltPath: ptNone;
   821                 Texture: nil; Surface: nil; Width: 32; Height: 32;
   827                 Texture: nil; Surface: nil; Width: 32; Height: 32;
   822                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
   828                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
   823                 tpMedium; getDimensions: false; getImageDimensions: true) 
   829                 tpMedium; getDimensions: false; getImageDimensions: true),
   824             ); // sprHandResurrector
   830             //sprHandResurrector
       
   831             (FileName: 'Cross'; Path: ptGraphics; altPath: ptNone;
       
   832                 Texture: nil; Surface: nil; Width: 108; Height: 138;
       
   833                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   834                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   835             //sprCross
       
   836             (FileName:  'AirDrill'; Path: ptGraphics; AltPath: ptNone;
       
   837                 Texture: nil; Surface: nil; Width:  16; Height: 16;
       
   838                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   839                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   840             // sprAirDrill
       
   841             (FileName:  'NapalmBomb'; Path: ptGraphics; AltPath: ptNone;
       
   842                 Texture: nil; Surface: nil; Width:  16; Height: 16;
       
   843                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   844                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   845             // sprNapalmBomb
       
   846             (FileName:  'BulletHit'; Path: ptGraphics; AltPath: ptNone;
       
   847                 Texture: nil; Surface: nil; Width:  32; Height: 32;
       
   848                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   849                 tpMedium; getDimensions: false; getImageDimensions: true)
       
   850             // sprNapalmBomb
       
   851             );
       
   852 
   825 
   853 
   826     Wavez: array [TWave] of record
   854     Wavez: array [TWave] of record
   827             Sprite: TSprite;
   855             Sprite: TSprite;
   828             FramesCount: Longword;
   856             FramesCount: Longword;
   829             Interval: Longword;
   857             Interval: Longword;
  1155 // Rope
  1183 // Rope
  1156             (NameId: sidRope;
  1184             (NameId: sidRope;
  1157             NameTex: nil;
  1185             NameTex: nil;
  1158             Probability: 100;
  1186             Probability: 100;
  1159             NumberInCase: 3;
  1187             NumberInCase: 3;
  1160             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1188             Ammo: (Propz: ammoprop_NoRoundEnd or
  1161                           ammoprop_ForwMsgs or
  1189                           ammoprop_ForwMsgs or
  1162                           ammoprop_AttackInMove or
  1190                           ammoprop_AttackInMove or
  1163                           ammoprop_Utility or
  1191                           ammoprop_Utility or
  1164                           ammoprop_AltAttack;
  1192                           ammoprop_AltAttack;
  1165                     Count: 5;
  1193                     Count: 5;
  1320 // Parachute
  1348 // Parachute
  1321             (NameId: sidParachute;
  1349             (NameId: sidParachute;
  1322             NameTex: nil;
  1350             NameTex: nil;
  1323             Probability: 100;
  1351             Probability: 100;
  1324             NumberInCase: 1;
  1352             NumberInCase: 1;
  1325             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1353             Ammo: (Propz: ammoprop_NoRoundEnd or
  1326                           ammoprop_ForwMsgs or
  1354                           ammoprop_ForwMsgs or
  1327                           ammoprop_AttackInMove or
  1355                           ammoprop_AttackInMove or
  1328                           ammoprop_NoCrosshair or
  1356                           ammoprop_NoCrosshair or
  1329                           ammoprop_DontHold or
  1357                           ammoprop_DontHold or
  1330                           ammoprop_Utility or
  1358                           ammoprop_Utility or
  1426 // Girder
  1454 // Girder
  1427             (NameId: sidGirder;
  1455             (NameId: sidGirder;
  1428             NameTex: nil;
  1456             NameTex: nil;
  1429             Probability: 150;
  1457             Probability: 150;
  1430             NumberInCase: 3;
  1458             NumberInCase: 3;
  1431             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1459             Ammo: (Propz: ammoprop_NoRoundEnd or
  1432                           ammoprop_NoCrosshair or
  1460                           ammoprop_NoCrosshair or
  1433                           ammoprop_NeedTarget or
  1461                           ammoprop_NeedTarget or
  1434                           ammoprop_Utility or
  1462                           ammoprop_Utility or
  1435                           ammoprop_AttackingPut;
  1463                           ammoprop_AttackingPut;
  1436                     Count: 1;
  1464                     Count: 1;
  1481 // Switch
  1509 // Switch
  1482             (NameId: sidSwitch;
  1510             (NameId: sidSwitch;
  1483             NameTex: nil;
  1511             NameTex: nil;
  1484             Probability: 100;
  1512             Probability: 100;
  1485             NumberInCase: 1;
  1513             NumberInCase: 1;
  1486             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1514             Ammo: (Propz: ammoprop_NoRoundEnd or
  1487                           ammoprop_ForwMsgs or
  1515                           ammoprop_ForwMsgs or
  1488                           ammoprop_NoCrosshair or
  1516                           ammoprop_NoCrosshair or
  1489                           ammoprop_Utility or
  1517                           ammoprop_Utility or
  1490                           ammoprop_DontHold;
  1518                           ammoprop_DontHold;
  1491                     Count: 3;
  1519                     Count: 3;
  1744 // LowGravity
  1772 // LowGravity
  1745             (NameId: sidLowGravity;
  1773             (NameId: sidLowGravity;
  1746             NameTex: nil;
  1774             NameTex: nil;
  1747             Probability: 20;
  1775             Probability: 20;
  1748             NumberInCase: 1;
  1776             NumberInCase: 1;
  1749             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1777             Ammo: (Propz: ammoprop_NoRoundEnd or
  1750                           ammoprop_NoCrosshair or
  1778                           ammoprop_NoCrosshair or
  1751                           ammoprop_DontHold or
  1779                           ammoprop_DontHold or
  1752                           ammoprop_AltUse or
  1780                           ammoprop_AltUse or
  1753                           ammoprop_Utility or
  1781                           ammoprop_Utility or
  1754                           ammoprop_Effect;
  1782                           ammoprop_Effect;
  1772 // ExtraDamage
  1800 // ExtraDamage
  1773             (NameId: sidExtraDamage;
  1801             (NameId: sidExtraDamage;
  1774             NameTex: nil;
  1802             NameTex: nil;
  1775             Probability: 15;
  1803             Probability: 15;
  1776             NumberInCase: 1;
  1804             NumberInCase: 1;
  1777             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1805             Ammo: (Propz: ammoprop_NoRoundEnd or
  1778                           ammoprop_NoCrosshair or
  1806                           ammoprop_NoCrosshair or
  1779                           ammoprop_DontHold or
  1807                           ammoprop_DontHold or
  1780                           ammoprop_AltUse or
  1808                           ammoprop_AltUse or
  1781                           ammoprop_Utility or
  1809                           ammoprop_Utility or
  1782                           ammoprop_Effect;
  1810                           ammoprop_Effect;
  1800 // Invulnerable
  1828 // Invulnerable
  1801             (NameId: sidInvulnerable;
  1829             (NameId: sidInvulnerable;
  1802             NameTex: nil;
  1830             NameTex: nil;
  1803             Probability: 20;
  1831             Probability: 20;
  1804             NumberInCase: 1;
  1832             NumberInCase: 1;
  1805             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1833             Ammo: (Propz: ammoprop_NoRoundEnd or
  1806                           ammoprop_NoCrosshair or
  1834                           ammoprop_NoCrosshair or
  1807                           ammoprop_DontHold or
  1835                           ammoprop_DontHold or
  1808                           ammoprop_AltUse or
  1836                           ammoprop_AltUse or
  1809                           ammoprop_Utility or
  1837                           ammoprop_Utility or
  1810                           ammoprop_Effect;
  1838                           ammoprop_Effect;
  1828 // ExtraTime
  1856 // ExtraTime
  1829             (NameId: sidExtraTime;
  1857             (NameId: sidExtraTime;
  1830             NameTex: nil;
  1858             NameTex: nil;
  1831             Probability: 30;
  1859             Probability: 30;
  1832             NumberInCase: 1;
  1860             NumberInCase: 1;
  1833             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1861             Ammo: (Propz: ammoprop_NoRoundEnd or
  1834                           ammoprop_NoCrosshair or
  1862                           ammoprop_NoCrosshair or
  1835                           ammoprop_DontHold or
  1863                           ammoprop_DontHold or
  1836                           ammoprop_AltUse or
  1864                           ammoprop_AltUse or
  1837                           ammoprop_Utility or
  1865                           ammoprop_Utility or
  1838                           ammoprop_Effect;
  1866                           ammoprop_Effect;
  1856 // LaserSight
  1884 // LaserSight
  1857             (NameId: sidLaserSight;
  1885             (NameId: sidLaserSight;
  1858             NameTex: nil;
  1886             NameTex: nil;
  1859             Probability: 15;
  1887             Probability: 15;
  1860             NumberInCase: 1;
  1888             NumberInCase: 1;
  1861             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1889             Ammo: (Propz: ammoprop_NoRoundEnd or
  1862                           ammoprop_NoCrosshair or
  1890                           ammoprop_NoCrosshair or
  1863                           ammoprop_DontHold or
  1891                           ammoprop_DontHold or
  1864                           ammoprop_AltUse or
  1892                           ammoprop_AltUse or
  1865                           ammoprop_Utility or
  1893                           ammoprop_Utility or
  1866                           ammoprop_Effect;
  1894                           ammoprop_Effect;
  1884 // Vampiric
  1912 // Vampiric
  1885             (NameId: sidVampiric;
  1913             (NameId: sidVampiric;
  1886             NameTex: nil;
  1914             NameTex: nil;
  1887             Probability: 15;
  1915             Probability: 15;
  1888             NumberInCase: 1;
  1916             NumberInCase: 1;
  1889             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1917             Ammo: (Propz: ammoprop_NoRoundEnd or
  1890                           ammoprop_NoCrosshair or
  1918                           ammoprop_NoCrosshair or
  1891                           ammoprop_DontHold or
  1919                           ammoprop_DontHold or
  1892                           ammoprop_AltUse or
  1920                           ammoprop_AltUse or
  1893                           ammoprop_Utility or
  1921                           ammoprop_Utility or
  1894                           ammoprop_Effect;
  1922                           ammoprop_Effect;
  1935 // Jetpack ("Flying Saucer")
  1963 // Jetpack ("Flying Saucer")
  1936             (NameId: sidJetpack;
  1964             (NameId: sidJetpack;
  1937             NameTex: nil;
  1965             NameTex: nil;
  1938             Probability: 20;
  1966             Probability: 20;
  1939             NumberInCase: 1;
  1967             NumberInCase: 1;
  1940             Ammo: (Propz: ammoprop_NoRoundEndHint or
  1968             Ammo: (Propz: ammoprop_NoRoundEnd or
  1941                           ammoprop_ForwMsgs or
  1969                           ammoprop_ForwMsgs or
  1942                           ammoprop_AttackInMove or
  1970                           ammoprop_AttackInMove or
  1943                           ammoprop_NoCrosshair or
  1971                           ammoprop_NoCrosshair or
  1944                           ammoprop_DontHold or
  1972                           ammoprop_DontHold or
  1945                           ammoprop_Utility or
  1973                           ammoprop_Utility or
  2012 // PortalGun
  2040 // PortalGun
  2013             (NameId: sidPortalGun;
  2041             (NameId: sidPortalGun;
  2014             NameTex: nil;
  2042             NameTex: nil;
  2015             Probability: 20;
  2043             Probability: 20;
  2016             NumberInCase: 1;
  2044             NumberInCase: 1;
  2017             Ammo: (Propz: ammoprop_NoRoundEndHint or
  2045             Ammo: (Propz: ammoprop_NoRoundEnd or
  2018                           ammoprop_AttackInMove or
  2046                           ammoprop_AttackInMove or
  2019                           ammoprop_DontHold or
  2047                           ammoprop_DontHold or
  2020                           ammoprop_Utility;
  2048                           ammoprop_Utility;
  2021                 Count: 1;
  2049                 Count: 1;
  2022                 NumPerTurn: 3;
  2050                 NumPerTurn: 3;
  2134 // Sticky Mine
  2162 // Sticky Mine
  2135             (NameId: sidSMine;
  2163             (NameId: sidSMine;
  2136             NameTex: nil;
  2164             NameTex: nil;
  2137             Probability: 100;
  2165             Probability: 100;
  2138             NumberInCase: 1;
  2166             NumberInCase: 1;
  2139             Ammo: (Propz: ammoprop_Power or ammoprop_AltUse;
  2167             Ammo: (Propz: ammoprop_Power; //FIXME: enable multishoot at altuse, until then removed ammoprop_AltUse
  2140                 Count: 1;
  2168                 Count: 1;
  2141                 NumPerTurn: 1;
  2169                 NumPerTurn: 1;
  2142                 Timer: 0;
  2170                 Timer: 0;
  2143                 Pos: 0;
  2171                 Pos: 0;
  2144                 AmmoType: amSMine;
  2172                 AmmoType: amSMine;
  2175             PosCount: 1;
  2203             PosCount: 1;
  2176             PosSprite: sprWater;
  2204             PosSprite: sprWater;
  2177             ejectX: 0;
  2205             ejectX: 0;
  2178             ejectY: 0),
  2206             ejectY: 0),
  2179 
  2207 
       
  2208 // Ressurrector
  2180         (NameId: sidResurrector;
  2209         (NameId: sidResurrector;
  2181             NameTex: nil;
  2210             NameTex: nil;
  2182             Probability: 0;
  2211             Probability: 0;
  2183             NumberInCase: 1;
  2212             NumberInCase: 1;
  2184             Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_NoRoundEndHint;
  2213             Ammo: (Propz: ammoprop_NoCrosshair or 
       
  2214                           ammoprop_Utility or
       
  2215                           ammoprop_NoRoundEnd;
  2185                 Count: 1;
  2216                 Count: 1;
  2186                 NumPerTurn: 0;
  2217                 NumPerTurn: 0;
  2187                 Timer: 0;
  2218                 Timer: 0;
  2188                 Pos: 0;
  2219                 Pos: 0;
  2189                 AmmoType: amResurrector;
  2220                 AmmoType: amResurrector;
  2194             maxAngle: 0;
  2225             maxAngle: 0;
  2195             isDamaging: true;
  2226             isDamaging: true;
  2196             SkipTurns: 0;
  2227             SkipTurns: 0;
  2197             PosCount: 1;
  2228             PosCount: 1;
  2198             PosSprite: sprWater;
  2229             PosSprite: sprWater;
       
  2230             ejectX: 0;
       
  2231             ejectY: 0),
       
  2232 
       
  2233 // DrillStrike
       
  2234             (NameId: sidDrillStrike;
       
  2235             NameTex: nil;
       
  2236             Probability: 200;
       
  2237             NumberInCase: 1;
       
  2238             Ammo: (Propz: ammoprop_NoCrosshair or
       
  2239                             ammoprop_NeedTarget or
       
  2240                             ammoprop_AttackingPut or
       
  2241                             ammoprop_DontHold or
       
  2242                             ammoprop_NotBorder;
       
  2243                 Count: 1;
       
  2244                 NumPerTurn: 0;
       
  2245                 Timer: 0;
       
  2246                 Pos: 0;
       
  2247                 AmmoType: amDrillStrike;
       
  2248                 AttackVoice: sndIncoming);
       
  2249             Slot: 5;
       
  2250             TimeAfterTurn: 0;
       
  2251             minAngle: 0;
       
  2252             maxAngle: 0;
       
  2253             isDamaging: true;
       
  2254             SkipTurns: 6;
       
  2255             PosCount: 2;
       
  2256             PosSprite: sprAmAirplane;
  2199             ejectX: 0;
  2257             ejectX: 0;
  2200             ejectY: 0)
  2258             ejectY: 0)
  2201         );
  2259         );
  2202 
  2260 
  2203 
  2261