18 #include    "../vbam/gba/Globals.h" 
   26     Range(uint32_t x = 0, uint32_t y = 0)
 
   33   typedef       std::vector<uint32_t>           
Args;
 
   50       : offset(p_off), bytecode(p_mem + p_off), length(1), cmd(*bytecode), str(
""),
 
   51         toVisit((cmd == 0x06 || cmd == 0x07) * 3)
 
   54     { 
return (toVisit & (1 << result)); }
 
   56     { toVisit &= ~(1 << result); }
 
   59       printf(
"%#08x: ", offset);
 
   60       for (
int i = 0; i < 10; i++)
 
   61         printf(i < length ? 
"%02x " : 
"   ", bytecode[i]);
 
   62       printf(
"%s\n", str.c_str());
 
   67       next = (cmd == 0x02 || cmd == 0x03 ? 0 : offset + 
length);
 
   73     Command(std::initializer_list<std::string> il)
 
   74       : 
format(il.size() ? *(il.begin()) : 
"UNKNOWN"),
 
   75         args(il.size() > 1 ? *(il.begin() + 1) : 
""),
 
   99   static Script *
getSign(uint8_t bank, uint8_t map, uint8_t 
id);
 
  109   void          _subPrint(uint32_t ptr);
 
  111   bool      _setupNextAddr();
 
  112   void          _getInstruction(Command &cmd);
 
  115   uint32_t  _readByte();
 
  116   uint32_t  _readWord();
 
  117   uint32_t  _readDword();
 
  120   void          _loadpointer(Instruction *instr);
 
  121   void          _bufferstring(Instruction *instr);
 
  122   void          _preparemsg(Instruction *instr);
 
  123   void          _checkattack(Instruction *instr);
 
  124   void          _if(Instruction *instr);
 
  125   void          _branch(Instruction *instr);
 
  134   std::vector<Range>    _ranges;
 
  135   std::queue<uint32_t>  _addrs;
 
  136   std::map<int, Instruction *>  _instructions;
 
  138   static Command    _cmds[0xD6];
 
  139   static std::map<std::string, ParamReader>     _readers;
 
Instruction(uint32_t p_off, uint8_t *p_mem)
Definition: Script.hh:49
 
uint8_t * bytecode
Definition: Script.hh:40
 
Args args
Definition: Script.hh:45
 
std::string args
Definition: Script.hh:83
 
bool notVisited(bool result)
Definition: Script.hh:53
 
std::vector< uint32_t > Args
Definition: Script.hh:33
 
static Script * getPerson(uint8_t bank, uint8_t map, uint8_t id)
Definition: Script.cpp:178
 
std::vector< std::string > TypeList
Definition: Script.hh:34
 
std::string format
Definition: Script.hh:82
 
uint32_t next
Definition: Script.hh:42
 
TypeList types
Definition: Script.hh:46
 
static void initStd()
Definition: Script.cpp:127
 
Script & load(uint32_t ptr)
Definition: Script.cpp:93
 
std::string str
Definition: Script.hh:44
 
uint8_t length
Definition: Script.hh:41
 
Command(const std::string &fmt, const std::string ¶ms="", void(Script::*func)(Instruction *)=NULL)
Definition: Script.hh:78
 
uint32_t offset
Definition: Script.hh:39
 
Command(std::initializer_list< std::string > il)
Definition: Script.hh:73
 
uint8_t toVisit
Definition: Script.hh:47
 
std::map< int, Instruction * > & getInstructions()
Definition: Script.hh:105
 
static Script * getSign(uint8_t bank, uint8_t map, uint8_t id)
Definition: Script.cpp:199
 
void setLength(uint8_t len)
Definition: Script.hh:64
 
uint32_t(Script::* ParamReader)()
Definition: Script.hh:35
 
static Script * getScript(uint8_t bank, uint8_t map, uint8_t id)
Definition: Script.cpp:219
 
~Script()
Definition: Script.cpp:10
 
void print()
Definition: Script.cpp:156
 
uint8_t cmd
Definition: Script.hh:43
 
static Script & getStd(uint8_t n)
Definition: Script.hh:95
 
Range(float a=0, float b=0)
Definition: Data.hh:21
 
Script()
Definition: Script.cpp:5
 
uint32_t getStartOffset()
Definition: Script.hh:106
 
void visit(bool result)
Definition: Script.hh:55
 
void print()
Definition: Script.hh:57
 
void(Script::* hook)(Instruction *)
Definition: Script.hh:84
 
Script & loadStd(uint8_t n)
Definition: Script.cpp:121