Skip to content

Commit f874351

Browse files
committed
dnaStore: Add functions to store and get floors in a suit block
1 parent 393b3fc commit f874351

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

panda/src/toontown/dna/dnaStorage.cxx

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,14 @@ int DNAStorage::remove_suit_point(PT(DNASuitPoint) point) {
386386
void DNAStorage::store_suit_block(const int block_number, const std::string& dept) {
387387
_suit_blocks_map[block_number] = dept;
388388
}
389-
389+
////////////////////////////////////////////////////////////////////
390+
// Function: store_suit_block_num_floors
391+
// Access: Public
392+
// Description: Store a block number in the SuitBlockFloorsMap
393+
////////////////////////////////////////////////////////////////////
394+
void DNAStorage::store_suit_block_num_floors(const int block_number, const int num_floors) {
395+
_suit_block_num_floors_map[block_number] = num_floors;
396+
}
390397
////////////////////////////////////////////////////////////////////
391398
// Function: get_suit_blocks
392399
// Access: Public
@@ -420,8 +427,22 @@ std::string DNAStorage::get_suit_block_track(int block_number) const {
420427
}
421428
return (*i).second;
422429
}
423-
424-
430+
////////////////////////////////////////////////////////////////////
431+
// Function: get_num_floors
432+
// Access: Public
433+
// Description: Get the number of floors in the suit building
434+
////////////////////////////////////////////////////////////////////
435+
int DNAStorage::get_num_floors(int block_number) const {
436+
// Try to find this code in the map
437+
SuitBlockFloorsMap::const_iterator i = _suit_block_num_floors_map.find(block_number);
438+
if (i == _suit_block_num_floors_map.end()) {
439+
dna_cat.error()
440+
<< "block number: " << block_number << " not found in SuitBlockFloors map" << std::endl;
441+
return 0;
442+
}
443+
return (*i).second;
444+
445+
}
425446
////////////////////////////////////////////////////////////////////
426447
// Function: store_block_number
427448
// Access: Public

panda/src/toontown/dna/dnaStorage.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ typedef pmap< int, int > BlockToZoneMap;
4848
typedef pmap< int, PosHpr > BlockToPosHprMap;
4949
typedef pmap< int, LMatrix4f > BlockToTransformMap;
5050
typedef pmap< int, std::string > SuitBlockMap;
51+
typedef pmap<int, int > SuitBlockFloorsMap;
5152
typedef pmap< int, std::string > BlockToTitleMap;
5253
typedef pmap< int, std::string > BlockToArticleMap;
5354
typedef pmap< int, std::string > BlockToBuildingTypeMap;
@@ -97,7 +98,8 @@ class EXPCL_TOONTOWN DNAStorage {
9798
int get_highest_suit_point_index();
9899
int remove_suit_point(PT(DNASuitPoint));
99100
void store_suit_block(const int block_number, const std::string& dept);
100-
void store_block_number(const std::string& block, const std::string& zone_id);
101+
void store_suit_block_num_floors(const int block_number, const int num_floors);
102+
void store_block_number(const std::string &block, const std::string &zone_id);
101103
void store_block_door_pos_hpr(const std::string& block, const LPoint3f& pos, const LPoint3f& hpr);
102104
void store_block_sign_transform(const std::string& block, const LMatrix4f& mat);
103105
void store_block_title(const std::string& block, const std::string& title);
@@ -152,6 +154,8 @@ class EXPCL_TOONTOWN DNAStorage {
152154
bool is_suit_block(int block_number) const;
153155
std::string get_suit_block_track(int block_number) const;
154156

157+
int get_num_floors(int block_number) const;
158+
155159
// Block number functions
156160
int get_zone_from_block_number(int block_number) const;
157161
int get_block_number_at(unsigned int index) const;
@@ -263,6 +267,8 @@ class EXPCL_TOONTOWN DNAStorage {
263267
BlockToPosHprMap _block_door_pos_hpr_map;
264268
BlockToTransformMap _block_sign_transform_map;
265269
SuitBlockMap _suit_blocks_map;
270+
// _suit_block_num_floors_map is a map of block numbers to the number of floors in that block
271+
SuitBlockFloorsMap _suit_block_num_floors_map;
266272
BlockToTitleMap _block_title_map;
267273
BlockToArticleMap _block_article_map;
268274
BlockToBuildingTypeMap _block_building_type_map;

0 commit comments

Comments
 (0)