- 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
Lure Of Chaos 13.01.2011 13:07 # +3
для таких вещей в ООП есть наследование )))
TarasB 13.01.2011 15:50 # +1
StriderMan 13.01.2011 13:12 # +4
firefred 24.08.2021 02:10 # 0