Цирк кошек Куклачёва
В позднем СССР, наверное, нельзя было найти ребёнка, который не знал бы цирк кошек Куклачёва, — его постоянно показывали по телевизору. Поэтому в детстве у меня была мечта, без надежды на осуществление, — попасть хоть раз на представление этого цирка.
Без надежды, потому что Куклачёв был настоящей звездой, выступал в Москве и крупных городах, куда я в детстве не ездил, а в мой родной маленький Лениногорск он приезжать бы не стал.
Сейчас тот самый Куклачёв уже не выступает, дело продолжает его сын, тем не менее, фамилия Куклачёвых до вчерашнего дня мне казалась цирковым брендом, показателем качества.
Нельзя сказать, что та детская мечта во мне осталась, но когда куклачёвский цирк приехал в Казань, я решил показать дрессированных кошек дочке, да и самому посмотреть — не всколыхнёт ли во мне
Выступление всколыхнуло, но не ностальгию, а другое чувство — испанского стыда. До антракта кошки на сцене были для мебели — почти статично
Не знаю чему тут было смеяться, но мне симпатизировать криминалу совсем не хочется, я уже
Очень отрадно, что дочку это тоже не веселило, — она хотя и смотрела внимательно, но высматривала, в основном, кошек и собак на сцене, а не как один заслуженный артист бьёт лестницей по яйцам другому. Впрочем, в зале многие смеялись.
К счастью, после антракта формат сменился, — на передний план вышли дрессированные животные, так что я почти смирился, что заплатил за это дерьмо 2000 рублей за билет.
Дочке представление понравилось. Счастливое время детство — даже не замечаешь
«Гопник-2»: итог выходных
Человек предполагает, а череда неконтролируемых случайностей располагает. Я думал, что все выходные буду тихонечко пилить список запланированных изменений в игре, а на деле пришлось править совсем другое.
Без особой надежды на успех, я закидываю игру своим друзьям и знакомым, и хотя фанклуб игры не обогатился новыми членами, тем не менее небольшую пользу эту принесло — оказалось, что предыдущий автор недостаточно аккуратно ставит атрибуты консоли и в некоторых случаях не возвращает их обратно.
Например, у одной моей подруги, которой я прислал «Гопника», программа «Терминал»
Кстати, я не знал какой у неё «Макбук» — на процессоре «Интела» или «Эпла», поэтому пришлось научиться делать так называемые «универсальные бинарники».
Это несложно: компилируем программу дважды, сначала — под «интел» (-target x86_64), потом — под «эпл» (-target arm64-apple-macos11), после чего собираем оба бинарника в один:
lipo gop2-x86 gop2-arm -create -output gop2-universalНо это всё не беда, а так, развлечение на полчаса, проблема, над которой я просидел часть субботы, хуже — в моём коде не работало сохранение и восстановление инвентаря.
Автор первой попытки портирования игры из ДОСа в Линукс
В общем, нашёл нужную структуру, написал код, который работает с ней без затей, — сохраняет и восстанавливает как есть, вместе с указателями на строки, которые потом обрабатываются дополнительно.
fread(&inv_amount, sizeof(inv_amount), 1, load_file);
inv = (inventory *) malloc(sizeof(inventory) * inv_amount);
fread(inv, sizeof(inventory), inv_amount, load_file);
for (int i = 0; i < inv_amount; i++) {
size_t len;
fread(&len, sizeof(len), 1, load_file);
inv[i].name = (char *) malloc(sizeof(char) * len);
fread(inv[i].name, sizeof(char), len, load_file);
}Эти указатели — по сути мусор, но один файл игры занимает сотни байт, а у меня нет всего времени Вселенной, чтобы экономить на спичках.
В общем, из задуманного не сделал ничего, зато поправил некоторые вещи поважнее.