OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 08 Октябрь, 2024 02:12

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 238 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12  След.
Автор Сообщение
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Суббота, 07 Сентябрь, 2024 01:53 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
читаем пинги, читаем датники от оригинальной игры, рисуем. в оригинале там ресурсы были PCX, но я ленивый, поэтому конвертнул их в PNG. рисуем тупо: в массив, потом массив заливаем в текстуру. на каждом кадре. а потому что мне так удобней. всё равно там всех размеров — 320x400. и оригинальный FPS в районе десяти. точно успеем. ;-)

на картиночке не видно, но все спрайтики бодро шагают на месте, прямо как в думе.

если кому интересно — это старая досовая игра Threat от Fragment. я её нежно люблю ещё со школы. к сожалению, нормально поиграть в оригинал невозможно в принципе: в шароварной версии позволяют только первых три уровня пройти, а потом ХЕРАК! а ломаная полная поломана криво, и всё равно через пять-восемь уровней вылетает. это одна из причин, по которым я хочу римэйк.

в школе я её тоже нормально не сломал. но сделал хитрый хак: перезаписывал первые уровни следующими, и перезапускал. таким печальным образом я её таки всю прошёл. с pistol start, фактически, на хардкоре, лол.

ах, да. там есть куча разного оружия и магазин, ага.

формат уровней (полный, с монстрами и прочим) я расколол… лет десять назад, или больше. с тех пор вот всё делаю римэйк, лол.


