Текущий архив: 2004.08.29;
Скачать: CL | DM;
Вниз
Хранение данных Найти похожие ветки
← →
TButton © (2004-05-03 02:37) [0]в РПГ, а точнее - в MMORPG.
я храню все данные в стринглистах, метод очень удобный, но меня несколько смущает. хотя бы потому, что кушает не мало памяти.
например, каждая ячейка карты выглядит вот так (пока пустая)
-coord- 0 0
-kind- 0 0
-wind- T
-weather- clear|rain|storm|snow|blizzard|clouds
[users]
[/users]
[objects]
[/objects]
[buildings]
[/buildings]
[plants]
[/plants]
а их у меня 65536 штук
+здания
+игроки
+мобы
+растения
+объекты
+системные переменные, преимущественно - списки, тоже стринглистами.
я вот думаю, если это просто и эффективно, стоит ли переходить на что-то другое? например, написать свою структуру. это должно увеличить скорость и уменьшить размер занимаемой мемори, но также это добавит головняков. например, те же списки пользоваиелей, они ведь перемещаются, надо их удалять из одних списков, добавлять в другие. замена текстовок на динамические массивы напрягает корявыми процедурами удаления. да и... как-то не охото переписывать гору кода, когда есть удобные функции для парсинга.
вобщем. вопрос такой, стоит ли браться переписывать, пока не поздно или можно оставить как есть?
← →
BorisSV © (2004-05-12 19:49) [1]Cоздавай свои тип данных, потом указатель на него(Pointer) и
вместо стринг листа TList
Можно что то типо сл.:
Type
MyDataType=record
Name: String;
X: Double;
Y: Double;
......
......
end;
Type
FMyDataType: MyDataType;
PMyDataType: ^MyDataType;
var
Spisok: TList;
implementation
Procedure SpisokAdd(AMyDataType: MyDataType);
Begin
New(PMyDataType);
PMyDataType^ := AMyDataType;
Spisok.Add(PMyDataType);
End;
Procedure SpisokRemove(Index: Integer);
Begin
Spisok.Delete(Index);
Dispose(PMyDataType);
End;
Function GetFromSpisok(Index:Integer): TMyDataType;
Begin
PMyDataType := Spisok.Items[Index];
Result:=PMyDataType^;
End;
← →
имя (2004-05-15 12:05) [2]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2004.08.29;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.023 c