Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.046 c
14-1092044008
Карелин Артем
2004-08-09 13:33
2004.08.29
Как протестировать железо если флоповод не работает в принипе?


3-1091520467
Rostislav Rotaru
2004-08-03 12:07
2004.08.29
быстрая вставка записей


14-1091789875
Nikola
2004-08-06 14:57
2004.08.29
IRC канал


3-1091688423
Frozzen
2004-08-05 10:47
2004.08.29
Как востановить работоспособнось проги под ИБ5


4-1089782321
vosogop
2004-07-14 09:18
2004.08.29
Состояние монитора