SprPoP: README для игрока и экран Controls в две колонки
README, который едет НА ДИСК рядом с программой, в двух версиях: README.TXT (английский) и README.RUS (русский). Краткое описание, запуск, полная раскладка управления, читы, файлы игры, чего не хватает против оригинала, благодарности. Русский обязан быть в CP866 — DSS и местные просмотрщики читают именно её, UTF-8 показался бы кракозябрами. Исходники лежат в dist/ как UTF-8 (чтобы читались в репозитории), перекодировка и CRLF делаются правилом Makefile. ПОРЯДОК В КОНВЕЙЕРЕ ВАЖЕН: sed ставит CRLF ДО iconv — BSD sed в UTF-8 локали отказывается работать с байтами CP866 («RE error: illegal byte sequence»), а с валидным UTF-8 работает. iconv БЕЗ -c намеренно: потеря символа должна ломать сборку, а не молча портить текст. ЭКРАН CONTROLS переписан в две колонки. В одну раскладка больше не помещалась: после фаз A-C клавиш стало вдвое больше, а по высоте есть только 200 точек вместе с заголовком. Слева игра (бег, лазание, бой), справа служебное и читы; высота блока считается по ДЛИННОЙ колонке. Строка «IN A FIGHT» — заголовок, а не клавиша: ниже неё те же стрелки и Shift означают другое, и без разделителя список читался бы противоречиво. Заодно экран перестал врать: там до сих пор висели P, I, U и F7/F8 — клавиши, переназначенные ещё в фазе A. Проверено в MAME: Backspace открывает меню, Settings -> Show key bindings показывает обе колонки целиком. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -200,7 +200,11 @@ LVL_NUMS := 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14
|
||||
# три секунды. Четыре архива актёров, а не один: имена внутри наборов
|
||||
# совпадают (g0.atl есть и у стража, и у скелета, и у Джафара), а константы
|
||||
# индексов упаковщик делает из имени файла.
|
||||
DISK := BG/bg.arc BG/pop_tile.pal BG/pal_tile.pal \
|
||||
# README для игрока идёт НА ДИСК рядом с программой. Русский обязан быть в
|
||||
# CP866: DSS и любой местный просмотрщик читают именно её, UTF-8 покажется
|
||||
# кракозябрами. Имена в 8.3: README.TXT и README.RUS.
|
||||
DISK := README.TXT README.RUS \
|
||||
BG/bg.arc BG/pop_tile.pal BG/pal_tile.pal \
|
||||
KID/kid.arc KID/kid.pal KID/kid.ani \
|
||||
GUARD/guard.arc SKEL/skel.arc VIZIER/vizier.arc SHADOW/shadow.arc \
|
||||
SND/snd.arc \
|
||||
@@ -409,6 +413,23 @@ $(PACKED)/LEVELS/res20$(1).bin: $(LVL_ORIG)/res20$(1).bin | check-orig
|
||||
endef
|
||||
$(foreach n,$(LVL_NUMS),$(eval $(call lvl_rule,$(n))))
|
||||
|
||||
# README: перевод строки CRLF (текст читают в DOS-подобной среде) и, для
|
||||
# русского, перекодировка в CP866. iconv БЕЗ -c намеренно: потеря символа
|
||||
# должна ломать сборку, а не молча портить текст (memory
|
||||
# iconv_cp866_workflow; //TRANSLIT на macOS падает).
|
||||
$(PACKED)/README.TXT: dist/README.txt
|
||||
@mkdir -p $(dir $@)
|
||||
@sed 's/$$/\r/' $< > $@
|
||||
|
||||
# ПОРЯДОК ВАЖЕН: CRLF ставится ДО перекодировки. BSD sed в UTF-8 локали
|
||||
# отказывается работать с байтами CP866 («RE error: illegal byte sequence»),
|
||||
# а с валидным UTF-8 — работает.
|
||||
$(PACKED)/README.RUS: dist/README.ru.txt
|
||||
@mkdir -p $(dir $@)
|
||||
@sed 's/$$/\r/' $< | iconv -f UTF-8 -t CP866 > $@
|
||||
|
||||
resources-readme: $(PACKED)/README.TXT $(PACKED)/README.RUS
|
||||
|
||||
resources-bg: $(PACKED)/BG/bg.arc $(PACKED)/BG/pop_tile.pal $(PACKED)/BG/pal_tile.pal
|
||||
resources-kid: $(PACKED)/KID/kid.arc $(PACKED)/KID/kid.pal $(PACKED)/KID/kid.ani
|
||||
resources-actors: $(PACKED)/GUARD/guard.arc $(PACKED)/SKEL/skel.arc \
|
||||
@@ -439,9 +460,9 @@ $(PACKED_FILES) $(GEN_H):
|
||||
@echo "SprPoP: нет $@ — генерирую ресурсы"
|
||||
@$(MAKE) GENERATE=1 $@
|
||||
|
||||
RES_TARGETS := resources resources-bg resources-kid resources-actors \
|
||||
resources-sound resources-music resources-font resources-title \
|
||||
resources-pv resources-levels
|
||||
RES_TARGETS := resources resources-readme resources-bg resources-kid \
|
||||
resources-actors resources-sound resources-music resources-font \
|
||||
resources-title resources-pv resources-levels
|
||||
$(RES_TARGETS):
|
||||
@$(MAKE) GENERATE=1 $@
|
||||
# Перегенерация ВСЕГО, не глядя на таймстемпы.
|
||||
|
||||
Reference in New Issue
Block a user