Вложения:
Комментарий к файлу: Threat!
2024_09_07_01_42_40_960x800.png
2024_09_07_01_42_40_960x800.png [ 22.24 КБ | Просмотров: 1008 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Суббота, 07 Сентябрь, 2024 21:38 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
я знаю, что грязный хак, но: мой компилятор — что хочу, то и делаю!
Код:
TYPE
  Color* = RECORD [untagged, align1, asint]
    r*, g*, b*, a*: BYTE;
  END;

VAR
  i: INTEGER;
  s: SET;
  c: Color;
(* а теперь магия! *)
  c := 0FF_00_00_00H;
  c := {24..31};
  s := c;
  i := c;
  c := s;
  c := i;

в общем, запись в четыре байта `[asint]` передаётся как `INTEGER` argument, и позволяет некоторые гитики. и возвращать её тоже можно. просто потому, что мне иначе с цветом работать неудобно. но такие гитики работают только в присваиваниях и в аргументах, в выражении автоприведения типа не будет.

конечно, можно сделать набор процедур, но право… не будем бездумными ортодоксами: некоторые хаки реально облегчают жизнь.

а что оно непереносимо на big endian… ну, если мне когда-то понадобится — то тогда об этом и подумаю. научу компилятор разворачивать инты, например.

в основном-то оно ради передачи аргументом и возврата как значения сделано. я ещё подумаю — может, вместо этого потребую явные касты. а может и нет: это всё равно синтаксический мусор получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Понедельник, 09 Сентябрь, 2024 21:21 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
по ходу, я полез реверсить Threat. это надолго. пока что выяснил, что горячие финские парни не в курсе, зачем в турбопаскале придумали процедуры, поэтому фигачат простыни. с одной стороны — может, так и проще реверсить будет. а с другой — я понимаю, почему они жалуются в документашке, что целый год это писали. ещё быстро справились, чо.

если что — реверс нужен. потому что в игре довольно странный LOS и колдет: явно попиксельный, а не потайловый. я, конечно, могу сочинить что-то по мотивам, но сначала посмотрю: вдруг удастся добыть оригинальные алгоритмы? заодно может и AI монстриков получится найти. они-то тупые (вижу цель, не вижу препятствий), но…

из полезного, правда, пока удалось только найти флажок «registered version».


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Среда, 11 Сентябрь, 2024 04:00 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
ффух. тяжела и неказиста жизнь реверсера-болвана. болван — это я. на кой я полез на эти галеры…

с одной стороны хочу сказать горячим финским парням спасибо за то, что они не в курсе, зачем придумали процедуры, и фигачат простыни на 50+ экранов дизасма (не шучу, и это не предел). а с другой — у меня скоро будет глаз дёргаться от такого. в коде сплошная лапша из if-ов и тупой копипасты.

но, в общем, я много чего раскрутил уже. более-менее нашёл ai для всех объектов (ещё не анализировал, только имена дал), частично разобрал процедуру управления игроком. игрок с точки зрения игры зачем-то тоже монстр. зачем — решительно непонятно, у них общего почти нет. в смысле — идея-то правильная, но в коде явно не знали, что с ней делать.

из хорошего: похоже, колдет я частично угадал в своё время: все пукселы кодом больше 15 (не забываем: там палитра, и 256 цветов) считаются непроходимыми. а вот что я не угадал — это то, как проверяют. похоже, просто смотрят парочку пукселов в направлении движения — и на этом всё. а не полноценные кружки-овалы-прямоугольнички.

срельба из разного вида оружий тоже сделана огромной портянкой (гугель перевёл это как «porter girl»; я озадачен) прямо в player controller. `if curweap = guncode then весь-код-стрельбы endif`, как-то так. опять же: с одной стороны удобно, с другой — кровь из глаз.

тем не менее — процесс движется более-менее успешно. более успешно, чем я ожидал, но менее успешно, чем хотелось бы. тут главное — добить всё пока у меня запал не закончился.

IDA довольно удобна, но я положительно не понимаю, почему ней все так восхищаются. ну, glorified text editor. чуть-чуть даже semantic editor. ничего особенного. приятно, конечно, но даже объяснить ей, что вот этот аргумент — это указатель на вот такую структуру, так что дальше в тексте автоматически всё проставь… увы. я до этого особо с идой не работал, и ожидал какую-то мегатулзовину, которая кофе варит, минет делает, рельсы узлом завязывает… а получил скучную girl next door. которая на самом деле по функциональности не сильно превосходит мой недопиленый дизасм для z80 — который тоже примерно так же интерактивный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Пятница, 13 Сентябрь, 2024 05:00 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
хех. внезапно вспомнил, что забыл сделать field/method access checks. всё откладывал — и забыл, гыг. ну, типа, я ж знаю, какие поля трогать нельзя, потом. починил, чо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Суббота, 14 Сентябрь, 2024 07:31 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
упёр из оригинальной игрушки LOS. там оказался DDA, причём явно откуда-то спёртый, и на помеси асма и паскаля (потому что турбопаскальчик такой код, как там, генерировать не умеет). впрочем, может и не спёртый, потому что с ошибками, хихи. ошибки править не стал, и чистить не стал — пусть будет всё как в оригинале.

ну, и картинка, а то без картинок скучно.


Вложения:
2024_09_14_07_28_02_960x800.png
2024_09_14_07_28_02_960x800.png [ 15.62 КБ | Просмотров: 717 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Воскресенье, 15 Сентябрь, 2024 06:58 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
задолбался, и сделал вот такое:
Код:
VAR
  arr: ARRAY 4 OF INTEGER IS [0, 1, 2, 3];


PROCEDURE Test;
VAR arr: GLOBAL; f: INTEGER;
BEGIN
  Log.WRITELN("global");
  FOR f := 0 TO LEN(arr) - 1 DO
    Log.WRITELN(f, ": ", arr[f]);
  END FOR
  DEC(arr[0]);
END Test;


PROCEDURE Test1;
VAR
  larr: ARRAY 7 OF BYTE IS [100, 101, 102, 103, 104, 105, 106];
  f: INTEGER;
BEGIN
  Log.WRITELN("local");
  FOR f := 0 TO LEN(larr) - 1 DO
    Log.WRITELN(f, ": ", (larr[f] AS INTEGER));
  END FOR
  larr[0] := larr[0] - 1;
END Test1;

для глобалов красиво и без копирования, для локалов с копированием.

почему `IS`? а не знаю. во-первых, это красиво… а ещё потому что подобные присваивания для массивов не существуют. человек пишет `VAR lar … := [ … ];` — и ожидает, что такое присваивание везде сработает. а оно нет. (потому что мне лень).

пока что так можно инитить только скаляры.

p.s.: а. в конце можно сказать `*`, и остаток массива тупо занулится. если снежинки нет — то надо все элементы перечислять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Понедельник, 16 Сентябрь, 2024 01:00 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
и сделал уже полную поддержку — multidimensional arrays, records:
Код:
TYPE
  DirDelta = RECORD
    dx, dy: INTEGER;
  END;


VAR
  dd: ARRAY 4 OF DirDelta IS [
    (dx: -2; dy: -1;),
    (dx:  1; dy:  2),
    (dx:  3; dy:  4),
    (dx:  5; dy:  6),
  ];

PROCEDURE Test;
VAR dd: GLOBAL; f: INTEGER;
BEGIN
  Log.WRITELN("global");
  FOR f := 0 TO LEN(dd) - 1 DO
    Log.WRITELN("  item: ", f, ": dx=", dd[f].dx, "; dy=", dd[f].dy);
  END FOR
  DEC(dd[0].dx);
END Test;

PROCEDURE Test1;
VAR
  larr: ARRAY 5, 2 OF SBYTE IS [[69, -69], [-42, 42], *];
  f: INTEGER;
BEGIN
  Log.WRITELN("local");
  FOR f := 0 TO LEN(larr, 0) - 1 DO
    Log.WRITELN("  item: ", f, ": [0]=", (larr[f, 0] AS INTEGER), "; [1]=", (larr[f, 1] AS INTEGER));
  END FOR
  larr[0, 1] := larr[0, 1] - 1;
END Test1;

понятно, что массивы массивов записей тоже работают: оно теперь универсальное, а не ад-хок.

и да, разрешил «висящую запятую» (или точку с запятой). потому что удобно для формирования машиной.

я вполне понимаю, почему в оригинальном обероне этого нет: предполагалось, что большие массивы проще при загрузке модуля прочесть из файла. в среде Оберон это имеет смысл. а у меня одно из применений — мелкопрограммы, может даже из одного модуля; так что удобней сделать специальный синтаксис.

пока что не допилил флоаты и сеты — потому что тупо лень. понадобится — доделаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Понедельник, 16 Сентябрь, 2024 01:16 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
и да: признаю свою ошибку в отстаивании forward declarations. это всё-таки хак, они не нужны. в O/Ur даже синтаксис их не распарзится. то же самое и с переменными: глобалы можно использовать до их объявления. но в процедуре обязательно сказать `VAR n: GLOBAL;`.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Понедельник, 16 Сентябрь, 2024 12:19 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2460
Откуда: Россия, Томск
Код:
    (dx:  5; dy:  6),
  ];
Trailing comma, nice.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Вторник, 17 Сентябрь, 2024 02:40 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
да. принёс строгость в жертву удобству. ;-)

