Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.036 c
3-1090002748
Mister
2004-07-16 22:32
2004.08.29
1 или 2 млн. записей


14-1091987827
Дмитрий В. Белькевич
2004-08-08 21:57
2004.08.29
Тенденция, однако (о фильмах)


6-1087757045
kibork
2004-06-20 22:44
2004.08.29
вопрос по сокету


14-1092076541
Piter
2004-08-09 22:35
2004.08.29
Помогите с выбором насчет компьютера


14-1091905865
Dot
2004-08-07 23:11
2004.08.29
SoftIce




   Наверх