- 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
TLine = record
X1, Y1, X2, Y2: smallint;
Attr: array [0 .. 7] of byte;
end;
{rail:
Attr[0]: Quality
Attr[1]: ********
||Weight of Station
||10 = Station; 11 = Big Station
Attr[2]: Count of passengers
Real count = Attr[2] * (Attr[1] and $3F) / 63;
Attr[3]: ****0100
||||
|||for Selected
||for "crossrail"
for MoveEndSel
===========================================
bridge:
Attr[0]: Quality
Attr[1]: ********
||
Z of ends
Attr[2]:
Attr[3]: ****1100
===========================================
3d-object:
Attr[0]: Number
Attr[1-2]: RandSeed
Attr[3]: ****1111
===========================================
Attr[4..7] reserved, but not used
}
Это я был вынужден написать себе такую памятку после попыток понять свой код, начатый на 3 курсе.
В будущем я учёл свои ошибки при написании http://govnokod.ru/5261
Я с Турбо Паскаля начинал, поэтому и приучился по битам всякие флаги распихивать. Потом, после перехода на Дельфи, не сразу отучился.
И как тут множества помогут?
а паскале с bitfields нормально не поработаешь
байтоёбство
кстати, для задачи, где подобных объектов может быть 50-100М, придется еще не так извращаться... ну или забить на 32-битную реализацию.