| Shortcut2ELF - Метка на эльф. Эльф обеспечивает возможность запуска других эльфов по метке. Эльф из серии невыгружаемых. Запустив один раз он ждет вызова метки со специальным кодом (0x0000FF10). И вообще выгружать его опасно. Я позволил себе непозволительную роскошь - выделил ивент 0xFF10 под свои нужды :). Но вы так НЕ ДЕЛАЙТЕ! Реализовано 2 типа запуска через метку: 1) BY_NAME. Запускается эльф из папки по-умолчанию (задается в DB) имя файла которого прописано в имени метки (с расширением!) 2) BY_ID. Запускается все эльфы (баг) с заданным id. id и путь задаются в DB. 3) Есть также команды эльфу (на данный момент только одна) через метку. [top secret :P] База эльфов с id читается в таком порядке: "/b/Elf/sc2elf.db" "/b/sc2elf.db" "/a/sc2elf.db" "/c/sc2elf.db" В итоге будет прочитана и использована последняя база из тех, что найдется. Если все 4 пути правильные, то будет использоваться 4й путь. Сделано для счастливых необладателей карты памяти для телефона :). ---------------- База эльфа. Структура. Пока это бинарник (Мне читать удобнее). Заголовок: 1) 4 байта 0x73634442 - чтобы не пытались левый файл подсунуть. А вообще чтоб было :). 2) 4 байла кол-во структур-описаний. Заголовок занокчился. Блок описаний. 3) 4 байта - id эльфа. Значение 0x0000FFF1 зарезервировано для параметра эльфа "папка по-умолчанию" откуда будут запускаться эльфы методом BY_NAME. 4) 4 байта - офсет относительно начала блока строк. Повторяются эти 8 байт столько, сколько указано по оффсету 0x4 файла (пункт 2). Блок строк 5) Строки в кодировке Unicode. Заканчивается строка двухбайтным символом ноль (0x0000). Вобщем заканчивается так, как и должна заканчиваться строка. ---------------- Метки. Структура метрки на эльф. SEEM 0002. 1) оффсет 0x1 - 1 байт означает тип запуска (см. 2 типа запуска через метку). (0=BY_NAME, 1=BY_ID, 2=SYS) 2) оффсет 0x4 - 4 байта ивент, по которому вызыывется эльф. Должно быть 0x0000FF10. 3) оффсет 0x8 - 4 байта на id эльфа, который должен запуститься. (для метода BY_ID). 4) оффсет 0x20 - строка в кодировке Unicode. Имя метки. Вам это ненужно, так, для общих знаний :). Редактируйте в меню "Метки". Просто так, отредактировав сим, вы врятли что-то получите (там еще есть маска меток(не знаю, извините где, еще не узнавал) и 2 оффсета в сим_0002). Лучше создайте метку и редактируйте сим, выделенный для этой метки. ---------------- Конец теории. Редактируем сим_0002 Итак, очищаем все метки (потом ровными руками восстановите), создаем по одной метке и правим согласно теории. Если всеже строка выше тяжела для вас, делайтем так: Очищаем все метки, создаем 2 метки куда угодно, заливаем 2 сима из архива (0002_0001.seem и 0002_0002.seem) на свои места. Редактирование DB. А нету :Р. Только по теории пляски с WinHex. Файл пример DB выложен в архиве. В нем прописано папка_по-умолчанию="/b/Elf/", id 0x00000001 = "/b/Elf/MotoCmd.elf", id 0x00000002 = "/b/Elf/REDandGREEN.elf" Я понимаю что ничего не понятно. Поэтому лучше подождите менеджера для редактирования DB и меткок на эльфы. Ну и заключительная фраза Я гарантирую неработу фичи на телефонах, в которых размер сима 0002 не равен 68 байт.
|