#include "levelinfo.h" void dLevelInfo_c::load(void *buffer) { data = (header_s*)buffer; // decode all the level names for (int sect = 0; sect < sectionCount(); sect++) { // parse this section section_s *thisSect = getSectionByIndex(sect); entry_s *levels = getLevelsForSection(thisSect); for (int lev = 0; lev < thisSect->levelCount; lev++) { entry_s *level = &levels[lev]; char *name = (char*)getNameForLevel(level); for (int i = 0; i < level->nameLength+1; i++) { name[i] -= 0xD0; } } } } dLevelInfo_c::entry_s *dLevelInfo_c::searchBySlot(int world, int level) { for (int i = 0; i < sectionCount(); i++) { section_s *sect = getSectionByIndex(i); for (int j = 0; j < sect->levelCount; j++) { entry_s *entry = &getLevelsForSection(sect)[j]; if (entry->worldSlot == world && entry->levelSlot == level) return entry; } } return 0; }