кстати, о скорости. у меня сейчас при старте прототипа игры парзится и компилится около 200 кб оберон-кода. всё это на моей коре два дуба 3гхз занимает около 80 мсек.

конечно, компилер и кодоген на крестах, но я не думаю, что они сильно замедлятся, если переписать в будущем на O/Ur.

ладно. ради интереса собрал с -O0 (обычно — с -O2): получилось около 110-120 мсек. а -O0 даже чуть-чуть медленней, чем Nanojit. так что потенциально порт с крестов на оберон ничего особо не замедлит.

оно, в общем, логично: код никаких дофига сложных тесных циклов не крутит, в основном ходит по указателям. там не то чтобы было много чего оптимизировать. разве что обероновский код усыпан проверками на NIL, переполнения и границы массивов — но они, как я выше где-то писал, получились очень дешёвые. а кресты я ещё дополнительно ускорил, сделав там аналог обероновского `IS` по табличкам наследования. и `isa`/`asa` у меня в крестокоде повсеместно используется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Вторник, 17 Сентябрь, 2024 02:56 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
и в дополнение: "MObjs.mod" в игрухе выглядит вот так:
Код:
MODULE Threat:MObjs;

IMPORT
  System:Log,
  Threat:Base, Threat:Level,
  Threat:GfxRes, Threat:GfxDraw,
  Threat:ColDet;


