Многомерный массив может быть произвольного размера. В С# есть еще ступенчатые (зубчатые) массивы, про C++ не скажу, работал с ним давно, уже все забыл.
abramcumner
19.03.2017, 10:59
Цитата(AndreySol @ 19.03.2017, 10:28)
Помощь нужна: как сделать массив(таблицу) произвольного размера? Типа такого: строка = строка строка = строка строка = строка
У тебя строки типа ключ-значение? Тогда тебе больше подойдет xr_map<xr_string, xr_string> table. Операции: - добавить: table[ключ] = строка - получить по ключу: xr_string s = table[ключ]; - проверить наличие: bool contains = table.find(ключ) != table.end(); - удаление: table.erase(ключ);
AndreySol
19.03.2017, 11:16
Цитата(STALKER2011x @ 19.03.2017, 11:38)
Многомерный массив может быть произвольного размера.
Вы имеете в виду int array[10][10], или const unsigned int DIM1 = 10; const unsigned int DIM2 = 10; int ary[DIM1][DIM2]; Это не то о чем я спрашивал. Тут ведь все равно надо задать размерность, а мне надо произвольный размер массива, или правильнее сказать таблицы?
Цитата(abramcumner @ 19.03.2017, 12:03)
У тебя строки типа ключ-значение? Тогда тебе больше подойдет xr_map
Во, похоже что это то, что нужно. Спасибо!
ForserX
19.03.2017, 11:25
Цитата(AndreySol @ 19.03.2017, 11:20)
Цитата(STALKER2011x @ 19.03.2017, 11:38)
Многомерный массив может быть произвольного размера.
Это не то о чем я спрашивал. Тут ведь все равно надо задать размерность, а мне надо произвольный размер массива, или правильнее сказать таблицы?
Можно и динамически работать.
Цитата(AndreySol @ 19.03.2017, 11:20)
Или правильнее сказать таблицы?
Это уже матрицы, скорее.
AndreySol
19.03.2017, 12:10
Цитата(abramcumner @ 19.03.2017, 12:03)
Тогда тебе больше подойдет xr_map<xr_string, xr_string> table. Операции: - добавить: table[ключ] = строка
Вылетает: xr_map<xr_string, xr_string> table; table["first"] = "second"; Что опять не так? Как правильно?
RedMagic
19.03.2017, 12:21
AndreySol, либо посмотри как устроен xr_map и как его используют (поиском по коду), либо попробуй использовать map из c++.
abramcumner
19.03.2017, 12:56
Цитата(AndreySol @ 19.03.2017, 12:14)
Вылетает: xr_map<xr_string, xr_string> table; table["first"] = "second"; Что опять не так? Как правильно?
Ну ты хотя бы текст ошибки скопируй Код отлично работает.
AndreySol
19.03.2017, 13:24
Я тут ситуацию не полностью описал: xr_map<xr_string, xr_string> table; - если объявлено в хедере, то table["first"] = "second"; в коде вылетает. А если все в коде, и объявить и присвоить значения - вылета нет. Блин, зачем все так мутно наворочено ???
abramcumner
19.03.2017, 13:38
Цитата(AndreySol @ 19.03.2017, 13:27)
Я тут ситуацию не полностью описал: xr_map<xr_string, xr_string> table; - если объявлено в хедере, то table["first"] = "second"; в коде вылетает. А если все в коде, и объявить и присвоить значения - вылета нет. Блин, зачем все так мутно наворочено ???
По-прежнему не полностью
Shoкer
19.03.2017, 13:40
1) Ты объявляешь xr_map<xr_string, xr_string> table как члена класса (внутри class), или снаружи в глобальной области видимости? 2) В хедере (заголовке) нельзя присваивать значения сложным объектам. (возможно есть исключения, но точно не так как ты пытаешься это сделать) Это не Lua. В заголовке ты только описываешь объект, а заполнять его должен внутри конструктора или любой другой функции, потому что до момента вызова конструктора объекта ещё не существует. 3) После сборки как ты запускаешь игру? По ярлыку? Нужно запускать либо через студию (Run), либо присоединять её к процессу уже после запуска игры (Attach). Тогда в момент вылета узнаешь где он случился.
PS: Не припомню в движке ЗП xr_string, это ТЧ?
SkyLoader
19.03.2017, 13:48
Цитата(Shoкer @ 19.03.2017, 13:43)
PS: Не припомню в движке ЗП xr_string, это ТЧ?
Это std::string.
Shoкer
19.03.2017, 13:49
Я в принципе так и подумал, просто обычно они там везде или чистый char* юзают или shared_str для строк. Хотя хз что выгоднее применять в данном примере. xr_string тоже есть, просто я реже его видел %)
SkyLoader
19.03.2017, 13:55
Часто его используют для сдк, удобнее в AnsiString конвертировать.
AndreySol
19.03.2017, 14:25
Цитата(abramcumner @ 19.03.2017, 14:41)
По-прежнему не полностью
В h-файле, внутри объявления класса: xr_map<xr_string, xr_string> table; в cpp-файле, в одной из ф-ций класса: table["first"] = "second"; в результате - стандартное виндовое окно ошибки
Цитата
Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: XR_3DA.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 586df4ff Имя модуля с ошибкой: xrCore.dll Версия модуля с ошибкой: 0.0.0.0 Отметка времени модуля с ошибкой: 58ce6ae4 Код исключения: c0000005 ......... .........
в логе естественно пусто...
abramcumner
19.03.2017, 14:35
Цитата(AndreySol @ 19.03.2017, 14:28)
В h-файле, внутри объявления класса:
Возможно заголовочный файл используют и другие длл, а ты их не пересобрал.
AndreySol
19.03.2017, 22:13
Запутался я вконец с этими xr_map, xr_string, массивами и векторами. Может кто набросать пример, как сделать сохранение данных типа "строка_ключ = строка_значение" произвольного кол-ва? Именно применительно к движку. С объявлением того объекта, в котором данные будут храниться в хедере и с заполнением\чтением в cpp-файле.
1001v
20.03.2017, 01:58
У вас ссылки на яд мертвые
AndreySol
20.03.2017, 12:21
"Утро вечера мудренее" @народ. Вроде смог разобраться как использовать xr_map, но осталась одна проблемка: если объявляю xr_map <shared_str, shared_str> table в cpp-файле - все нормально, все сохраняется\получается, но если выношу объявление в h-файл public: xr_map <shared_str, shared_str> table; то игра вылетает с логом:
Посмотрел как у ПЫСов сделано - практически все, что начинается с xr_(или связано с таковым) у них в хедерах объявлено как typedef. Попробовал сделать для своей переменной - в cpp-файле студия подчеркивает красным и ругается "Идентификатор "table" не определен". С этим как быть ?
Winsor
20.03.2017, 15:11
Уважаемые знающие... ТЧ. Возник вопрос по UI классу - CUIComboBox. Если добавлять этот класс (AttachChild), например, в обычный CUIWindow - то выпадающее окно рисуется поверх остальных чилдов CUIWindow. Если же аналогичную операцию делать в ScrollView (AddWindow) - то что бы я не делал с выпадающим окном - оно рисуется позади всех элементов в ScrollView. GetParent()->BringToTop и аналогичные - не помогают. сталкивался ли кто с этим и как побороли? Благодарю!
Roman
20.03.2017, 22:15
А правки движка из Lost Alpha вернутся в основной репозиторий, или это в принципе не имеет смысла?
abramcumner
20.03.2017, 22:26
Цитата(Roman @ 20.03.2017, 22:19)
А правки движка из Lost Alpha вернутся в основной репозиторий, или это в принципе не имеет смысла?
"Основной репозиторий" - это на компе Григоровича? Как там было: "все программы приходят умирать к источнику"?
Сами правки не возвращаются пока, для этого нужен человек - заведи основной репозиторий и верни в него правки из ЛА.
ForserX
20.03.2017, 22:47
Цитата(abramcumner @ 20.03.2017, 22:30)
Цитата(Roman @ 20.03.2017, 22:19)
А правки движка из Lost Alpha вернутся в основной репозиторий, или это в принципе не имеет смысла?
"Основной репозиторий" - это на компе Григоровича? Как там было: "все программы приходят умирать к источнику"?
Сами правки не возвращаются пока, для этого нужен человек - заведи основной репозиторий и верни в него правки из ЛА.
Форков на основе сорцев ЛА я ещё не видел. Интересно будет посмотреть, что из этого получится.
Roman
21.03.2017, 01:12
Ну я имел ввиду Open-xRay или где сейчас ведется основная разработка и правка движка?
macron
27.03.2017, 02:17
Выкладываю наработки по дождю (увеличение дальности в три раза) для ТЧ 1.0006. Советы наверно могут и для других движков пригодиться.
Включает советы по исходникам, патчер для экзешника, artmoney-таблицу для экзешника. Эксперименты проводились только на готовой системе. Возможно, через исходники можно еще что-то улучшить, не знаю.
Возник вопрос по UI классу - CUIComboBox. Если добавлять этот класс (AttachChild), например, в обычный CUIWindow - то выпадающее окно рисуется поверх остальных чилдов CUIWindow. Если же аналогичную операцию делать в ScrollView (AddWindow) - то что бы я не делал с выпадающим окном - оно рисуется позади всех элементов в ScrollView. GetParent()->BringToTop и аналогичные - не помогают. сталкивался ли кто с этим и как побороли?
Ну как, если подвижки в этом деле? Столнулся с аналогичной проблемой...
Winsor
28.03.2017, 08:20
Цитата(Zagolski @ 27.03.2017, 20:15)
Цитата
GetParent()->BringToTop и аналогичные - не помогают. сталкивался ли кто с этим и как побороли?
Ну как, если подвижки в этом деле? Столнулся с аналогичной проблемой...
нет. уставши бороться с скролом - отвязал SpinText от опций (на произвольный источник данных) и заменил им свои боксы. благо - данных не много, до 5-и строк.
Давно уже обсуждали. Кусок кода из DX с перечнем форматов где-то в этой теме (или на АМК) скидывал.
GermanAizek
31.03.2017, 11:29
Что за mutex просит подключить? Я нашел в utils и sdk include, но не один мне не помог. Поможет кто инклюдил?
abramcumner
31.03.2017, 12:39
Цитата(GermanAizek @ 31.03.2017, 11:32)
Что за mutex просит подключить? Я нашел в utils и sdk include, но не один мне не помог. Поможет кто инклюдил?
mutex - это заголовочный файл из стандартной библиотеки с++ 11. В с++ билдере 5 или 6(каким там собирается сдк) его конечно же нет. Тот, кто его подключал, совершенно не думал о сборке СДК.
GermanAizek
01.04.2017, 16:15
Цитата(abramcumner @ 31.03.2017, 12:43)
Цитата(GermanAizek @ 31.03.2017, 11:32)
Что за mutex просит подключить? Я нашел в utils и sdk include, но не один мне не помог. Поможет кто инклюдил?
mutex - это заголовочный файл из стандартной библиотеки с++ 11. В с++ билдере 5 или 6(каким там собирается сдк) его конечно же нет. Тот, кто его подключал, совершенно не думал о сборке СДК.
Вы предлагаете собирать в c++ 11? В 6 точно нет?
abramcumner
01.04.2017, 16:48
Цитата(GermanAizek @ 01.04.2017, 16:18)
Вы предлагаете собирать в c++ 11? В 6 точно нет?
Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает. Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК. Ну и конечно оригинальные исходники, они собираются в шестом билдере.
ForserX
01.04.2017, 18:08
Цитата(abramcumner @ 01.04.2017, 16:51)
Цитата(GermanAizek @ 01.04.2017, 16:18)
Вы предлагаете собирать в c++ 11? В 6 точно нет?
Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает. Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК. Ну и конечно оригинальные исходники, они собираются в шестом билдере.
Речь идёт об исходниках 0.7 SDK. ЕМНИП, GermanAizek юзает какой-то старый коммит с моего форка. На нём тебе предстоит выловить в билдере с сотню забавных ошибок из-за обновления под С++14. Сам пытался SDK собрать, но в один момент просто надоело и снёс его сорцы с репо. Бери оригинальные исходники, если нужен SDK.
kasper
01.04.2017, 18:20
Цитата(Forser @ 01.04.2017, 18:11)
Цитата(abramcumner @ 01.04.2017, 16:51)
Цитата(GermanAizek @ 01.04.2017, 16:18)
Вы предлагаете собирать в c++ 11? В 6 точно нет?
Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает. Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК. Ну и конечно оригинальные исходники, они собираются в шестом билдере.
Речь идёт об исходниках 0.7 SDK. ЕМНИП, GermanAizek юзает какой-то старый коммит с моего форка. На нём тебе предстоит выловить в билдере с сотню забавных ошибок из-за обновления под С++14. Сам пытался SDK собрать, но в один момент просто надоело и снёс его сорцы с репо. Бери оригинальные исходники, если нужен SDK.
пытался собрать под rad studio xe8, там ппц , кстати у кого-нибудь есть полные сорцы Eldos elpack 3.11 версии ?
GermanAizek
02.04.2017, 00:54
Цитата(Forser @ 01.04.2017, 18:11)
Цитата(abramcumner @ 01.04.2017, 16:51)
Цитата(GermanAizek @ 01.04.2017, 16:18)
Вы предлагаете собирать в c++ 11? В 6 точно нет?
Чтобы собрать твои исходники нужен компилятор, поддерживающий с++ 11. Шестой билдер точно не поддерживает. Попробуй связаться с YURSHAT`ом, он собирал СДК. Еще можно взять исходники ЛА - у них тоже есть собирающийся СДК. Ну и конечно оригинальные исходники, они собираются в шестом билдере.
Речь идёт об исходниках 0.7 SDK. ЕМНИП, GermanAizek юзает какой-то старый коммит с моего форка. На нём тебе предстоит выловить в билдере с сотню забавных ошибок из-за обновления под С++14. Сам пытался SDK собрать, но в один момент просто надоело и снёс его сорцы с репо. Бери оригинальные исходники, если нужен SDK.
Мда, приехали. Придется и вправду менять исходники для сдк.
RayTwitty
02.04.2017, 01:08
Цитата(kasper @ 01.04.2017, 18:24)
пытался собрать под rad studio xe8, там ппц
Долбитесь к K.D. в личку, он вроде собирал под эту студию.
shurabich
02.04.2017, 08:19
Всем доброго времени суток. Хотел скачать X-Ray extensions portable от Macron'a по ссылке в шапке темы, но по ходу файл удален. Кто-нибудь может перезалить? Заранее спасибо!
kasper, собрал из исходников? а что нибудь правил?
kasper
04.04.2017, 17:40
Цитата(Ray @ 04.04.2017, 17:15)
kasper, собрал из исходников? а что нибудь правил?
что-то правил, что-то коментил, стабильность ужасная просто, elpack 3.12 (3.11 не нашел) собирал под rad studio там тоже куча ошибок, потом может под новый LMB elpack 2017 попробую собрать, но он trial без сорцев
Tron
04.04.2017, 21:17
Да выпилите нафиг этот компонент. Тут в инете ходит DevExpress для борланда (Делфи точно видел) Еще, кстати, слили исходники юнити
NanoBot-AMK
04.04.2017, 22:48
Цитата(Tron @ 04.04.2017, 21:21)
Еще, кстати, слили исходники юнити
Ну и где ссылко?
Tron
04.04.2017, 22:56
Цитата(NanoBot-AMK @ 04.04.2017, 22:52)
Цитата(Tron @ 04.04.2017, 21:21)
Еще, кстати, слили исходники юнити
Ну и где ссылко?
как ни странно, но на гитхабе.. прям так залили.. внаглую
не надо
eugeneko/Unity3D
Лежит только ядро движка/редактора, многих компонентов нету в наличии(например их либы для работы с шейдерами, нету 3dparty - Beast,scaleform)
Версии - 3 года, это unity 4.3.1f1 вроде
GermanAizek
05.04.2017, 14:54
Цитата(kasper @ 04.04.2017, 17:13)
ппц оно даже смогло запуститься
Rad studio 10.1 Berlin не покатит? Он просто не может открывать борландские проекты или есть какие-то конверторы?
ForserX
06.04.2017, 08:55
Цитата(kasper @ 04.04.2017, 17:13)
ппц оно даже смогло запуститься
Исходниками не поделишься?
kasper
06.04.2017, 09:49
Цитата(Forser @ 06.04.2017, 08:58)
Цитата(kasper @ 04.04.2017, 17:13)
ппц оно даже смогло запуститься
Исходниками не поделишься?
потом выложу, хочу сделать немного стабильнее и сдк для xray 1.007 не 1.6
GermanAizek
06.04.2017, 10:24
Цитата(kasper @ 06.04.2017, 09:52)
Цитата(Forser @ 06.04.2017, 08:58)
Цитата(kasper @ 04.04.2017, 17:13)
ппц оно даже смогло запуститься
Исходниками не поделишься?
потом выложу, хочу сделать немного стабильнее и сдк для xray 1.007 не 1.6
RadStudio 10.1 покатит? Я читал что за 2000 по сегодняшний много изменилось, и типа старые проекты можно открыть через нотепад и посмотреть что к чему соединено, но это чувствую запарно восстанавливать.
kasper
06.04.2017, 10:43
Цитата(GermanAizek @ 06.04.2017, 10:28)
Цитата(kasper @ 06.04.2017, 09:52)
Цитата(Forser @ 06.04.2017, 08:58)
Цитата(kasper @ 04.04.2017, 17:13)
ппц оно даже смогло запуститься
Исходниками не поделишься?
потом выложу, хочу сделать немного стабильнее и сдк для xray 1.007 не 1.6
RadStudio 10.1 покатит? Я читал что за 2000 по сегодняшний много изменилось, и типа старые проекты можно открыть через нотепад и посмотреть что к чему соединено, но это чувствую запарно восстанавливать.
10.1 пробовал когда начинал, но он почему-то напрочь отказывался конвертировать старый проект на borland 6, поэтому и сижу на XE8, потянет ли 10.1 не пробовал
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.