hedgewars/uVariables.pas
changeset 4361 64ea345ab655
parent 4359 83ef50815535
child 4365 4f2b1a152979
equal deleted inserted replaced
4359:83ef50815535 4361:64ea345ab655
     1 {$INCLUDE options.inc}
     1 {$INCLUDE options.inc}
     2 
     2 
     3 unit uVariables;
     3 unit uVariables;
     4 interface
     4 interface
     5 
     5 
     6 uses SDLh, uTypes, uFloat, GLunit, uConsts, Math, uMobile;
     6 uses SDLh, uTypes, uFloat, GLunit, uConsts, Math, uMobile, uGlobalStructs;
     7 
     7 
     8 var
     8 var
     9 /////// init flags ///////
     9 /////// init flags ///////
    10     cScreenWidth    : LongInt     = 1024;
    10     cScreenWidth    : LongInt     = 1024;
    11     cScreenHeight   : LongInt     = 768;
    11     cScreenHeight   : LongInt     = 768;
   139 
   139 
   140 {$IFDEF SDL13}
   140 {$IFDEF SDL13}
   141     SDLwindow       : PSDL_Window;
   141     SDLwindow       : PSDL_Window;
   142 {$ENDIF}
   142 {$ENDIF}
   143 
   143 
       
   144 
       
   145 const
       
   146     cHHFileName = 'Hedgehog';
       
   147     cCHFileName = 'Crosshair';
       
   148     cThemeCFGFilename = 'theme.cfg';
       
   149 
       
   150     FontBorder = 2;
       
   151     cPathz: array[TPathType] of shortstring = (
       
   152         '',                              // ptNone
       
   153         '',                              // ptData
       
   154         'Graphics',                      // ptGraphics
       
   155         'Themes',                        // ptThemes
       
   156         'Themes/avematan',               // ptCurrTheme
       
   157         'Teams',                         // ptTeams
       
   158         'Maps',                          // ptMaps
       
   159         '',                              // ptMapCurrent
       
   160         'Demos',                         // ptDemos
       
   161         'Sounds',                        // ptSounds
       
   162         'Graphics/Graves',               // ptGraves
       
   163         'Fonts',                         // ptFonts
       
   164         'Forts',                         // ptForts
       
   165         'Locale',                        // ptLocale
       
   166         'Graphics/AmmoMenu',             // ptAmmoMenu
       
   167         'Graphics/Hedgehog',             // ptHedgehog
       
   168         'Sounds/voices',                 // ptVoices
       
   169         'Graphics/Hats',                 // ptHats
       
   170         'Graphics/Flags',                // ptFlags
       
   171         'Missions/Maps'                  // ptMissionMaps
       
   172     );
       
   173 
       
   174     cTagsMasks : array[0..15] of byte = (7, 0, 0, 0, 15, 6, 4, 5, 0, 0, 0, 0, 0, 14, 12, 13);
       
   175     cTagsMasksNoHealth: array[0..15] of byte = (3, 2, 11, 1, 0, 0, 0, 0, 0, 10, 0, 9, 0, 0, 0, 0);
       
   176 
       
   177     Fontz: array[THWFont] of THHFont = (
       
   178             (Handle: nil;
       
   179             Height: 12;
       
   180             style: TTF_STYLE_NORMAL;
       
   181             Name: 'DejaVuSans-Bold.ttf'),
       
   182             (Handle: nil;
       
   183             Height: 24;
       
   184             style: TTF_STYLE_NORMAL;
       
   185             Name: 'DejaVuSans-Bold.ttf'),
       
   186             (Handle: nil;
       
   187             Height: 10;
       
   188             style: TTF_STYLE_NORMAL;
       
   189             Name: 'DejaVuSans-Bold.ttf')
       
   190             {$IFNDEF IPHONEOS}, // remove chinese fonts for now
       
   191             (Handle: nil;
       
   192             Height: 12;
       
   193             style: TTF_STYLE_NORMAL;
       
   194             Name: 'wqy-zenhei.ttc'),
       
   195             (Handle: nil;
       
   196             Height: 24;
       
   197             style: TTF_STYLE_NORMAL;
       
   198             Name: 'wqy-zenhei.ttc'),
       
   199             (Handle: nil;
       
   200             Height: 10;
       
   201             style: TTF_STYLE_NORMAL;
       
   202             Name: 'wqy-zenhei.ttc')
       
   203             {$ENDIF}
       
   204             );
       
   205 
       
   206     SpritesData: array[TSprite] of record
       
   207             FileName: String[16];
       
   208             Path, AltPath: TPathType;
       
   209             Texture: PTexture;
       
   210             Surface: PSDL_Surface;
       
   211             Width, Height, imageWidth, imageHeight: LongInt;
       
   212             saveSurf: boolean;
       
   213             priority: GLfloat;
       
   214             getDimensions, getImageDimensions: boolean;
       
   215             end = (
       
   216             (FileName:  'BlueWater'; Path: ptCurrTheme;AltPath: ptGraphics; Texture: nil; Surface: nil;
       
   217             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: true; getImageDimensions: true),// sprWater
       
   218             (FileName:     'Clouds'; Path: ptCurrTheme;AltPath: ptGraphics; Texture: nil; Surface: nil;
       
   219             Width: 256; Height:128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprCloud
       
   220             (FileName:       'Bomb'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   221             Width:   8; Height:  8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBomb
       
   222             (FileName:  'BigDigits'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   223             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBigDigit
       
   224             (FileName:      'Frame'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   225             Width:   4; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprFrame
       
   226             (FileName:        'Lag'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   227             Width:  65; Height: 65; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprLag
       
   228             (FileName:      'Arrow'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   229             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCursor
       
   230             (FileName:'BazookaShell'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   231             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBazookaShell
       
   232             (FileName:    'Targetp'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   233             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTargetP
       
   234             (FileName:        'Bee'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   235             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBee
       
   236             (FileName: 'SmokeTrace'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   237             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprSmokeTrace
       
   238             (FileName:   'RopeHook'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   239             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprRopeHook
       
   240             (FileName:     'Expl50'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   241             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprExplosion50
       
   242             (FileName:    'MineOff'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   243             Width:   8; Height:  8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprMineOff
       
   244             (FileName:     'MineOn'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   245             Width:   8; Height:  8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprMineOn
       
   246             (FileName:     'MineDead'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   247             Width:   8; Height:  8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprMineDead
       
   248             (FileName:       'Case'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   249             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprCase
       
   250             (FileName:   'FirstAid'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   251             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprFAid
       
   252             (FileName:   'dynamite'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   253             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprDynamite
       
   254             (FileName:      'Power'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   255             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprPower
       
   256             (FileName:     'ClBomb'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   257             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprClusterBomb
       
   258             (FileName: 'ClParticle'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   259             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprClusterParticle
       
   260             (FileName:      'Flame'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   261             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprFlame
       
   262             (FileName:   'horizont'; Path: ptCurrTheme;AltPath: ptNone; Texture: nil; Surface: nil;
       
   263             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: true; getImageDimensions: true),// sprHorizont
       
   264             (FileName:  'horizontL'; Path: ptCurrTheme;AltPath: ptNone; Texture: nil; Surface: nil;
       
   265             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: true; getImageDimensions: true),// sprHorizont
       
   266             (FileName:  'horizontR'; Path: ptCurrTheme;AltPath: ptNone; Texture: nil; Surface: nil;
       
   267             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: true; getImageDimensions: true),// sprHorizont
       
   268             (FileName:        'Sky'; Path: ptCurrTheme;AltPath: ptNone; Texture: nil; Surface: nil;
       
   269             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: true; getImageDimensions: true),// sprSky
       
   270             (FileName:       'SkyL'; Path: ptCurrTheme;AltPath: ptNone; Texture: nil; Surface: nil;
       
   271             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: true; getImageDimensions: true),// sprSky
       
   272             (FileName:       'SkyR'; Path: ptCurrTheme;AltPath: ptNone; Texture: nil; Surface: nil;
       
   273             Width:   0; Height:  0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: true; getImageDimensions: true),// sprSky
       
   274             (FileName:  'BorderHorizontal'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   275             Width: 33; Height:  2; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLow; getDimensions: false; getImageDimensions: true),// sprAMBorderHorizontal
       
   276             (FileName:  'BorderVertical'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   277             Width: 2; Height: 33; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLow; getDimensions: false; getImageDimensions: true),// sprAMBorderVertical
       
   278             (FileName:   'Slot'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   279             Width: 33; Height: 33; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAMSlot
       
   280             (FileName:      'Ammos'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   281             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAMAmmos
       
   282             (FileName:   'SlotKeys'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   283             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAMSlotKeys
       
   284             (FileName:  'Corners'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   285             Width:  2; Height: 2; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAMCorners
       
   286             (FileName:     'Finger'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   287             Width:  32; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprFinger
       
   288             (FileName:    'AirBomb'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   289             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAirBomb
       
   290             (FileName:   'Airplane'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   291             Width: 254; Height: 101; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAirplane
       
   292             (FileName: 'amAirplane'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   293             Width:  64; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAmAirplane
       
   294             (FileName:   'amGirder'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   295             Width: 160; Height:160; imageWidth: 0; imageHeight: 0; saveSurf:  true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAmGirder
       
   296             (FileName:     'hhMask'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   297             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf:  true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHHTelepMask
       
   298             (FileName:     'Switch'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   299             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSwitch
       
   300             (FileName:  'Parachute'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   301             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprParachute
       
   302             (FileName:     'Target'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   303             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTarget
       
   304             (FileName:   'RopeNode'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   305             Width:   6; Height:  6; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprRopeNode
       
   306             (FileName:   'thinking'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   307             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprQuestion
       
   308             (FileName:   'PowerBar'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   309             Width: 256; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPowerBar
       
   310             (FileName:    'WindBar'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   311             Width: 151; Height: 17; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprWindBar
       
   312             (FileName:      'WindL'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   313             Width:  80; Height: 13; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprWindL
       
   314             (FileName:      'WindR'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   315             Width:  80; Height: 13; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprWindR
       
   316             (FileName:      'Flake'; Path:ptCurrTheme; AltPath: ptNone; Texture: nil; Surface: nil;
       
   317             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprFlake
       
   318             (FileName:     'amRope'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   319             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandRope
       
   320             (FileName:  'amBazooka'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   321             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandBazooka
       
   322             (FileName:  'amShotgun'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   323             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandShotgun
       
   324             (FileName:   'amDEagle'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   325             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandDEagle
       
   326             (FileName:'amAirAttack'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   327             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandAirAttack
       
   328             (FileName: 'amBaseball'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   329             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandBaseball
       
   330             (FileName:     'Hammer'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   331             Width:  32; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPHammer
       
   332             (FileName: 'amBTorch_i'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   333             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandBlowTorch
       
   334             (FileName: 'amBTorch_w'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   335             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBlowTorch
       
   336             (FileName:   'Teleport'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   337             Width:  64; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTeleport
       
   338             (FileName:    'HHDeath'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   339             Width:  32; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprHHDeath
       
   340             (FileName:'amShotgun_w'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   341             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprShotgun
       
   342             (FileName: 'amDEagle_w'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   343             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprDEagle
       
   344             (FileName:       'Idle'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   345             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprHHIdle
       
   346             (FileName:     'Mortar'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   347             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprMortar
       
   348             (FileName:  'TurnsLeft'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   349             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTurnsLeft
       
   350             (FileName: 'amKamikaze'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   351             Width: 256; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprKamikaze
       
   352             (FileName:     'amWhip'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   353             Width: 128; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprWhip
       
   354             (FileName:     'Kowtow'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   355             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprKowtow
       
   356             (FileName:        'Sad'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   357             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprSad
       
   358             (FileName:       'Wave'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   359             Width:  64; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprWave
       
   360             (FileName:     'Hurrah'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   361             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprHurrah
       
   362             (FileName:'ILoveLemonade';Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   363             Width: 128; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprLemonade
       
   364             (FileName:      'Shrug'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   365             Width: 32;  Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprShrug
       
   366             (FileName:     'Juggle'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   367             Width: 32;  Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprJuggle
       
   368             (FileName:   'ExplPart'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   369             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprExplPart
       
   370             (FileName:  'ExplPart2'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   371             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprExplPart2
       
   372             (FileName:  'Cake_walk'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   373             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCakeWalk
       
   374             (FileName:  'Cake_down'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   375             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCakeDown
       
   376             (FileName:   'Ammos_bw'; Path: ptAmmoMenu; AltPath: ptNone; Texture: nil; Surface: nil;
       
   377             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprAMAmmosBW
       
   378             (FileName: 'Watermelon'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   379             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprWatermelon
       
   380             (FileName:  'EvilTrace'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   381             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprEvilTrace
       
   382             (FileName:'HellishBomb'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   383             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHellishBomb
       
   384             (FileName:  'Seduction'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   385             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSeduction
       
   386             (FileName:    'HHDress'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   387             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprDress
       
   388             (FileName:   'Censored'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   389             Width:  64; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprCensored
       
   390             (FileName:      'Drill'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   391             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprDrill
       
   392             (FileName:    'amDrill'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   393             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandDrill
       
   394             (FileName:  'amBallgun'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   395             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandBallgun
       
   396             (FileName:      'Balls'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   397             Width:  32; Height: 20; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprBalls
       
   398             (FileName:    'RCPlane'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   399             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPlane
       
   400             (FileName:  'amRCPlane'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   401             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandPlane
       
   402             (FileName:    'Utility'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   403             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprUtility
       
   404             (FileName:'Invulnerable';Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   405             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprInvulnerable
       
   406             (FileName:   'Vampiric'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   407             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprVampiric
       
   408             (FileName:   'amGirder'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   409             Width: 512; Height:512; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprGirder
       
   410             (FileName:'SpeechCorner';Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   411             Width:  12; Height: 9; imageWidth: 0; imageHeight: 0; saveSurf:  true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprSpeechCorner
       
   412             (FileName: 'SpeechEdge'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   413             Width:  25; Height: 9; imageWidth: 0; imageHeight: 0; saveSurf:  true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprSpeechEdge
       
   414             (FileName: 'SpeechTail'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   415             Width:  25; Height: 26; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprSpeechTail
       
   416             (FileName:'ThoughtCorner';Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   417             Width:  49; Height: 37; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprThoughtCorner
       
   418             (FileName:'ThoughtEdge'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   419             Width:  23; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprThoughtEdge
       
   420             (FileName:'ThoughtTail'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   421             Width:  45; Height: 65; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprThoughtTail
       
   422             (FileName:'ShoutCorner'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   423             Width:  34; Height: 23; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprShoutCorner
       
   424             (FileName:  'ShoutEdge'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   425             Width:  30; Height: 20; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprShoutEdge
       
   426             (FileName:  'ShoutTail'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   427             Width:  30; Height: 37; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprShoutTail
       
   428             (FileName:'amSniperRifle';Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   429             Width: 128; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSniperRifle
       
   430             (FileName:    'Bubbles'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   431             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprBubbles
       
   432             (FileName:  'amJetpack'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   433             Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprJetpack
       
   434             (FileName:  'Health'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   435             Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprHealth
       
   436             (FileName:  'amMolotov'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   437             Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),//sprHandMolotov
       
   438             (FileName:  'Molotov'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   439             Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprMolotov
       
   440             (FileName: 'Smoke'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   441             Width:  22; Height: 22; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprSmoke
       
   442             (FileName: 'SmokeWhite'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   443             Width:  22; Height: 22; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprSmokeWhite
       
   444             (FileName: 'Shells'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   445             Width:  8; Height: 8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLow; getDimensions: false; getImageDimensions: true),// sprShell
       
   446             (FileName: 'Dust'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil;
       
   447             Width:  22; Height: 22; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprDust
       
   448             (FileName: 'Explosives'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   449             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprExplosives
       
   450             (FileName: 'ExplosivesRoll'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   451             Width:  48; Height: 48; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprExplosivesRoll
       
   452             (FileName: 'amTeleport'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   453             Width:  64; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprAmTeleport
       
   454             (FileName: 'Splash'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil;
       
   455             Width:  80; Height: 50; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSplash
       
   456             (FileName: 'Droplet'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil;
       
   457             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprDroplet
       
   458             (FileName: 'Birdy'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   459             Width:  75; Height: 75; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBirdy
       
   460             (FileName:  'amCake'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   461             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandCake
       
   462             (FileName:  'amConstruction'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   463             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandConstruction
       
   464             (FileName:  'amGrenade'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   465             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandGrenade
       
   466             (FileName:  'amMelon'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   467             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandMelon
       
   468             (FileName:  'amMortar'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   469             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandMortar
       
   470             (FileName:  'amSkip'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   471             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandSkip
       
   472             (FileName:  'amCluster'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   473             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandCluster
       
   474             (FileName:  'amDynamite'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   475             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandDynamite
       
   476             (FileName:  'amHellish'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   477             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandHellish
       
   478             (FileName:  'amMine'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   479             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandMine
       
   480             (FileName:  'amSeduction'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   481             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandSeduction
       
   482             (FileName:  'amVamp'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   483             Width:  128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandVamp
       
   484             (FileName:  'BigExplosion'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   485             Width:  385; Height: 385; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBigExplosion
       
   486             (FileName:  'SmokeRing'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   487             Width:  200; Height: 200; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSmokeRing
       
   488             (FileName:  'BeeTrace'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   489             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprBeeTrace
       
   490             (FileName:  'Egg'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   491             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprEgg
       
   492             (FileName:  'TargetBee'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   493             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTargetBee
       
   494             (FileName:  'amBee'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   495             Width:  128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandBee
       
   496             (FileName:  'Feather'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   497             Width:  15; Height: 25; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprFeather
       
   498             (FileName:  'Piano'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   499             Width:  128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPiano
       
   500             (FileName:  'amSineGun'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   501             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandSineGun
       
   502             (FileName:  'amPortalGun'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   503             Width: 128; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPortalGun
       
   504             (FileName:  'Portal'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   505             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprPortal
       
   506             (FileName:  'cheese'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   507             Width:  16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCheese
       
   508             (FileName:  'amCheese'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   509             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandCheese
       
   510             (FileName:  'amFlamethrower'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   511             Width:  128; Height: 128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandFlamethrower
       
   512             (FileName:  'Chunk'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil;
       
   513             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprChunk
       
   514             (FileName:  'Note'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   515             Width:  32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprNote
       
   516             (FileName:   'SMineOff'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   517             Width:   8; Height:  8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSMineOff
       
   518             (FileName:    'SMineOn'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
       
   519             Width:   8; Height:  8; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSMineOn
       
   520             (FileName:   'amSMine'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   521             Width:  64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandSMine
       
   522             (FileName:  'amHammer'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
       
   523             Width: 128; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true), // sprWhip
       
   524             (FileName: 'amResurrector'; Path: ptHedgehog; AltPath: ptNone;
       
   525                 Texture: nil; Surface: nil; Width: 32; Height: 32;
       
   526                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   527                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   528             //sprHandResurrector
       
   529             (FileName: 'Cross'; Path: ptGraphics; altPath: ptNone;
       
   530                 Texture: nil; Surface: nil; Width: 108; Height: 138;
       
   531                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   532                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   533             //sprCross
       
   534             (FileName:  'AirDrill'; Path: ptGraphics; AltPath: ptNone;
       
   535                 Texture: nil; Surface: nil; Width:  16; Height: 16;
       
   536                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   537                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   538             // sprAirDrill
       
   539             (FileName:  'NapalmBomb'; Path: ptGraphics; AltPath: ptNone;
       
   540                 Texture: nil; Surface: nil; Width:  16; Height: 16;
       
   541                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   542                 tpMedium; getDimensions: false; getImageDimensions: true),
       
   543             // sprNapalmBomb
       
   544             (FileName:  'BulletHit'; Path: ptGraphics; AltPath: ptNone;
       
   545                 Texture: nil; Surface: nil; Width:  32; Height: 32;
       
   546                 imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
       
   547                 tpMedium; getDimensions: false; getImageDimensions: true)
       
   548             // sprNapalmBomb
       
   549             );
       
   550 
       
   551 
       
   552     Wavez: array [TWave] of record
       
   553             Sprite: TSprite;
       
   554             FramesCount: Longword;
       
   555             Interval: Longword;
       
   556             cmd: String[20];
       
   557             Voice: TSound;
       
   558             VoiceDelay: LongWord;
       
   559             end = (
       
   560             (Sprite:   sprKowtow; FramesCount: 12; Interval: 125; cmd: '/rollup'; Voice: sndNone; VoiceDelay: 0),
       
   561             (Sprite:      sprSad; FramesCount: 14; Interval: 125; cmd: '/sad'; Voice: sndNone; VoiceDelay: 0),
       
   562             (Sprite:     sprWave; FramesCount: 16; Interval: 125; cmd: '/wave'; Voice: sndHello; VoiceDelay: 5),
       
   563             (Sprite:   sprHurrah; FramesCount: 14; Interval: 125; cmd: '/hurrah'; Voice: sndNone; VoiceDelay: 0),
       
   564             (Sprite: sprLemonade; FramesCount: 24; Interval: 125; cmd: '/ilovelotsoflemonade'; Voice: sndNone; VoiceDelay: 0),
       
   565             (Sprite:    sprShrug; FramesCount: 24; Interval: 125; cmd: '/shrug'; Voice: sndNone; VoiceDelay: 0),
       
   566             (Sprite:   sprJuggle; FramesCount: 49; Interval:  38; cmd: '/juggle'; Voice: sndNone; VoiceDelay: 0)
       
   567             );
       
   568 
       
   569     Soundz: array[TSound] of record
       
   570             FileName: String[25];
       
   571             Path    : TPathType;
       
   572             end = (
       
   573             (FileName:                         ''; Path: ptNone  ),// sndNone
       
   574             (FileName:        'grenadeimpact.ogg'; Path: ptSounds),// sndGrenadeImpact
       
   575             (FileName:            'explosion.ogg'; Path: ptSounds),// sndExplosion
       
   576             (FileName:         'throwpowerup.ogg'; Path: ptSounds),// sndThrowPowerUp
       
   577             (FileName:         'throwrelease.ogg'; Path: ptSounds),// sndThrowRelease
       
   578             (FileName:               'splash.ogg'; Path: ptSounds),// sndSplash
       
   579             (FileName:        'shotgunreload.ogg'; Path: ptSounds),// sndShotgunReload
       
   580             (FileName:          'shotgunfire.ogg'; Path: ptSounds),// sndShotgunFire
       
   581             (FileName:          'graveimpact.ogg'; Path: ptSounds),// sndGraveImpact
       
   582             (FileName:             'minetick.ogg'; Path: ptSounds),// sndMineTicks
       
   583             (FileName:           'pickhammer.ogg'; Path: ptSounds),// sndPickhammer
       
   584             (FileName:                  'gun.ogg'; Path: ptSounds),// sndGun
       
   585             (FileName:                  'bee.ogg'; Path: ptSounds),// sndBee
       
   586             (FileName:                'Jump1.ogg'; Path: ptVoices),// sndJump1
       
   587             (FileName:                'Jump2.ogg'; Path: ptVoices),// sndJump2
       
   588             (FileName:                'Jump3.ogg'; Path: ptVoices),// sndJump3
       
   589             (FileName:               'Yessir.ogg'; Path: ptVoices),// sndYesSir
       
   590             (FileName:                'Laugh.ogg'; Path: ptVoices),// sndLaugh
       
   591             (FileName:            'Illgetyou.ogg'; Path: ptVoices),// sndIllGetYou
       
   592             (FileName:             'Incoming.ogg'; Path: ptVoices),// sndIncoming
       
   593             (FileName:               'Missed.ogg'; Path: ptVoices),// sndMissed
       
   594             (FileName:               'Stupid.ogg'; Path: ptVoices),// sndStupid
       
   595             (FileName:           'Firstblood.ogg'; Path: ptVoices),// sndFirstBlood
       
   596             (FileName:               'Boring.ogg'; Path: ptVoices),// sndBoring
       
   597             (FileName:               'Byebye.ogg'; Path: ptVoices),// sndByeBye
       
   598             (FileName:             'Sameteam.ogg'; Path: ptVoices),// sndSameTeam
       
   599             (FileName:               'Nutter.ogg'; Path: ptVoices),// sndNutter
       
   600             (FileName:       'Reinforcements.ogg'; Path: ptVoices),// sndReinforce
       
   601             (FileName:              'Traitor.ogg'; Path: ptVoices),// sndTraitor
       
   602             (FileName:      'Youllregretthat.ogg'; Path: ptVoices),// sndRegret
       
   603             (FileName:            'Enemydown.ogg'; Path: ptVoices),// sndEnemyDown
       
   604             (FileName:               'Coward.ogg'; Path: ptVoices),// sndCoward
       
   605             (FileName:                'Hurry.ogg'; Path: ptVoices),// sndHurry
       
   606             (FileName:              'Watchit.ogg'; Path: ptVoices),// sndWatchIt
       
   607             (FileName:             'Kamikaze.ogg'; Path: ptVoices),// sndKamikaze
       
   608             (FileName:                'cake2.ogg'; Path: ptSounds),// sndCake
       
   609             (FileName:                  'Ow1.ogg'; Path: ptVoices),// sndOw1
       
   610             (FileName:                  'Ow2.ogg'; Path: ptVoices),// sndOw2
       
   611             (FileName:                  'Ow3.ogg'; Path: ptVoices),// sndOw3
       
   612             (FileName:                  'Ow4.ogg'; Path: ptVoices),// sndOw4
       
   613             (FileName:           'Firepunch1.ogg'; Path: ptVoices),// sndFirepunch1
       
   614             (FileName:           'Firepunch2.ogg'; Path: ptVoices),// sndFirepunch2
       
   615             (FileName:           'Firepunch3.ogg'; Path: ptVoices),// sndFirepunch3
       
   616             (FileName:           'Firepunch4.ogg'; Path: ptVoices),// sndFirepunch4
       
   617             (FileName:           'Firepunch5.ogg'; Path: ptVoices),// sndFirepunch5
       
   618             (FileName:           'Firepunch6.ogg'; Path: ptVoices),// sndFirepunch6
       
   619             (FileName:                'Melon.ogg'; Path: ptVoices),// sndMelon
       
   620             (FileName:              'Hellish.ogg'; Path: ptSounds),// sndHellish
       
   621             (FileName:               'Yoohoo.ogg'; Path: ptSounds),// sndYoohoo
       
   622             (FileName:              'rcplane.ogg'; Path: ptSounds),// sndRCPlane
       
   623             (FileName:            'whipcrack.ogg'; Path: ptSounds),// sndWhipCrack
       
   624             (FileName:'ride_of_the_valkyries.ogg'; Path: ptSounds),// sndRideOfTheValkyries
       
   625             (FileName:               'denied.ogg'; Path: ptSounds),// sndDenied
       
   626             (FileName:               'placed.ogg'; Path: ptSounds),// sndPlaced
       
   627             (FileName:          'baseballbat.ogg'; Path: ptSounds),// sndBaseballBat
       
   628             (FileName:                'steam.ogg'; Path: ptSounds),// sndVaporize
       
   629             (FileName:                 'warp.ogg'; Path: ptSounds),// sndWarp
       
   630             (FileName:          'suddendeath.ogg'; Path: ptSounds),// sndSuddenDeath
       
   631             (FileName:               'mortar.ogg'; Path: ptSounds),// sndMortar
       
   632             (FileName:         'shutterclick.ogg'; Path: ptSounds),// sndShutter
       
   633             (FileName:              'homerun.ogg'; Path: ptSounds),// sndHomerun
       
   634             (FileName:              'molotov.ogg'; Path: ptSounds),// sndMolotov
       
   635             (FileName:            'Takecover.ogg'; Path: ptVoices),// sndCover
       
   636             (FileName:                'Uh-oh.ogg'; Path: ptVoices),// sndUhOh
       
   637             (FileName:                 'Oops.ogg'; Path: ptVoices),// sndOops
       
   638             (FileName:                 'Nooo.ogg'; Path: ptVoices),// sndNooo
       
   639             (FileName:                'Hello.ogg'; Path: ptVoices),// sndHello
       
   640             (FileName:             'ropeshot.ogg'; Path: ptSounds),// sndRopeShot
       
   641             (FileName:           'ropeattach.ogg'; Path: ptSounds),// sndRopeAttach
       
   642             (FileName:          'roperelease.ogg'; Path: ptSounds),// sndRopeRelease
       
   643             (FileName:            'switchhog.ogg'; Path: ptSounds),// sndSwitchHog
       
   644             (FileName:              'victory.ogg'; Path: ptVoices),// sndVictory
       
   645             (FileName:         'sniperreload.ogg'; Path: ptSounds),// sndSniperReload
       
   646             (FileName:                'steps.ogg'; Path: ptSounds),// sndSteps
       
   647             (FileName:           'lowgravity.ogg'; Path: ptSounds),// sndLowGravity
       
   648             (FileName:           'hell_growl.ogg'; Path: ptSounds),// sndHellishImpact1
       
   649             (FileName:            'hell_ooff.ogg'; Path: ptSounds),// sndHellishImpact2
       
   650             (FileName:              'hell_ow.ogg'; Path: ptSounds),// sndHellishImpact3
       
   651             (FileName:             'hell_ugh.ogg'; Path: ptSounds),// sndHellishImpact4
       
   652             (FileName:          'melonimpact.ogg'; Path: ptSounds),// sndMelonImpact
       
   653             (FileName:             'Droplet1.ogg'; Path: ptSounds),// sndDroplet1
       
   654             (FileName:             'Droplet2.ogg'; Path: ptSounds),// sndDroplet2
       
   655             (FileName:             'Droplet3.ogg'; Path: ptSounds),// sndDroplet3
       
   656             (FileName:                  'egg.ogg'; Path: ptSounds),// sndEggBreak
       
   657             (FileName:             'drillgun.ogg'; Path: ptSounds),// sndDrillRocket
       
   658             (FileName:          'PoisonCough.ogg'; Path: ptVoices),// sndPoisonCough
       
   659             (FileName:           'PoisonMoan.ogg'; Path: ptVoices),// sndPoisonMoan
       
   660             (FileName:             'BirdyLay.ogg'; Path: ptSounds),// sndBirdyLay
       
   661             (FileName:              'Whistle.ogg'; Path: ptSounds),// sndWhistle
       
   662             (FileName:             'beewater.ogg'; Path: ptSounds),// sndBeeWater
       
   663             (FileName:                   '1C.ogg'; Path: ptSounds),// sndPiano0
       
   664             (FileName:                   '2D.ogg'; Path: ptSounds),// sndPiano1
       
   665             (FileName:                   '3E.ogg'; Path: ptSounds),// sndPiano2
       
   666             (FileName:                   '4F.ogg'; Path: ptSounds),// sndPiano3
       
   667             (FileName:                   '5G.ogg'; Path: ptSounds),// sndPiano4
       
   668             (FileName:                   '6A.ogg'; Path: ptSounds),// sndPiano5
       
   669             (FileName:                   '7B.ogg'; Path: ptSounds),// sndPiano6
       
   670             (FileName:                   '8C.ogg'; Path: ptSounds),// sndPiano7
       
   671             (FileName:                   '9D.ogg'; Path: ptSounds),// sndPiano8
       
   672             (FileName:                 'skip.ogg'; Path: ptSounds),// sndSkip
       
   673             (FileName:          'shotgunfire.ogg'; Path: ptSounds),// sndSineGun
       
   674             (FileName:                'Ooff1.ogg'; Path: ptVoices),// sndOoff1
       
   675             (FileName:                'Ooff2.ogg'; Path: ptVoices),// sndOoff2
       
   676             (FileName:                'Ooff3.ogg'; Path: ptVoices),// sndOoff3
       
   677             (FileName:            'whipcrack.ogg'; Path: ptSounds),// sndWhack
       
   678             (FileName:           'Comeonthen.ogg'; Path: ptVoices),// sndComeonthen
       
   679             (FileName:            'parachute.ogg'; Path: ptSounds),// sndParachute
       
   680             (FileName:                 'bump.ogg'; Path: ptSounds),// sndBump
       
   681             (FileName: 'hogchant3.ogg'; Path: ptSounds) // sndResurrector
       
   682             );
       
   683 
       
   684     Ammoz: array [TAmmoType] of record
       
   685             NameId: TAmmoStrId;
       
   686             NameTex: PTexture;
       
   687             Probability, NumberInCase: Longword;
       
   688             Ammo: TAmmo;
       
   689             Slot: 0..cMaxSlotIndex;
       
   690             TimeAfterTurn: Longword;
       
   691             minAngle, maxAngle: Longword;
       
   692             isDamaging: boolean;
       
   693             SkipTurns: Longword;
       
   694             PosCount: Longword;
       
   695             PosSprite: TSprite;
       
   696             ejectX, ejectY: Longint;
       
   697             end = (
       
   698             (NameId: sidNothing;
       
   699             NameTex: nil;
       
   700             Probability: 0;
       
   701             NumberInCase: 0;
       
   702             Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_DontHold or ammoprop_Effect;
       
   703                 Count: AMMO_INFINITE;
       
   704                 NumPerTurn: 0;
       
   705                 Timer: 0;
       
   706                 Pos: 0;
       
   707                 AmmoType: amNothing;
       
   708                 AttackVoice: sndNone);
       
   709             Slot: 0;
       
   710             TimeAfterTurn: 0;
       
   711             minAngle: 0;
       
   712             maxAngle: 0;
       
   713             isDamaging: false;
       
   714             SkipTurns: 9999;
       
   715             PosCount: 1;
       
   716             PosSprite: sprWater;
       
   717             ejectX: 0;
       
   718             ejectY: 0),
       
   719 
       
   720 // Grenade
       
   721             (NameId: sidGrenade;
       
   722             NameTex: nil;
       
   723             Probability: 0;
       
   724             NumberInCase: 1;
       
   725             Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
       
   726                 Count: AMMO_INFINITE;
       
   727                 NumPerTurn: 0;
       
   728                 Timer: 3000;
       
   729                 Pos: 0;
       
   730                 AmmoType: amGrenade;
       
   731                 AttackVoice: sndCover);
       
   732             Slot: 1;
       
   733             TimeAfterTurn: 3000;
       
   734             minAngle: 0;
       
   735             maxAngle: 0;
       
   736             isDamaging: true;
       
   737             SkipTurns: 0;
       
   738             PosCount: 1;
       
   739             PosSprite: sprWater;
       
   740             ejectX: 0;
       
   741             ejectY: 0),
       
   742 
       
   743 // ClusterBomb
       
   744             (NameId: sidClusterBomb;
       
   745             NameTex: nil;
       
   746             Probability: 100;
       
   747             NumberInCase: 3;
       
   748             Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
       
   749                 Count: 5;
       
   750                 NumPerTurn: 0;
       
   751                 Timer: 3000;
       
   752                 Pos: 0;
       
   753                 AmmoType: amClusterBomb;
       
   754                 AttackVoice: sndCover);
       
   755             Slot: 1;
       
   756             TimeAfterTurn: 3000;
       
   757             minAngle: 0;
       
   758             maxAngle: 0;
       
   759             isDamaging: true;
       
   760             SkipTurns: 0;
       
   761             PosCount: 1;
       
   762             PosSprite: sprWater;
       
   763             ejectX: 0;
       
   764             ejectY: 0),
       
   765 
       
   766 // Bazooka
       
   767             (NameId: sidBazooka;
       
   768             NameTex: nil;
       
   769             Probability: 0;
       
   770             NumberInCase: 1;
       
   771             Ammo: (Propz: ammoprop_Power or ammoprop_AltUse;
       
   772                 Count: AMMO_INFINITE;
       
   773                 NumPerTurn: 0;
       
   774                 Timer: 0;
       
   775                 Pos: 0;
       
   776                 AmmoType: amBazooka;
       
   777                 AttackVoice: sndNone);
       
   778             Slot: 0;
       
   779             TimeAfterTurn: 3000;
       
   780             minAngle: 0;
       
   781             maxAngle: 0;
       
   782             isDamaging: true;
       
   783             SkipTurns: 0;
       
   784             PosCount: 1;
       
   785             PosSprite: sprWater;
       
   786             ejectX: 0; //20;
       
   787             ejectY: -6),
       
   788 
       
   789 // Bee
       
   790             (NameId: sidBee;
       
   791             NameTex: nil;
       
   792             Probability: 100;
       
   793             NumberInCase: 1;
       
   794             Ammo: (Propz: ammoprop_Power or ammoprop_NeedTarget or ammoprop_DontHold;
       
   795                 Count: 2;
       
   796                 NumPerTurn: 0;
       
   797                 Timer: 0;
       
   798                 Pos: 0;
       
   799                 AmmoType: amBee;
       
   800                 AttackVoice: sndNone);
       
   801             Slot: 0;
       
   802             TimeAfterTurn: 3000;
       
   803             minAngle: 0;
       
   804             maxAngle: 0;
       
   805             isDamaging: true;
       
   806             SkipTurns: 0;
       
   807             PosCount: 1;
       
   808             PosSprite: sprWater;
       
   809             ejectX: 0; //16;
       
   810             ejectY: 0),
       
   811 
       
   812 // Shotgun
       
   813             (NameId: sidShotgun;
       
   814             NameTex: nil;
       
   815             Probability: 0;
       
   816             NumberInCase: 1;
       
   817             Ammo: (Propz: ammoprop_ForwMsgs;
       
   818                 Count: AMMO_INFINITE;
       
   819                 NumPerTurn: 1;
       
   820                 Timer: 0;
       
   821                 Pos: 0;
       
   822                 AmmoType: amShotgun;
       
   823                 AttackVoice: sndNone);
       
   824             Slot: 2;
       
   825             TimeAfterTurn: 3000;
       
   826             minAngle: 0;
       
   827             maxAngle: 0;
       
   828             isDamaging: true;
       
   829             SkipTurns: 0;
       
   830             PosCount: 1;
       
   831             PosSprite: sprWater;
       
   832             ejectX: 0; //26;
       
   833             ejectY: -6),
       
   834 
       
   835 // PickHammer
       
   836             (NameId: sidPickHammer;
       
   837             NameTex: nil;
       
   838             Probability: 0;
       
   839             NumberInCase: 1;
       
   840             Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_AttackInMove or ammoprop_NoCrosshair or ammoprop_DontHold;
       
   841                 Count: 2;
       
   842                 NumPerTurn: 0;
       
   843                 Timer: 0;
       
   844                 Pos: 0;
       
   845                 AmmoType: amPickHammer;
       
   846                 AttackVoice: sndNone);
       
   847             Slot: 6;
       
   848             TimeAfterTurn: 0;
       
   849             minAngle: 0;
       
   850             maxAngle: 0;
       
   851             isDamaging: false;
       
   852             SkipTurns: 0;
       
   853             PosCount: 1;
       
   854             PosSprite: sprWater;
       
   855             ejectX: 0;
       
   856             ejectY: 0),
       
   857 
       
   858 // Skip
       
   859             (NameId: sidSkip;
       
   860             NameTex: nil;
       
   861             Probability: 0;
       
   862             NumberInCase: 1;
       
   863             Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_DontHold;
       
   864                 Count: AMMO_INFINITE;
       
   865                 NumPerTurn: 0;
       
   866                 Timer: 0;
       
   867                 Pos: 0;
       
   868                 AmmoType: amSkip;
       
   869                 AttackVoice: sndNone);
       
   870             Slot: 9;
       
   871             TimeAfterTurn: 0;
       
   872             minAngle: 0;
       
   873             maxAngle: 0;
       
   874             isDamaging: false;
       
   875             SkipTurns: 0;
       
   876             PosCount: 1;
       
   877             PosSprite: sprWater;
       
   878             ejectX: 0;
       
   879             ejectY: 0),
       
   880 
       
   881 // Rope
       
   882             (NameId: sidRope;
       
   883             NameTex: nil;
       
   884             Probability: 100;
       
   885             NumberInCase: 3;
       
   886             Ammo: (Propz: ammoprop_NoRoundEnd or
       
   887                           ammoprop_ForwMsgs or
       
   888                           ammoprop_AttackInMove or
       
   889                           ammoprop_Utility or
       
   890                           ammoprop_AltAttack;
       
   891                     Count: 5;
       
   892                     NumPerTurn: 0;
       
   893                     Timer: 0;
       
   894                     Pos: 0;
       
   895                     AmmoType: amRope;
       
   896                     AttackVoice: sndNone);
       
   897             Slot: 7;
       
   898             TimeAfterTurn: 0;
       
   899             minAngle: 0;
       
   900             maxAngle: cMaxAngle div 2;
       
   901             isDamaging: false;
       
   902             SkipTurns: 0;
       
   903             PosCount: 1;
       
   904             PosSprite: sprWater;
       
   905             ejectX: 0;
       
   906             ejectY: 0),
       
   907 
       
   908 // Mine
       
   909             (NameId: sidMine;
       
   910             NameTex: nil;
       
   911             Probability: 100;
       
   912             NumberInCase: 1;
       
   913             Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_AttackInMove or ammoprop_DontHold or ammoprop_AltUse;
       
   914                 Count: 2;
       
   915                 NumPerTurn: 0;
       
   916                 Timer: 0;
       
   917                 Pos: 0;
       
   918                 AmmoType: amMine;
       
   919                 AttackVoice: sndLaugh);
       
   920             Slot: 4;
       
   921             TimeAfterTurn: 5000;
       
   922             minAngle: 0;
       
   923             maxAngle: 0;
       
   924             isDamaging: true;
       
   925             SkipTurns: 0;
       
   926             PosCount: 1;
       
   927             PosSprite: sprWater;
       
   928             ejectX: 0;
       
   929             ejectY: 0),
       
   930 
       
   931 // DEagle
       
   932             (NameId: sidDEagle;
       
   933             NameTex: nil;
       
   934             Probability: 20;
       
   935             NumberInCase: 2;
       
   936             Ammo: (Propz: 0;
       
   937                 Count: 3;
       
   938                 NumPerTurn: 3;
       
   939                 Timer: 0;
       
   940                 Pos: 0;
       
   941                 AmmoType: amDEagle;
       
   942                 AttackVoice: sndNone);
       
   943             Slot: 2;
       
   944             TimeAfterTurn: 3000;
       
   945             minAngle: 0;
       
   946             maxAngle: 0;
       
   947             isDamaging: true;
       
   948             SkipTurns: 0;
       
   949             PosCount: 1;
       
   950             PosSprite: sprWater;
       
   951             ejectX: 0; //23;
       
   952             ejectY: -6),
       
   953 
       
   954 // Dynamite
       
   955             (NameId: sidDynamite;
       
   956             NameTex: nil;
       
   957             Probability: 100;
       
   958             NumberInCase: 1;
       
   959             Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_AttackInMove or ammoprop_DontHold or ammoprop_AltUse;
       
   960                 Count: 1;
       
   961                 NumPerTurn: 0;
       
   962                 Timer: 0;
       
   963                 Pos: 0;
       
   964                 AmmoType: amDynamite;
       
   965                 AttackVoice: sndLaugh);
       
   966             Slot: 4;
       
   967             TimeAfterTurn: 5000;
       
   968             minAngle: 0;
       
   969             maxAngle: 0;
       
   970             isDamaging: true;
       
   971             SkipTurns: 0;
       
   972             PosCount: 1;
       
   973             PosSprite: sprWater;
       
   974             ejectX: 0;
       
   975             ejectY: 0),
       
   976 
       
   977 // FirePunch
       
   978             (NameId: sidFirePunch;
       
   979             NameTex: nil;
       
   980             Probability: 0;
       
   981             NumberInCase: 1;
       
   982             Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_ForwMsgs or ammoprop_AttackInMove;
       
   983                 Count: AMMO_INFINITE;
       
   984                 NumPerTurn: 0;
       
   985                 Timer: 0;
       
   986                 Pos: 0;
       
   987                 AmmoType: amFirePunch;
       
   988                 AttackVoice: sndNone);
       
   989             Slot: 3;
       
   990             TimeAfterTurn: 3000;
       
   991             MinAngle: 0;
       
   992             maxAngle: 0;
       
   993             isDamaging: true;
       
   994             SkipTurns: 0;
       
   995             PosCount: 1;
       
   996             PosSprite: sprWater;
       
   997             ejectX: 0;
       
   998             ejectY: 0),
       
   999 
       
  1000 // Whip
       
  1001             (NameId: sidWhip;
       
  1002             NameTex: nil;
       
  1003             Probability: 0;
       
  1004             NumberInCase: 1;
       
  1005             Ammo: (Propz: ammoprop_NoCrosshair;
       
  1006                 Count: AMMO_INFINITE;
       
  1007                 NumPerTurn: 0;
       
  1008                 Timer: 0;
       
  1009                 Pos: 0;
       
  1010                 AmmoType: amWhip;
       
  1011                 AttackVoice: sndNone);
       
  1012             Slot: 3;
       
  1013             TimeAfterTurn: 3000;
       
  1014             MinAngle: 0;
       
  1015             maxAngle: 0;
       
  1016             isDamaging: true;
       
  1017             SkipTurns: 0;
       
  1018             PosCount: 1;
       
  1019             PosSprite: sprWater;
       
  1020             ejectX: 0;
       
  1021             ejectY: 0),
       
  1022 
       
  1023 // BaseballBat
       
  1024             (NameId: sidBaseballBat;
       
  1025             NameTex: nil;
       
  1026             Probability: 100;
       
  1027             NumberInCase: 1;
       
  1028             Ammo: (Propz: ammoprop_DontHold;
       
  1029                 Count: 1;
       
  1030                 NumPerTurn: 0;
       
  1031                 Timer: 0;
       
  1032                 Pos: 0;
       
  1033                 AmmoType: amBaseballBat;
       
  1034                 AttackVoice: sndNone);
       
  1035             Slot: 3;
       
  1036             TimeAfterTurn: 5000;
       
  1037             minAngle: 0;
       
  1038             maxAngle: cMaxAngle div 2;
       
  1039             isDamaging: true;
       
  1040             SkipTurns: 2;
       
  1041             PosCount: 1;
       
  1042             PosSprite: sprWater;
       
  1043             ejectX: 0;
       
  1044             ejectY: 0),
       
  1045 
       
  1046 // Parachute
       
  1047             (NameId: sidParachute;
       
  1048             NameTex: nil;
       
  1049             Probability: 100;
       
  1050             NumberInCase: 1;
       
  1051             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1052                           ammoprop_ForwMsgs or
       
  1053                           ammoprop_AttackInMove or
       
  1054                           ammoprop_NoCrosshair or
       
  1055                           ammoprop_DontHold or
       
  1056                           ammoprop_Utility or
       
  1057                           ammoprop_AltAttack;
       
  1058                 Count: 2;
       
  1059                 NumPerTurn: 0;
       
  1060                 Timer: 0;
       
  1061                 Pos: 0;
       
  1062                 AmmoType: amParachute;
       
  1063                 AttackVoice: sndNone);
       
  1064             Slot: 7;
       
  1065             TimeAfterTurn: 0;
       
  1066             minAngle: 0;
       
  1067             maxAngle: 0;
       
  1068             isDamaging: false;
       
  1069             SkipTurns: 0;
       
  1070             PosCount: 1;
       
  1071             PosSprite: sprWater;
       
  1072             ejectX: 0;
       
  1073             ejectY: 0),
       
  1074 
       
  1075 // AirAttack
       
  1076             (NameId: sidAirAttack;
       
  1077             NameTex: nil;
       
  1078             Probability: 100;
       
  1079             NumberInCase: 1;
       
  1080             Ammo: (Propz: ammoprop_NoCrosshair or
       
  1081                             ammoprop_NeedTarget or
       
  1082                             ammoprop_AttackingPut or
       
  1083                             ammoprop_DontHold or
       
  1084                             ammoprop_NotBorder;
       
  1085                 Count: 1;
       
  1086                 NumPerTurn: 0;
       
  1087                 Timer: 0;
       
  1088                 Pos: 0;
       
  1089                 AmmoType: amAirAttack;
       
  1090                 AttackVoice: sndIncoming);
       
  1091             Slot: 5;
       
  1092             TimeAfterTurn: 0;
       
  1093             minAngle: 0;
       
  1094             maxAngle: 0;
       
  1095             isDamaging: true;
       
  1096             SkipTurns: 5;
       
  1097             PosCount: 2;
       
  1098             PosSprite: sprAmAirplane;
       
  1099             ejectX: 0;
       
  1100             ejectY: 0),
       
  1101 
       
  1102 // MineStrike
       
  1103             (NameId: sidMineStrike;
       
  1104             NameTex: nil;
       
  1105             Probability: 200;
       
  1106             NumberInCase: 1;
       
  1107             Ammo: (Propz: ammoprop_NoCrosshair or
       
  1108                             ammoprop_NeedTarget or
       
  1109                             ammoprop_AttackingPut or
       
  1110                             ammoprop_DontHold or
       
  1111                             ammoprop_NotBorder;
       
  1112                 Count: 1;
       
  1113                 NumPerTurn: 0;
       
  1114                 Timer: 0;
       
  1115                 Pos: 0;
       
  1116                 AmmoType: amMineStrike;
       
  1117                 AttackVoice: sndIncoming);
       
  1118             Slot: 5;
       
  1119             TimeAfterTurn: 0;
       
  1120             minAngle: 0;
       
  1121             maxAngle: 0;
       
  1122             isDamaging: true;
       
  1123             SkipTurns: 5;
       
  1124             PosCount: 2;
       
  1125             PosSprite: sprAmAirplane;
       
  1126             ejectX: 0;
       
  1127             ejectY: 0),
       
  1128 
       
  1129 // BlowTorch
       
  1130             (NameId: sidBlowTorch;
       
  1131             NameTex: nil;
       
  1132             Probability: 100;
       
  1133             NumberInCase: 2;
       
  1134             Ammo: (Propz: ammoprop_ForwMsgs;
       
  1135                 Count: 1;
       
  1136                 NumPerTurn: 0;
       
  1137                 Timer: 0;
       
  1138                 Pos: 0;
       
  1139                 AmmoType: amBlowTorch;
       
  1140                 AttackVoice: sndNone);
       
  1141             Slot: 6;
       
  1142             TimeAfterTurn: 3000;
       
  1143             minAngle: 768;
       
  1144             maxAngle: 1280;
       
  1145             isDamaging: false;
       
  1146             SkipTurns: 0;
       
  1147             PosCount: 1;
       
  1148             PosSprite: sprWater;
       
  1149             ejectX: 0;
       
  1150             ejectY: 0),
       
  1151 
       
  1152 // Girder
       
  1153             (NameId: sidGirder;
       
  1154             NameTex: nil;
       
  1155             Probability: 150;
       
  1156             NumberInCase: 3;
       
  1157             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1158                           ammoprop_NoCrosshair or
       
  1159                           ammoprop_NeedTarget or
       
  1160                           ammoprop_Utility or
       
  1161                           ammoprop_AttackingPut;
       
  1162                     Count: 1;
       
  1163                     NumPerTurn: 0;
       
  1164                     Timer: 0;
       
  1165                     Pos: 0;
       
  1166                     AmmoType: amGirder;
       
  1167                     AttackVoice: sndNone);
       
  1168             Slot: 6;
       
  1169             TimeAfterTurn: 3000;
       
  1170             minAngle: 0;
       
  1171             maxAngle: 0;
       
  1172             isDamaging: false;
       
  1173             SkipTurns: 0;
       
  1174             PosCount: 8;
       
  1175             PosSprite: sprAmGirder;
       
  1176             ejectX: 0;
       
  1177             ejectY: 0),
       
  1178 
       
  1179 // Teleport
       
  1180             (NameId: sidTeleport;
       
  1181             NameTex: nil;
       
  1182             Probability: 200;
       
  1183             NumberInCase: 1;
       
  1184             Ammo: (Propz: ammoprop_ForwMsgs or
       
  1185                           ammoprop_NoCrosshair or
       
  1186                           ammoprop_NeedTarget or
       
  1187                           ammoprop_AttackingPut or
       
  1188                           ammoprop_Utility or
       
  1189                           ammoprop_DontHold;
       
  1190                 Count: 2;
       
  1191                 NumPerTurn: 0;
       
  1192                 Timer: 0;
       
  1193                 Pos: 0;
       
  1194                 AmmoType: amTeleport;
       
  1195                 AttackVoice: sndNone);
       
  1196             Slot: 7;
       
  1197             TimeAfterTurn: 0;
       
  1198             minAngle: 0;
       
  1199             maxAngle: 0;
       
  1200             isDamaging: false;
       
  1201             SkipTurns: 0;
       
  1202             PosCount: 2;
       
  1203             PosSprite: sprAmTeleport;
       
  1204             ejectX: 0;
       
  1205             ejectY: 0),
       
  1206 
       
  1207 // Switch
       
  1208             (NameId: sidSwitch;
       
  1209             NameTex: nil;
       
  1210             Probability: 100;
       
  1211             NumberInCase: 1;
       
  1212             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1213                           ammoprop_ForwMsgs or
       
  1214                           ammoprop_NoCrosshair or
       
  1215                           ammoprop_Utility or
       
  1216                           ammoprop_DontHold;
       
  1217                     Count: 3;
       
  1218                     NumPerTurn: 0;
       
  1219                     Timer: 0;
       
  1220                     Pos: 0;
       
  1221                     AmmoType: amSwitch;
       
  1222                     AttackVoice: sndNone);
       
  1223             Slot: 9;
       
  1224             TimeAfterTurn: 0;
       
  1225             minAngle: 0;
       
  1226             maxAngle: 0;
       
  1227             isDamaging: false;
       
  1228             SkipTurns: 0;
       
  1229             PosCount: 1;
       
  1230             PosSprite: sprWater;
       
  1231             ejectX: 0;
       
  1232             ejectY: 0),
       
  1233 
       
  1234 // Mortar
       
  1235             (NameId: sidMortar;
       
  1236             NameTex: nil;
       
  1237             Probability: 100;
       
  1238             NumberInCase: 4;
       
  1239             Ammo: (Propz: 0;
       
  1240                 Count: 4;
       
  1241                 NumPerTurn: 0;
       
  1242                 Timer: 0;
       
  1243                 Pos: 0;
       
  1244                 AmmoType: amMortar;
       
  1245                 AttackVoice: sndNone);
       
  1246             Slot: 0;
       
  1247             TimeAfterTurn: 3000;
       
  1248             minAngle: 0;
       
  1249             maxAngle: 0;
       
  1250             isDamaging: true;
       
  1251             SkipTurns: 0;
       
  1252             PosCount: 1;
       
  1253             PosSprite: sprWater;
       
  1254             ejectX: 0; //20;
       
  1255             ejectY: -6),
       
  1256 
       
  1257 // Kamikaze
       
  1258             (NameId: sidKamikaze;
       
  1259             NameTex: nil;
       
  1260             Probability: 100;
       
  1261             NumberInCase: 1;
       
  1262             Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_DontHold or ammoprop_AttackInMove;
       
  1263                 Count: 1;
       
  1264                 NumPerTurn: 0;
       
  1265                 Timer: 0;
       
  1266                 Pos: 0;
       
  1267                 AmmoType: amKamikaze;
       
  1268                 AttackVoice: sndNone);
       
  1269             Slot: 3;
       
  1270             TimeAfterTurn: 0;
       
  1271             minAngle: 0;
       
  1272             maxAngle: 0;
       
  1273             isDamaging: true;
       
  1274             SkipTurns: 0;
       
  1275             PosCount: 1;
       
  1276             PosSprite: sprWater;
       
  1277             ejectX: 0;
       
  1278             ejectY: 0),
       
  1279 
       
  1280 // Cake
       
  1281             (NameId: sidCake;
       
  1282             NameTex: nil;
       
  1283             Probability: 100;
       
  1284             NumberInCase: 1;
       
  1285             Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_NoCrosshair or ammoprop_DontHold;
       
  1286                 Count: 1;
       
  1287                 NumPerTurn: 0;
       
  1288                 Timer: 0;
       
  1289                 Pos: 0;
       
  1290                 AmmoType: amCake;
       
  1291                 AttackVoice: sndLaugh);
       
  1292             Slot: 4;
       
  1293             TimeAfterTurn: 0;
       
  1294             minAngle: 0;
       
  1295             maxAngle: 0;
       
  1296             isDamaging: true;
       
  1297             SkipTurns: 4;
       
  1298             PosCount: 1;
       
  1299             PosSprite: sprWater;
       
  1300             ejectX: 0;
       
  1301             ejectY: 0),
       
  1302 
       
  1303 // Seduction
       
  1304             (NameId: sidSeduction;
       
  1305             NameTex: nil;
       
  1306             Probability: 100;
       
  1307             NumberInCase: 1;
       
  1308             Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_DontHold;
       
  1309                 Count: 1;
       
  1310                 NumPerTurn: 0;
       
  1311                 Timer: 0;
       
  1312                 Pos: 0;
       
  1313                 AmmoType: amSeduction;
       
  1314                 AttackVoice: sndNone);
       
  1315             Slot: 3;
       
  1316             TimeAfterTurn: 0;
       
  1317             minAngle: 0;
       
  1318             maxAngle: 0;
       
  1319             isDamaging: false;
       
  1320             SkipTurns: 0;
       
  1321             PosCount: 1;
       
  1322             PosSprite: sprWater;
       
  1323             ejectX: 0;
       
  1324             ejectY: 0),
       
  1325 
       
  1326 // Watermelon
       
  1327             (NameId: sidWatermelon;
       
  1328             NameTex: nil;
       
  1329             Probability: 400;
       
  1330             NumberInCase: 1;
       
  1331             Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
       
  1332                 Count: 0;
       
  1333                 NumPerTurn: 0;
       
  1334                 Timer: 3000;
       
  1335                 Pos: 0;
       
  1336                 AmmoType: amWatermelon;
       
  1337                 AttackVoice: sndMelon);
       
  1338             Slot: 1;
       
  1339             TimeAfterTurn: 3000;
       
  1340             minAngle: 0;
       
  1341             maxAngle: 0;
       
  1342             isDamaging: true;
       
  1343             SkipTurns: 0;
       
  1344             PosCount: 1;
       
  1345             PosSprite: sprWater;
       
  1346             ejectX: 0;
       
  1347             ejectY: 0),
       
  1348 
       
  1349 // HellishBomb ("Hellish Hand-Grenade")
       
  1350             (NameId: sidHellishBomb;
       
  1351             NameTex: nil;
       
  1352             Probability: 400;
       
  1353             NumberInCase: 1;
       
  1354             Ammo: (Propz:  ammoprop_Power or ammoprop_AltUse;
       
  1355                 Count: 0;
       
  1356                 NumPerTurn: 0;
       
  1357                 Timer: 5000;
       
  1358                 Pos: 0;
       
  1359                 AmmoType: amHellishBomb;
       
  1360                 AttackVoice: sndNone);
       
  1361             Slot: 1;
       
  1362             TimeAfterTurn: 3000;
       
  1363             minAngle: 0;
       
  1364             maxAngle: 0;
       
  1365             isDamaging: true;
       
  1366             SkipTurns: 0;
       
  1367             PosCount: 1;
       
  1368             PosSprite: sprWater;
       
  1369             ejectX: 0;
       
  1370             ejectY: 0),
       
  1371 
       
  1372 // Napalm
       
  1373             (NameId: sidNapalm;
       
  1374             NameTex: nil;
       
  1375             Probability: 100;
       
  1376             NumberInCase: 1;
       
  1377             Ammo: (Propz: ammoprop_NoCrosshair or
       
  1378                             ammoprop_NeedTarget or
       
  1379                             ammoprop_AttackingPut or
       
  1380                             ammoprop_DontHold or
       
  1381                             ammoprop_NotBorder;
       
  1382                 Count: 1;
       
  1383                 NumPerTurn: 0;
       
  1384                 Timer: 0;
       
  1385                 Pos: 0;
       
  1386                 AmmoType: amNapalm;
       
  1387                 AttackVoice: sndIncoming);
       
  1388             Slot: 5;
       
  1389             TimeAfterTurn: 0;
       
  1390             minAngle: 0;
       
  1391             maxAngle: 0;
       
  1392             isDamaging: true;
       
  1393             SkipTurns: 7;
       
  1394             PosCount: 2;
       
  1395             PosSprite: sprAmAirplane;
       
  1396             ejectX: 0;
       
  1397             ejectY: 0),
       
  1398 
       
  1399 // Drill ("Drill Rocket")
       
  1400             (NameId: sidDrill;
       
  1401             NameTex: nil;
       
  1402             Probability: 300;
       
  1403             NumberInCase: 1;
       
  1404             Ammo: (Propz: ammoprop_Power or ammoprop_AltUse;
       
  1405                 Count: AMMO_INFINITE;
       
  1406                 NumPerTurn: 0;
       
  1407                 Timer: 0;
       
  1408                 Pos: 0;
       
  1409                 AmmoType: amDrill;
       
  1410                 AttackVoice: sndNone);
       
  1411             Slot: 0;
       
  1412             TimeAfterTurn: 3000;
       
  1413             minAngle: 0;
       
  1414             maxAngle: 0;
       
  1415             isDamaging: true;
       
  1416             SkipTurns: 0;
       
  1417             PosCount: 1;
       
  1418             PosSprite: sprDrill;
       
  1419             ejectX: 0; //20;
       
  1420             ejectY: -6),
       
  1421 
       
  1422 // Ballgun
       
  1423             (NameId: sidBallgun;
       
  1424             NameTex: nil;
       
  1425             Probability: 400;
       
  1426             NumberInCase: 1;
       
  1427             Ammo: (Propz:  ammoprop_ForwMsgs or ammoprop_DontHold;
       
  1428                 Count: AMMO_INFINITE;
       
  1429                 NumPerTurn: 0;
       
  1430                 Timer: 5001;
       
  1431                 Pos: 0;
       
  1432                 AmmoType: amBallgun;
       
  1433                 AttackVoice: sndNone);
       
  1434             Slot: 4;
       
  1435             TimeAfterTurn: 0;
       
  1436             minAngle: 0;
       
  1437             maxAngle: 0;
       
  1438             isDamaging: true;
       
  1439             SkipTurns: 0;
       
  1440             PosCount: 1;
       
  1441             PosSprite: sprWater;
       
  1442             ejectX: 0; //20;
       
  1443             ejectY: -3),
       
  1444 
       
  1445 // RC-Plane
       
  1446             (NameId: sidRCPlane;
       
  1447             NameTex: nil;
       
  1448             Probability: 200;
       
  1449             NumberInCase: 1;
       
  1450             Ammo: (Propz: ammoprop_ForwMsgs{ or
       
  1451                             ammoprop_DontHold or
       
  1452                             ammoprop_AltAttack};
       
  1453                 Count: 1;
       
  1454                 NumPerTurn: 0;
       
  1455                 Timer: 0;
       
  1456                 Pos: 0;
       
  1457                 AmmoType: amRCPlane;
       
  1458                 AttackVoice: sndNone);
       
  1459             Slot: 4;
       
  1460             TimeAfterTurn: 0;
       
  1461             minAngle: 0;
       
  1462             maxAngle: 0;
       
  1463             isDamaging: true;
       
  1464             SkipTurns: 4;
       
  1465             PosCount: 1;
       
  1466             PosSprite: sprWater;
       
  1467             ejectX: 0;
       
  1468             ejectY: 0),
       
  1469 
       
  1470 // LowGravity
       
  1471             (NameId: sidLowGravity;
       
  1472             NameTex: nil;
       
  1473             Probability: 20;
       
  1474             NumberInCase: 1;
       
  1475             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1476                           ammoprop_NoCrosshair or
       
  1477                           ammoprop_DontHold or
       
  1478                           ammoprop_AltUse or
       
  1479                           ammoprop_Utility or
       
  1480                           ammoprop_Effect;
       
  1481                     Count: 1;
       
  1482                     NumPerTurn: 0;
       
  1483                     Timer: 0;
       
  1484                     Pos: 0;
       
  1485                     AmmoType: amLowGravity;
       
  1486                     AttackVoice: sndNone);
       
  1487             Slot: 9;
       
  1488             TimeAfterTurn: 0;
       
  1489             minAngle: 0;
       
  1490             maxAngle: 0;
       
  1491             isDamaging: false;
       
  1492             SkipTurns: 0;
       
  1493             PosCount: 1;
       
  1494             PosSprite: sprWater;
       
  1495             ejectX: 0;
       
  1496             ejectY: 0),
       
  1497 
       
  1498 // ExtraDamage
       
  1499             (NameId: sidExtraDamage;
       
  1500             NameTex: nil;
       
  1501             Probability: 15;
       
  1502             NumberInCase: 1;
       
  1503             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1504                           ammoprop_NoCrosshair or
       
  1505                           ammoprop_DontHold or
       
  1506                           ammoprop_AltUse or
       
  1507                           ammoprop_Utility or
       
  1508                           ammoprop_Effect;
       
  1509                     Count: 1;
       
  1510                     NumPerTurn: 0;
       
  1511                     Timer: 0;
       
  1512                     Pos: 0;
       
  1513                     AmmoType: amExtraDamage;
       
  1514                     AttackVoice: sndNone);
       
  1515             Slot: 9;
       
  1516             TimeAfterTurn: 0;
       
  1517             minAngle: 0;
       
  1518             maxAngle: 0;
       
  1519             isDamaging: false;
       
  1520             SkipTurns: 0;
       
  1521             PosCount: 1;
       
  1522             PosSprite: sprWater;
       
  1523             ejectX: 0;
       
  1524             ejectY: 0),
       
  1525 
       
  1526 // Invulnerable
       
  1527             (NameId: sidInvulnerable;
       
  1528             NameTex: nil;
       
  1529             Probability: 20;
       
  1530             NumberInCase: 1;
       
  1531             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1532                           ammoprop_NoCrosshair or
       
  1533                           ammoprop_DontHold or
       
  1534                           ammoprop_AltUse or
       
  1535                           ammoprop_Utility or
       
  1536                           ammoprop_Effect;
       
  1537                     Count: 1;
       
  1538                     NumPerTurn: 0;
       
  1539                     Timer: 0;
       
  1540                     Pos: 0;
       
  1541                     AmmoType: amInvulnerable;
       
  1542                     AttackVoice: sndNone);
       
  1543             Slot: 8;
       
  1544             TimeAfterTurn: 0;
       
  1545             minAngle: 0;
       
  1546             maxAngle: 0;
       
  1547             isDamaging: false;
       
  1548             SkipTurns: 0;
       
  1549             PosCount: 1;
       
  1550             PosSprite: sprWater;
       
  1551             ejectX: 0;
       
  1552             ejectY: 0),
       
  1553 
       
  1554 // ExtraTime
       
  1555             (NameId: sidExtraTime;
       
  1556             NameTex: nil;
       
  1557             Probability: 30;
       
  1558             NumberInCase: 1;
       
  1559             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1560                           ammoprop_NoCrosshair or
       
  1561                           ammoprop_DontHold or
       
  1562                           ammoprop_AltUse or
       
  1563                           ammoprop_Utility or
       
  1564                           ammoprop_Effect;
       
  1565                     Count: 1;
       
  1566                     NumPerTurn: 0;
       
  1567                     Timer: 0;
       
  1568                     Pos: 0;
       
  1569                     AmmoType: amExtraTime;
       
  1570                     AttackVoice: sndNone);
       
  1571             Slot: 9;
       
  1572             TimeAfterTurn: 0;
       
  1573             minAngle: 0;
       
  1574             maxAngle: 0;
       
  1575             isDamaging: false;
       
  1576             SkipTurns: 0;
       
  1577             PosCount: 1;
       
  1578             PosSprite: sprWater;
       
  1579             ejectX: 0;
       
  1580             ejectY: 0),
       
  1581 
       
  1582 // LaserSight
       
  1583             (NameId: sidLaserSight;
       
  1584             NameTex: nil;
       
  1585             Probability: 15;
       
  1586             NumberInCase: 1;
       
  1587             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1588                           ammoprop_NoCrosshair or
       
  1589                           ammoprop_DontHold or
       
  1590                           ammoprop_AltUse or
       
  1591                           ammoprop_Utility or
       
  1592                           ammoprop_Effect;
       
  1593                     Count: 1;
       
  1594                     NumPerTurn: 0;
       
  1595                     Timer: 0;
       
  1596                     Pos: 0;
       
  1597                     AmmoType: amLaserSight;
       
  1598                     AttackVoice: sndNone);
       
  1599             Slot: 8;
       
  1600             TimeAfterTurn: 0;
       
  1601             minAngle: 0;
       
  1602             maxAngle: 0;
       
  1603             isDamaging: false;
       
  1604             SkipTurns: 0;
       
  1605             PosCount: 1;
       
  1606             PosSprite: sprWater;
       
  1607             ejectX: 0;
       
  1608             ejectY: 0),
       
  1609 
       
  1610 // Vampiric
       
  1611             (NameId: sidVampiric;
       
  1612             NameTex: nil;
       
  1613             Probability: 15;
       
  1614             NumberInCase: 1;
       
  1615             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1616                           ammoprop_NoCrosshair or
       
  1617                           ammoprop_DontHold or
       
  1618                           ammoprop_AltUse or
       
  1619                           ammoprop_Utility or
       
  1620                           ammoprop_Effect;
       
  1621                     Count: 1;
       
  1622                     NumPerTurn: 0;
       
  1623                     Timer: 0;
       
  1624                     Pos: 0;
       
  1625                     AmmoType: amVampiric;
       
  1626                     AttackVoice: sndNone);
       
  1627             Slot: 8;
       
  1628             TimeAfterTurn: 0;
       
  1629             minAngle: 0;
       
  1630             maxAngle: 0;
       
  1631             isDamaging: false;
       
  1632             SkipTurns: 0;
       
  1633             PosCount: 1;
       
  1634             PosSprite: sprWater;
       
  1635             ejectX: 0;
       
  1636             ejectY: 0),
       
  1637 
       
  1638 // SniperRifle
       
  1639             (NameId: sidSniperRifle;
       
  1640             NameTex: nil;
       
  1641             Probability: 20;
       
  1642             NumberInCase: 2;
       
  1643             Ammo: (Propz: 0;
       
  1644                 Count: 2;
       
  1645                 NumPerTurn: 1;
       
  1646                 Timer: 0;
       
  1647                 Pos: 0;
       
  1648                 AmmoType: amSniperRifle;
       
  1649                 AttackVoice: sndNone);
       
  1650             Slot: 2;
       
  1651             TimeAfterTurn: 3000;
       
  1652             minAngle: 0;
       
  1653             maxAngle: 0;
       
  1654             isDamaging: true;
       
  1655             SkipTurns: 0;
       
  1656             PosCount: 1;
       
  1657             PosSprite: sprWater;
       
  1658             ejectX: 0; //40;
       
  1659             ejectY: -5),
       
  1660 
       
  1661 // Jetpack ("Flying Saucer")
       
  1662             (NameId: sidJetpack;
       
  1663             NameTex: nil;
       
  1664             Probability: 20;
       
  1665             NumberInCase: 1;
       
  1666             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1667                           ammoprop_ForwMsgs or
       
  1668                           ammoprop_AttackInMove or
       
  1669                           ammoprop_NoCrosshair or
       
  1670                           ammoprop_DontHold or
       
  1671                           ammoprop_Utility or
       
  1672                           ammoprop_AltAttack;
       
  1673                 Count: 1;
       
  1674                 NumPerTurn: 0;
       
  1675                 Timer: 0;
       
  1676                 Pos: 0;
       
  1677                 AmmoType: amJetpack;
       
  1678                 AttackVoice: sndNone);
       
  1679             Slot: 7;
       
  1680             TimeAfterTurn: 3000;
       
  1681             minAngle: 0;
       
  1682             maxAngle: 0;
       
  1683             isDamaging: false;
       
  1684             SkipTurns: 0;
       
  1685             PosCount: 1;
       
  1686             PosSprite: sprWater;
       
  1687             ejectX: 0;
       
  1688             ejectY: 0),
       
  1689 
       
  1690 // Molotov
       
  1691             (NameId: sidMolotov;
       
  1692             NameTex: nil;
       
  1693             Probability: 0;
       
  1694             NumberInCase: 1;
       
  1695             Ammo: (Propz: ammoprop_Power or ammoprop_AltUse;
       
  1696                 Count: AMMO_INFINITE;
       
  1697                 NumPerTurn: 0;
       
  1698                 Timer: 3000;
       
  1699                 Pos: 0;
       
  1700                 AmmoType: amMolotov;
       
  1701                 AttackVoice: sndNone);
       
  1702             Slot: 1;
       
  1703             TimeAfterTurn: 3000;
       
  1704             minAngle: 0;
       
  1705             maxAngle: 0;
       
  1706             isDamaging: true;
       
  1707             SkipTurns: 0;
       
  1708             PosCount: 1;
       
  1709             PosSprite: sprWater;
       
  1710             ejectX: 0;
       
  1711             ejectY: 0),
       
  1712 
       
  1713 // Birdy
       
  1714             (NameId: sidBirdy;
       
  1715             NameTex: nil;
       
  1716             Probability: 20;
       
  1717             NumberInCase: 1;
       
  1718             Ammo: (Propz: ammoprop_ForwMsgs or
       
  1719                           ammoprop_NoCrosshair or
       
  1720                           ammoprop_DontHold;
       
  1721                 Count: 1;
       
  1722                 NumPerTurn: 0;
       
  1723                 Timer: 0;
       
  1724                 Pos: 0;
       
  1725                 AmmoType: amBirdy;
       
  1726                 AttackVoice: sndNone);
       
  1727             Slot: 7;
       
  1728             TimeAfterTurn: 3000;
       
  1729             minAngle: 0;
       
  1730             maxAngle: 0;
       
  1731             isDamaging: true;
       
  1732             SkipTurns: 0;
       
  1733             PosCount: 1;
       
  1734             PosSprite: sprWater;
       
  1735             ejectX: 0;
       
  1736             ejectY: 0),
       
  1737 
       
  1738 // PortalGun
       
  1739             (NameId: sidPortalGun;
       
  1740             NameTex: nil;
       
  1741             Probability: 20;
       
  1742             NumberInCase: 1;
       
  1743             Ammo: (Propz: ammoprop_NoRoundEnd or
       
  1744                           ammoprop_AttackInMove or
       
  1745                           ammoprop_DontHold or
       
  1746                           ammoprop_Utility;
       
  1747                 Count: 1;
       
  1748                 NumPerTurn: 3;
       
  1749                 Timer: 0;
       
  1750                 Pos: 0;
       
  1751                 AmmoType: amPortalGun;
       
  1752                 AttackVoice: sndNone);
       
  1753             Slot: 6;
       
  1754             TimeAfterTurn: 0;
       
  1755             minAngle: 0;
       
  1756             maxAngle: 0;
       
  1757             isDamaging: false;
       
  1758             SkipTurns: 0;
       
  1759             PosCount: 1;
       
  1760             PosSprite: sprWater;
       
  1761             ejectX: -5; //29;
       
  1762             ejectY: -7),
       
  1763 
       
  1764 // Piano
       
  1765             (NameId: sidPiano;
       
  1766             NameTex: nil;
       
  1767             Probability: 100;
       
  1768             NumberInCase: 1;
       
  1769             Ammo: (Propz: ammoprop_NoCrosshair or
       
  1770                             ammoprop_NeedTarget or
       
  1771                             ammoprop_AttackingPut or
       
  1772                             ammoprop_DontHold or
       
  1773                             ammoprop_NotBorder;
       
  1774                 Count: 1;
       
  1775                 NumPerTurn: 0;
       
  1776                 Timer: 0;
       
  1777                 Pos: 0;
       
  1778                 AmmoType: amPiano;
       
  1779                 AttackVoice: sndIncoming);
       
  1780             Slot: 5;
       
  1781             TimeAfterTurn: 0;
       
  1782             minAngle: 0;
       
  1783             maxAngle: 0;
       
  1784             isDamaging: true;
       
  1785             SkipTurns: 7;
       
  1786             PosCount: 1;
       
  1787             PosSprite: sprWater;
       
  1788             ejectX: 0;
       
  1789             ejectY: 0),
       
  1790 
       
  1791 // GasBomb
       
  1792             (NameId: sidGasBomb;
       
  1793             NameTex: nil;
       
  1794             Probability: 0;
       
  1795             NumberInCase: 1;
       
  1796             Ammo: (Propz: ammoprop_Timerable or ammoprop_Power or ammoprop_AltUse;
       
  1797                 Count: AMMO_INFINITE;
       
  1798                 NumPerTurn: 0;
       
  1799                 Timer: 3000;
       
  1800                 Pos: 0;
       
  1801                 AmmoType: amGasBomb;
       
  1802                 AttackVoice: sndCover);
       
  1803             Slot: 1;
       
  1804             TimeAfterTurn: 3000;
       
  1805             minAngle: 0;
       
  1806             maxAngle: 0;
       
  1807             isDamaging: true;
       
  1808             SkipTurns: 0;
       
  1809             PosCount: 1;
       
  1810             PosSprite: sprWater;
       
  1811             ejectX: 0;
       
  1812             ejectY: 0),
       
  1813 
       
  1814 // SineGun
       
  1815             (NameId: sidSineGun;
       
  1816             NameTex: nil;
       
  1817             Probability: 20;
       
  1818             NumberInCase: 2;
       
  1819             Ammo: (Propz: ammoprop_AttackInMove;
       
  1820                 Count: 1;
       
  1821                 NumPerTurn: 0;
       
  1822                 Timer: 0;
       
  1823                 Pos: 0;
       
  1824                 AmmoType: amSineGun;
       
  1825                 AttackVoice: sndNone);
       
  1826             Slot: 2;
       
  1827             TimeAfterTurn: 0;
       
  1828             minAngle: 0;
       
  1829             maxAngle: 0;
       
  1830             isDamaging: true;
       
  1831             SkipTurns: 0;
       
  1832             PosCount: 1;
       
  1833             PosSprite: sprWater;
       
  1834             ejectX: 0;
       
  1835             ejectY: 0),
       
  1836 
       
  1837 // Flamethrower
       
  1838             (NameId: sidFlamethrower;
       
  1839             NameTex: nil;
       
  1840             Probability: 20;
       
  1841             NumberInCase: 1;
       
  1842             Ammo: (Propz:  ammoprop_ForwMsgs or ammoprop_DontHold;
       
  1843                 Count: 1;
       
  1844                 NumPerTurn: 0;
       
  1845                 Timer: 5001;
       
  1846                 Pos: 0;
       
  1847                 AmmoType: amFlamethrower;
       
  1848                 AttackVoice: sndNone);
       
  1849             Slot: 2;
       
  1850             TimeAfterTurn: 0;
       
  1851             minAngle: 0;
       
  1852             maxAngle: 0;
       
  1853             isDamaging: true;
       
  1854             SkipTurns: 0;
       
  1855             PosCount: 1;
       
  1856             PosSprite: sprWater;
       
  1857             ejectX: 0; //20;
       
  1858             ejectY: -3),
       
  1859 
       
  1860 // Sticky Mine
       
  1861             (NameId: sidSMine;
       
  1862             NameTex: nil;
       
  1863             Probability: 100;
       
  1864             NumberInCase: 1;
       
  1865             Ammo: (Propz: ammoprop_Power; //FIXME: enable multishoot at altuse, until then removed ammoprop_AltUse
       
  1866                 Count: 1;
       
  1867                 NumPerTurn: 1;
       
  1868                 Timer: 0;
       
  1869                 Pos: 0;
       
  1870                 AmmoType: amSMine;
       
  1871                 AttackVoice: sndLaugh);
       
  1872             Slot: 4;
       
  1873             TimeAfterTurn: 5000;
       
  1874             minAngle: 0;
       
  1875             maxAngle: 0;
       
  1876             isDamaging: true;
       
  1877             SkipTurns: 0;
       
  1878             PosCount: 1;
       
  1879             PosSprite: sprWater;
       
  1880             ejectX: 0;
       
  1881             ejectY: 0),
       
  1882 
       
  1883 // Hammer
       
  1884             (NameId: sidHammer;
       
  1885             NameTex: nil;
       
  1886             Probability: 0;
       
  1887             NumberInCase: 1;
       
  1888             Ammo: (Propz: ammoprop_NoCrosshair;
       
  1889                 Count: 1;
       
  1890                 NumPerTurn: 0;
       
  1891                 Timer: 0;
       
  1892                 Pos: 0;
       
  1893                 AmmoType: amHammer;
       
  1894                 AttackVoice: sndNone);
       
  1895             Slot: 3;
       
  1896             TimeAfterTurn: 1000;
       
  1897             MinAngle: 0;
       
  1898             maxAngle: 0;
       
  1899             isDamaging: true;
       
  1900             SkipTurns: 0;
       
  1901             PosCount: 1;
       
  1902             PosSprite: sprWater;
       
  1903             ejectX: 0;
       
  1904             ejectY: 0),
       
  1905 
       
  1906 // Ressurrector
       
  1907         (NameId: sidResurrector;
       
  1908             NameTex: nil;
       
  1909             Probability: 0;
       
  1910             NumberInCase: 1;
       
  1911             Ammo: (Propz: ammoprop_NoCrosshair or
       
  1912                           ammoprop_Utility or
       
  1913                           ammoprop_NoRoundEnd;
       
  1914                 Count: 1;
       
  1915                 NumPerTurn: 0;
       
  1916                 Timer: 0;
       
  1917                 Pos: 0;
       
  1918                 AmmoType: amResurrector;
       
  1919                 AttackVoice: sndNone);
       
  1920             Slot: 8;
       
  1921             TimeAfterTurn: 3000;
       
  1922             minAngle: 0;
       
  1923             maxAngle: 0;
       
  1924             isDamaging: true;
       
  1925             SkipTurns: 0;
       
  1926             PosCount: 1;
       
  1927             PosSprite: sprWater;
       
  1928             ejectX: 0;
       
  1929             ejectY: 0),
       
  1930 
       
  1931 // DrillStrike
       
  1932             (NameId: sidDrillStrike;
       
  1933             NameTex: nil;
       
  1934             Probability: 200;
       
  1935             NumberInCase: 1;
       
  1936             Ammo: (Propz: ammoprop_NoCrosshair or
       
  1937                             ammoprop_NeedTarget or
       
  1938                             ammoprop_AttackingPut or
       
  1939                             ammoprop_DontHold or
       
  1940                             ammoprop_NotBorder;
       
  1941                 Count: 1;
       
  1942                 NumPerTurn: 0;
       
  1943                 Timer: 0;
       
  1944                 Pos: 0;
       
  1945                 AmmoType: amDrillStrike;
       
  1946                 AttackVoice: sndIncoming);
       
  1947             Slot: 5;
       
  1948             TimeAfterTurn: 0;
       
  1949             minAngle: 0;
       
  1950             maxAngle: 0;
       
  1951             isDamaging: true;
       
  1952             SkipTurns: 6;
       
  1953             PosCount: 2;
       
  1954             PosSprite: sprAmAirplane;
       
  1955             ejectX: 0;
       
  1956             ejectY: 0)
       
  1957         );
       
  1958 
       
  1959 
       
  1960 
       
  1961     conversionFormat: TSDL_PixelFormat = (
       
  1962         palette: nil;
       
  1963         BitsPerPixel : 32;
       
  1964         BytesPerPixel: 4;
       
  1965         Rloss : 0;
       
  1966         Gloss : 0;
       
  1967         Bloss : 0;
       
  1968         Aloss : 0;
       
  1969 {$IFDEF ENDIAN_LITTLE}
       
  1970         Rshift: 0;
       
  1971         Gshift: 8;
       
  1972         Bshift: 16;
       
  1973         Ashift: 24;
       
  1974 {$ELSE}
       
  1975         Rshift: 24;
       
  1976         Gshift: 16;
       
  1977         Bshift: 8;
       
  1978         Ashift: 0;
       
  1979 {$ENDIF}
       
  1980         RMask : RMask;
       
  1981         GMask : GMask;
       
  1982         BMask : BMask;
       
  1983         AMask : AMask;
       
  1984         colorkey: 0;
       
  1985         alpha : 255
       
  1986     );
       
  1987 
   144 procedure initModule;
  1988 procedure initModule;
   145 procedure freeModule;
  1989 procedure freeModule;
   146 
  1990 
   147 implementation
  1991 implementation
   148 
  1992