CONST
  kickbackSpeed* = 645;


INCLUDE "MObjs.MObj.inc.mod";
INCLUDE "MObjs.Monster.inc.mod";
INCLUDE "MObjs.Projectile.inc.mod";
INCLUDE "MObjs.PlayerPawn.inc.mod";
INCLUDE "MObjs.Bullet.inc.mod";


VAR
  players*: ARRAY 3 OF PlayerPawn;
  monsters*: ARRAY 10 OF Monster;
  projectiles*: ARRAY 100 OF Projectile;
  bullets*: ARRAY 320 OF Bullet;


END Threat:MObjs.

инклюды таки очень удобны, если вместо обероновской среды у нас обычный редактор. в среде это можно было бы оформить красивей, конечно.

просто я предпочитаю иметь кучу маленьких файлов, каждый из которых посвящён чему-то более-менее одному. в данном случае разбивать на отдельные модули особо смысла нет — только больше буков будет для реимпорта всего везде. я пытаюсь относительно дословно эмулировать оригинал, и так удобней.

если когда-нибудь допилю и возьмусь за Threat 2, то там уже по уму всё сделаю, конечно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Среда, 18 Сентябрь, 2024 04:02 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
больше картинок, больше! я знаю: всё любят картинки. я люблю, например. хожу по интернетам с самого утра, и к вечеру набирается полный мешо… а, простите, это про другие картинки.

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

остался реально самый сложный код: управление игроком. там какая-то совершенно адская каша из копипаст, я вообще не могу размотать её в что-то без GOTO.

не, не только этот код, конечно. там ещё дверей нет, кнопок, взрывчатки, спавна монстров на замену и кучи других мелочей. но это реально мелочи. там даже дизасм читать не надо, а просто бери из файла уровня (я весь формат знаю) и реализовывай максимально прямолинейно.


Вложения:
2024_09_17_16_37_41_960x800.png
2024_09_17_16_37_41_960x800.png [ 19.15 КБ | Просмотров: 487 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Четверг, 19 Сентябрь, 2024 01:23 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 613
arisu писал(а):
больше картинок, больше! я знаю: всё любят картинки. я люблю, например. хожу по интернетам с самого утра, и к вечеру набирается полный мешо… а, простите, это про другие картинки.

А какая "рыбалка" была на спутниковом интернете, когда бабки на счету прекращались... мм-м-м-м

Ну и главный вопрос: когда этих "дуриков погонять" (термин с одной из предыдущих работ) можно будет? ;-) Или "пиво только членам профсоюза"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Четверг, 19 Сентябрь, 2024 05:23 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
Artyemov писал(а):
Ну и главный вопрос: когда этих "дуриков погонять" (термин с одной из предыдущих работ) можно будет? ;-) Или "пиво только членам профсоюза"?

cкоро, надеюсь. я уже почти всё отреверсил. немного нелады с ai монстров: где-то в реверсе ошибся, и они то тупят, а то «вижу цель, не вижу препятствий, стены придумал трус, это иллюзия».

да, ходьбу игрока тоже. там я два раза отреверсил правильно, а ошибки были в других местах: неправильно назначал спрайты, и казалось, что ходим боком, гыгы. и неправильно ходил: терял в накоплении fixed point дробную часть, поэтому ходило косо. так что игрок уже очень бодро по уровню бегает. как и в оригинале — ощущения те же (пьяная блоха).

но в целом уже почти вся игромеханика работает. вот двери ещё не запилил (да, там есть двери!) — но это буквально пол-часа, тут я всё знаю, надо только сесть и написать. и вот монстров отладить. а потом останутся вские мелочи: починить спавн, проверять условия окончания уровня, такое вот. косметика.

