hashmapa pozwala indeksować tablice po stringach i nie rezerwuje miejsca na niższe indeksy
także dzięki temu przy mapie o rozmiarze 10000x1000x7x255 nie masz 178500000000 pól tylko tyle, ile jest konieczne
poza tym różne przedmioty mają różne właściwości, depo ma id miasta, tablica ma opis itp, przez co tak naprawdę to w każdym polu znajduje się obiekt dowolnej klasy dziedziczącej po item czy coś w tym stylu
Ale tak to wygląda w przybliżeniu w pamięci edytora, na dysku nieogarniam :D
edit
Kod :
/*
OTBM_ROOTV1
|
|--- OTBM_MAP_DATA
| |
| |--- OTBM_TILE_AREA
| | |--- OTBM_TILE
| | |--- OTBM_TILE_SQUARE (not implemented)
| | |--- OTBM_TILE_REF (not implemented)
| | |--- OTBM_HOUSETILE
| |
| |--- OTBM_SPAWNS (not implemented)
| | |--- OTBM_SPAWN_AREA (not implemented)
| | |--- OTBM_MONSTER (not implemented)
| |
| |--- OTBM_TOWNS
| | |--- OTBM_TOWN
| |
| |--- OTBM_WAYPOINTS
| |--- OTBM_WAYPOINT
|
|--- OTBM_ITEM_DEF (not implemented)
*/
takie coś znalazłem w kodzie tfsa w iomap.cpp
Zakładki