SRAMFile.hh File Reference

#include <utility>
#include <wx/string.h>
#include "AppConstants.hh"
#include "exceptions/FileIOException.hh"
#include "exceptions/InvalidButtonException.hh"
#include "exceptions/InvalidSRAMFileException.hh"

Go to the source code of this file.

Namespaces

namespace  smse

Classes

class  smse::SRAMFile
 Class to encapsulate a Super Metroid SRAM File. More...

Enumerations

enum  {
  smse::SO_CURRENTENERGY, smse::SO_MAXENERGY, smse::SO_CURRENTRESERVE, smse::SO_MAXRESERVE,
  smse::SO_CURRENTMISSILES, smse::SO_MAXMISSILES, smse::SO_CURRENTSMISSILES, smse::SO_MAXSMISSILES,
  smse::SO_CURRENTPBOMBS, smse::SO_MAXPBOMBS, smse::SO_MORPHINGBALL, smse::SO_BOMBS = 13,
  smse::SO_SPRINGBALL = 16, smse::SO_HIGHJUMPBOOTS = 19, smse::SO_VARIASUIT = 22, smse::SO_GRAVITYSUIT = 25,
  smse::SO_SPEEDBOOSTER = 28, smse::SO_SPACEJUMP = 31, smse::SO_SCREWATTACK = 34, smse::SO_CHARGEBEAM = 37,
  smse::SO_ICEBEAM = 40, smse::SO_WAVEBEAM = 43, smse::SO_SPAZER = 46, smse::SO_PLASMABEAM = 49,
  smse::SO_GRAPPLINGBEAM = 52, smse::SO_XRAYSCOPE = 55, smse::SO_SILVERTORIZO = 58, smse::SO_SPORESPAWN,
  smse::SO_KRAID, smse::SO_PHANTOON = 62, smse::SO_BOTWOON = 64, smse::SO_DRAYGON,
  smse::SO_CROCOMIRE = 67, smse::SO_GOLDENTORIZO, smse::SO_RIDLEY, smse::SO_METROIDROOMS = 71,
  smse::SO_ZEBETITES = 75, smse::SO_TOURIANELEVATOR, smse::SO_MARIDIATUBEBROKEN, smse::SO_RESCUEDANIMALS,
  smse::SO_CMISSILEPACKS, smse::SO_BSMISSILEPACKS = 87, smse::SO_NFMISSILEPACKS = 99, smse::SO_WSMISSILEPACKS = 114,
  smse::SO_MMISSILEPACKS = 117, smse::SO_CSMISSILEPACKS = 125, smse::SO_BSSMISSILEPACKS, smse::SO_NFSMISSILEPACKS = 129,
  smse::SO_WSSMISSILEPACKS, smse::SO_MSMISSILEPACKS = 132, smse::SO_CPBOMBPACKS = 135, smse::SO_BSPBOMBPACKS,
  smse::SO_NFPBOMBPACKS = 141, smse::SO_MPBOMBPACKS = 144, smse::SO_CETANKS, smse::SO_BSETANKS = 147,
  smse::SO_NFETANKS = 152, smse::SO_WSETANKS = 156, smse::SO_METANKS, smse::SO_BSRTANK = 159,
  smse::SO_NFRTANK, smse::SO_WSRTANK, smse::SO_MRTANK, smse::SO_CRDOORS,
  smse::SO_BSRDOORS = 166, smse::SO_NFRDOORS = 176, smse::SO_WSRDOORS = 183, smse::SO_MRDOORS,
  smse::SO_TRDOORS = 191, smse::SO_CGDOORS = 193, smse::SO_BSGDOORS = 195, smse::SO_NFGDOORS = 205,
  smse::SO_WSGDOORS = 211, smse::SO_MGDOORS, smse::SO_CYDOORS = 216, smse::SO_BSYDOORS = 222,
  smse::SO_NFYDOORS = 226, smse::SO_CMDOORS = 229, smse::SO_BSMDOORS, smse::SO_NFMDOORS = 246,
  smse::SO_WSMDOORS = 252, smse::SO_MMDOORS = 257, smse::SO_TMDOORS = 264, smse::SO_BSEDOOR = 269,
  smse::SO_NFEDOOR, smse::SO_WSEDOOR, smse::SO_MEDOOR, smse::SO_TEDOOR,
  smse::SO_CMAP, smse::SO_BSMAP, smse::SO_NFMAP, smse::SO_WSMAP,
  smse::SO_MMAP, smse::SO_TMAP, smse::SO_SAVEAREA, smse::SO_SAVEPOINT,
  smse::SO_GAMEHOURS, smse::SO_GAMEMINUTES, smse::SO_SHOTBUTTON, smse::SO_JUMPBUTTON,
  smse::SO_DASHBUTTON, smse::SO_ITEMCANCELBUTTON, smse::SO_ITEMSELECTBUTTON, smse::SO_ANGLEDOWNBUTTON,
  smse::SO_ANGLEUPBUTTON, smse::SO_LANGUAGE, smse::SO_MOONWALK, smse::SO_ICONCANCEL
}
 names for the SRAM offsets More...
enum  smse::Action {
  smse::ACTION_SHOT, smse::ACTION_JUMP, smse::ACTION_DASH, smse::ACTION_ITEMCANCEL,
  smse::ACTION_ITEMSELECT, smse::ACTION_ANGLEDOWN, smse::ACTION_ANGLEUP
}
 semi-typesafe names for Samus' actions More...
enum  smse::Area {
  smse::AREA_C, smse::AREA_BS, smse::AREA_NF, smse::AREA_WS,
  smse::AREA_M, smse::AREA_T
}
 semi-typesafe names for the areas on Zebes More...
enum  smse::Boss {
  smse::BOSS_SILVERTORIZO = 58, smse::BOSS_SPORESPAWN, smse::BOSS_KRAID, smse::BOSS_PHANTOON = 62,
  smse::BOSS_BOTWOON = 64, smse::BOSS_DRAYGON, smse::BOSS_CROCOMIRE = 67, smse::BOSS_GOLDENTORIZO,
  smse::BOSS_RIDLEY
}
 semi-typesafe names for the bosses More...
enum  smse::Button {
  smse::BUTTON_A, smse::BUTTON_B, smse::BUTTON_X, smse::BUTTON_Y,
  smse::BUTTON_L, smse::BUTTON_R, smse::BUTTON_SELECT
}
 semi-typesafe names for the controller buttons More...
