// Copyright (c) 2014 Alex Diener. All rights reserved. #ifndef __LevelSetModel_H__ #define __LevelSetModel_H__ #ifdef __cplusplus extern "C" { #endif typedef struct LevelSetModel LevelSetModel; #include "stemobject/StemObject.h" #include "watertowerclassic/LevelModel.h" #define LEVEL_COUNT_MAX 100 #define LEVEL_SET_NAME_MAX 64 #define LevelSetModel_structContents(self_type) \ StemObject_structContents(self_type) \ \ unsigned int levelCount; \ LevelModel ** levels; \ char * name; stemobject_struct_definition(LevelSetModel) LevelSetModel * LevelSetModel_create(const char * name); LevelSetModel * LevelSetModel_copy(LevelSetModel * self); bool LevelSetModel_init(LevelSetModel * self, const char * name); bool LevelSetModel_initCopy(LevelSetModel * self, LevelSetModel * copy); void LevelSetModel_dispose(LevelSetModel * self); LevelModel * LevelSetModel_copyLevelAtIndex(LevelSetModel * self, unsigned int index); void LevelSetModel_swapLevels(LevelSetModel * self, unsigned int index1, unsigned int index2); void LevelSetModel_addLevelAtIndex(LevelSetModel * self, LevelModel * newLevel, unsigned int index); void LevelSetModel_deleteLevelAtIndex(LevelSetModel * self, unsigned int index); #ifdef __cplusplus } #endif #endif