OPTPiX SpriteStudio SDK
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
ssloader_sspj.h
1 #ifndef __SSLOADER_SSPJ__
2 #define __SSLOADER_SSPJ__
3 
4 
5 #include "sstypes.h"
6 #include "ssarchiver.h"
7 
10 // 編集時設定のためよまない
11 // <ssaxImport> //!< .ssax インポート設定
12 // <copyWhenImportImageIsOutside> //!< プロジェクトフォルダ外に画像ファイルがある場合にインポート先にコピーする。
13 // <exportAnimeFileFormat> //!< エクスポート時のアニメーションファイルのフォーマット
14 // <exportCellMapFileFormat> //!< エクスポート時のセルマップファイルのフォーマット
15 // <exportCellMap> //!< セルマップをエクスポートする
16 // <copyImageWhenExportCellmap> //!< セルマップのエクスポート時に画像ファイルをエクスポート先にコピーする
17 // <ssaxExport> //!< .ssax エクスポート設定
18 // <player> //!< 再生対象のプレイヤー。これにより使える機能に制限をかける。
19 // <strictVer4> //!< Ver4互換
20 // <availableAttributes> //!< 使用するアトリビュート
21 // <defaultSetAttributes> //!< 新規キー作成でデフォルトでキーが打たれるアトリビュート
23 {
24 public:
25  //他のメンバーもあるが、必要最低限のものを読み込む
26 
27  //アニメーションファイルの相対指定等
28  SsString animeBaseDirectory;
30  SsString imageBaseDirectory;
35 
37 
40  {
41  SSAR_DECLARE(animeBaseDirectory);
42  SSAR_DECLARE(cellMapBaseDirectory);
43  SSAR_DECLARE(imageBaseDirectory);
44  SSAR_DECLARE(exportBaseDirectory);
45  SSAR_DECLARE(queryExportBaseDirectory);
46  SSAR_DECLARE_ENUM( wrapMode );
47  SSAR_DECLARE_ENUM( filterMode );
48 }
49 };
50 
51 
52 class SsAnimation;
53 class SsAnimePack;
54 class SsCellMap;
55 
56 
57 typedef std::vector<SsAnimePack*> SsAnimePackList;
58 typedef std::vector<SsAnimePack*>::iterator SsAnimePackListItr;
59 
60 typedef std::vector<SsCellMap*> SsSsCellMapList;
61 typedef std::vector<SsCellMap*>::iterator SsSsCellMapListItr;
62 
63 
68 class SsProject
69 {
70 public:
72  std::vector<SsString> cellmapNames;
73  std::vector<SsString> animepackNames;
74 
75  SsAnimePackList animeList;
76  SsSsCellMapList cellmapList;
77 
78  //ロード時に作成されるワーク
79  SsString m_proj_filepath;
80 
81 
83  virtual ~SsProject();
84 
87 
89  const size_t getAnimePackNum(){ return animepackNames.size(); }
90 
92  const size_t getCellMapNum(){ return cellmapNames.size(); }
93 
95  SsAnimePackList& getAnimePackList(){ return animeList;}
96 
98  SsSsCellMapList& getCellMapList(){ return cellmapList;}
99 
100  //アニメパック名とアニメ名からアニメーションを取得する
101  SsAnimation* findAnimation( SsString& animePackName , SsString& AnimeName );
102 
103  SsAnimePack* findAnimationPack( SsString& animePackName );
104 
105 
106  SsCellMap* findCellMap( SsString& str );
107  SsCellMap* getCellMap( int index );
108 
109 
112  {
113  SSAR_STRUCT_DECLARE( settings );
114  SSAR_DECLARE( cellmapNames );
115  SSAR_DECLARE( animepackNames );
116  }
117 
118 public:
119 
121  void setFilepath( const SsString& path ) { m_proj_filepath = path; }
122 
124  const SsString& getFilepath(){ return m_proj_filepath; }
125 
127  SsString getSsceBasepath();
128 
130  SsString getSsaeBasepath();
131 
132  SsString getImageBasepath();
133 
134 
136  SsString getAnimePackFilePath( size_t index ) {
137  if ( animepackNames.size() <= index ) return "";
138  return getSsaeBasepath() + animepackNames[index];
139  }
140 
142  SsString getCellMapFilePath( size_t index ) {
143  if ( cellmapNames.size() <= index ) return "";
144  SsString str = getSsceBasepath();
145  str = str + cellmapNames[index];
146  return str ;
147  }
148 
149 };
150 
153 {
154 private:
155 
156 public:
157  ssloader_sspj(){}
158  virtual ~ssloader_sspj(){}
159  static SsProject* Load(const std::string& filename );
160 
161 };
162 
163 
164 
165 #endif