- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
TMapObj = record
    Size: integer;
    Selected, Valid: boolean;
    case Kind: TKind of
// дохрена пропущено
   koTxr: (
        TxrFileName: string [31];
        tLast: integer;
        TxrCorrect: boolean;
        LODS: array [0 .. 3] of TBitmap;
        Pixel: TBitmap;
      );
      koItem: (
        Location: TLocation;
        ItemEndSel: boolean;        // выделена ли для перетаскивания
        TimeBeforeReborn: integer;  // времени до восстановления
        DescrIndex: integer;        // индекс описателя
        Rotation: integer;
        TeamColor, EnemyColor: integer;
        iLast: integer;
        CannotGet: boolean;
        case TKindItem of
          kiWeapon: (
            iwpFallen: boolean;
            iwpBulletsLeft: integer;
            iwpState: TWeaponState;
          );
          kiHuman: (
            ihState: integer;
          );
          kiFlag: (
            ifState: TFlagState;
            ifHome: integer;
          );
          kiScepter: (
            isState: TScepterState;
          );
      );
      koItemDescr: (
        ItemFileName: string [31];  // файл с описанием предмета
        idLast: integer;
        ItemCorrect: boolean;
        ItemName: string [31];      // название предмета
        SpriteIndName: string [31];
        SpriteInd: integer;         // картинка
        RebornTime: integer;        // время перерождения
        case KindItem: TKindItem of
          kiHealth: (
            hlCount: integer;
          );                          
          kiShield: (
            shCount: integer;
          );
          kiFlag: (
            flTeam: integer;
          );        
          kiSL: (
            slTeam: integer;
          );
          kiAmmo: (
            amCount: integer;
            amIndex: integer;       // тип патрона
          );
          kiWeapon: (                          // всё про пушку
            wpAmmoIndex: integer;              // тип патронов
            wpKeyNumber: integer;              // кнопка на клавиатуре
            wpBulletsInCharge: integer;        // патронов в обойме
            wpInitBullets: integer;            // изначальное число патронов
            wpMaxBullets: integer;             // максимальное число патронов
            wpShotBullets: integer;            // патронов за раз
            wpReloadTime, wpShotTime: integer; // время перезарядки, скорострельность (скорострельность в миллисекундах)
            wpDispersion, wpKickBack: integer; // разброс самого оружия и отдача
            wpBasic: integer;       // базовое ли
            wpDamage: integer;      // урон
            wpDistance, wpBulletSpeed: integer;    // предельная дальность выстрела, скорость пуль
            wpSound: integer;       // номер ноты
            wpColor: TColor;        // цвет
          );
      );   
      koBullet: (
        bLast: integer;
        BLocP: array [0 .. 1] of TPoint;
        BLocRoom: integer;
        BVector: TPoint;           // нормализованный вектор направления
        BDamage: integer;          // параметры, которые надо передавать в процедуру создания пули
        BSpeed: integer;
        BLengthLeft: integer;
        BOwner: integer;
        Bn, Bm: TDistFunc;
        BColor: TColor;
    );
end;
                                     
        
            Меня попросили показать, до чего может довести структурное программирование при отрицании ООП. Разветвлённая структура с кучей ветвей.
Для лучшего эффекта обмазываться вместе с http://govnokod.ru/4249