public function get_sheet_data()
 {
     //NOTE: there's a lot of unset() and renames that are present simply for comparing old functionality to new.
     if (!is_array($this->_abilities)) {
         $this->load();
     }
     $retval = array();
     foreach ($this->_char->data as $idx => $v) {
         $sheetId = $this->create_sheet_id('main', $idx);
         $retval[$sheetId] = $v;
     }
     $retval = array_merge($retval, $this->get_misc_data());
     $sk = new Skill();
     $retval[Sskill::sheetIdPrefix] = $sk->get_sheet_data($this->dbObj, $this->characterId);
     $_saves = new Save();
     $retval[$_saves::sheetIdPrefix] = $_saves->get_sheet_data($this->dbObj, $this->characterId);
     $ab = new Ability();
     $retval[Ability::sheetIdPrefix] = $ab->get_sheet_data($this->dbObj, $this->characterId);
     foreach ($this->_abilities as $k => $data) {
         $retval[Ability::sheetIdPrefix . '__' . $k . '_score'] = $data['ability_score'];
         $retval[Ability::sheetIdPrefix . '__' . $k . '_modifier'] = Ability::calculate_ability_modifier($data['ability_score']);
     }
     $armor = new Armor();
     $retval['characterArmor'] = $armor->get_sheet_data($this->dbObj, $this->characterId);
     $wpn = new Weapon();
     $retval[$wpn::sheetIdPrefix] = $wpn->get_sheet_data($this->dbObj, $this->characterId);
     $specialAbilities = new SpecialAbility();
     $retval[$specialAbilities::sheetIdPrefix] = $specialAbilities->get_sheet_data($this->dbObj, $this->characterId);
     $gear = new Gear();
     $retval[$gear::sheetIdPrefix] = $gear->get_sheet_data($this->dbObj, $this->characterId);
     $retval[$gear::sheetIdPrefix . '__total_weight__generated'] = Gear::calculate_list_weight($gear->get_all($this->dbObj, $this->characterId));
     foreach ($this->get_strength_stats() as $k => $v) {
         $retval[$this->create_sheet_id('generated', $k)] = $v;
     }
     return $retval;
 }