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];