<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[ПЭВМ "Агат" 7-9: Форум &mdash; Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
		<link>https://forum.agatcomp.ru//viewtopic.php?id=211</link>
		<atom:link href="https://forum.agatcomp.ru/extern.php?action=feed&amp;tid=211&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как поиск квеста "Алиса в стране чудес" сам превратился в квест».]]></description>
		<lastBuildDate>Sun, 18 Oct 2020 12:54:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=4110#p4110</link>
			<description><![CDATA[<p>Это номера предметов - так сказать настоящие номера:<br />item_Stick&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;0<br />item_Baby&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;1<br />item_Rattle&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;2<br />item_Muffin&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;3<br />item_Memo&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;4<br />item_Whisker&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;5<br />item_CricketBat&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;6<br />item_Brooch&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;7<br />item_Fan&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;8<br />item_BreadAndButterfly&nbsp; &nbsp; ds 1&nbsp; &nbsp; ;9<br />item_Cravat&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;10<br />item_PaperCrown&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;11<br />item_SeaShell&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;12<br />item_Key&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;13<br />item_Marmalade&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;14<br />item_TopHat&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;15<br />item_Parasol&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;16<br />item_TinOfComfits&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; ;17<br />item_TeaCup&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;18<br />item_TeaPot&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;19<br />item_PurpleMushroom&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; ;20<br />item_WhiteMushroom&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; ;21<br />item_Elixir&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;22<br />item_Cake&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;23<br />item_QueenKey&nbsp; &nbsp; ds 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ;24<br />А это - то как предметы представлены в игре:<br />ConvertItemIDtoTrueID:<br />;на Входе A = ItemID<br />;до 19 - один в один<br />;A=[19-21]&nbsp; &nbsp; - item_TeaPot<br />;A=[22-27]&nbsp; &nbsp; - item_PurpleMushroom<br />;A=[28-33]&nbsp; &nbsp; - item_WhiteMushroom<br />;A=[34-47]&nbsp; &nbsp; - item_Elixir<br />;A=[49-254]&nbsp; &nbsp; - item_Cake<br />;на Выходе Y = TrueID<br />;----/&gt;<br />;это базовые таблицы, в начале игры, для размещения предметов<br />;по ходу игры подвергаются изменениям<br />;номер предмета для размещения является индексом в этих 3-х таблицах<br />;номера комнат в которых нужно разместить предметы<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$9b,$00,$4b,$00,$00,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$ba,$00,$00,$28,$22,$15,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$37,$30,$30,$30,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$00,$00,$00,$00,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$00,$25,$25,$25,$25,$25<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $25,$24,$93,$52,$52,$24,$a6,$a6<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $a7,$22,$22,$22,$22,$25,$25,$25<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $24,$91,$52,$52,$24,$a6,$a7,$a7<br />;1-я позиция в строке, предмет занимает 2 позиции в подряд<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$15,$00,$14,$00,$00,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$14,$00,$00,$23,$05,$19,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$11,$0f,$11,$17,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$00,$00,$00,$00,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$00,$18,$22,$22,$18,$1c<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $1e,$05,$14,$21,$05,$05,$06,$25<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $1d,$1a,$1c,$21,$23,$04,$09,$07<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $05,$11,$1f,$07,$05,$17,$10,$04<br />;старшие 3 бита - флаги<br />;B7=1 - предмет не доступен<br />;B6=1 - отобразить предмет; =0 - не отображать<br />;B5=1 - предмет у Алисы; =0 - предмет в комнате<br />;остальные биты - номер строки в комнате<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$48,$00,$4f,$00,$00,$00,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$49,$00,$00,$4c,$42,$46,$00<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $00,$00,$45,$42,$42,$44,$80,$80<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $80,$80,$80,$80,$80,$80,$80,$80<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $80,$80,$80,$4e,$4e,$48,$48,$44<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $44,$47,$52,$4b,$4b,$50,$52,$4c<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $4c,$42,$42,$42,$42,$49,$49,$4b<br />&nbsp; &nbsp; &nbsp; &nbsp; dfb $4e,$4d,$4b,$4b,$49,$4c,$52,$4c</p>]]></description>
			<author><![CDATA[null@example.com (Dohtur Frag)]]></author>
			<pubDate>Sun, 18 Oct 2020 12:54:45 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=4110#p4110</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=4098#p4098</link>
			<description><![CDATA[<p>Будет корректироваться по мере изучения кода.<br />;&lt;------<br />charDescriptor: ;48 байт<br />.BasePozX&nbsp; &nbsp; ds 1 ;изначальная позиция в комнате<br />.BasePozY&nbsp; &nbsp; ds 1 ;изначальная позиция в комнате<br />.DelayBeforAnimate&nbsp; &nbsp; ds 1 ;<br />.HowMove&nbsp; &nbsp; ds 1 ;0 - взад-назад, 1 - рандом взад-назад, 2 - не двигается<br />.HowAnimate&nbsp; &nbsp; ds 1 ;0 - последовательно из .tableAnimation, !0 - рандом из .tableAnimation<br />.LimitMoveStep&nbsp; &nbsp; ds 1 ;максимальное смещение во время движения. по маске $1F<br />.LimitLeftPozX&nbsp; &nbsp; ds 1 ;[крайне левая позиция]<br />.LimitRightPozX&nbsp; &nbsp; ds 1 ;[крайне правая позиция]<br />;тетрада - номер анимации [0-2]<br />.tableAnimation&nbsp; &nbsp; ds 8 ;ст.тетрада - чётный шаг, мл.тетрада - не чётный шаг<br />.tableResponseOnCommand<br />;12 байт минус .Welcome<br />.Welcome&nbsp; &nbsp; ds 1 ;пустая команда, только текст при появлении Алисы<br />.Coax&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.Tease&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.Calm&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.Scold&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.Help&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.Argue&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.WhoAreYou&nbsp; &nbsp; ds 1 ;номер ответной фразы ,0 - не разговаривает<br />.WhereIam&nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.WhatAreYouDoing&nbsp; &nbsp; ds 1 ;номер ответной фразы<br />.ReactionOnSing&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;номер песни<br />.ReactionOnOffer&nbsp; &nbsp; ds 1 ;номер предмета по маске $3F<br />.ActionSing&nbsp; &nbsp; &nbsp; &nbsp; ds 1 ;0 - см..ActionRiddle<br />.ActionSayHint&nbsp; &nbsp; ds 1 ;0 - см..ActionSing, !0 -&nbsp; по маске $7F<br />.ActionGiveItem&nbsp; &nbsp; ds 1 ;0 - см..ActionSayHint, !0 - по маске $3F и см..ActionSayHint<br />.ActionRiddle&nbsp; &nbsp; ds 1 ;!0 - номер загадки<br />.isBlockAlice&nbsp; &nbsp; ds 1 ;0 - не блокирует, !0 - блокирует<br />.HowBlockAlice&nbsp; &nbsp; ds 1 ;0 - только по X, !0 - по X,Y<br />.PlaceAliceInRoom&nbsp; &nbsp; ds 1 ;<br />.PlaceAliceInPozX&nbsp; &nbsp; ds 1 ;<br />.PlaceAliceInPozY&nbsp; &nbsp; ds 1 ;<br />.tableReactionOnCommand<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ds 11<br />;.endCharDescriptor<br />;конец описателя персонажа<br />;<br />;Как работает логика?<br />;команда !0 и фраза !0 (иначе посылает к окулисту)<br />;9 команд: с .Coax по .WhatAreYouDoing. Для примера возьмём .Help<br />;смотриться .tableReactionOnCommand:<br />;&nbsp; &nbsp; если :00000000 - выводиться фраза из .Help<br />;&nbsp; &nbsp; если :0xxxxxxx - через сколько часов вернётся ($7F - совсем исчезает), выводиться фраза из .Help<br />;&nbsp; &nbsp; если :10000000 - смотрит .ActionGiveItem, выводиться фраза из .Help<br />;&nbsp; &nbsp; если :1xxxxxxx - смотрит .ActionGiveItem, через сколько часов вернётся ($7F - совсем исчезает), выводиться фраза из .Help<br />;конец.<br />;.ActionGiveItem:<br />;&nbsp; &nbsp; если !0 - выбрасыват предмет и проваливается на если 0<br />;&nbsp; &nbsp; если 0 - смотрит .ActionSayHint:<br />;&nbsp; &nbsp; &nbsp; &nbsp; если !0 - выводит фразу из .ActionSayHint и проваливается на если 0<br />;&nbsp; &nbsp; &nbsp; &nbsp; если 0 - смотрит .ActionSing:<br />;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; если !0 - поёт песню из .ActionSing и проваливается на если 0<br />;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; если 0 - смотрит .ActionRiddle:<br />;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; если !0 - выставляет флаг загадки<br />;конец .ActionGiveItem<br />;Таким образом .Help всегда выводиться последней и если .ActionSayHint !0 -<br />; то в .Help лежит Hint, а фраза в .ActionSayHint<br />;-------/&gt;</p>]]></description>
			<author><![CDATA[null@example.com (Dohtur Frag)]]></author>
			<pubDate>Fri, 09 Oct 2020 15:26:44 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=4098#p4098</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3296#p3296</link>
			<description><![CDATA[<p>Персонажи раскиданы почти по всем трекам второго диска в секторах $9-$E. Один персонаж занимает два сектора.</p><p>Сначала идут спрайты. У каждого персонажа 3 кадра анимации. каждый кадр состоит из двух спарйтов 24х21 в аппаратном формате Комодора, склеенных вертикально. Каждый спрайт занимает 64 байта. Итого 6 спрайтов по 64 байта = $180 байт.</p><p><span class="postimg"><img src="http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=684&amp;download=0" alt="http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;amp;item=684&amp;amp;download=0" /></span></p><p>Сразу за спрайтами идёт таблица $30 байт длиной. Достоверно известно, что первые два байта этой таблицы -- координаты персонажа в комнате в тайлах. Про остальные данные информации нет. Наверняка там хранится анимация -- какой кадр сколько времени показывать. Возможно, там же хранятся смещения для персонажей, которые перемещаются.</p><p>Кроме этого в коде игры есть таблица, по которой для избранных комнат корректируются байты 0, 1, 5, 6 и 7 в таблице персонажа. Например, персонаж $3B встречается в четырёх комнатах, везде в разных местах. Изменяя байты 0 и 1 в его таблице, игра ставит его на нужное место.</p><p><span class="postimg"><img src="http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;item=683&amp;download=0" alt="http://forum.agatcomp.ru//misc.php?action=pun_attachment&amp;amp;item=683&amp;amp;download=0" /></span></p>]]></description>
			<author><![CDATA[null@example.com (SnakE)]]></author>
			<pubDate>Sat, 23 Nov 2019 14:26:25 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3296#p3296</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3295#p3295</link>
			<description><![CDATA[<p>Детективная работа немного застопорилась, поэтому расскажу, что нам с Андреем удалось выяснить про персонажей.</p>]]></description>
			<author><![CDATA[null@example.com (SnakE)]]></author>
			<pubDate>Sat, 23 Nov 2019 13:37:23 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3295#p3295</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3217#p3217</link>
			<description><![CDATA[<p>Объекты!</p><p>Итак, в списке объектов встречаются записи, состоящие всего из трёх байт: кода объекта и его координат.</p><p>Старшие 4 бита кода -- это тип объекта. Он определяет горизонтальные размеры и внешний вид.<br />Младшие 4 бита кода -- всегда высота объекта в тайлах.</p><p>Типы объектов:<br /></p><ul><li><p>$1, $2 -- лестницы. В ширину состоят из тайлов $B4-$B6 и $B7-$B9 соответственно, которые повторяются в высоту.</p></li><li><p>$3, $4, $5 -- верёвки. В ширину состоят из одного тайла: $BA, $BB и $BC соответственно, повторяются в высоту.</p></li><li><p>$7 -- листок объявления. Первая строка состоит из тайлов $CC и $CD, вторая из $CE и $CF.</p></li><li><p>$8 -- закрытая дверь. Строка состоит из трёх тайлов $BD и повторяется в высоту.</p></li><li><p>$A -- открытая дверь. Строка состоит из трёх тайлов $BE (сплошной чёрный) и повторяется в высоту.</p></li><li><p>$C -- зеркало. Строка состоит из трёх тайлов $BF и повторяется в высоту.</p></li><li><p>$D -- часы. Первая строка&nbsp; -- тайлы $C0-$C2, вторая $C3-$C5, третья $C6-$C8.</p></li><li><p>$0, $9, $B, $F -- видимо, не используются.</p></li></ul><p>В комнате может быть только одна дверь каждого типа. Закрытая дверь ведёт в выход $F2, открытая в $F3 и зеркало в $F4, см. пост про переходы между комнатами.</p><p>Предполагаю, что по высоте двери игра решает, может ли Алиса в её нынешнем размере пройти в дверь.</p><p>Спасибо Андрею Frag за информацию о преобразованиях, которые игра делает с кодами!</p><p>P.S.: Из комнаты можно выйти не только влево-вправо, но и вверх-вниз. Эти выходы описаны в байтах $EE и $EF описателя комнаты. Я поправлю пост про переходы.</p>]]></description>
			<author><![CDATA[null@example.com (SnakE)]]></author>
			<pubDate>Sat, 09 Nov 2019 00:27:35 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3217#p3217</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3216#p3216</link>
			<description><![CDATA[<p>По просьбам трудящихся.<br />Ответы на загадки.</p><p>Всего загадок-вопросов - 7. Из них 6 это загадки и 1 вопрос(форматировать диск Y/N?).<br />Буфер для ввода ответа на загадку - 16 байт.<br />Сами отгадки могут быть не длиннее 8 байт.<br />Это значит что если ответ будет больше 8 байт, он всё равно будет 8 байт.<br />Как пример, слово Buttercup. Отвечая на загадку, можно набрать Buttercup, а можно Buttercu, а можно ButtercuMFгыгы. Все варианты будут правильными. Потому что значимые только первые 8 букв.</p>]]></description>
			<author><![CDATA[null@example.com (Dohtur Frag)]]></author>
			<pubDate>Fri, 08 Nov 2019 23:10:22 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3216#p3216</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3212#p3212</link>
			<description><![CDATA[<p>В коде алисы нашёл кусок, который похож на анализ комнаты.<br />Сначала в секторе ищется $E0 (может быть не найден), позиция значения не имеет, только сам факт наличия $E0. Если найден - тогда сохраняется содержимое ячеек $EC-$ED; $EE-$F4; $F5-$FA. Дальше начинается разбор на тетрады $FB-$FE. Потом распаковка, начиная с байта $0.<br />Распаковка идёт на $C000 до $C320($320 байт).<br />Потом берётся байт. Младшая тетрада сохраняется, старшая проверяется. Если $E0 выход, если $60 - обрабатывается отдельно, если $10,$20,$30,$40,$50,$80,$A0,$C0,<br />$D0,$70,$00,$90,$B0,$F0&nbsp; - обрабатывается одинаково, им в соответствие приводятся значения $B4,$B7,$BA,$BB,$BC,$BD,$BE,$BF,<br />$C0,$CC,$FF,$FF,$FF,$FF.<br />Потом выбираются 2 байта адреса, причём для эпла старший байт уменьшается на #$33(оно и понятно, на эпле буфер на $8D00).<br />Потом пляски больше - меньше и запись этих $B4,$B7.... по верх распакованого на $C000-$C300. При этом, в зависимости от кода $B4,$B7..., решается вопрос сколько раз этот код повторить(1,2,3).<br />Код $60 обрабатывается схожим образом, только плясок нету(он же один).<br />И так по кругу, пока в $E0 не упрётся.</p><p>В общем всё как Snake написал, плюс немного подробностей, с точки зрения кода.</p><p>Немного примеров.<br />Допустим встретился код $13. 1 это $B4, 3 это высота(количество строк) Это значит, что будет распакована матрица вида:<br />$B4,$B5,$B6<br />$B4,$B5,$B6<br />$B4,$B5,$B6<br />Допустим встретился код $72. 7 это $CC, 2 высота. Распакуется матрица:<br />$CC,$CD<br />$CE,$CF<br />Код $D3. Матрица:<br />$C0,$C1,$C2<br />$C3,$C4,$C5<br />$C6,$C7,$C8<br />Код $33. Матрица:<br />$BA<br />$BA<br />$BA<br />Код $A3. Матрица:<br />$BE$BE$BE<br />$BE$BE$BE<br />$BE$BE$BE</p><p>Пока что, как-то так.</p><p>29.09.20<br />Байт $EC - номер НПЦ в комнате<br />Байт $ED - номер Объявления, значение [0-15]</p>]]></description>
			<author><![CDATA[null@example.com (Dohtur Frag)]]></author>
			<pubDate>Fri, 08 Nov 2019 16:38:28 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3212#p3212</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3211#p3211</link>
			<description><![CDATA[<p>Если бы здесь была кнопка &quot;Спасибо&quot;, я бы её нажал кучу раз :)</p>]]></description>
			<author><![CDATA[null@example.com (AlexBel)]]></author>
			<pubDate>Fri, 08 Nov 2019 14:25:37 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3211#p3211</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3210#p3210</link>
			<description><![CDATA[<p>Продолжение эпопеи -- переходы между комнатами!</p><p>У комнат сквозная нумерация. Нулевая комната находится в $2/$0, там на самом деле комнаты нет и ноль используется как маркер отсутствия перехода. Далее по порядку: $2/$1 = 1, $2/$8 = 8, $3/$0 = 9 и т.д. Нумерация перепрыгивает через пропущенные треки без разрыва: $10/$8 = $86, $15/$0 = $87 и т.д. Всего в игре может быть 255 комнат, и почти все они используются.</p><p>Выходы закодированы в каждой комнате в байтах $EE-$FA:</p><ul><li><p>$EE -- комната, в которую Алиса попадает, выйдя вверх</p></li><li><p>$EF -- комната снизу</p></li><li><p>$F0 -- комната слева</p></li><li><p>$F1 -- комната справа</p></li><li><p>$F2 -- комната, в которую Алиса попадает, выйдя через первую дверь. В этой комнате Алиса оказывается в координатах X=$F5 и Y=$F8</p></li><li><p>$F3 -- выход через вторую дверь, координаты перехода в $F6 и $F9</p></li><li><p>$F4 -- третья дверь, координаты в $F7 и $FA</p></li></ul><p>Выходы $F2, $F3 и $F4 соответствуют закрытой двери, открытой двери и зеркалу, см. пост об объектах ниже.</p>]]></description>
			<author><![CDATA[null@example.com (SnakE)]]></author>
			<pubDate>Fri, 08 Nov 2019 13:05:58 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3210#p3210</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3209#p3209</link>
			<description><![CDATA[<div class="quotebox"><cite>AlexBel пишет:</cite><blockquote><div class="quotebox"><cite>SnakE пишет:</cite><blockquote><p>Следующие два байта LL и HH формируют 16-битное число $HHLL = X + Y*40 + $C000 где X и Y -- координаты начала текстового фрагмента на экране. Скорее всего, на Комодоре это буквально адрес видеопамяти, где нужно начать отображение.</p></blockquote></div><p>Посмотрел карты памяти С64 - с адреса С000 идут 4 килобайта обычной памяти. Может быть, она используется в качестве промежуточного буфера...</p></blockquote></div><p>Угу.</p>]]></description>
			<author><![CDATA[null@example.com (Dohtur Frag)]]></author>
			<pubDate>Fri, 08 Nov 2019 05:37:32 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3209#p3209</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3207#p3207</link>
			<description><![CDATA[<div class="quotebox"><cite>SnakE пишет:</cite><blockquote><p>Следующие два байта LL и HH формируют 16-битное число $HHLL = X + Y*40 + $C000 где X и Y -- координаты начала текстового фрагмента на экране. Скорее всего, на Комодоре это буквально адрес видеопамяти, где нужно начать отображение.</p></blockquote></div><p>Посмотрел карты памяти С64 - с адреса С000 идут 4 килобайта обычной памяти. Может быть, она используется в качестве промежуточного буфера...</p>]]></description>
			<author><![CDATA[null@example.com (AlexBel)]]></author>
			<pubDate>Fri, 08 Nov 2019 02:29:30 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3207#p3207</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3206#p3206</link>
			<description><![CDATA[<p>Круто! Reverse engineering at its best!</p>]]></description>
			<author><![CDATA[null@example.com (Wierzbowsky)]]></author>
			<pubDate>Thu, 07 Nov 2019 22:13:04 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3206#p3206</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3205#p3205</link>
			<description><![CDATA[<p>Ещё немного, и данных будет достаточно, чтобы сделать полноценную реплику на современной платформе :)</p>]]></description>
			<author><![CDATA[null@example.com (AlexBel)]]></author>
			<pubDate>Thu, 07 Nov 2019 11:13:31 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3205#p3205</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3204#p3204</link>
			<description><![CDATA[<p>Спасибо!</p><p>Я немного дополнил текст, чтобы были понятнее детали.</p><p>Во многих комнатах после объектов есть ещё какие-то данные. Это может быть мусор, а может быть какая-то часть логики комнаты. Например, непонятно, как игра определяет, какие тайлы проходимые, а какие нет.</p>]]></description>
			<author><![CDATA[null@example.com (SnakE)]]></author>
			<pubDate>Thu, 07 Nov 2019 11:10:26 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3204#p3204</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как поиск квеста "Алиса в стране чудес" сам превратился в квест]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=3203#p3203</link>
			<description><![CDATA[<p>Снимаю шляпу :)</p>]]></description>
			<author><![CDATA[null@example.com (Voldemar0)]]></author>
			<pubDate>Thu, 07 Nov 2019 02:19:32 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=3203#p3203</guid>
		</item>
	</channel>
</rss>
