hedgewars/uConsts.pas
changeset 688 e4d1fb310a66
parent 621 8bdbc240f50f
child 689 f4ec46c48ed2
equal deleted inserted replaced
687:8e2dedaa01b4 688:e4d1fb310a66
    19 unit uConsts;
    19 unit uConsts;
    20 interface
    20 interface
    21 uses SDLh, uLocale;
    21 uses SDLh, uLocale;
    22 {$INCLUDE options.inc}
    22 {$INCLUDE options.inc}
    23 {$INCLUDE proto.inc}
    23 {$INCLUDE proto.inc}
    24 type TStuff     = (sConsoleBG, sPowerBar, sQuestion, sWindBar,
    24 type TStuff     = (sPowerBar, sWindBar,
    25                    sWindL, sWindR, sRopeNode);
    25                    sWindL, sWindR);
    26 
    26 
    27      TGameState = (gsLandGen, gsStart, gsGame, gsConsole, gsExit);
    27      TGameState = (gsLandGen, gsStart, gsGame, gsConsole, gsExit);
    28 
    28 
    29      TGameType  = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview);
    29      TGameType  = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview);
    30 
    30 
    38                    sprMineOn, sprCase, sprFAid, sprDynamite, sprPower,
    38                    sprMineOn, sprCase, sprFAid, sprDynamite, sprPower,
    39                    sprClusterBomb, sprClusterParticle, sprFlame, sprHorizont,
    39                    sprClusterBomb, sprClusterParticle, sprFlame, sprHorizont,
    40                    sprSky, sprAMBorders, sprAMSlot, sprAMSlotName, sprAMAmmos,
    40                    sprSky, sprAMBorders, sprAMSlot, sprAMSlotName, sprAMAmmos,
    41                    sprAMSlotKeys, sprAMSelection, sprFinger, sprAirBomb,
    41                    sprAMSlotKeys, sprAMSelection, sprFinger, sprAirBomb,
    42                    sprAirplane, sprAmAirplane, sprAmGirder, sprHHTelepMask,
    42                    sprAirplane, sprAmAirplane, sprAmGirder, sprHHTelepMask,
    43                    sprSwitch, sprParachute, sprTarget);
    43                    sprSwitch, sprParachute, sprTarget, sprRopeNode, sprConsoleBG,
       
    44                    sprQuestion);
    44 
    45 
    45      TGearType  = (gtCloud, gtAmmo_Bomb, gtHedgehog, gtAmmo_Grenade, gtHealthTag,
    46      TGearType  = (gtCloud, gtAmmo_Bomb, gtHedgehog, gtAmmo_Grenade, gtHealthTag,
    46                    gtGrave, gtUFO, gtShotgunShot, gtPickHammer, gtRope,
    47                    gtGrave, gtUFO, gtShotgunShot, gtPickHammer, gtRope,
    47                    gtSmokeTrace, gtExplosion, gtMine, gtCase, gtDEagleShot, gtDynamite,
    48                    gtSmokeTrace, gtExplosion, gtMine, gtCase, gtDEagleShot, gtDynamite,
    48                    gtTeamHealthSorter, gtClusterBomb, gtCluster, gtShover, gtFlame,
    49                    gtTeamHealthSorter, gtClusterBomb, gtCluster, gtShover, gtFlame,
   231 
   232 
   232       StuffLoadData: array[TStuff] of record
   233       StuffLoadData: array[TStuff] of record
   233                                      FileName: String[31];
   234                                      FileName: String[31];
   234                                      Path    : TPathType;
   235                                      Path    : TPathType;
   235                                      end = (
   236                                      end = (
   236                                      (FileName:  'Console'; Path: ptGraphics     ),    // sConsoleBG
       
   237                                      (FileName: 'PowerBar'; Path: ptGraphics     ),    // sPowerBar
   237                                      (FileName: 'PowerBar'; Path: ptGraphics     ),    // sPowerBar
   238                                      (FileName: 'thinking'; Path: ptGraphics     ),    // sQuestion
       
   239                                      (FileName:  'WindBar'; Path: ptGraphics     ),    // sWindBar
   238                                      (FileName:  'WindBar'; Path: ptGraphics     ),    // sWindBar
   240                                      (FileName:    'WindL'; Path: ptGraphics     ),    // sWindL
   239                                      (FileName:    'WindL'; Path: ptGraphics     ),    // sWindL
   241                                      (FileName:    'WindR'; Path: ptGraphics     ),    // sWindR
   240                                      (FileName:    'WindR'; Path: ptGraphics     )     // sWindR
   242                                      (FileName: 'RopeNode'; Path: ptGraphics     )     // sRopeNode
       
   243                                      );
   241                                      );
   244       StuffPoz: array[TStuff] of TSDL_Rect = (
   242       StuffPoz: array[TStuff] of TSDL_Rect = (
   245                                       (x: 256; y: 256; w: 256; h: 256), // sConsoleBG
       
   246                                       (x: 256; y: 768; w: 256; h:  32), // sPowerBar
   243                                       (x: 256; y: 768; w: 256; h:  32), // sPowerBar
   247                                       (x: 256; y: 512; w:  32; h:  32), // sQuestion
       
   248                                       (x: 256; y: 800; w: 151; h:  17), // sWindBar
   244                                       (x: 256; y: 800; w: 151; h:  17), // sWindBar
   249                                       (x: 256; y: 817; w:  80; h:  13), // sWindL
   245                                       (x: 256; y: 817; w:  80; h:  13), // sWindL
   250                                       (x: 336; y: 817; w:  80; h:  13), // sWindR
   246                                       (x: 336; y: 817; w:  80; h:  13)  // sWindR
   251                                       (x: 256; y: 544; w:   6; h:   6)  // sRopeNode
       
   252                                       );
   247                                       );
   253       SpritesData: array[TSprite] of record
   248       SpritesData: array[TSprite] of record
   254                      FileName: String[31];
   249                      FileName: String[31];
   255                      Path, AltPath: TPathType;
   250                      Path, AltPath: TPathType;
   256                      Surface : PSDL_Surface;
   251                      Surface : PSDL_Surface;
   257                      Width, Height: LongInt;
   252                      Width, Height: LongInt;
   258                      hasAlpha: boolean;
   253                      hasAlpha: boolean;
   259                      end = (
   254                      end = (
   260                      (FileName: 'BlueWater'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   255                      (FileName:  'BlueWater'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   261                      Width: 256; Height: 48; hasAlpha: false),// sprWater
   256                       Width: 256; Height: 48; hasAlpha: false),// sprWater
   262                      (FileName:    'Clouds'; Path: ptCurrTheme; AltPath: ptGraphics; Surface: nil;
   257                      (FileName:     'Clouds'; Path: ptCurrTheme; AltPath: ptGraphics; Surface: nil;
   263                      Width: 256; Height:128; hasAlpha: false),// sprCloud
   258                       Width: 256; Height:128; hasAlpha: false),// sprCloud
   264                      (FileName:      'Bomb'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   259                      (FileName:       'Bomb'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   265                      Width:  16; Height: 16; hasAlpha: false),// sprBomb
   260                       Width:  16; Height: 16; hasAlpha: false),// sprBomb
   266                      (FileName: 'BigDigits'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   261                      (FileName:  'BigDigits'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   267                      Width:  32; Height: 32; hasAlpha:  true),// sprBigDigit
   262                       Width:  32; Height: 32; hasAlpha:  true),// sprBigDigit
   268                      (FileName:     'Frame'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   263                      (FileName:      'Frame'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   269                      Width:   4; Height: 32; hasAlpha:  true),// sprFrame
   264                       Width:   4; Height: 32; hasAlpha:  true),// sprFrame
   270                      (FileName:       'Lag'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   265                      (FileName:        'Lag'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   271                      Width:  65; Height: 65; hasAlpha:  true),// sprLag
   266                       Width:  65; Height: 65; hasAlpha:  true),// sprLag
   272                      (FileName:     'Arrow'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   267                      (FileName:      'Arrow'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   273                      Width:  16; Height: 16; hasAlpha: false),// sprCursor
   268                       Width:  16; Height: 16; hasAlpha: false),// sprCursor
   274                      (FileName:   'Grenade'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   269                      (FileName:    'Grenade'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   275                      Width:  32; Height: 32; hasAlpha: false),// sprGrenade
   270                       Width:  32; Height: 32; hasAlpha: false),// sprGrenade
   276                      (FileName:   'Targetp'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   271                      (FileName:    'Targetp'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   277                      Width:  32; Height: 32; hasAlpha: false),// sprTargetP
   272                       Width:  32; Height: 32; hasAlpha: false),// sprTargetP
   278                      (FileName:       'UFO'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   273                      (FileName:        'UFO'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   279                      Width:  32; Height: 32; hasAlpha: false),// sprUFO
   274                       Width:  32; Height: 32; hasAlpha: false),// sprUFO
   280                      (FileName:'SmokeTrace'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   275                      (FileName: 'SmokeTrace'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   281                      Width:  32; Height: 32; hasAlpha:  true),// sprSmokeTrace
   276                       Width:  32; Height: 32; hasAlpha:  true),// sprSmokeTrace
   282                      (FileName:  'RopeHook'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   277                      (FileName:   'RopeHook'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   283                      Width:  32; Height: 32; hasAlpha: false),// sprRopeHook
   278                       Width:  32; Height: 32; hasAlpha: false),// sprRopeHook
   284                      (FileName:    'Expl50'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   279                      (FileName:     'Expl50'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   285                      Width:  64; Height: 64; hasAlpha: false),// sprExplosion50
   280                       Width:  64; Height: 64; hasAlpha: false),// sprExplosion50
   286                      (FileName:   'MineOff'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   281                      (FileName:    'MineOff'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   287                      Width:  16; Height: 16; hasAlpha: false),// sprMineOff
   282                       Width:  16; Height: 16; hasAlpha: false),// sprMineOff
   288                      (FileName:    'MineOn'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   283                      (FileName:     'MineOn'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   289                      Width:  16; Height: 16; hasAlpha: false),// sprMineOn
   284                       Width:  16; Height: 16; hasAlpha: false),// sprMineOn
   290                      (FileName:      'Case'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   285                      (FileName:       'Case'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   291                      Width:  32; Height: 32; hasAlpha: false),// sprCase
   286                       Width:  32; Height: 32; hasAlpha: false),// sprCase
   292                      (FileName:  'FirstAid'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   287                      (FileName:   'FirstAid'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   293                      Width:  48; Height: 48; hasAlpha: false),// sprFAid
   288                       Width:  48; Height: 48; hasAlpha: false),// sprFAid
   294                      (FileName:  'dynamite'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   289                      (FileName:   'dynamite'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   295                      Width:  32; Height: 32; hasAlpha: false),// sprDynamite
   290                       Width:  32; Height: 32; hasAlpha: false),// sprDynamite
   296                      (FileName:     'Power'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   291                      (FileName:      'Power'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   297                      Width:  32; Height: 32; hasAlpha:  true),// sprPower
   292                       Width:  32; Height: 32; hasAlpha:  true),// sprPower
   298                      (FileName:    'ClBomb'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   293                      (FileName:     'ClBomb'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   299                      Width:  16; Height: 16; hasAlpha: false),// sprClusterBomb
   294                       Width:  16; Height: 16; hasAlpha: false),// sprClusterBomb
   300                      (FileName:'ClParticle'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   295                      (FileName: 'ClParticle'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   301                      Width:  16; Height: 16; hasAlpha: false),// sprClusterParticle
   296                       Width:  16; Height: 16; hasAlpha: false),// sprClusterParticle
   302                      (FileName:     'Flame'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   297                      (FileName:      'Flame'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   303                      Width:  16; Height: 16; hasAlpha: false),// sprFlame
   298                       Width:  16; Height: 16; hasAlpha: false),// sprFlame
   304                      (FileName:  'horizont'; Path: ptCurrTheme; AltPath: ptNone; Surface: nil;
   299                      (FileName:   'horizont'; Path: ptCurrTheme; AltPath: ptNone; Surface: nil;
   305                      Width:   0; Height:  0; hasAlpha: false),// sprHorizont
   300                       Width:   0; Height:  0; hasAlpha: false),// sprHorizont
   306                      (FileName:       'Sky'; Path: ptCurrTheme; AltPath: ptNone; Surface: nil;
   301                      (FileName:        'Sky'; Path: ptCurrTheme; AltPath: ptNone; Surface: nil;
   307                      Width:   0; Height:  0; hasAlpha: false),// sprSky
   302                       Width:   0; Height:  0; hasAlpha: false),// sprSky
   308                      (FileName: 'BrdrLines'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   303                      (FileName:  'BrdrLines'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   309                      Width: 202; Height:  1; hasAlpha: false),// sprAMBorders
   304                       Width: 202; Height:  1; hasAlpha: false),// sprAMBorders
   310                      (FileName:      'Slot'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   305                      (FileName:       'Slot'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   311                      Width: 202; Height: 33; hasAlpha: false),// sprAMSlot
   306                       Width: 202; Height: 33; hasAlpha: false),// sprAMSlot
   312                      (FileName:  'AmmoName'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   307                      (FileName:   'AmmoName'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   313                      Width: 202; Height: 33; hasAlpha: false),// sprAMSlotName
   308                       Width: 202; Height: 33; hasAlpha: false),// sprAMSlotName
   314                      (FileName:     'Ammos'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   309                      (FileName:      'Ammos'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   315                      Width:  32; Height: 32; hasAlpha: false),// sprAMAmmos
   310                       Width:  32; Height: 32; hasAlpha: false),// sprAMAmmos
   316                      (FileName:  'SlotKeys'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   311                      (FileName:   'SlotKeys'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   317                      Width:  32; Height: 32; hasAlpha: false),// sprAMSlotKeys
   312                       Width:  32; Height: 32; hasAlpha: false),// sprAMSlotKeys
   318                      (FileName: 'Selection'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   313                      (FileName:  'Selection'; Path: ptAmmoMenu; AltPath: ptNone; Surface: nil;
   319                      Width:  32; Height: 32; hasAlpha: false),// sprAMSelection
   314                       Width:  32; Height: 32; hasAlpha: false),// sprAMSelection
   320                      (FileName:    'Finger'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   315                      (FileName:     'Finger'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   321                      Width:  32; Height: 48; hasAlpha: false),// sprFinger
   316                       Width:  32; Height: 48; hasAlpha: false),// sprFinger
   322                      (FileName:   'AirBomb'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   317                      (FileName:    'AirBomb'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   323                      Width:  32; Height: 32; hasAlpha: false),// sprAirBomb
   318                       Width:  32; Height: 32; hasAlpha: false),// sprAirBomb
   324                      (FileName:  'Airplane'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   319                      (FileName:   'Airplane'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   325                      Width: 125; Height: 42; hasAlpha: false),// sprAirplane
   320                       Width: 125; Height: 42; hasAlpha: false),// sprAirplane
   326                      (FileName:'amAirplane'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   321                      (FileName: 'amAirplane'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   327                      Width:  64; Height: 32; hasAlpha:  true),// sprAirplane
   322                       Width:  64; Height: 32; hasAlpha:  true),// sprAirplane
   328                      (FileName:  'amGirder'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   323                      (FileName:   'amGirder'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   329                      Width: 160; Height:160; hasAlpha: false),// sprAmGirder
   324                       Width: 160; Height:160; hasAlpha: false),// sprAmGirder
   330                      (FileName:    'hhMask'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   325                      (FileName:     'hhMask'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   331                      Width:  32; Height: 32; hasAlpha: false),// sprHHTelepMask
   326                       Width:  32; Height: 32; hasAlpha: false),// sprHHTelepMask
   332                      (FileName:    'Switch'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   327                      (FileName:     'Switch'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   333                      Width:  32; Height: 32; hasAlpha: false),// sprSwitch
   328                       Width:  32; Height: 32; hasAlpha: false),// sprSwitch
   334                      (FileName: 'Parachute'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   329                      (FileName:  'Parachute'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   335                      Width:  48; Height: 48; hasAlpha: true),// sprParachute
   330                       Width:  48; Height: 48; hasAlpha: true),// sprParachute
   336                      (FileName:    'Target'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   331                      (FileName:     'Target'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
   337                      Width:  32; Height: 32; hasAlpha:false) // sprTarget
   332                       Width:  32; Height: 32; hasAlpha:false),// sprTarget
       
   333                      (FileName:   'RopeNode'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
       
   334                       Width:   6; Height:  6; hasAlpha:false),// sprRopeNode
       
   335                      (FileName:    'Console'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
       
   336                       Width: 256; Height:256; hasAlpha:false),// sprConsoleBG
       
   337                      (FileName:   'thinking'; Path: ptGraphics; AltPath: ptNone; Surface: nil;
       
   338                       Width:  32; Height: 32; hasAlpha:false) // sprQuestion
   338                      );
   339                      );
   339                      
   340 
   340       Soundz: array[TSound] of record
   341       Soundz: array[TSound] of record
   341                                        FileName: String[31];
   342                                        FileName: String[31];
   342                                        Path    : TPathType;
   343                                        Path    : TPathType;
   343                                        id      : PMixChunk;
   344                                        id      : PMixChunk;
   344                                        lastChan: LongInt;
   345                                        lastChan: LongInt;