saveformat - data[n].sav
data[n].sav形式
typedef struct _tagGAMEGENERALDATA
{
int size;
int code;
int dummy1;
int dummy2;
char message[16];
} GAMEGENERALDATA;
typedef struct _tagGAMEHEADER
{
GAMEGENERALDATA general;
} GAMEHEADER;
typedef struct tagGAMEINFO
{
GAMEGENERALDATA general;
int dataKosuu;
int version;
int extDataKosuu;
int omakeClass;
int cutin;
int pad[16-13];
} GAMEINFO;
typedef struct tagGAMESTATUS
{
GAMEGENERALDATA general;
int year,month,day,week;
int hour,minute,second,milli;
int gameMonth,gameDay,gameHour,gameWeek;
int gameMode;
int saveCount;
int scriptAdjustVersion;
int pad0;
int scriptRunMode;
int controlScriptNumber; //dummy
int scriptNumber;
int scriptSubNumber;
int lastMessageID; //追加
int messageKosuu;
int messageSubMode;
int scriptSubSubNumber; //追加2008-05-01
int lastSelectID;
int selectMessageKosuu;
int selectMessageAddKosuu;
int pad3;
int bgmNumber;
int bgmKaisuu;
int bgmVolume;
int pad4;
int bgmParam[4];
int messageWindowPrintFlag;
int frame;
int nokori;
int lastselectheroinnumber;
int layerOff;
int pad5[3];
int loopSound[8*16];
int scriptWindowNumber;
int scriptCursorNumber;
int scriptMouseNumber;
int pad6;
int loopVoice[8*16];
char loopVoiceFileName[8*64];
char minicomment[32];
char playerSei[16];
char playerMei[16];
char sptFilename[32-16]; //未使用16byes削ってguidエリアに使用
char guid[16]; //2008から使用する
char bgmFilename[32]; //未使用
int m_PC;
int m_PC2;
int m_PC3;
int m_PC4;
int configMask;
int pad7,pad8,pad9;
int selectTimeLimit;
int autoSelect;
int selectTimeCount;
int pad10;
int autoMessage;
int cannotClick;
int cannotSkip;
int pad11;
int stackPointer;
int callStack[255];
int stackPointer2;
int callStack2[255];
int stackPointer3;
int callStack3[255];
int stackPointer4;
int callStack4[255];
int largeCommentFlag;
int pad20,pad21,pad22;
char largeComment1[256];
char largeComment2[256];
char largeComment3[256];
char largeComment4[256];
} GAMESTATUS;
typedef struct tagGAMEMINICG
{
GAMEGENERALDATA general;
int sizeX;
int sizeY;
int pad[2];
int cg[1]; //sizeX sizeYで変わる
} GAMEMINICG;
typedef struct _tagGAMEVAR
{
GAMEGENERALDATA general;
int var[1024];
} GAMEVAR;
typedef struct _tagGAMEEFFECT
{
GAMEGENERALDATA general;
EFFECT effect[16];
} GAMEEFFECT;
typedef struct _tagGAMEEFFECTFILENAME
{
GAMEGENERALDATA general;
char filename[16][256];
} GAMEEFFECTFILENAME;
typedef struct _tagGAMEMESSAGE
{
GAMEGENERALDATA general;
char messageData[64][256];
} GAMEMESSAGE;
typedef struct _tagGAMEEXTDATA
{
GAMEGENERALDATA general;
char dat[1];
} GAMEEXTDATA;
typedef struct _tagGAMECUTIN
{
GAMEGENERALDATA general;
int cutinData[64*4]; //64*2でいいけど用心のため少しおおめに
} GAMECUTIN;
typedef struct _tagGAMEOMAKECLASSDATA
{
GAMEGENERALDATA general;
int omake[3200];
} GAMEOMAKECLASSDATA;
//ユーザー拡張データ
typedef struct _tag[USERDATATYPENAMEn]
{
GAMEGENERALDATA general;
int userdata[userDataSizeN];
} [USERDATATYPENAMEn];