Heliothryx (игра на конкурс) - игра выпущена

Entertainment for 5 minutes, hours, days
  • Собралось в iso! :D
    Только этот iso лежит в rus/data/data/, а файл latest-iso пока не обновился. Он обновляется через какое-то время, или его обновление модерирует админ или как-то еще?
    Roman Shuvalov
  • ALPINE wrote:Только этот iso лежит в rus/data/data/, а файл latest-iso пока не обновился. Он обновляется через какое-то время, или его обновление модерирует админ или как-то еще?
    Ты не в том месте добавил. DOOM не собирается из исходников, а копируется из готового бинарника "as is". Нужно добавить в том разделе, где QUAKE (а там, где DOOM, удалить).
    ALPINE wrote:Ой, мои три вопроса переместили в эту тему что ли? Или это я их сам сюда разместил?
    Вопросы я перенёс, да, так как всё равно они относились именно к твоей игре.
  • Code: Select all

    -- Programs that require GCC to compile.
    Угу, увидел. Исправляю. Решил вписаться рядом с думом, думая, что он как раз-таки собирается на нужном мне языке.

    Исправлено.
    Roman Shuvalov
  • ALPINE wrote:Собралось в iso! :D
    Только этот iso лежит в rus/data/data/, а файл latest-iso пока не обновился. Он обновляется через какое-то время, или его обновление модерирует админ или как-то еще?
    Создание трёх архивов для каждого из пяти разных языков требует некоторого времени, они появляются через несколько минут после коммита.
    Сделаем мир лучше!
  • Четвёртый час, а архив все еще старый:

    Code: Select all

     latest-iso.7z  2014-Dec-06 09:40:04    14.6M       application/octet-stream
    Надеюсь, я ничего не сломал?

    Вопрос про зависимости (обновление: проблему решил, но вопрос остался). Делаю поддержку нескольких языков, по аналогии с асм-примерами пишу

    Code: Select all

    tup.rule("echo \"#define LANG_" .. ((tup.getconfig("LANG") == "") and "en" or tup.getconfig("LANG")) .. "\" > lang.h", {"lang.h"})
    Получаю
    tup error: Missing input dependency - a file was read from, and was not specified as an input link for the command. This is an issue because the file was created from another command, ...
    Погуглил, суть проблемы понял. Надо указать явную зависимость исходников от только что сгенерированного файла lang.h, чтобы его генерирование выполнилось раньше. На сайте tup есть пример, но он не для Lua, попытка адаптировать для Lua ни к чему не привела.

    В use_gcc.lua увидел следующее:

    Code: Select all

    function compile_gcc(input, output)
      if not output then output = '%B.o' end
      tup.append_table(OBJS,
        tup.foreach_rule(input, "kos32-gcc -c " .. CFLAGS .. "$(CFLAGS_%e) " .. INCLUDES .. " -o %o %f", output)
      )
    end
    
    function link_gcc(input, output)
      if not output then input,output = OBJS,input end
      if STARTUP then
        table.insert(LIBDEPS, STARTUP)
        LDFLAGS = LDFLAGS .. " " .. STARTUP
      end
      if tup.getconfig("HELPERDIR") == "" and #LIBDEPS then
        if type(input) == "string" then input = {input} end              --   <===
        if not input.extra_inputs then input.extra_inputs = {} end
        tup.append_table(input.extra_inputs, LIBDEPS)
      end
    
      if type(output) == "string" then output = {output} end
      if not output.extra_outputs then output.extra_outputs = {} end
      table.insert(output.extra_outputs, output[1] .. ".map")
    
      tup.rule(input,
        "kos32-ld " .. LDFLAGS .. " -o %o %f -Map %o.map " .. LIBS .. " && kos32-objcopy %o -O binary " .. tup.getconfig("KPACK_CMD"),
        output)
    end
    extra_inputs - это оно? Указание на зависимость? Но оно мне нужно не в компоновщике ld, а в компиляторе gcc, но в функции compile_gcc() не реализована возможность передать в input объект, содержащий extra_inputs. Я правильно понимаю, что её надо там реализовать и это решит проблему? Или я малость намудрил? Image

    P.S. Естественно, перемудрил. В шашках отличный пример.

    Code: Select all

    if tup.getconfig("LANG") == "ru"
    then C_LANG = "LANG_RU"
    else C_LANG = "LANG_EN" -- this includes default case without config
    end
    CFLAGS = CFLAGS .. " -DRS_KOLIBRI -D" .. C_LANG .. " "
    Проблемы у меня больше нет, но хочется знать, верно ли то, что я написал выше. Про зависимости gcc от сгенерированных tup'ом файлов, если таковые вдруг когда-нибудь появятся.
    Roman Shuvalov
  • .
    Last edited by Mario_r4 on Sun Jan 04, 2015 9:49 pm, edited 1 time in total.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • В целевом это в каком?

    Вот здесь iso новый:
    http://builds.kolibrios.org/rus/data/data/

    А вот здесь - старый:
    http://builds.kolibrios.org/rus/
    Roman Shuvalov
  • ALPINE wrote:Четвёртый час, а архив все еще старый:

    Code: Select all

     latest-iso.7z	2014-Dec-06 09:40:04	14.6M	application/octet-stream
    Надеюсь, я ничего не сломал?
    Mario_r4 wrote:У меня есть предположение, что надо чего-нибудь поменять в целевом проекте, дабы дать принудительного пинка системе. Хотя я могу и ошибаться.
    ALPINE wrote:В целевом это в каком?
    Он хотел сказать, что для того, чтобы дистрибутив пересобрался, нужно что-то изменить в одном из файлов, которые в него входят (например, в твоей игре). Так что беспокоиться не о чем - при следующем твоём коммите архив должен обновиться.
  • Отставить панику. Никаких принудительных пинков не нужно. Я вчера добавляла в скрипты пост-обработки код, предотвращающий параллельную работу при слишком быстрых коммитах, скрипты немного поломались. Сейчас всё должно быть нормально.
    Сделаем мир лучше!
  • Так что беспокоиться не о чем - при следующем твоём коммите архив должен обновиться.
    Ок, только я уже три коммита сделал. И новый iso уже лежит в /data/data. А в файле latest до сих пор старый. Ладно, пока не беспокоюсь и веду разработку дальше. Потом видно будет, в порядке всё или не в порядке.

    Сегодня будет маленькое обновление, добавляющее поддержку нескольких языков, а так же утилита по преобразованию строк в тот вид, который используется в игре. Пригодится другим разработчикам, которые захотят перевести игру на свой язык. Диакритики правда не будет, но уж поделать, будем довольствоваться латиницей и кириллицей.

    P.S. CleverMouse, ок, спасибо. За быстрые коммиты прошу прощения - при первых пробах так всегда, в дальнейшем коммиты будут уже реже и объёмистей. 8)
    Roman Shuvalov
  • Alpine wrote:А в файле latest до сих пор старый
    Новый, r5228.
    Сейчас с быстрыми коммитами не должно быть проблем.
    Сделаем мир лучше!
  • ALPINE wrote:Вопрос про зависимости (обновление: проблему решил, но вопрос остался). Делаю поддержку нескольких языков, по аналогии с асм-примерами пишу

    Code: Select all

    tup.rule("echo \"#define LANG_" .. ((tup.getconfig("LANG") == "") and "en" or tup.getconfig("LANG")) .. "\" > lang.h", {"lang.h"})
    Получаю
    tup error: Missing input dependency - a file was read from, and was not specified as an input link for the command. This is an issue because the file was created from another command, ...
    Погуглил, суть проблемы понял. Надо указать явную зависимость исходников от только что сгенерированного файла lang.h, чтобы его генерирование выполнилось раньше. На сайте tup есть пример, но он не для Lua, попытка адаптировать для Lua ни к чему не привела.
    extra_inputs - это оно? Указание на зависимость? Но оно мне нужно не в компоновщике ld, а в компиляторе gcc, но в функции compile_gcc() не реализована возможность передать в input объект, содержащий extra_inputs. Я правильно понимаю, что её надо там реализовать и это решит проблему? Или я малость намудрил?
    Проблемы у меня больше нет, но хочется знать, верно ли то, что я написал выше. Про зависимости gcc от сгенерированных tup'ом файлов, если таковые вдруг когда-нибудь появятся.
    Всё верно. В fasm нет параметра, аналогичного -D, позволяющего из командной строки указывать настройки компиляции, поэтому приходится использовать дополнительный файл. В gcc/msvc лучше использовать настройку командной строки - по крайней мере, если это один параметр LANG_xxx с разумным значением по умолчанию.
    При использовании echo надо быть готовым к проблемам с кроссплатформенностью - под Windows и под Linux echo ведёт себя по-разному. Например, правило в форме из цитаты под Windows создаст файл из строчки

    Code: Select all

    "#define LANG_en" 
    в кавычках. Без кавычек в Windows строка будет нормальной, но в Linux символ # будет воспринят как комментарий, и файл будет создан с пустой строкой. Если очень хочется именно echo и именно с #, придётся писать два разных правила в зависимости от tup.getconfig("TUP_PLATFORM") == "win32".
    Сделаем мир лучше!
  • extra_inputs в синтаксисе Lua можно добавить примерно так:

    Code: Select all

    compile_gcc{"1.c", "2.c", "3.c", extra_inputs="lang.h"} -- files that use lang.h
    compile_gcc{"4.c", "5.c", "6.c"} -- files that don't use lang.h
    
    Сделаем мир лучше!
  • Спасибо за разъяснения. Про кавычки не знал. Про extra_inputs учту, возможно, пригодится.

    Вопрос про мышь (ничего, что я так много вопросов задаю? :D): событие нажатия/отжатия/drag'n'drop надо ловить вручную, да? Всё через событие №6 и, сохраняя предыдущие состояния кнопок, ловить нажатие кнопки мыши и её отжатие? Я уже это сделал, просто уточняю на случай, если вдруг я опять слепой и ловля нажатий-отжатий кнопки мыши уже реализована, как в случае с клавиатурой и сканкодами, которые я упустил.
    Roman Shuvalov
  • Who is online

    Users browsing this forum: No registered users and 6 guests