/******************************************************************************/ extern cchar8 *SizeSuffix[]; extern cchar8 *FormatSuffixes[] ; extern int FormatSuffixElms; extern const Color LitSelColor, SelColor, LitColor, DefColor, InvalidColor; /******************************************************************************/ bool SafeDel(C Str &name, ReadWriteSync &rws); bool SafeOverwrite(File &src, C Str &dest, ReadWriteSync &rws); bool SafeOverwriteChunk(File &src, C Str &dest, ReadWriteSync &rws); bool SafeCopy(C Str &src, C Str &dest); void RemoveChunk(C Str &file, C Str &chunk, ReadWriteSync &rws); Str FileSize(long size, char dot=','); Str FileSizeKB(long size); void SavedImage (C Str &name); void SavedImageAtlas (C Str &name); void SavedEditSkel (C Str &name); void SavedSkel (C Str &name); void SavedAnim (C Str &name); void SavedMesh (C Str &name); void SavedEditMtrl (C Str &name); void SavedEditWaterMtrl(C Str &name); void SavedEditPhysMtrl (C Str &name); void SavedMtrl (C Str &name); void SavedWaterMtrl (C Str &name); void SavedPhysMtrl (C Str &name); void SavedEditPhys (C Str &name); void SavedPhys (C Str &name); void SavedEnum (C Str &name); void SavedEditEnum (C Str &name); void SavedEditObjPar (C Str &name); void SavedGameObjPar (C Str &name); void SavedGameWayp (C Str &name); void SavedFont (C Str &name); void SavedTextStyle (C Str &name); void SavedPanelImage (C Str &name); void SavedPanel (C Str &name); void SavedGuiSkin (C Str &name); void SavedGui (C Str &name); void SavedEnv (C Str &name); void Saved(C Image &img , C Str &name); void Saved(C ImageAtlas &img , C Str &name); void Saved(C IconSettings &icon, C Str &name); void Saved(C EditSkeleton &skel, C Str &name); void Saved(C Skeleton &skel, C Str &name); void Saved(C Animation &anim, C Str &name); void Saved(C Mesh &mesh, C Str &name); void Saved(C EditMaterial &mtrl, C Str &name); void Saved(C EditWaterMtrl &mtrl, C Str &name); void Saved(C EditPhysMtrl &mtrl, C Str &name); void Saved(C Material &mtrl, C Str &name); void Saved(C WaterMtrl &mtrl, C Str &name); void Saved(C PhysMtrl &mtrl, C Str &name); void Saved(C PhysBody &phys, C Str &name); void Saved(C Enum &enm , C Str &name); void Saved(C EditEnums &enms, C Str &name); void Saved(C EditObject &obj , C Str &name); void Saved(C Object &obj , C Str &name); void Saved(C EditWaypoint &wp , C Str &name); void Saved(C Game::Waypoint &wp , C Str &name); void Saved(C EditFont &font, C Str &name); void Saved(C Font &font, C Str &name); void Saved(C EditTextStyle &ts , C Str &name); void Saved(C EditPanelImage &pi , C Str &name); void Saved(C PanelImage &pi , C Str &name); void Saved(C TextStyle &ts , C Str &name); void Saved(C EditPanel &panl, C Str &name); void Saved(C Panel &panl, C Str &name); void Saved(C EditGuiSkin &skin, C Str &name); void Saved(C GuiSkin &skin, C Str &name); void Saved(C GuiObjs &gui , C Str &name); void Saved(C Lake &lake, C Str &name); void Saved(C River &rivr, C Str &name); void Saved(C EditEnv &env , C Str &name); void Saved(C Environment &env , C Str &name); void Saved(C Game::WorldSettings &s, C Str &name); bool Save (C Image &img , C Str &name ); void Save (C ImageAtlas &img , C Str &name ); void Save (C IconSettings &icon, C Str &name ); void Save (C EditSkeleton &skel, C Str &name ); void Save (C Skeleton &skel, C Str &name ); void Save (C Animation &anim, C Str &name ); void Save (C Mesh &mesh, C Str &name, C Str &resource_path=S); void Save (C EditMaterial &mtrl, C Str &name ); void Save (C EditWaterMtrl &mtrl, C Str &name ); void Save (C EditPhysMtrl &mtrl, C Str &name ); void Save (C Material &mtrl, C Str &name, C Str &resource_path=S); void Save (C WaterMtrl &mtrl, C Str &name, C Str &resource_path=S); void Save (C PhysMtrl &mtrl, C Str &name ); void Save (C PhysBody &phys, C Str &name, C Str &resource_path=S); void Save (C Enum &enm , C Str &name ); void Save (C EditEnums &enms, C Str &name ); void Save (C EditObject &obj , C Str &name, C Str &resource_path=S); void Save (C Object &obj , C Str &name, C Str &resource_path=S); void Save (C EditWaypoint &wp , C Str &name ); void Save (C Game::Waypoint &wp , C Str &name ); void Save (C EditFont &font, C Str &name ); void Save (C Font &font, C Str &name ); void Save (C EditTextStyle &ts , C Str &name ); void Save (C TextStyle &ts , C Str &name, C Str &resource_path=S); void Save (C EditPanelImage &pi , C Str &name ); void Save (C PanelImage &pi , C Str &name ); void Save (C EditPanel &panl, C Str &name ); void Save (C Panel &panl, C Str &name, C Str &resource_path=S); void Save (C EditGuiSkin &skin, C Str &name ); void Save (C GuiSkin &skin, C Str &name, C Str &resource_path=S); void Save (C GuiObjs &gui , C Str &name, C Str &resource_path=S); void Save (C Lake &lake, C Str &name ); void Save (C River &rivr, C Str &name ); void Save (C EditEnv &env , C Str &name ); void Save (C Environment &env , C Str &name, C Str &resource_path=S); void Save (C Game::WorldSettings &s, C Str &name, C Str &resource_path=S); bool Load (Mesh &mesh, C Str &name, C Str &resource_path=S); bool Load (Material &mtrl, C Str &name, C Str &resource_path=S); bool Load (WaterMtrl &mtrl, C Str &name, C Str &resource_path=S); bool Load (EditObject &obj , C Str &name, C Str &resource_path=S); bool SaveCode(C Str &code, C Str &name); Edit::ERROR_TYPE LoadCode(Str &code, C Str &name); void SavedBase(ELM_TYPE type, C Str &path); void SavedCode(C Str &path); void SavedEdit(ELM_TYPE type, C Str &path); void SavedGame(ELM_TYPE type, C Str &path); void MAX1(TimeStamp &time, C TimeStamp &src_time); bool Sync(TimeStamp &time, C TimeStamp &src_time); bool Undo(TimeStamp &time, C TimeStamp &src_time); template bool Sync(TimeStamp &time, C TimeStamp &src_time, TYPE &data, C TYPE &src_data); template bool UndoByTime(TimeStamp &time, C TimeStamp &src_time, TYPE &data, C TYPE &src_data); template bool SyncByValue(TimeStamp &time, C TimeStamp &src_time, TYPE &data, C TYPE &src_data); template bool SyncByValueEqual(TimeStamp &time, C TimeStamp &src_time, TYPE &data, C TYPE &src_data); template bool UndoByValue(TimeStamp &time, C TimeStamp &src_time, TYPE &data, C TYPE &src_data); template bool Undo(TimeStamp &time, C TimeStamp &src_time, TYPE &data, C TYPE &src_data); void SetUndo(C Edit::_Undo &undos, Button &undo, Button &redo); DIR_ENUM GetCubeDir(int face); Str GetCubeFile(C Str &files, int face); Str SetCubeFile(Str files, int face, C Str &file); bool HasAlpha(C Image &image); bool HasColor(C Image &image); bool NeedFixAlpha(Image &image, IMAGE_TYPE type, bool always=false); bool FixAlpha(Image &image, IMAGE_TYPE type, bool always=false); void ImageProps(C Image &image, UID *md5, IMAGE_TYPE *compress_type=null, uint flags=0); void LoadTexture(C Project &proj, C UID &tex_id, Image &image, C VecI2 &size=-1); void ExtractBaseTextures(C Project &proj, C UID &base_0, C UID &base_1, Image *col, Image *alpha, Image *bump, Image *normal, Image *specular, Image *glow, C VecI2 &size=-1); void ExtractDetailTexture(C Project &proj, C UID &detail_tex, Image *col, Image *bump, Image *normal); UID MergedBaseTexturesID(C UID &base_0, C UID &base_1); VecI ImageSize(C VecI &src, C VecI2 &custom, bool pow2); bool EditToGameImage(Image &edit, Image &game, bool pow2, bool alpha_lum, ElmImage::TYPE type, int mode, int mip_maps, bool has_color, bool has_alpha, bool ignore_alpha, C VecI2 &custom_size=0, C int *force_type=null); bool EditToGameImage(Image &edit, Image &game, C ElmImage &data, C int *force_type=null); void DrawPanelImage(C PanelImage &pi, C Rect &rect, bool draw_lines=false); bool UpdateMtrlTex(C Image &src, Image &dest); void AdjustMaterialParams(EditMaterial &edit, Material &game, uint old_base_tex, uint new_base_tex); bool ImportImage(Image &image, C Str &name, int type=-1, int mode=-1, int mip_maps=-1, bool decompress=false); bool ValidChar(char c); bool ValidText(C Str &text, int min=1, int max=-1); bool ValidFileName(C Str &name); bool ValidFileNameForUpload(C Str &name, int max=128); bool ValidPass(C Str &pass); bool ValidEnum(C Str &name); bool ValidSupport(C Str &support); bool ValidVideo(C Str &video); Str YouTubeEmbedToFull(C Str &video); Str YouTubeFullToEmbed(C Str &video); UID PassToMD5(C Str &pass); Str NameToEnum(C Str &name); Str TimeAgo(C DateTime &date); char CountS(int n); Str Plural(Str name); Str RemoveQuotes(Str s); Str VecI2AsText(C VecI2 &v); Vec2 TextVec2Ex(cchar *t); Vec TextVecEx(cchar *t); Str TextVecEx(C Vec &v, int precision=-3); Str RelativePath (C Str &path); Str EditToGamePath( Str path); cchar8* FormatSuffixSimple(); cchar8* FormatSuffix(IMAGE_TYPE type); Str8 ImageDownSizeSuffix(int size); bool MonoTransform(C TextParam &p ); bool ResizeTransform(C Str &name); bool UVTransform(C Str &name); bool NonMonoTransform(C Str &name); bool HighPrecTransform(C Str &name); TextParam* FindTransform(MemPtr files, C Str &name); void DelTransform(MemPtr files, C Str &name); void SetTransform(MemPtr files, C Str &name, C Str &value=S); bool ForcesMono(C Str &file); void SetTransform(Str &file, C Str &name, C Str &value=S); Str BumpFromColTransform(C Str &color_map, int blur); SOUND_CODEC TextSoundCodec(C Str &t); int VisibleVtxs (C MeshLod &mesh); int VisibleTris (C MeshLod &mesh); int VisibleTrisTotal (C MeshLod &mesh); int VisibleQuads (C MeshLod &mesh); int VisibleSize (C MeshLod &mesh); flt VisibleLodQuality(C Mesh &mesh, int lod_index); void KeepParams(C Mesh &src, Mesh &dest); void EditToGameMesh(C Mesh &edit, Mesh &game, Skeleton *skel, Enum *draw_group, C Matrix *matrix); bool HasMaterial(C MeshPart &part, C MaterialPtr &material); bool FixVtxNrm(MeshBase &base); void FixMesh(Mesh &mesh); bool SamePartInAllLods(C Mesh &mesh, int part); void SetDrawGroup(Mesh &mesh, MeshLod &lod, int part, int group, Enum *draw_group_enum); Str BoneNeutralName(C Str &name); bool OverrideMeshSkel(C Mesh *mesh, C Skeleton *skel); bool OverridePhys (C PhysBody *body ); int CompareObj(C Game::Area::Data::AreaObj &a, C Game::Area::Data::AreaObj &b); void SetRootMoveRot(Animation &anim, C Vec *root_move, C Vec *root_rot); inline bool NegativeSB(flt x); inline void CHSSB(flt &x); int UniquePairs(int elms); bool Distance2D(C Vec2 &point, C Edge &edge, flt &dist, flt min_length=0.025f); int MatrixAxis(C Vec2 &screen_pos, C Matrix &matrix); void MatrixAxis(Edit::Viewport4 &v4, C Matrix &matrix, int &axis, Vec *axis_vec=null); int GetNearestAxis(C Matrix &matrix, C Vec &dir); bool UniformScale(C Matrix3 &m); bool UniformScale(C Vec &s); flt CamMoveScale(bool perspective=true ); Vec2 MoveScale(Edit::Viewport4::View &view); flt AlignDirToCamEx(C Vec &dir, C Vec2 &delta, C Vec &cam_x=ActiveCam.matrix.x, C Vec &cam_y=ActiveCam.matrix.y); Vec AlignDirToCam (C Vec &dir, C Vec2 &delta, C Vec &cam_x=ActiveCam.matrix.x, C Vec &cam_y=ActiveCam.matrix.y); flt MatrixLength(C Vec &x, C Vec &y, C Vec &z, C Vec &dir); void Include(RectI &rect, C VecI2 &x); void Include(RectI &rect, C RectI &x); void Include(Rect &rect, C Rect &x); void Include(Rect &rect, bool &is, C Vec2 &x); void Include(Rect &rect, bool &is, C Rect &x); void Include(Box &box , bool &is, C Vec &v); void Include(Box &box , bool &is, C Box &b); void DrawMatrix(C Matrix &matrix, int axis); void Hide(GuiObj &go); Rect GetRect(C Rect &rect, Memt &rects); void Include(MemPtr ids, C UID &id); bool Same(C Memc &a, C Memc &b); bool Same(C Memc &a, C Memc &b); void GetNewer(C Memc &a, C Memc &b, Memc &newer); bool EmbedObject(C Box &obj_box, C VecI2 &area_xy, flt area_size); bool SameOS(OS_VER a, OS_VER b); UID GetFileNameID(Str name); UID AsID(C Elm *elm); void SetPath(WindowIO &win_io, C Str &path, bool clear=false); bool ParamTypeID (PARAM_TYPE type ); bool ParamTypeCompatible(PARAM_TYPE a, PARAM_TYPE b); bool ParamCompatible (C Param &a, C Param &b); UNIT_TYPE UnitType(C Str &s); UNIT_TYPE GetUnitType(C Str &s); flt ConvertUnitType(flt value, flt full, UNIT_TYPE unit); Color BackgroundColor(); Color BackgroundColorLight(); Color GuiListTextColor(); Color GetLitSelCol(bool lit, bool sel, C Color &none=DefColor); bool ErrorCopy(C Str &src, C Str &dest); bool ErrorRecycle(C Str &name); bool ErrorCreateDir(C Str &name); bool RecycleLoud (C Str &name ); bool CreateDirLoud(C Str &name ); bool SafeCopyLoud (C Str &src, C Str &dest); flt VorbisBitRateToQuality(int rel_bit_rate); int DecIntV(File &f); void GetStr2(File &f, Str &s); Str GetStr2(File &f); void PutStr(File &f, C Str &s); Str GetStr(File &f); void GetStr(File &f, Str &s); template bool Save(File &f, C Memc &m ); template bool Save(File &f, C Memc &m, C USER &user); template bool Save(File &f, C Memx &m ); template bool Load(File &f, Memc &m ); template bool Load(File &f, Memc &m, C USER &user); template bool Load(File &f, Memx &m ); Mems _DecodeFileParams(C Str &str); /******************************************************************************/