enum  smse::Door {
  smse::RD_C_MAP = 163, smse::RD_C_BOMBS, smse::RD_C_TELEVATOR, smse::RD_BS1,
  smse::RD_BS_MAP, smse::RD_BS2, smse::RD_BS3, smse::RD_BS4,
  smse::RD_BS_RTANK, smse::RD_BS_SPORESPAWN, smse::RD_BS5, smse::RD_BS6,
  smse::RD_BS_XRAYSCOPE, smse::RD_NF1, smse::RD_NF_HJBOOTS, smse::RD_NF2,
  smse::RD_NF3, smse::RD_NF_SPEEDBOOSTER, smse::RD_NF4, smse::RD_NF_WAVEBEAM,
  smse::RD_WS_RTANK, smse::RD_M1, smse::RD_M2, smse::RD_M3,
  smse::RD_M_MAP, smse::RD_M4, smse::RD_M5, smse::RD_M6,
  smse::RD_T1, smse::RD_T_MB, smse::GD_C1, smse::GD_C_WS,
  smse::GD_BS1, smse::GD_BS_SPORESPAWNEXIT, smse::GD_BS2, smse::GD_BS3,
  smse::GD_BS4, smse::GD_BS5, smse::GD_BS6, smse::GD_BS7,
  smse::GD_BS_SPAZER, smse::GD_BS8, smse::GD_NF1, smse::GD_NF_ICEBEAM,
  smse::GD_NF2, smse::GD_NF3, smse::GD_NF_SPEEDBOOSTER, smse::GD_NF4,
  smse::GD_WS, smse::GD_M1, smse::GD_M2, smse::GD_M3,
  smse::GD_M_DRAYGON, smse::YD_C1, smse::YD_C2, smse::YD_C3,
  smse::YD_C4, smse::YD_C5, smse::YD_C6, smse::YD_BS1,
  smse::YD_BS2, smse::YD_BS_XRAYSCOPE, smse::YD_BS3, smse::YD_NF_MAP,
  smse::YD_NF1, smse::YD_NF2, smse::MD_C_BOMBSEXIT, smse::MD_BS_OLDTRIGHT,
  smse::MD_BS_OLDTLEFT, smse::MD_BS_MAPEXIT, smse::MD_BS1, smse::MD_BS2,
  smse::MD_BS3, smse::MD_BS4, smse::MD_BS5, smse::MD_BS6,
  smse::MD_BS7, smse::MD_BS8, smse::MD_BS9, smse::MD_BS_MINIKRAIDRIGHT,
  smse::MD_BS_MINIKRAIDLEFT, smse::MD_BS_VARIASUIT, smse::MD_BS_KRAIDEXIT, smse::MD_NF_CROCOMIREEXIT,
  smse::MD_NF_HJBOOTSEXIT, smse::MD_NF_SCREWATTACK, smse::MD_NF_RIDLEYEXIT, smse::MD_NF_RIDLEYLEFT,
  smse::MD_NF_GOLDSPACEPIRATES, smse::MD_WS1, smse::MD_WS_PHANTOONEXIT, smse::MD_WS2,
  smse::MD_WS3, smse::MD_WS4, smse::MD_M_PLASMAEXIT, smse::MD_M_PLASMA,
  smse::MD_M1, smse::MD_M2, smse::MD_M_BOTWOONEXIT, smse::MD_M_DRAYGONEXIT,
  smse::MD_M_SPACEJUMP, smse::MD_T1, smse::MD_T2, smse::MD_T3,
  smse::MD_T4, smse::MD_T5, smse::ED_KRAID, smse::ED_RIDLEY,
  smse::ED_PHANTOON, smse::ED_DRAYGON, smse::ED_T
}
 names for the doors More...
enum  smse::Item {
  smse::ITEM_MORPHINGBALL = 10, smse::ITEM_BOMBS = 13, smse::ITEM_SPRINGBALL = 16, smse::ITEM_HJBOOTS = 19,
  smse::ITEM_VARIASUIT = 22, smse::ITEM_GRAVITYSUIT = 25, smse::ITEM_SPEEDBOOSTER = 28, smse::ITEM_SPACEJUMP = 31,
  smse::ITEM_SCREWATTACK = 34, smse::ITEM_CHARGEBEAM = 37, smse::ITEM_ICEBEAM = 40, smse::ITEM_WAVEBEAM = 43,
  smse::ITEM_SPAZER = 46, smse::ITEM_PLASMA = 49, smse::ITEM_GRAPPLINGBEAM = 52, smse::ITEM_XRAYSCOPE = 55
}
 semi-typesafe names for Samus' equipment More...
enum  smse::MiscBit {
  smse::MB_TELEVATOR = 76, smse::MB_MTUBEBROKEN, smse::MB_RESCUEDANIMALS, smse::MB_LANGUAGE = 291,
  smse::MB_MOONWALK, smse::MB_ICONCANCEL
}
 semi-typesafe names for the miscellaneous bits More...
enum  smse::MetroidRoom { smse::MR1, smse::MR2, smse::MR3, smse::MR4 }
 semi-typesafe names for the Metroid rooms in Tourian More...
enum  smse::Statue { smse::STATUE_KRAID = 61, smse::STATUE_PHANTOON = 63, smse::STATUE_DRAYGON = 66, smse::STATUE_RIDLEY = 70 }
 semi-typesafe names for the boss statues More...

Variables

const int smse::C_SAVEPOINTS = 2
 save points in Crateria
const int smse::BS_SAVEPOINTS = 5
 save points in Brinstar
const int smse::NF_SAVEPOINTS = 6
 save points in Norfair
const int smse::WS_SAVEPOINTS = 1
 save points in Wrecked Ship
const int smse::M_SAVEPOINTS = 4
 save points in Maridia
const int smse::T_SAVEPOINTS = 2
 save points in Tourian


Generated on Thu Feb 22 21:33:28 2007 for Super Metroid SRAM Editor by  doxygen 1.5.1-p1