а так-то я даже звуки сделал. да, в оригинале целых одиннадцать звуков для саундбластера. гланое — пулемёт должен детать «тра-та-та-та», а то скучно. я и музыку знаю где выдернуть, но мне лень портировать NukedOPL, да и музыка того не стоит. потом как-нибудь.

в общем, думаю, что не спеша и помолясь Бафомету — до конца недели асилю… хотя сроки дело такое, конечно. а как асилю — так и новая демка будет, конечно.

алсо, компилятор на удивление стабилен. и пригоден для написания 2д-игорей, например. ай да я, ай да сукин сын!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Четверг, 19 Сентябрь, 2024 13:51 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
ВОТКАЯТ!

бухие монстры пытаются ходить по вэйпоинтам. видео, 80мб. не ржите, если б вы столько выпили — тоже бы не лучше ходили!

да, алгоритм из оригинала. они там именно такие бухие. в общем, игра про войну с бухими в полную зюзю пришельцами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Пятница, 20 Сентябрь, 2024 01:51 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 613
arisu писал(а):
ВОТКАЯТ!

бухие монстры пытаются ходить по вэйпоинтам. видео, 80мб. не ржите, если б вы столько выпили — тоже бы не лучше ходили!

да, алгоритм из оригинала. они там именно такие бухие. в общем, игра про войну с бухими в полную зюзю пришельцами.

Поржать не удастся ;-) ибо не скачивается, и в отдельной вкладке не открывается: "бублик" кружится как у заблокированных РК-типа-Ном.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Пятница, 20 Сентябрь, 2024 02:51 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
а мучайтесь, тором ходите, впном. я же мучаюсь таким образом чтобы попасть на оберонкор!

p.s.: дверей ещё нет, конец уровня не проверяется, но я нечаянно опять убил час играя. железный отмаз: я тестирую! да, оно уже почти полностью играбельно. круть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Пятница, 20 Сентябрь, 2024 07:22 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
всё, так дальше жить нельзя! мне нужна внутриигровая консоль. а для этого нужно сделать `System:Meta`. я категорически не желаю регистрировать команды руками: для этого ли я на обероне пишу?!

кстати, подумал тут, что идея из дишечки с пользовательскими атрибутами интересная. если позволить к каждому имени пристёгивать произвольный набор строковых атрибутов, и через мету их проверять — можно делать разные гитики намного проще. например, отмечать сериализуемые поля записи, а не тупо сериализовать всё публичное. и ещё много всего. не уверен, что сделаю, правда: пока только кручу идею в голове.

есть ощущение, что это частный случай чего-то более глобального. а с другой стороны — ощущение ненужной сложности: в принципе, никто не мешает делать специальные модули с консольными командами, например. а для сериализатора — специальные отдельные структуры, которые заполнять (или из них забирать). так, может, даже лучше: тот же сериализатор не зависит от частностей реализации. а что данные копируются — так i/o всё равно медленное, чо там.

p.s.: в принципе… если что-то кажется ненужной сложностью — в подавляющем большинстве случаев так и есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon/Ur
СообщениеДобавлено: Пятница, 20 Сентябрь, 2024 13:04 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1444
сделал основные запросы и вызов процедур (с аргументами). путём танцев с бубном и магеи получилось с изначальных «десять вызовов в миллисекунду» бампнуть до «сто вызовов в миллисекунду», гыг. в принципе, я считаю, что сто динамических вызовов в миллисекунду — вполне нормальная скорость.

одна проблема: не получается безопасно передавать `STRING`. структура для вызова представляет из себя union, а в юнионы нельзя строки класть. а иначе никак, потому что хочется передавать список аргументов как `IN par: ARRAY OF CallVal`.

точнее, хотелось обойтись без методов-сеттеров. но видимо не получится. а терять возможность передавать (и получать) строки тоже неохота.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 238 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB