40 lines
785 B
C++
40 lines
785 B
C++
#ifndef _INCLUDE_SP_DECOMP_ENGINE_H_
|
|
#define _INCLUDE_SP_DECOMP_ENGINE_H_
|
|
|
|
#include <stdio.h>
|
|
#include "file_format.h"
|
|
#include "code_analyzer.h"
|
|
|
|
class PrintBuffer
|
|
{
|
|
public:
|
|
PrintBuffer();
|
|
~PrintBuffer();
|
|
public:
|
|
void Set(const char *fmt, ...);
|
|
void Append(const char *fmt, ...);
|
|
void Prepend(const char *fmt, ...);
|
|
void Reset();
|
|
void Dump(FILE *fp);
|
|
private:
|
|
void Grow(size_t len);
|
|
private:
|
|
char *printbuf;
|
|
size_t printbuf_alloc;
|
|
size_t printbuf_pos;
|
|
};
|
|
|
|
struct sp_decomp_t
|
|
{
|
|
sp_file_t *plugin;
|
|
sp_opdef_t opdef[OP_TOTAL+1];
|
|
FunctionInfo *funcs;
|
|
cell_t *pcode_map;
|
|
FunctionInfo *natives;
|
|
};
|
|
|
|
sp_decomp_t *Sp_InitDecomp(const char *file, int *err);
|
|
void Sp_FreeDecomp(sp_decomp_t *decomp);
|
|
|
|
#endif //_INCLUDE_SP_DECOMP_ENGINE_H_
|